2 #define USE_SYSTEM_MENUDESKBAR 0
3 #define USE_SYSTEM_MENUSITE 0
4 #define USE_SYSTEM_MENUBAND 0
6 #define WRAP_MENUDESKBAR 0
7 #define WRAP_MENUSITE 0
8 #define WRAP_MENUBAND 0
9 #define WRAP_TRAYPRIV 0
11 #define MERGE_FOLDERS 0
16 #define WIN32_NO_STATUS
18 #define COM_NO_WINDOWS_H
30 #include <shlobj_undoc.h>
32 #include <shlguid_undoc.h>
38 #include <wine/debug.h>
40 #define shell32_hInstance 0
42 extern "C" INT WINAPI
Shell_GetCachedImageIndex(LPCWSTR szPath
, INT nIndex
, UINT bSimulateDoc
);
45 extern "C" HRESULT WINAPI
CStartMenu_Constructor(REFIID riid
, void **ppv
);
46 extern "C" HRESULT WINAPI
CMenuDeskBar_Constructor(REFIID riid
, LPVOID
*ppv
);
47 extern "C" HRESULT WINAPI
CMenuSite_Constructor(REFIID riid
, LPVOID
*ppv
);
48 extern "C" HRESULT WINAPI
CMenuBand_Constructor(REFIID riid
, LPVOID
*ppv
);
49 extern "C" HRESULT WINAPI
CMenuDeskBar_Wrapper(IDeskBar
* db
, REFIID riid
, LPVOID
*ppv
);
50 extern "C" HRESULT WINAPI
CMenuSite_Wrapper(IBandSite
* bs
, REFIID riid
, LPVOID
*ppv
);
51 extern "C" HRESULT WINAPI
CMenuBand_Wrapper(IShellMenu
* sm
, REFIID riid
, LPVOID
*ppv
);
52 extern "C" HRESULT WINAPI
CMergedFolder_Constructor(IShellFolder
* userLocal
, IShellFolder
* allUsers
, REFIID riid
, LPVOID
*ppv
);
53 extern "C" HRESULT WINAPI
CStartMenuSite_Wrapper(ITrayPriv
* trayPriv
, REFIID riid
, LPVOID
*ppv
);
56 Win32DbgPrint(const char *filename
, int line
, const char *lpFormat
, ...)
64 fname
= strrchr(filename
, '\\');
67 fname
= strrchr(filename
, '/');
75 szMsgStart
= szMsg
+ sprintf(szMsg
, "[%10d] %s:%d: ", GetTickCount(), fname
, line
);
77 va_start(vl
, lpFormat
);
78 uRet
= (ULONG
) vsprintf(szMsgStart
, lpFormat
, vl
);
81 OutputDebugStringA(szMsg
);
86 #define DbgPrint(fmt, ...) \
87 Win32DbgPrint(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
90 #define FAILED_UNEXPECTEDLY(hr) (FAILED(hr) && (DbgPrint("Unexpected failure %08x.\n", hr), TRUE))
92 #define FAILED_UNEXPECTEDLY(hr) FAILED(hr)