📄 cplsample.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 + -