|
| CChangeNotifyServer () |
|
virtual | ~CChangeNotifyServer () |
|
HRESULT | Initialize () |
|
STDMETHOD() | GetWindow (HWND *lphwnd) override |
|
STDMETHOD() | ContextSensitiveHelp (BOOL fEnterMode) override |
|
LRESULT | OnRegister (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled) |
|
LRESULT | OnUnRegister (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled) |
|
LRESULT | OnDeliverNotification (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled) |
|
LRESULT | OnSuspendResume (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled) |
|
LRESULT | OnRemoveByPID (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled) |
|
LRESULT | OnDestroy (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled) |
|
| MESSAGE_HANDLER (CN_UNREGISTER_PROCESS, OnRemoveByPID) |
|
| MESSAGE_HANDLER (WM_DESTROY, OnDestroy) |
|
| ~CComObjectRootEx () |
|
ULONG | InternalAddRef () |
|
ULONG | InternalRelease () |
|
void | Lock () |
|
void | Unlock () |
|
HRESULT | _AtlInitialConstruct () |
|
| CComObjectRootBase () |
|
| ~CComObjectRootBase () |
|
void | SetVoid (void *) |
|
HRESULT | _AtlFinalConstruct () |
|
HRESULT | FinalConstruct () |
|
void | InternalFinalConstructAddRef () |
|
void | InternalFinalConstructRelease () |
|
void | FinalRelease () |
|
HRESULT | GetWindow ([out] HWND *phwnd) |
|
HRESULT | ContextSensitiveHelp ([in] BOOL fEnterMode) |
|
HRESULT | QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject) |
|
ULONG | AddRef () |
|
ULONG | Release () |
|
Definition at line 34 of file CChangeNotifyServer.cpp.
◆ CChangeNotifyServer()
CChangeNotifyServer::CChangeNotifyServer |
( |
| ) |
|
◆ ~CChangeNotifyServer()
CChangeNotifyServer::~CChangeNotifyServer |
( |
| ) |
|
|
virtual |
◆ AddItem()
Definition at line 98 of file CChangeNotifyServer.cpp.
99{
100
102 {
104 {
105
108 }
109 }
110
111
114}
CSimpleArray< CWatchItem * > m_items
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
◆ ContextSensitiveHelp()
◆ DeliverNotification()
BOOL CChangeNotifyServer::DeliverNotification |
( |
HANDLE |
hTicket, |
|
|
DWORD |
dwOwnerPID |
|
) |
| |
|
private |
Definition at line 353 of file CChangeNotifyServer.cpp.
354{
355 TRACE(
"DeliverNotification(%p, %p, 0x%lx)\n", m_hWnd, hTicket, dwOwnerPID);
356
357
360 {
361 ERR(
"pTicket is invalid\n");
364 }
365
366
368 {
370 continue;
371
374 {
375 ERR(
"pRegEntry is invalid\n");
376 continue;
377 }
378
379
381 if (bNotify)
382 {
383
384 TRACE(
"Notifying: %p, 0x%x, %p, %lu\n",
385 pRegEntry->
hwnd, pRegEntry->
uMsg, hTicket, dwOwnerPID);
388 }
389 }
390
391
393
395}
struct DELITICKET * LPDELITICKET
BOOL ShouldNotify(LPDELITICKET pTicket, LPREGENTRY pRegEntry)
BOOL WINAPI SHUnlockShared(LPVOID lpView)
PVOID WINAPI SHLockSharedEx(HANDLE hData, DWORD dwProcessId, BOOL bWriteAccess)
DWORD WINAPI GetLastError(void)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
Referenced by OnDeliverNotification().
◆ DestroyAllItems()
void CChangeNotifyServer::DestroyAllItems |
( |
| ) |
|
|
private |
◆ DestroyItem()
Definition at line 116 of file CChangeNotifyServer.cpp.
117{
119
120
123 if (hwndBroker && hwndBroker != *phwndBroker)
124 {
126 *phwndBroker = hwndBroker;
127 }
128
129
132 if (pDirWatch)
134
135
137 delete pItem;
138}
BOOL RequestTermination()
void WINAPI SHFree(LPVOID pv)
CDirectoryWatcher * pDirWatch
BOOL WINAPI DestroyWindow(_In_ HWND)
Referenced by DestroyAllItems(), RemoveItemsByProcess(), and RemoveItemsByRegID().
◆ GetNextRegID()
UINT CChangeNotifyServer::GetNextRegID |
( |
| ) |
|
|
private |
◆ GetWindow()
◆ Initialize()
HRESULT CChangeNotifyServer::Initialize |
( |
| ) |
|
Definition at line 466 of file CChangeNotifyServer.cpp.
467{
468
474}
HWND SHCreateDefaultWorkerWindow(VOID)
#define SubclassWindow(hwnd, lpfn)
◆ MESSAGE_HANDLER() [1/2]
◆ MESSAGE_HANDLER() [2/2]
◆ OnDeliverNotification()
Definition at line 299 of file CChangeNotifyServer.cpp.
300{
302
305
306
308
309
312}
BOOL DeliverNotification(HANDLE hTicket, DWORD dwOwnerPID)
BOOL WINAPI SHFreeShared(HANDLE hShared, DWORD dwProcId)
◆ OnDestroy()
◆ OnRegister()
Definition at line 213 of file CChangeNotifyServer.cpp.
214{
216
217
222 {
223 ERR(
"pRegEntry is invalid\n");
226 }
227
228
231
232 TRACE(
"pRegEntry->nRegID: %u\n", pRegEntry->
nRegID);
233
234
237
238
240
241
243 if (pNewEntry ==
NULL)
244 {
245 ERR(
"Out of memory\n");
249 }
251
252
255 {
258 {
259 ERR(
"RequestAddWatcher failed: %u\n", pRegEntry->
nRegID);
262 delete pDirWatch;
264 }
265 }
266
267
269
270
273}
static CDirectoryWatcher * CreateDirectoryWatcherFromRegEntry(LPREGENTRY pRegEntry)
struct REGENTRY * LPREGENTRY
LPVOID WINAPI SHAlloc(SIZE_T len)
#define SHCNRF_InterruptLevel
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
◆ OnRemoveByPID()
◆ OnSuspendResume()
◆ OnUnRegister()
Definition at line 279 of file CChangeNotifyServer.cpp.
280{
282
283
286 {
287 ERR(
"INVALID_REG_ID\n");
289 }
290
291
293}
BOOL RemoveItemsByRegID(UINT nRegID)
◆ RemoveItemsByProcess()
BOOL CChangeNotifyServer::RemoveItemsByProcess |
( |
DWORD |
dwUserPID | ) |
|
|
private |
◆ RemoveItemsByRegID()
BOOL CChangeNotifyServer::RemoveItemsByRegID |
( |
UINT |
nRegID | ) |
|
|
private |
◆ ShouldNotify()
Definition at line 397 of file CChangeNotifyServer.cpp.
398{
399#define RETURN(x) do { \
400 TRACE("ShouldNotify return %d\n", (x)); \
401 return (x); \
402} while (0)
403
405 {
410 }
411 else
412 {
415 }
416
419
427
430
432 {
435 {
437 }
438 }
439 else
440 {
444 {
446 }
447 }
448
450#undef RETURN
451}
BOOL WINAPI ILIsParent(LPCITEMIDLIST pidlParent, LPCITEMIDLIST pidlChild, BOOL bImmediate)
BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
#define SHCNRF_ShellLevel
#define SHCNE_GLOBALEVENTS
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Referenced by DeliverNotification().
◆ m_items
◆ m_nNextRegID
UINT CChangeNotifyServer::m_nNextRegID |
|
private |
The documentation for this class was generated from the following file: