3 #define USE_CUSTOM_MENUBAND 1
4 #define USE_CUSTOM_MERGEDFOLDER 1
5 #define USE_CUSTOM_ADDRESSBAND 1
6 #define USE_CUSTOM_ADDRESSEDITBOX 1
7 #define USE_CUSTOM_BANDPROXY 1
8 #define USE_CUSTOM_BRANDBAND 1
9 #define USE_CUSTOM_EXPLORERBAND 1
10 #define USE_CUSTOM_INTERNETTOOLBAR 1
12 /* Constructors for the classes that are not exported */
13 HRESULT
CShellBrowser_CreateInstance(LPITEMIDLIST pidl
, DWORD dwFlags
, REFIID riid
, void **ppv
);
14 HRESULT
CTravelLog_CreateInstance(REFIID riid
, void **ppv
);
15 HRESULT
CBaseBar_CreateInstance(REFIID riid
, void **ppv
, BOOL vertical
);
16 HRESULT
CBaseBarSite_CreateInstance(REFIID riid
, void **ppv
, BOOL bVertical
);
17 HRESULT
CToolsBand_CreateInstance(REFIID riid
, void **ppv
);
20 HRESULT
CAddressBand_CreateInstance(REFIID riid
, void **ppv
)
22 #if USE_CUSTOM_ADDRESSBAND
23 return ShellObjectCreator
<CAddressBand
>(riid
, ppv
);
25 return CoCreateInstance(CLSID_SH_AddressBand
, NULL
, CLSCTX_INPROC_SERVER
, IID_PPV_ARG(IUnknown
, toolsBar
));
30 HRESULT
CAddressEditBox_CreateInstance(REFIID riid
, void **ppv
)
32 #if USE_CUSTOM_ADDRESSEDITBOX
33 return ShellObjectCreator
<CAddressEditBox
>(riid
, ppv
);
35 return CoCreateInstance(CLSID_AddressEditBox
, NULL
, CLSCTX_INPROC_SERVER
, IID_PPV_ARG(riid
, &ppv
));
40 HRESULT
CBandProxy_CreateInstance(REFIID riid
, void **ppv
)
42 #if USE_CUSTOM_BANDPROXY
43 return ShellObjectCreator
<CBandProxy
>(riid
, ppv
);
45 return CoCreateInstance(CLSID_BandProxy
, NULL
, CLSCTX_INPROC_SERVER
, IID_PPV_ARG(riid
, &ppv
));
50 HRESULT
CBrandBand_CreateInstance(REFIID riid
, void **ppv
)
52 #if USE_CUSTOM_BRANDBAND
53 return ShellObjectCreator
<CBrandBand
>(riid
, ppv
);
55 return CoCreateInstance(CLSID_BrandBand
, NULL
, CLSCTX_INPROC_SERVER
, riid
, ppv
);
60 HRESULT WINAPI
CExplorerBand_CreateInstance(REFIID riid
, LPVOID
*ppv
)
62 #if USE_CUSTOM_EXPLORERBAND
63 return ShellObjectCreator
<CExplorerBand
>(riid
, ppv
);
65 return CoCreateInstance(CLSID_ExplorerBand
, NULL
, CLSCTX_INPROC_SERVER
, riid
, ppv
);
70 HRESULT
CInternetToolbar_CreateInstance(REFIID riid
, void **ppv
)
72 #if USE_CUSTOM_INTERNETTOOLBAR
73 return ShellObjectCreator
<CInternetToolbar
>(riid
, ppv
);
75 return CoCreateInstance(CLSID_InternetToolbar
, NULL
, CLSCTX_INPROC_SERVER
, riid
, ppv
);
79 typedef HRESULT(WINAPI
* PMENUBAND_CONSTRUCTOR
)(REFIID riid
, void **ppv
);
80 typedef HRESULT(WINAPI
* PMERGEDFOLDER_CONSTRUCTOR
)(REFIID riid
, void **ppv
);
83 HRESULT
CMergedFolder_CreateInstance(REFIID riid
, void **ppv
)
85 #if USE_CUSTOM_MERGEDFOLDER
86 HMODULE hRShell
= GetModuleHandle(L
"rshell.dll");
88 hRShell
= LoadLibrary(L
"rshell.dll");
92 PMERGEDFOLDER_CONSTRUCTOR pCMergedFolder_Constructor
= (PMERGEDFOLDER_CONSTRUCTOR
)
93 GetProcAddress(hRShell
, "CMergedFolder_Constructor");
95 if (pCMergedFolder_Constructor
)
97 return pCMergedFolder_Constructor(riid
, ppv
);
101 return CoCreateInstance(CLSID_MergedFolder
, NULL
, CLSCTX_INPROC_SERVER
, riid
, ppv
);
105 HRESULT
CMenuBand_CreateInstance(REFIID iid
, LPVOID
*ppv
)
107 #if USE_CUSTOM_MENUBAND
108 HMODULE hRShell
= GetModuleHandleW(L
"rshell.dll");
111 hRShell
= LoadLibraryW(L
"rshell.dll");
115 PMENUBAND_CONSTRUCTOR func
= (PMENUBAND_CONSTRUCTOR
) GetProcAddress(hRShell
, "CMenuBand_Constructor");
118 return func(iid
, ppv
);
122 return CoCreateInstance(CLSID_MenuBand
, NULL
, CLSCTX_INPROC_SERVER
, iid
, ppv
);