#include "shelltest.h"
#include "shell32_apitest_sub.h"
#include <assert.h>
Go to the source code of this file.
|
LPITEMIDLIST | DoGetPidl (INT iDir) |
|
static BOOL | OnCreate (HWND hwnd) |
|
static BOOL | InitSHCN (HWND hwnd) |
|
static void | UnInitSHCN (HWND hwnd) |
|
static void | OnCommand (HWND hwnd, UINT id) |
|
static void | OnDestroy (HWND hwnd) |
|
static BOOL | DoSendData (LONG lEvent, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) |
|
static void | DoShellNotify (HWND hwnd, PIDLIST_ABSOLUTE pidl1, PIDLIST_ABSOLUTE pidl2, LONG lEvent) |
|
static INT_PTR | OnShellNotify (HWND hwnd, WPARAM wParam, LPARAM lParam) |
|
static LRESULT CALLBACK | SubWindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) |
|
INT APIENTRY | wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, INT nCmdShow) |
|
◆ EVENTS
◆ DIRTYPE
◆ DIRTYPE
Enumerator |
---|
DIRTYPE_DESKTOP | |
DIRTYPE_DESKTOP_DIR | |
DIRTYPE_DRIVES | |
DIRTYPE_PRINTERS | |
DIRTYPE_DIR1 | |
DIRTYPE_MAX | |
Definition at line 14 of file shell32_apitest_sub.cpp.
◆ DoGetPidl()
Definition at line 32 of file shell32_apitest_sub.cpp.
33{
35
36 switch (iDir)
37 {
39 {
41 break;
42 }
44 {
48 break;
49 }
51 {
53 break;
54 }
56 {
58 break;
59 }
61 {
66 break;
67 }
68 default:
69 {
71 break;
72 }
73 }
74
76}
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
BOOL WINAPI SHGetSpecialFolderPathW(HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate)
LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path)
#define CSIDL_DESKTOPDIRECTORY
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Referenced by OnCreate().
◆ DoSendData()
Definition at line 248 of file shell32_apitest_sub.cpp.
249{
251 DWORD cbTotal =
sizeof(
lEvent) +
sizeof(cbPidl1) +
sizeof(cbPidl2) + cbPidl1 + cbPidl2;
253 if (!pbData)
255
257
260
261 *(
DWORD*)pb = cbPidl1;
262 pb += sizeof(cbPidl1);
263
264 *(
DWORD*)pb = cbPidl2;
265 pb += sizeof(cbPidl2);
266
268 pb += cbPidl1;
269
271 pb += cbPidl2;
272
274
276 CopyData.
dwData = 0xBEEFCAFE;
277 CopyData.
cbData = cbTotal;
278 CopyData.lpData = pbData;
280
283}
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
Referenced by DoShellNotify().
◆ DoShellNotify()
◆ InitSHCN()
Definition at line 88 of file shell32_apitest_sub.cpp.
89{
92
97 {
98 case 0:
99 {
104 break;
105 }
106 case 1:
107 {
112 break;
113 }
114 case 2:
115 {
120 break;
121 }
122 case 3:
123 {
128 break;
129 }
130 case 4:
131 {
136 break;
137 }
138 case 5:
139 {
144 break;
145 }
146 case 6:
147 {
152 break;
153 }
154 case 7:
155 {
160 break;
161 }
162 case 8:
163 {
168 break;
169 }
170 case 9:
171 {
177 break;
178 }
180 }
181
185
187}
EXTERN_C ULONG WINAPI SHChangeNotifyRegister(HWND hwnd, INT fSources, LONG wEventMask, UINT uMsg, INT cItems, SHChangeNotifyEntry *lpItems)
#define DEFAULT_UNREACHABLE
static LPITEMIDLIST s_pidl[DIRTYPE_MAX]
#define SHCNRF_RecursiveInterrupt
#define SHCNRF_NewDelivery
#define SHCNRF_ShellLevel
#define SHCNRF_InterruptLevel
Referenced by OnCommand().
◆ OnCommand()
Definition at line 198 of file shell32_apitest_sub.cpp.
199{
200 switch (id)
201 {
203 {
206 {
208 break;
209 }
213 break;
214 }
216 {
221 break;
222 }
224 {
228 break;
229 }
230 }
231}
static void UnInitSHCN(HWND hwnd)
static BOOL InitSHCN(HWND hwnd)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI DestroyWindow(_In_ HWND)
Referenced by SubWindowProc().
◆ OnCreate()
Definition at line 78 of file shell32_apitest_sub.cpp.
79{
81
84
86}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LPITEMIDLIST DoGetPidl(INT iDir)
Referenced by SubWindowProc().
◆ OnDestroy()
Definition at line 233 of file shell32_apitest_sub.cpp.
234{
236
238 {
241 }
242
244
246}
VOID WINAPI CoTaskMemFree(LPVOID ptr)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
Referenced by SubWindowProc().
◆ OnShellNotify()
Definition at line 293 of file shell32_apitest_sub.cpp.
294{
298 if (hLock)
299 {
302 }
303 else
304 {
307 }
309}
EXTERN_C HANDLE WINAPI SHChangeNotification_Lock(HANDLE hTicket, DWORD dwOwnerPID, LPITEMIDLIST **lppidls, LPLONG lpwEventId)
EXTERN_C BOOL WINAPI SHChangeNotification_Unlock(HANDLE hLock)
static void DoShellNotify(HWND hwnd, PIDLIST_ABSOLUTE pidl1, PIDLIST_ABSOLUTE pidl2, LONG lEvent)
Referenced by SubWindowProc().
◆ SubWindowProc()
Definition at line 311 of file shell32_apitest_sub.cpp.
312{
313 switch (uMsg)
314 {
317
320 break;
321
324
327 break;
328
329 default:
331 }
332 return 0;
333}
static BOOL OnCreate(HWND hwnd)
static void OnCommand(HWND hwnd, UINT id)
static void OnDestroy(HWND hwnd)
static INT_PTR OnShellNotify(HWND hwnd, WPARAM wParam, LPARAM lParam)
Referenced by wWinMain().
◆ UnInitSHCN()
◆ wWinMain()
Definition at line 336 of file shell32_apitest_sub.cpp.
341{
343 return 0;
344
352 {
354 return -1;
355 }
356
361 {
363 return -2;
364 }
365
368
371 {
374 }
375
376 return 0;
377}
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
#define WS_OVERLAPPEDWINDOW
static LRESULT CALLBACK SubWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
BOOL WINAPI UpdateWindow(_In_ HWND)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
◆ s_hMainWnd
◆ s_hSubWnd
◆ s_iStage
◆ s_pidl
◆ s_uRegID