⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cplsample.cod

📁 一个WinCE下的控制面板的例子.希望对想学习这方面的朋友有帮助.
💻 COD
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237 

	TTL	D:\WINCE500\PBWorkspaces\POS35\CplSample\.\CplSample.cpp
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-INCLUDE:__@@_PchSym_@00@UdrmxvFAAUkydliphkzxvhUklhDFUxk"
	DCB	"ohznkovUlyqUzineErUivgzroUhgwzucOlyq@CplSample "
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|?g_hModule@@3PAUHINSTANCE__@@A| [ DATA ] ; g_hModule

  00000			 AREA	 |.bss|, NOINIT
|?g_hModule@@3PAUHINSTANCE__@@A| % 0x4			; g_hModule
	EXPORT	|DllMain|
; File d:\wince500\pbworkspaces\pos35\cplsample\cplsample.cpp

  00000			 AREA	 |.text| { |DllMain| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$DllMain|, PDATA, SELECTION=5, ASSOC=|.text| { |DllMain| } ; comdat associative
|$T26805| DCD	|$L26804|
	DCD	0x40000600
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |DllMain| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |DllMain| PROC

; 22   : {

  00000		 |$L26804|
  00000		 |$M26802|

; 23   : 	switch (ul_reason_for_call)

  00000	e3510001	 cmp         r1, #1

; 24   : 	{
; 25   : 		case DLL_PROCESS_ATTACH:
; 26   : 		{
; 27   : 			g_hModule = (HMODULE) hModule;

  00004	059f3008	 ldreq       r3, [pc, #8]
  00008	05830000	 streq       r0, [r3]

; 28   : 		}
; 29   : 		case DLL_THREAD_ATTACH:
; 30   : 		case DLL_THREAD_DETACH:
; 31   : 		case DLL_PROCESS_DETACH:
; 32   : 			break;
; 33   : 	}
; 34   :     return TRUE;

  0000c	e3a00001	 mov         r0, #1

; 35   : }

  00010	e12fff1e	 bx          lr
  00014		 |$L26807|
  00014	00000000	 DCD         |?g_hModule@@3PAUHINSTANCE__@@A|
  00018		 |$M26803|

			 ENDP  ; |DllMain|

	EXPORT	|CPlApplet|
	EXPORT	|??_C@_1BA@HHOMBECE@?$AAM?$AAe?$AAs?$AAs?$AAa?$AAg?$AAe?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1DA@BKJPPIIJ@?$AAA?$AA?5?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AA?5?$AAP?$AAa?$AAn?$AAe?$AAl?$AA?5?$AAS?$AAa?$AAm?$AAp@| [ DATA ] ; `string'
	IMPORT	|wcscpy|
	IMPORT	|LoadIconW|
	IMPORT	|LoadStringW|
	IMPORT	|MessageBoxW|

  00000			 AREA	 |.text| { |CPlApplet| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$CPlApplet|, PDATA, SELECTION=5, ASSOC=|.text| { |CPlApplet| } ; comdat associative
|$T26820| DCD	|$L26819|
	DCD	0x40004701

  00000			 AREA	 |.rdata| { |??_C@_1BA@HHOMBECE@?$AAM?$AAe?$AAs?$AAs?$AAa?$AAg?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BA@HHOMBECE@?$AAM?$AAe?$AAs?$AAs?$AAa?$AAg?$AAe?$AA?$AA@| DCB "M", 0x0
	DCB	"e", 0x0, "s", 0x0, "s", 0x0, "a", 0x0, "g", 0x0, "e", 0x0
	DCB	0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DA@BKJPPIIJ@?$AAA?$AA?5?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AA?5?$AAP?$AAa?$AAn?$AAe?$AAl?$AA?5?$AAS?$AAa?$AAm?$AAp@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DA@BKJPPIIJ@?$AAA?$AA?5?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AA?5?$AAP?$AAa?$AAn?$AAe?$AAl?$AA?5?$AAS?$AAa?$AAm?$AAp@| DCB "A"
	DCB	0x0, " ", 0x0, "C", 0x0, "o", 0x0, "n", 0x0, "t", 0x0, "r"
	DCB	0x0, "o", 0x0, "l", 0x0, " ", 0x0, "P", 0x0, "a", 0x0, "n"
	DCB	0x0, "e", 0x0, "l", 0x0, " ", 0x0, "S", 0x0, "a", 0x0, "m"
	DCB	0x0, "p", 0x0, "l", 0x0, "e", 0x0, "!", 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |CPlApplet| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |CPlApplet| PROC

; 42   : {

  00000		 |$L26819|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M26817|
  00004	e1a05003	 mov         r5, r3

; 43   : 	switch (message)

  00008	e3510001	 cmp         r1, #1
  0000c	0a00003c	 beq         |$L26766|
  00010	e3510002	 cmp         r1, #2
  00014	0a00003a	 beq         |$L26766|
  00018	e3510005	 cmp         r1, #5
  0001c	0a000032	 beq         |$L26782|
  00020	e3510008	 cmp         r1, #8

; 106  : 			/*HWND hWnd = FindWindow (L"Dialog",TEXT("CplSample")); 
; 107  : 			if (hWnd) 
; 108  : 			{       
; 109  : 				//如果已经运行过一个实例,则把它提到窗口前
; 110  : 				SetForegroundWindow (hWnd);
; 111  : 				CloseHandle(hWnd);
; 112  : 				return 0;   
; 113  : 			}
; 114  : 			else
; 115  : 			{
; 116  : 				PROCESS_INFORMATION pi = {0};
; 117  : 				if (CreateProcess(_T("\\Windows\\CplSample.exe"), NULL, NULL,
; 118  : 						NULL, FALSE, 0, NULL, NULL, NULL, &pi))
; 119  : 				{
; 120  : 					CloseHandle(pi.hThread);
; 121  : 					CloseHandle(pi.hProcess);
; 122  : 					return 0;
; 123  : 				}
; 124  : 			}*/
; 125  : 			return 1;     // CPlApplet failed.
; 126  : 		}
; 127  : 
; 128  : 		case CPL_STOP:
; 129  : 			// Called once for each dialog box. Used for cleanup.
; 130  : 		case CPL_EXIT:
; 131  : 			// Called only once for the application. Used for cleanup.
; 132  : 		default:
; 133  : 			return 0;

  00024	1a00002d	 bne         |$L26816|

; 51   : 
; 52   : 		case CPL_GETCOUNT:
; 53   : 			// The number of actions supported by this Control
; 54   : 			// Panel application.
; 55   : 			return 1;
; 56   : 
; 57   : 		case CPL_NEWINQUIRE:
; 58   : 		{
; 59   : 			// This message is sent once for each dialog box, as
; 60   : 			// determined by the value returned from CPL_GETCOUNT.
; 61   : 			// lParam1 is the 0-based index of the dialog box.
; 62   : 			// lParam2 is a pointer to the NEWCPLINFO structure.
; 63   : 			ASSERT(0 == lParam1);
; 64   : 			ASSERT(lParam2);
; 65   : 
; 66   : 			NEWCPLINFO* lpNewCplInfo = (NEWCPLINFO *) lParam2;
; 67   : 			if (lpNewCplInfo)

  00028	e3550000	 cmp         r5, #0
  0002c	0a000034	 beq         |$L26766|

; 68   : 			{
; 69   : 				if(lpNewCplInfo==NULL)
; 70   : 					MessageBox(NULL,TEXT("lpNewCplInfo is NULL!"),TEXT("Message"),MB_OK);
; 71   : 
; 72   : 				lpNewCplInfo->dwSize = sizeof(NEWCPLINFO);
; 73   : 				lpNewCplInfo->dwFlags = 0;
; 74   : 				lpNewCplInfo->dwHelpContext = 0;
; 75   : 				lpNewCplInfo->lData = IDI_CPLSAMPLE;
; 76   : 				lpNewCplInfo->hIcon = LoadIcon(g_hModule,
; 77   : 						MAKEINTRESOURCE(IDI_CPLSAMPLE));

  00030	e59f40e0	 ldr         r4, [pc, #0xE0]
  00034	e3a030d4	 mov         r3, #0xD4
  00038	e3a02001	 mov         r2, #1
  0003c	e3a0106e	 mov         r1, #0x6E
  00040	e3a00000	 mov         r0, #0
  00044	e5c53000	 strb        r3, [r5]
  00048	e5c52001	 strb        r2, [r5, #1]
  0004c	e5c50002	 strb        r0, [r5, #2]
  00050	e5c50003	 strb        r0, [r5, #3]
  00054	e5c50004	 strb        r0, [r5, #4]
  00058	e5c50005	 strb        r0, [r5, #5]
  0005c	e5c50006	 strb        r0, [r5, #6]
  00060	e5c50007	 strb        r0, [r5, #7]
  00064	e5c50008	 strb        r0, [r5, #8]
  00068	e5c50009	 strb        r0, [r5, #9]
  0006c	e5c5000a	 strb        r0, [r5, #0xA]
  00070	e5c5000b	 strb        r0, [r5, #0xB]
  00074	e5c5100c	 strb        r1, [r5, #0xC]
  00078	e5c5000d	 strb        r0, [r5, #0xD]
  0007c	e5c5000e	 strb        r0, [r5, #0xE]
  00080	e5c5000f	 strb        r0, [r5, #0xF]
  00084	e5940000	 ldr         r0, [r4]
  00088	e3a0106e	 mov         r1, #0x6E
  0008c	eb000000	 bl          LoadIconW
  00090	e1a03420	 mov         r3, r0, lsr #8
  00094	e1a02820	 mov         r2, r0, lsr #16
  00098	e1a01c20	 mov         r1, r0, lsr #24
  0009c	e5c53011	 strb        r3, [r5, #0x11]
  000a0	e5c52012	 strb        r2, [r5, #0x12]
  000a4	e5c51013	 strb        r1, [r5, #0x13]
  000a8	e5c50010	 strb        r0, [r5, #0x10]

; 78   : 				LoadString(g_hModule, IDS_APP_TITLE, lpNewCplInfo->szName,
; 79   : 						lengthof(lpNewCplInfo->szName));

  000ac	e5940000	 ldr         r0, [r4]
  000b0	e3a03020	 mov         r3, #0x20
  000b4	e2852014	 add         r2, r5, #0x14
  000b8	e3a01001	 mov         r1, #1
  000bc	eb000000	 bl          LoadStringW

; 80   : 				LoadString(g_hModule, IDS_CPLSAMPLE, lpNewCplInfo->szInfo,
; 81   : 						lengthof(lpNewCplInfo->szInfo));

  000c0	e5940000	 ldr         r0, [r4]
  000c4	e3a03040	 mov         r3, #0x40
  000c8	e2852054	 add         r2, r5, #0x54
  000cc	e3a01002	 mov         r1, #2
  000d0	eb000000	 bl          LoadStringW

; 82   : 				_tcscpy(lpNewCplInfo->szHelpFile, _T("A Control Panel Sample!"));

  000d4	e59f1034	 ldr         r1, [pc, #0x34]
  000d8	e28500d4	 add         r0, r5, #0xD4
  000dc	eb000000	 bl          wcscpy
  000e0		 |$L26816|

; 83   : 				return 0;

  000e0	e3a00000	 mov         r0, #0

; 134  : 	}
; 135  : 
; 136  : 	return 1;  // CPlApplet failed.
; 137  : }

  000e4	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  000e8	e12fff1e	 bx          lr
  000ec		 |$L26782|

; 84   : 			}
; 85   : 			return 1;  // Nonzero value means CPlApplet failed.
; 86   : 		}
; 87   : 
; 88   : 		case CPL_DBLCLK:
; 89   : 		{
; 90   : 			// The user has double-clicked the icon for the
; 91   : 			// dialog box in lParam1 (zero-based).
; 92   : 
; 93   : 			/*if(MessageBox(NULL,TEXT("Rotate Screen?"),TEXT("Message"),MB_YESNO)==IDYES)
; 94   : 			{
; 95   : 				PROCESS_INFORMATION pi = {0};
; 96   : 				if (CreateProcess(_T("\\Windows\\ScreenRotater.exe"), NULL, NULL,
; 97   : 						NULL, FALSE, 0, NULL, NULL, NULL, &pi))
; 98   : 				{
; 99   : 					CloseHandle(pi.hThread);
; 100  : 					CloseHandle(pi.hProcess);
; 101  : 				}
; 102  : 				return 0;
; 103  : 			}*/
; 104  : 			MessageBox(NULL,TEXT("A Control Panel Sample!"),TEXT("Message"),MB_OK);

  000ec	e59f2020	 ldr         r2, [pc, #0x20]
  000f0	e59f1018	 ldr         r1, [pc, #0x18]
  000f4	e3a03000	 mov         r3, #0
  000f8	e3a00000	 mov         r0, #0
  000fc	eb000000	 bl          MessageBoxW

; 105  : 			return 0;

  00100	eafffff6	 b           |$L26816|
  00104		 |$L26766|

; 44   : 	{
; 45   : 		case CPL_INIT:
; 46   : 			// Perform global initializations, especially memory
; 47   : 			// allocations, here.
; 48   : 			// Return 1 for success or 0 for failure.
; 49   : 			// Control Panel does not load if failure is returned.
; 50   : 			return 1;

  00104	e3a00001	 mov         r0, #1

; 134  : 	}
; 135  : 
; 136  : 	return 1;  // CPlApplet failed.
; 137  : }

  00108	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  0010c	e12fff1e	 bx          lr
  00110		 |$L26822|
  00110	00000000	 DCD         |??_C@_1DA@BKJPPIIJ@?$AAA?$AA?5?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AA?5?$AAP?$AAa?$AAn?$AAe?$AAl?$AA?5?$AAS?$AAa?$AAm?$AAp@|
  00114	00000000	 DCD         |??_C@_1BA@HHOMBECE@?$AAM?$AAe?$AAs?$AAs?$AAa?$AAg?$AAe?$AA?$AA@|
  00118	00000000	 DCD         |?g_hModule@@3PAUHINSTANCE__@@A|
  0011c		 |$M26818|

			 ENDP  ; |CPlApplet|

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -