typedef struct {
LPCITEMIDLIST pidl;
BOOL fRecursive;
} SHChangeNotifyEntry;
#define SHELL_ENTRY(returnType, functionName, parameters) \
static returnType __stdcall (*functionName) parameters \
= (returnType __stdcall (*) parameters) \
QLibrary::resolve("shell32",
#functionName)
SHELL_ENTRY(ULONG, SHChangeNotifyRegister,
(HWND hwnd, int fSources, LONG fEvents, UINT wMsg, int cEntries, SHChangeNotifyEntry *pshcne));
SHELL_ENTRY(BOOL, SHChangeNotifyDeregister, (unsigned long ulID));
SHELL_ENTRY(HANDLE, SHChangeNotification_Lock,
(HANDLE hChangeNotification, DWORD dwProcessId, LPITEMIDLIST **pppidl, LONG *plEvent));
SHELL_ENTRY(BOOL, SHChangeNotification_Unlock, (HANDLE hLock));
SHELL_ENTRY(HRESULT, SHGetRealIDL,
(IShellFolder *psf, LPCITEMIDLIST pidlSimple, LPITEMIDLIST * ppidlReal));
typedef struct {
LPCITEMIDLIST pidl;
BOOL fRecursive;
} SHChangeNotifyEntry;
#define SHELL_ENTRY(returnType, functionName, parameters) \
static returnType __stdcall (*functionName) parameters \
= (returnType __stdcall (*) parameters) \
QLibrary::resolve("shell32", #functionName)
SHELL_ENTRY(ULONG, SHChangeNotifyRegister,
(HWND hwnd, int fSources, LONG fEvents, UINT wMsg, int cEntries, SHChangeNotifyEntry *pshcne));
SHELL_ENTRY(BOOL, SHChangeNotifyDeregister, (unsigned long ulID));
SHELL_ENTRY(HANDLE, SHChangeNotification_Lock,
(HANDLE hChangeNotification, DWORD dwProcessId, LPITEMIDLIST **pppidl, LONG *plEvent));
SHELL_ENTRY(BOOL, SHChangeNotification_Unlock, (HANDLE hLock));
SHELL_ENTRY(HRESULT, SHGetRealIDL,
(IShellFolder *psf, LPCITEMIDLIST pidlSimple, LPITEMIDLIST * ppidlReal));
To copy to clipboard, switch view to plain text mode
Bookmarks