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

📄 shnotify.cod

📁 Windows Mobile 任务栏通知代码
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345 

	TTL	D:\WM610\PUBLIC\SHELLW\OAK\SAMPLES\SHNOTIFICATION\.\shnotify.cpp
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|?g_hInstance@@3PAUHINSTANCE__@@A| [ DATA ] ; g_hInstance
	EXPORT	|?g_hwndMain@@3PAUHWND__@@A| [ DATA ]	; g_hwndMain
	EXPORT	|?g_hwndBubble@@3PAUHWND__@@A| [ DATA ]	; g_hwndBubble
	EXPORT	|??_C@_1BI@HCPBHEEN@?$AAN?$AAO?$AAT?$AAI?$AAF?$AAY?$AA_?$AAT?$AAE?$AAS?$AAT?$AA?$AA@| [ DATA ] ; `string'

  00000			 AREA	 |.bss|, NOINIT
|?g_hInstance@@3PAUHINSTANCE__@@A| % 0x4		; g_hInstance
|?g_hwndMain@@3PAUHWND__@@A| % 0x4			; g_hwndMain
|?g_hwndBubble@@3PAUHWND__@@A| % 0x4			; g_hwndBubble

  00000			 AREA	 |.rdata| { |??_C@_1BI@HCPBHEEN@?$AAN?$AAO?$AAT?$AAI?$AAF?$AAY?$AA_?$AAT?$AAE?$AAS?$AAT?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BI@HCPBHEEN@?$AAN?$AAO?$AAT?$AAI?$AAF?$AAY?$AA_?$AAT?$AAE?$AAS?$AAT?$AA?$AA@| DCB "N"
	DCB	0x0, "O", 0x0, "T", 0x0, "I", 0x0, "F", 0x0, "Y", 0x0, "_"
	DCB	0x0, "T", 0x0, "E", 0x0, "S", 0x0, "T", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata|, DATA, READONLY
|g_szAppName| DCD |??_C@_1BI@HCPBHEEN@?$AAN?$AAO?$AAT?$AAI?$AAF?$AAY?$AA_?$AAT?$AAE?$AAS?$AAT?$AA?$AA@|
|CLSID_SHNAPI_MenuNotif| DCD 0xae78222f
	DCW	0xc375
	DCW	0x4c7a
	DCB	0x94
	DCB	0x60
	DCB	0x8f
	DCB	0x34
	DCB	0xe5
	DCB	0xca
	DCB	0xa4
	DCB	0x17
|CLSID_SHNAPI_OemNotif3| DCD 0x1ee011d2
	DCW	0xf265
	DCW	0x4214
	DCB	0xa4
	DCB	0xed
	DCB	0xf0
	DCB	0xea
	DCB	0x2e
	DCB	0x82
	DCB	0x7f
	DCB	0x2a
|CLSID_SHNAPI_OemNotif2| DCD 0x99de7411
	DCW	0x772f
	DCW	0x43d0
	DCB	0x81
	DCB	0xf0
	DCB	0x66
	DCB	0x83
	DCB	0x36
	DCB	0xca
	DCB	0x65
	DCB	0x1b
|CLSID_SHNAPI_OemNotif1| DCD 0xb3a81802
	DCW	0x9095
	DCW	0x4b4b
	DCB	0x87
	DCB	0x13
	DCB	0x7d
	DCB	0x65
	DCB	0xb6
	DCB	0xfb
	DCB	0x8b
	DCB	0xbc
	EXPORT	|?BubbleMessagePump@@YAXPAUHWND__@@0@Z|	; BubbleMessagePump
	IMPORT	|IsWindow|
	IMPORT	|DestroyWindow|
	IMPORT	|IsDialogMessageW|
	IMPORT	|GetMessageW|
	IMPORT	|TranslateMessage|
	IMPORT	|DispatchMessageW|
; File d:\wm610\public\shellw\oak\samples\shnotification\shnotify.cpp

  00000			 AREA	 |.text| { |?BubbleMessagePump@@YAXPAUHWND__@@0@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?BubbleMessagePump@@YAXPAUHWND__@@0@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?BubbleMessagePump@@YAXPAUHWND__@@0@Z| } ; comdat associative
|$T44635| DCD	|$L44634|
	DCD	0x40001c02
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?BubbleMessagePump@@YAXPAUHWND__@@0@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?BubbleMessagePump@@YAXPAUHWND__@@0@Z| PROC ; BubbleMessagePump

; 56   : {

  00000		 |$L44634|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004	e24dd01c	 sub         sp, sp, #0x1C
  00008		 |$M44632|
  00008	e1a05001	 mov         r5, r1
  0000c	e1a04000	 mov         r4, r0

; 57   :     while (IsWindow(hDlg))

  00010	ea00000d	 b           |$L44307|
  00014		 |$L44304|

; 58   :     {
; 59   :         MSG msg;
; 60   :         
; 61   :         GetMessage(&msg, NULL, 0, 0);

  00014	e3a03000	 mov         r3, #0
  00018	e3a02000	 mov         r2, #0
  0001c	e3a01000	 mov         r1, #0
  00020	e28d0000	 add         r0, sp, #0
  00024	eb000000	 bl          GetMessageW

; 62   :         if (!IsDialogMessage(hDlg, &msg))

  00028	e28d1000	 add         r1, sp, #0
  0002c	e1a00004	 mov         r0, r4
  00030	eb000000	 bl          IsDialogMessageW
  00034	e3500000	 cmp         r0, #0
  00038	1a000003	 bne         |$L44307|

; 63   :         {
; 64   :             // process the message
; 65   :             TranslateMessage(&msg);

  0003c	e28d0000	 add         r0, sp, #0
  00040	eb000000	 bl          TranslateMessage

; 66   :             DispatchMessage(&msg);

  00044	e28d0000	 add         r0, sp, #0
  00048	eb000000	 bl          DispatchMessageW
  0004c		 |$L44307|
  0004c	e1a00004	 mov         r0, r4
  00050	eb000000	 bl          IsWindow
  00054	e3500000	 cmp         r0, #0
  00058	1affffed	 bne         |$L44304|

; 67   :         }
; 68   : 
; 69   :     }
; 70   :     
; 71   :     DestroyWindow(hwndOwner);  

  0005c	e1a00005	 mov         r0, r5
  00060	eb000000	 bl          DestroyWindow

; 72   :     
; 73   : }

  00064	e28dd01c	 add         sp, sp, #0x1C
  00068	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  0006c	e12fff1e	 bx          lr
  00070		 |$M44633|

			 ENDP  ; |?BubbleMessagePump@@YAXPAUHWND__@@0@Z|, BubbleMessagePump

	EXPORT	|?SHBoxHookProc@@YAHPAUHWND__@@IIJPAX@Z| ; SHBoxHookProc
	EXPORT	|??_C@_1BG@MBAMAOHI@?$AAc?$AAt?$AAl?$AAp?$AAn?$AAl?$AA?4?$AAe?$AAx?$AAe?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BG@PIPAHKJH@?$AAc?$AAp?$AAl?$AAm?$AAa?$AAi?$AAn?$AA?5?$AA1?$AA9?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CK@PFCHDHN@?$AAT?$AAe?$AAs?$AAt?$AAB?$AAu?$AAb?$AAb?$AAl?$AAe?$AA?3?$AA?1?$AA?1?$AAC?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt@| [ DATA ] ; `string'
	IMPORT	|_wcsnicmp|
	IMPORT	|GetParent|
	IMPORT	|memset|
	IMPORT	|ShellExecuteEx|
	IMPORT	|PostMessageW|

  00000			 AREA	 |.text| { |?SHBoxHookProc@@YAHPAUHWND__@@IIJPAX@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?SHBoxHookProc@@YAHPAUHWND__@@IIJPAX@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?SHBoxHookProc@@YAHPAUHWND__@@IIJPAX@Z| } ; comdat associative
|$T44651| DCD	|$L44650|
	DCD	0x40004a02

  00000			 AREA	 |.rdata| { |??_C@_1CK@PFCHDHN@?$AAT?$AAe?$AAs?$AAt?$AAB?$AAu?$AAb?$AAb?$AAl?$AAe?$AA?3?$AA?1?$AA?1?$AAC?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CK@PFCHDHN@?$AAT?$AAe?$AAs?$AAt?$AAB?$AAu?$AAb?$AAb?$AAl?$AAe?$AA?3?$AA?1?$AA?1?$AAC?$AAo?$AAn?$AAn?$AAe?$AAc?$AAt@| DCB "T"
	DCB	0x0, "e", 0x0, "s", 0x0, "t", 0x0, "B", 0x0, "u", 0x0, "b"
	DCB	0x0, "b", 0x0, "l", 0x0, "e", 0x0, ":", 0x0, "/", 0x0, "/"
	DCB	0x0, "C", 0x0, "o", 0x0, "n", 0x0, "n", 0x0, "e", 0x0, "c"
	DCB	0x0, "t", 0x0, 0x0, 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BG@MBAMAOHI@?$AAc?$AAt?$AAl?$AAp?$AAn?$AAl?$AA?4?$AAe?$AAx?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BG@MBAMAOHI@?$AAc?$AAt?$AAl?$AAp?$AAn?$AAl?$AA?4?$AAe?$AAx?$AAe?$AA?$AA@| DCB "c"
	DCB	0x0, "t", 0x0, "l", 0x0, "p", 0x0, "n", 0x0, "l", 0x0, "."
	DCB	0x0, "e", 0x0, "x", 0x0, "e", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BG@PIPAHKJH@?$AAc?$AAp?$AAl?$AAm?$AAa?$AAi?$AAn?$AA?5?$AA1?$AA9?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BG@PIPAHKJH@?$AAc?$AAp?$AAl?$AAm?$AAa?$AAi?$AAn?$AA?5?$AA1?$AA9?$AA?$AA@| DCB "c"
	DCB	0x0, "p", 0x0, "l", 0x0, "m", 0x0, "a", 0x0, "i", 0x0, "n"
	DCB	0x0, " ", 0x0, "1", 0x0, "9", 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?SHBoxHookProc@@YAHPAUHWND__@@IIJPAX@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?SHBoxHookProc@@YAHPAUHWND__@@IIJPAX@Z| PROC ; SHBoxHookProc

; 77   : {

  00000		 |$L44650|
  00000	e92d40f0	 stmdb       sp!, {r4 - r7, lr}
  00004	e24dd03c	 sub         sp, sp, #0x3C
  00008		 |$M44648|
  00008	e1a05003	 mov         r5, r3
  0000c	e1a06002	 mov         r6, r2
  00010	e1a07000	 mov         r7, r0

; 78   :     int ires = FALSE;

  00014	e3a04000	 mov         r4, #0

; 79   :     
; 80   :     switch(uMsg)

  00018	e351004e	 cmp         r1, #0x4E
  0001c	0a000024	 beq         |$L44330|
  00020	e3a0ee11	 mov         lr, #0x11, 28
  00024	e38ee001	 orr         lr, lr, #1
  00028	e151000e	 cmp         r1, lr
  0002c	1a000036	 bne         |$L44343|

; 81   :     {
; 82   :     case WM_COMMAND:
; 83   :         {
; 84   :             
; 85   :             // dismiss the bubble
; 86   :             PostMessage(GetParent(hwnd), SHBM_CLOSE, wParam, lParam);

  00030	eb000000	 bl          GetParent
  00034	e3a01902	 mov         r1, #2, 18
  00038	e3811044	 orr         r1, r1, #0x44
  0003c	e1a03005	 mov         r3, r5
  00040	e1a02006	 mov         r2, r6
  00044	eb000000	 bl          PostMessageW

; 87   :             
; 88   :             switch (LOWORD(wParam))

  00048	e1a03806	 mov         r3, r6, lsl #16
  0004c	e1a03823	 mov         r3, r3, lsr #16
  00050	e3530a03	 cmp         r3, #3, 20
  00054	1a00002c	 bne         |$L44343|

; 89   :             {
; 90   :             case 12288:
; 91   :                 {
; 92   :                     SHELLEXECUTEINFO sei = {0};

  00058	e3a02038	 mov         r2, #0x38
  0005c	e3a01000	 mov         r1, #0
  00060	e28d0004	 add         r0, sp, #4
  00064	eb000000	 bl          memset

; 93   :                     sei.cbSize = sizeof(sei);
; 94   :                     sei.fMask = 0;
; 95   :                     sei.hwnd = NULL;
; 96   :                     sei.lpVerb = NULL;
; 97   :                     sei.lpFile = TEXT("ctlpnl.exe");

  00068	e59f30b4	 ldr         r3, [pc, #0xB4]

; 98   :                     sei.lpParameters = TEXT("cplmain 19");

  0006c	e59f20ac	 ldr         r2, [pc, #0xAC]
  00070	e3a0103c	 mov         r1, #0x3C
  00074	e3a0e000	 mov         lr, #0
  00078	e3a04000	 mov         r4, #0
  0007c	e3a05000	 mov         r5, #0

; 99   :                     sei.lpDirectory = NULL;

  00080	e3a06000	 mov         r6, #0

; 100  :                     sei.nShow = SW_SHOWNORMAL;

  00084	e3a07001	 mov         r7, #1

; 101  :                     ShellExecuteEx(&sei);

  00088	e28d0000	 add         r0, sp, #0
  0008c	e58d3010	 str         r3, [sp, #0x10]
  00090	e58d2014	 str         r2, [sp, #0x14]
  00094	e58d1000	 str         r1, [sp]
  00098	e58de004	 str         lr, [sp, #4]
  0009c	e58d4008	 str         r4, [sp, #8]
  000a0	e58d500c	 str         r5, [sp, #0xC]
  000a4	e58d6018	 str         r6, [sp, #0x18]
  000a8	e58d701c	 str         r7, [sp, #0x1C]
  000ac	eb000000	 bl          ShellExecuteEx

; 102  :                     ires = TRUE;
; 103  :                 }
; 104  :                 break;
; 105  :                 
; 106  :                 
; 107  :             }
; 108  :         }

⌨️ 快捷键说明

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