Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenshlobj_undoc.h
Go to the documentation of this file.
00001 /* 00002 * ReactOS undocumented shell interface 00003 * 00004 * Copyright 2009 Andrew Hill <ash77 at domain reactos.org> 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 */ 00020 00021 #ifndef __SHLOBJ_UNDOC__H 00022 #define __SHLOBJ_UNDOC__H 00023 00024 #ifdef __cplusplus 00025 extern "C" { 00026 #endif /* defined(__cplusplus) */ 00027 00028 /***************************************************************************** 00029 * New shellstate structure 00030 */ 00031 struct SHELLSTATE2 00032 { 00033 SHELLSTATE oldState; 00034 long newState1; 00035 long newState2; 00036 }; 00037 00038 /***************************************************************************** 00039 * Header for persisted view state in cabinet windows 00040 */ 00041 struct persistState 00042 { 00043 long dwSize; 00044 long browseType; 00045 long alwaysZero; 00046 long browserIndex; 00047 CLSID persistClass; 00048 ULONG pidlSize; 00049 }; 00050 00051 /***************************************************************************** 00052 * IInitializeObject interface 00053 */ 00054 #undef INTERFACE 00055 #define INTERFACE IInitializeObject 00056 00057 DECLARE_INTERFACE_(IInitializeObject, IUnknown)//, "4622AD16-FF23-11d0-8D34-00A0C90F2719") 00058 { 00059 STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppv) PURE; 00060 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00061 STDMETHOD_(ULONG,Release) (THIS) PURE; 00062 00063 STDMETHOD(Initialize)(THIS) PURE; 00064 }; 00065 #undef INTERFACE 00066 #if !defined(__cplusplus) || defined(CINTERFACE) 00067 #define IInitializeObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00068 #define IInitializeObject_AddRef(T) (T)->lpVtbl->AddRef(T) 00069 #define IInitializeObject_Release(T) (T)->lpVtbl->Release(T) 00070 #define IInitializeObject_Initialize(T) (T)->lpVtbl->Initialize(T) 00071 #endif 00072 00073 00074 /***************************************************************************** 00075 * IBanneredBar interface 00076 */ 00077 enum 00078 { 00079 BMICON_LARGE = 0, 00080 BMICON_SMALL 00081 }; 00082 #define INTERFACE IBanneredBar 00083 DECLARE_INTERFACE_(IBanneredBar, IUnknown)//, "596A9A94-013E-11d1-8D34-00A0C90F2719") 00084 { 00085 STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppv) PURE; 00086 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00087 STDMETHOD_(ULONG,Release) (THIS) PURE; 00088 00089 STDMETHOD(SetIconSize)(THIS_ DWORD iIcon) PURE; 00090 STDMETHOD(GetIconSize)(THIS_ DWORD* piIcon) PURE; 00091 STDMETHOD(SetBitmap)(THIS_ HBITMAP hBitmap) PURE; 00092 STDMETHOD(GetBitmap)(THIS_ HBITMAP* phBitmap) PURE; 00093 00094 }; 00095 #undef INTERFACE 00096 00097 #if !defined(__cplusplus) || defined(CINTERFACE) 00098 #define IBanneredBar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00099 #define IBanneredBar_AddRef(T) (T)->lpVtbl->AddRef(T) 00100 #define IBanneredBar_Release(T) (T)->lpVtbl->Release(T) 00101 #define IBanneredBar_SetIconSize(T,a) (T)->lpVtbl->SetIconSize(T,a) 00102 #define IBanneredBar_GetIconSize(T,a) (T)->lpVtbl->GetIconSize(T,a) 00103 #define IBanneredBar_SetBitmap(T,a) (T)->lpVtbl->SetBitmap(T,a) 00104 #define IBanneredBar_GetBitmap(T,a) (T)->lpVtbl->GetBitmap(T,a) 00105 #endif 00106 00107 /***************************************************************************** 00108 * IGlobalFolderSettings interface 00109 */ 00110 struct DEFFOLDERSETTINGS 00111 { 00112 long offset0; 00113 }; 00114 00115 #undef INTERFACE 00116 #define INTERFACE IGlobalFolderSettings 00117 DECLARE_INTERFACE_(IGlobalFolderSettings, IUnknown) 00118 { 00119 /*** IUnknown ***/ 00120 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00121 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00122 STDMETHOD_(ULONG,Release)(THIS) PURE; 00123 /*** IGlobalFolderSettings ***/ 00124 STDMETHOD(Get)(THIS_ struct DEFFOLDERSETTINGS *buffer, int theSize) PURE; 00125 STDMETHOD(Set)(THIS_ const struct DEFFOLDERSETTINGS *buffer, int theSize, unsigned int param14) PURE; 00126 }; 00127 #undef INTERFACE 00128 00129 /***************************************************************************** 00130 * IStartMenuCallback interface 00131 */ 00132 #define INTERFACE IStartMenuCallback 00133 DECLARE_INTERFACE_(IStartMenuCallback, IOleWindow) 00134 { 00135 /*** IUnknown ***/ 00136 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 00137 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00138 STDMETHOD_(ULONG,Release)(THIS) PURE; 00139 /*** IOleWindow methods ***/ 00140 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE; 00141 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE; 00142 /*** IStartMenuCallback ***/ 00143 STDMETHOD_(HRESULT,Execute)(THIS_ IShellFolder*,LPCITEMIDLIST) PURE; 00144 STDMETHOD_(HRESULT,Unknown)(THIS_ PVOID,PVOID,PVOID,PVOID) PURE; 00145 STDMETHOD_(HRESULT,AppendMenu)(THIS_ HMENU*) PURE; 00146 }; 00147 #undef INTERFACE 00148 00149 #ifdef COBJMACROS 00150 #define IStartMenuCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00151 #define IStartMenuCallback_AddRef(T) (T)->lpVtbl->AddRef(T) 00152 #define IStartMenuCallback_Release(T) (T)->lpVtbl->Release(T) 00153 #define IStartMenuCallback_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a) 00154 #define IStartMenuCallback_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a) 00155 #define IStartMenuCallback_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b) 00156 #define IStartMenuCallback_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d) 00157 #define IStartMenuCallback_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a) 00158 #endif 00159 00160 /***************************************************************************** 00161 * IBandSiteStreamCallback interface 00162 */ 00163 #define INTERFACE IBandSiteStreamCallback 00164 DECLARE_INTERFACE_(IBandSiteStreamCallback, IUnknown) 00165 { 00166 /*** IUnknown ***/ 00167 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 00168 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00169 STDMETHOD_(ULONG,Release)(THIS) PURE; 00170 /*** IBandSiteStreamCallback ***/ 00171 STDMETHOD_(HRESULT,OnLoad)(THIS_ IStream *pStm, REFIID riid, PVOID *pvObj) PURE; 00172 STDMETHOD_(HRESULT,OnSave)(THIS_ IUnknown *pUnk, IStream *pStm) PURE; 00173 }; 00174 #undef INTERFACE 00175 00176 #ifdef COBJMACROS 00177 #define IBandSiteStreamCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00178 #define IBandSiteStreamCallback_AddRef(T) (T)->lpVtbl->AddRef(T) 00179 #define IBandSiteStreamCallback_Release(T) (T)->lpVtbl->Release(T) 00180 #define IBandSiteStreamCallback_OnLoad(T,a,b,c) (T)->lpVtbl->OnLoad(T,a,b,c) 00181 #define IBandSiteStreamCallback_OnSave(T,a,b) (T)->lpVtbl->OnSave(T,a,b) 00182 #endif 00183 00184 /***************************************************************************** 00185 * IShellDesktopTray interface 00186 */ 00187 #define INTERFACE IShellDesktopTray 00188 DECLARE_INTERFACE_(IShellDesktopTray, IUnknown) 00189 { 00190 /*** IUnknown ***/ 00191 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 00192 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00193 STDMETHOD_(ULONG,Release)(THIS) PURE; 00194 /*** IShellDesktopTray ***/ 00195 STDMETHOD_(ULONG,GetState)(THIS) PURE; 00196 STDMETHOD(GetTrayWindow)(THIS_ HWND*) PURE; 00197 STDMETHOD(RegisterDesktopWindow)(THIS_ HWND) PURE; 00198 STDMETHOD(Unknown)(THIS_ DWORD,DWORD) PURE; 00199 }; 00200 #undef INTERFACE 00201 00202 #ifdef COBJMACROS 00203 #define IShellDesktopTray_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00204 #define IShellDesktopTray_AddRef(T) (T)->lpVtbl->AddRef(T) 00205 #define IShellDesktopTray_Release(T) (T)->lpVtbl->Release(T) 00206 #define IShellDesktopTray_GetState(T) (T)->lpVtbl->GetState(T) 00207 #define IShellDesktopTray_GetTrayWindow(T,a) (T)->lpVtbl->GetTrayWindow(T,a) 00208 #define IShellDesktopTray_RegisterDesktopWindow(T,a) (T)->lpVtbl->RegisterDesktopWindow(T,a) 00209 #define IShellDesktopTray_Unknown(T,a,b) (T)->lpVtbl->Unknown(T,a,b) 00210 #endif 00211 00212 /***************************************************************************** 00213 * INscTree interface 00214 */ 00215 #define INTERFACE INscTree 00216 DECLARE_INTERFACE_(INscTree, IUnknown) 00217 { 00218 /*** IUnknown ***/ 00219 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00220 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00221 STDMETHOD_(ULONG,Release)(THIS) PURE; 00222 /*** INscTree ***/ 00223 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE; 00224 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE; 00225 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE; 00226 STDMETHOD(Refresh)(THIS) PURE; 00227 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE; 00228 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE; 00229 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE; 00230 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE; 00231 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE; 00232 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE; 00233 STDMETHOD(InLabelEdit)(THIS) PURE; 00234 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE; 00235 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE; 00236 }; 00237 #undef INTERFACE 00238 00239 #ifdef COBJMACROS 00240 #define INscTree_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00241 #define INscTree_AddRef(T) (T)->lpVtbl->AddRef(T) 00242 #define INscTree_Release(T) (T)->lpVtbl->Release(T) 00243 #define INscTree_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c) 00244 #define INscTree_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c) 00245 #define INscTree_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a) 00246 #define INscTree_Refresh(T) (T)->lpVtbl->Refresh(T) 00247 #define INscTree_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b) 00248 #define INscTree_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d) 00249 #define INscTree_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a) 00250 #define INscTree_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a) 00251 #define INscTree_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b) 00252 #define INscTree_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c) 00253 #define INscTree_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T) 00254 #define INscTree_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a) 00255 #define INscTree_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a) 00256 #endif 00257 00258 /***************************************************************************** 00259 * INscTree2 interface 00260 */ 00261 #define INTERFACE INscTree2 00262 DECLARE_INTERFACE_(INscTree2, INscTree) 00263 { 00264 /*** IUnknown ***/ 00265 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00266 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00267 STDMETHOD_(ULONG,Release)(THIS) PURE; 00268 /*** INscTree ***/ 00269 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE; 00270 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE; 00271 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE; 00272 STDMETHOD(Refresh)(THIS) PURE; 00273 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE; 00274 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE; 00275 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE; 00276 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE; 00277 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE; 00278 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE; 00279 STDMETHOD(InLabelEdit)(THIS) PURE; 00280 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE; 00281 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE; 00282 /*** INscTree2 ***/ 00283 STDMETHOD(CreateTree2)(THIS_ long paramC, long param10, long param14, long param18) PURE; 00284 }; 00285 #undef INTERFACE 00286 00287 #ifdef COBJMACROS 00288 #define INscTree2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00289 #define INscTree2_AddRef(T) (T)->lpVtbl->AddRef(T) 00290 #define INscTree2_Release(T) (T)->lpVtbl->Release(T) 00291 #define INscTree2_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c) 00292 #define INscTree2_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c) 00293 #define INscTree2_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a) 00294 #define INscTree2_Refresh(T) (T)->lpVtbl->Refresh(T) 00295 #define INscTree2_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b) 00296 #define INscTree2_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d) 00297 #define INscTree2_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a) 00298 #define INscTree2_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a) 00299 #define INscTree2_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b) 00300 #define INscTree2_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c) 00301 #define INscTree2_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T) 00302 #define INscTree2_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a) 00303 #define INscTree2_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a) 00304 #define INscTree2_CreateTree2(T,a,b,c,d) (T)->lpVtbl->CreateTree2(T,a,b,c,d) 00305 #endif 00306 00307 /***************************************************************************** 00308 * IAddressEditBox interface 00309 */ 00310 #define INTERFACE IAddressEditBox 00311 DECLARE_INTERFACE_(IAddressEditBox, IUnknown) 00312 { 00313 /*** IUnknown ***/ 00314 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00315 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00316 STDMETHOD_(ULONG,Release)(THIS) PURE; 00317 /*** IAddressEditBox ***/ 00318 STDMETHOD(Init)(THIS_ HWND comboboxEx, HWND editControl, long param14, IUnknown *param18) PURE; 00319 STDMETHOD(SetCurrentDir)(THIS_ long paramC) PURE; 00320 STDMETHOD(ParseNow)(THIS_ long paramC) PURE; 00321 STDMETHOD(Execute)(THIS_ long paramC) PURE; 00322 STDMETHOD(Save)(THIS_ long paramC) PURE; 00323 }; 00324 #undef INTERFACE 00325 00326 #ifdef COBJMACROS 00327 #define IAddressEditBox_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00328 #define IAddressEditBox_AddRef(T) (T)->lpVtbl->AddRef(T) 00329 #define IAddressEditBox_Release(T) (T)->lpVtbl->Release(T) 00330 #define IAddressEditBox_Init(T,a,b,c,d) (T)->lpVtbl->Init(T,a,b,c,d) 00331 #define IAddressEditBox_SetCurrentDir(T,a) (T)->lpVtbl->SetCurrentDir(T,a) 00332 #define IAddressEditBox_ParseNow(T,a) (T)->lpVtbl->ParseNow(T,a) 00333 #define IAddressEditBox_Execute(T,a) (T)->lpVtbl->Execute(T,a) 00334 #define IAddressEditBox_Save(T,a) (T)->lpVtbl->Save(T,a) 00335 #endif 00336 00337 /***************************************************************************** 00338 * IBandProxy interface 00339 */ 00340 #define INTERFACE IBandProxy 00341 DECLARE_INTERFACE_(IBandProxy, IUnknown) 00342 { 00343 /*** IUnknown ***/ 00344 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00345 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00346 STDMETHOD_(ULONG,Release)(THIS) PURE; 00347 /*** IBandProxy ***/ 00348 STDMETHOD(SetSite)(THIS_ IUnknown *paramC) PURE; 00349 STDMETHOD(CreateNewWindow)(THIS_ long paramC) PURE; 00350 STDMETHOD(GetBrowserWindow)(THIS_ IUnknown **paramC) PURE; 00351 STDMETHOD(IsConnected)(THIS) PURE; 00352 STDMETHOD(NavigateToPIDL)(THIS_ LPCITEMIDLIST pidl) PURE; 00353 STDMETHOD(NavigateToURL)(THIS_ long paramC, long param10) PURE; 00354 }; 00355 #undef INTERFACE 00356 00357 #ifdef COBJMACROS 00358 #define IBandProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00359 #define IBandProxy_AddRef(T) (T)->lpVtbl->AddRef(T) 00360 #define IBandProxy_Release(T) (T)->lpVtbl->Release(T) 00361 #define IBandProxy_SetSite(T,a) (T)->lpVtbl->SetSite(T,a) 00362 #define IBandProxy_CreateNewWindow(T,a) (T)->lpVtbl->CreateNewWindow(T,a) 00363 #define IBandProxy_GetBrowserWindow(T,a) (T)->lpVtbl->GetBrowserWindow(T,a) 00364 #define IBandProxy_IsConnected(T) (T)->lpVtbl->IsConnected(T) 00365 #define IBandProxy_NavigateToPIDL(T,a) (T)->lpVtbl->NavigateToPIDL(T,a) 00366 #define IBandProxy_NavigateToURL(T,a,b) (T)->lpVtbl->NavigateToURL(T,a,b) 00367 #endif 00368 00369 /***************************************************************************** 00370 * IExplorerToolbar interface 00371 */ 00372 #define INTERFACE IExplorerToolbar 00373 DECLARE_INTERFACE_(IExplorerToolbar, IUnknown) 00374 { 00375 /*** IUnknown ***/ 00376 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00377 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00378 STDMETHOD_(ULONG,Release)(THIS) PURE; 00379 /*** IExplorerToolbar ***/ 00380 STDMETHOD(SetCommandTarget)(THIS_ IUnknown *theTarget, GUID *category, long param14) PURE; 00381 STDMETHOD(Unknown1)(THIS) PURE; 00382 STDMETHOD(AddButtons)(THIS_ const GUID *pguidCmdGroup, long buttonCount, TBBUTTON *buttons) PURE; 00383 STDMETHOD(AddString)(THIS_ const GUID *pguidCmdGroup, HINSTANCE param10, LPCTSTR param14, long *param18) PURE; 00384 STDMETHOD(GetButton)(THIS_ const GUID *paramC, long param10, long param14) PURE; 00385 STDMETHOD(GetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long *theState) PURE; 00386 STDMETHOD(SetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long theState) PURE; 00387 STDMETHOD(AddBitmap)(THIS_ const GUID *pguidCmdGroup, long param10, long buttonCount, TBADDBITMAP *lParam, long *newIndex, COLORREF param20) PURE; 00388 STDMETHOD(GetBitmapSize)(THIS_ long *paramC) PURE; 00389 STDMETHOD(SendToolbarMsg)(THIS_ const GUID *pguidCmdGroup, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *result) PURE; 00390 STDMETHOD(SetImageList)(THIS_ const GUID *pguidCmdGroup, HIMAGELIST param10, HIMAGELIST param14, HIMAGELIST param18) PURE; 00391 STDMETHOD(ModifyButton)(THIS_ const GUID *paramC, long param10, long param14) PURE; 00392 }; 00393 #undef INTERFACE 00394 00395 #ifdef COBJMACROS 00396 #define IExplorerToolbar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00397 #define IExplorerToolbar_AddRef(T) (T)->lpVtbl->AddRef(T) 00398 #define IExplorerToolbar_Release(T) (T)->lpVtbl->Release(T) 00399 #define IExplorerToolbar_SetCommandTarget(T,a,b,c) (T)->lpVtbl->SetCommandTarget(T,a,b,c) 00400 #define IExplorerToolbar_Unknown1(T) (T)->lpVtbl->Unknown1(T) 00401 #define IExplorerToolbar_AddButtons(T,a,b,c) (T)->lpVtbl->AddButtons(T,a,b,c) 00402 #define IExplorerToolbar_AddString(T,a,b,c,d) (T)->lpVtbl->AddString(T,a,b,c,d) 00403 #define IExplorerToolbar_GetButton(T,a,b,c) (T)->lpVtbl->GetButton(T,a,b,c) 00404 #define IExplorerToolbar_GetState(T,a,b,c) (T)->lpVtbl->GetState(T,a,b,c) 00405 #define IExplorerToolbar_SetState(T,a,b,c) (T)->lpVtbl->SetState(T,a,b,c) 00406 #define IExplorerToolbar_AddBitmap(T,a,b,c,d,e,f) (T)->lpVtbl->AddBitmap(T,a,b,c,d,e,f) 00407 #define IExplorerToolbar_GetBitmapSize(T,a) (T)->lpVtbl->GetBitmapSize(T,a) 00408 #define IExplorerToolbar_SendToolbarMsg(T,a,b,c,d,e) (T)->lpVtbl->SendToolbarMsg(T,a,b,c,d,e) 00409 #define IExplorerToolbar_SetImageList(T,a,b,c,d) (T)->lpVtbl->SetImageList(T,a,b,c,d) 00410 #define IExplorerToolbar_ModifyButton(T,a,b,c) (T)->lpVtbl->ModifyButton(T,a,b,c) 00411 #endif 00412 00413 /***************************************************************************** 00414 * IRegTreeOptions interface 00415 */ 00416 typedef enum tagWALK_TREE_CMD 00417 { 00418 WALK_TREE_OPTION0 = 0, 00419 WALK_TREE_OPTION1 = 1, 00420 WALK_TREE_OPTION2 = 2, 00421 WALK_TREE_OPTION3 = 3 00422 } WALK_TREE_CMD; 00423 00424 #define INTERFACE IRegTreeOptions 00425 DECLARE_INTERFACE_(IRegTreeOptions, IUnknown) 00426 { 00427 /*** IUnknown ***/ 00428 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00429 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00430 STDMETHOD_(ULONG,Release)(THIS) PURE; 00431 /*** IRegTreeOptions ***/ 00432 STDMETHOD(InitTree)(THIS_ HWND paramC, HKEY param10, char const *param14, char const *param18) PURE; 00433 STDMETHOD(WalkTree)(THIS_ WALK_TREE_CMD paramC) PURE; 00434 STDMETHOD(ToggleItem)(THIS_ HTREEITEM paramC) PURE; 00435 STDMETHOD(ShowHelp)(THIS_ HTREEITEM paramC, unsigned long param10) PURE; 00436 }; 00437 #undef INTERFACE 00438 00439 #ifdef COBJMACROS 00440 #define IRegTreeOptions_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00441 #define IRegTreeOptions_AddRef(T) (T)->lpVtbl->AddRef(T) 00442 #define IRegTreeOptions_Release(T) (T)->lpVtbl->Release(T) 00443 #define IRegTreeOptions_InitTree(T,a,b,c,d) (T)->lpVtbl->InitTree(T,a,b,c,d) 00444 #define IRegTreeOptions_WalkTree(T,a) (T)->lpVtbl->WalkTree(T,a) 00445 #define IRegTreeOptions_ToggleItem(T,a) (T)->lpVtbl->ToggleItem(T,a) 00446 #define IRegTreeOptions_ShowHelp(T,a,b) (T)->lpVtbl->ShowHelp(T,a,b) 00447 #endif 00448 00449 /***************************************************************************** 00450 * IBandNavigate interface 00451 */ 00452 #define INTERFACE IBandNavigate 00453 DECLARE_INTERFACE_(IBandNavigate, IUnknown) 00454 { 00455 /*** IUnknown ***/ 00456 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00457 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00458 STDMETHOD_(ULONG,Release)(THIS) PURE; 00459 /*** IBandNavigate ***/ 00460 STDMETHOD(Select)(THIS_ long paramC) PURE; 00461 }; 00462 #undef INTERFACE 00463 00464 #ifdef COBJMACROS 00465 #define IBandNavigate_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00466 #define IBandNavigate_AddRef(T) (T)->lpVtbl->AddRef(T) 00467 #define IBandNavigate_Release(T) (T)->lpVtbl->Release(T) 00468 #define IBandNavigate_Select(T,a) (T)->lpVtbl->Select(T,a) 00469 #endif 00470 00471 /***************************************************************************** 00472 * INamespaceProxy interface 00473 */ 00474 #define INTERFACE INamespaceProxy 00475 DECLARE_INTERFACE_(INamespaceProxy, IUnknown) 00476 { 00477 /*** IUnknown ***/ 00478 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00479 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00480 STDMETHOD_(ULONG,Release)(THIS) PURE; 00481 /*** INamespaceProxy ***/ 00482 STDMETHOD(GetNavigateTarget)(THIS_ long paramC, long param10, long param14) PURE; 00483 STDMETHOD(Invoke)(THIS_ long paramC) PURE; 00484 STDMETHOD(OnSelectionChanged)(THIS_ long paramC) PURE; 00485 STDMETHOD(RefreshFlags)(THIS_ long paramC, long param10, long param14) PURE; 00486 STDMETHOD(CacheItem)(THIS_ long paramC) PURE; 00487 }; 00488 #undef INTERFACE 00489 00490 #ifdef COBJMACROS 00491 #define INamespaceProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00492 #define INamespaceProxy_AddRef(T) (T)->lpVtbl->AddRef(T) 00493 #define INamespaceProxy_Release(T) (T)->lpVtbl->Release(T) 00494 #define INamespaceProxy_GetNavigateTarget(T,a,b,c) (T)->lpVtbl->GetNavigateTarget(T,a,b,c) 00495 #define INamespaceProxy_Invoke(T,a) (T)->lpVtbl->Invoke(T,a) 00496 #define INamespaceProxy_OnSelectionChanged(T,a) (T)->lpVtbl->OnSelectionChanged(T,a) 00497 #define INamespaceProxy_RefreshFlags(T,a,b,c) (T)->lpVtbl->RefreshFlags(T,a,b,c) 00498 #define INamespaceProxy_CacheItem(T,a) (T)->lpVtbl->CacheItem(T,a) 00499 #endif 00500 00501 /***************************************************************************** 00502 * IShellMenu2 interface 00503 */ 00504 #define INTERFACE IShellMenu2 00505 DECLARE_INTERFACE_(IShellMenu2, IShellMenu) 00506 { 00507 /*** IUnknown ***/ 00508 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00509 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00510 STDMETHOD_(ULONG,Release)(THIS) PURE; 00511 /*** IShellMenu ***/ 00512 STDMETHOD(Initialize)(THIS_ IShellMenuCallback *psmc, UINT uId, UINT uIdAncestor, DWORD dwFlags) PURE; 00513 STDMETHOD(GetMenuInfo)(THIS_ IShellMenuCallback **ppsmc, UINT *puId, UINT *puIdAncestor, DWORD *pdwFlags) PURE; 00514 STDMETHOD(SetShellFolder)(THIS_ IShellFolder *psf, LPCITEMIDLIST pidlFolder, HKEY hKey, DWORD dwFlags) PURE; 00515 STDMETHOD(GetShellFolder)(THIS_ DWORD *pdwFlags, LPITEMIDLIST *ppidl, REFIID riid, void **ppv) PURE; 00516 STDMETHOD(SetMenu)(THIS_ HMENU hmenu, HWND hwnd, DWORD dwFlags) PURE; 00517 STDMETHOD(GetMenu)(THIS_ HMENU *phmenu, HWND *phwnd, DWORD *pdwFlags) PURE; 00518 STDMETHOD(InvalidateItem)(THIS_ LPSMDATA psmd, DWORD dwFlags) PURE; 00519 STDMETHOD(GetState)(THIS_ LPSMDATA psmd) PURE; 00520 STDMETHOD(SetMenuToolbar)(THIS_ IUnknown *punk, DWORD dwFlags) PURE; 00521 /*** IShellMenu2 ***/ 00522 STDMETHOD(GetSubMenu)(THIS) PURE; 00523 STDMETHOD(SetToolbar)(THIS) PURE; 00524 STDMETHOD(SetMinWidth)(THIS) PURE; 00525 STDMETHOD(SetNoBorder)(THIS) PURE; 00526 STDMETHOD(SetTheme)(THIS) PURE; 00527 }; 00528 #undef INTERFACE 00529 00530 #ifdef COBJMACROS 00531 #define IShellMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00532 #define IShellMenu2_AddRef(T) (T)->lpVtbl->AddRef(T) 00533 #define IShellMenu2_Release(T) (T)->lpVtbl->Release(T) 00534 #define IShellMenu2_Initialize(T,a,b,c,d) (T)->lpVtbl->Initialize(T,a,b,c,d) 00535 #define IShellMenu2_GetMenuInfo(T,a,b,c,d) (T)->lpVtbl->GetMenuInfo(T,a,b,c,d) 00536 #define IShellMenu2_SetShellFolder(T,a,b,c,d) (T)->lpVtbl->SetShellFolder(T,a,b,c,d) 00537 #define IShellMenu2_GetShellFolder(T,a,b,c,d) (T)->lpVtbl->GetShellFolder(T,a,b,c,d) 00538 #define IShellMenu2_SetMenu(T,a,b,c) (T)->lpVtbl->SetMenu(T,a,b,c) 00539 #define IShellMenu2_GetMenu(T,a,b,c) (T)->lpVtbl->GetMenu(T,a,b,c) 00540 #define IShellMenu2_InvalidateItem(T,a,b) (T)->lpVtbl->InvalidateItem(T,a,b) 00541 #define IShellMenu2_GetState(T,a) (T)->lpVtbl->GetState(T,a) 00542 #define IShellMenu2_SetMenuToolbar(T,a,b) (T)->lpVtbl->SetMenuToolbar(T,a,b) 00543 #define IShellMenu2_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T) 00544 #define IShellMenu2_SetToolbar(T) (T)->lpVtbl->SetToolbar(T) 00545 #define IShellMenu2_SetMinWidth(T) (T)->lpVtbl->SetMinWidth(T) 00546 #define IShellMenu2_SetNoBorder(T) (T)->lpVtbl->SetNoBorder(T) 00547 #define IShellMenu2_SetTheme(T) (T)->lpVtbl->SetTheme(T) 00548 #endif 00549 00550 /***************************************************************************** 00551 * IWinEventHandler interface 00552 */ 00553 #define INTERFACE IWinEventHandler 00554 DECLARE_INTERFACE_(IWinEventHandler, IUnknown) 00555 { 00556 /*** IUnknown ***/ 00557 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00558 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00559 STDMETHOD_(ULONG,Release)(THIS) PURE; 00560 /*** IWinEventHandler ***/ 00561 STDMETHOD(OnWinEvent)(THIS_ HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) PURE; 00562 STDMETHOD(IsWindowOwner)(THIS_ HWND hWnd) PURE; 00563 }; 00564 #undef INTERFACE 00565 00566 #ifdef COBJMACROS 00567 #define IWinEventHandler_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00568 #define IWinEventHandler_AddRef(T) (T)->lpVtbl->AddRef(T) 00569 #define IWinEventHandler_Release(T) (T)->lpVtbl->Release(T) 00570 #define IWinEventHandler_OnWinEvent(T,a,b,c,d,e) (T)->lpVtbl->OnWinEvent(T,a,b,c,d,e) 00571 #define IWinEventHandler_IsWindowOwner(T,a) (T)->lpVtbl->IsWindowOwner(T,a) 00572 #endif 00573 00574 /***************************************************************************** 00575 * IAddressBand interface 00576 */ 00577 #define INTERFACE IAddressBand 00578 DECLARE_INTERFACE_(IAddressBand, IUnknown) 00579 { 00580 /*** IUnknown ***/ 00581 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00582 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00583 STDMETHOD_(ULONG,Release)(THIS) PURE; 00584 /*** IAddressBand ***/ 00585 STDMETHOD(FileSysChange)(THIS_ long param8, long paramC) PURE; 00586 STDMETHOD(Refresh)(THIS_ long param8) PURE; 00587 }; 00588 #undef INTERFACE 00589 00590 #ifdef COBJMACROS 00591 #define IAddressBand_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00592 #define IAddressBand_AddRef(T) (T)->lpVtbl->AddRef(T) 00593 #define IAddressBand_Release(T) (T)->lpVtbl->Release(T) 00594 #define IAddressBand_FileSysChange(T,a,b) (T)->lpVtbl->FileSysChange(T,a,b) 00595 #define IAddressBand_Refresh(T,a) (T)->lpVtbl->Refresh(T,a) 00596 #endif 00597 00598 /***************************************************************************** 00599 * IShellMenuAcc interface 00600 */ 00601 #define INTERFACE IShellMenuAcc 00602 DECLARE_INTERFACE_(IShellMenuAcc, IUnknown) 00603 { 00604 /*** IUnknown ***/ 00605 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00606 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00607 STDMETHOD_(ULONG,Release)(THIS) PURE; 00608 /*** IShellMenuAcc ***/ 00609 STDMETHOD(GetTop)(THIS) PURE; 00610 STDMETHOD(GetBottom)(THIS) PURE; 00611 STDMETHOD(GetTracked)(THIS) PURE; 00612 STDMETHOD(GetParentSite)(THIS) PURE; 00613 STDMETHOD(GetState)(THIS) PURE; 00614 STDMETHOD(DoDefaultAction)(THIS) PURE; 00615 STDMETHOD(GetSubMenu)(THIS) PURE; 00616 STDMETHOD(IsEmpty)(THIS) PURE; 00617 }; 00618 #undef INTERFACE 00619 00620 #ifdef COBJMACROS 00621 #define IShellMenuAcc_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00622 #define IShellMenuAcc_AddRef(T) (T)->lpVtbl->AddRef(T) 00623 #define IShellMenuAcc_Release(T) (T)->lpVtbl->Release(T) 00624 #define IShellMenuAcc_GetTop(T) (T)->lpVtbl->GetTop(T) 00625 #define IShellMenuAcc_GetBottom(T) (T)->lpVtbl->GetBottom(T) 00626 #define IShellMenuAcc_GetTracked(T) (T)->lpVtbl->GetTracked(T) 00627 #define IShellMenuAcc_GetParentSite(T) (T)->lpVtbl->GetParentSite(T) 00628 #define IShellMenuAcc_GetState(T) (T)->lpVtbl->GetState(T) 00629 #define IShellMenuAcc_DoDefaultAction(T) (T)->lpVtbl->DoDefaultAction(T) 00630 #define IShellMenuAcc_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T) 00631 #define IShellMenuAcc_IsEmpty(T) (T)->lpVtbl->IsEmpty(T) 00632 #endif 00633 00634 /***************************************************************************** 00635 * IAddressBand interface 00636 */ 00637 #define INTERFACE IBandSiteHelper 00638 DECLARE_INTERFACE_(IBandSiteHelper, IUnknown) 00639 { 00640 /*** IUnknown ***/ 00641 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00642 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00643 STDMETHOD_(ULONG,Release)(THIS) PURE; 00644 /*** IBandSiteHelper ***/ 00645 STDMETHOD(LoadFromStreamBS)(THIS_ IStream *, REFGUID, void **) PURE; 00646 STDMETHOD(SaveToStreamBS)(THIS_ IUnknown *, IStream *) PURE; 00647 }; 00648 #undef INTERFACE 00649 00650 #ifdef COBJMACROS 00651 #define IBandSiteHelper_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00652 #define IBandSiteHelper_AddRef(T) (T)->lpVtbl->AddRef(T) 00653 #define IBandSiteHelper_Release(T) (T)->lpVtbl->Release(T) 00654 #define IBandSiteHelper_LoadFromStreamBS(T,a,b) (T)->lpVtbl->LoadFromStreamBS(T,a,b) 00655 #define IBandSiteHelper_SaveToStreamBS(T,a,b) (T)->lpVtbl->SaveToStreamBS(T,a,b) 00656 #endif 00657 00658 /***************************************************************************** 00659 * IAddressBand interface 00660 */ 00661 #define INTERFACE IShellBrowserService 00662 DECLARE_INTERFACE_(IShellBrowserService, IUnknown) 00663 { 00664 /*** IUnknown ***/ 00665 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 00666 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00667 STDMETHOD_(ULONG,Release)(THIS) PURE; 00668 /*** IShellBrowserService ***/ 00669 STDMETHOD(GetPropertyBag)(THIS_ long flags, REFIID riid, void **ppvObject) PURE; 00670 }; 00671 #undef INTERFACE 00672 00673 #ifdef COBJMACROS 00674 #define IShellBrowserService_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00675 #define IShellBrowserService_AddRef(T) (T)->lpVtbl->AddRef(T) 00676 #define IShellBrowserService_Release(T) (T)->lpVtbl->Release(T) 00677 #define IShellBrowserService_GetPropertyBag(T,a,b,c) (T)->lpVtbl->GetPropertyBag(T,a,b,c) 00678 #endif 00679 00680 /***************************************************************************** 00681 * ITrayPriv interface 00682 */ 00683 #define INTERFACE ITrayPriv 00684 DECLARE_INTERFACE_(ITrayPriv, IUnknown) 00685 { 00686 /*** IUnknown ***/ 00687 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 00688 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00689 STDMETHOD_(ULONG,Release)(THIS) PURE; 00690 /*** IOleWindow methods ***/ 00691 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE; 00692 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE; 00693 /*** ITrayPriv ***/ 00694 STDMETHOD_(HRESULT,Execute)(THIS_ IShellFolder*,LPCITEMIDLIST) PURE; 00695 STDMETHOD_(HRESULT,Unknown)(THIS_ PVOID,PVOID,PVOID,PVOID) PURE; 00696 STDMETHOD_(HRESULT,AppendMenu)(THIS_ HMENU*) PURE; 00697 }; 00698 #undef INTERFACE 00699 00700 #ifdef COBJMACROS 00701 #define ITrayPriv_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 00702 #define ITrayPriv_AddRef(T) (T)->lpVtbl->AddRef(T) 00703 #define ITrayPriv_Release(T) (T)->lpVtbl->Release(T) 00704 #define ITrayPriv_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a) 00705 #define ITrayPriv_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a) 00706 #define ITrayPriv_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b) 00707 #define ITrayPriv_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d) 00708 #define ITrayPriv_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a) 00709 #endif 00710 00711 /***************************************************************************** 00712 * Shell32 resources 00713 */ 00714 // these resources are in shell32.dll 00715 #define IDB_GOBUTTON_NORMAL 0x0e6 00716 #define IDB_GOBUTTON_HOT 0x0e7 00717 00718 // band ids in internet toolbar 00719 #define ITBBID_MENUBAND 1 00720 #define ITBBID_BRANDBAND 5 00721 #define ITBBID_TOOLSBAND 2 00722 #define ITBBID_ADDRESSBAND 4 00723 00724 // commands in the CGID_PrivCITCommands command group handled by the internet toolbar 00725 // there seems to be some support for hiding the menubar and an auto hide feature that are 00726 // unavailable in the UI 00727 #define ITID_TEXTLABELS 3 00728 #define ITID_TOOLBARBANDSHOWN 4 00729 #define ITID_ADDRESSBANDSHOWN 5 00730 #define ITID_LINKSBANDSHOWN 6 00731 #define ITID_MENUBANDSHOWN 12 00732 #define ITID_AUTOHIDEENABLED 13 00733 #define ITID_CUSTOMIZEENABLED 20 00734 #define ITID_TOOLBARLOCKED 27 00735 00736 // commands in the CGID_BrandCmdGroup command group handled by the brand band 00737 #define BBID_STARTANIMATION 1 00738 #define BBID_STOPANIMATION 2 00739 00740 // undocumented flags for IShellMenu::SetShellFolder 00741 #define SMSET_UNKNOWN08 0x08 00742 #define SMSET_UNKNOWN10 0x10 00743 00744 BOOL WINAPI ILGetDisplayNameEx(IShellFolder *psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type); 00745 00746 /* type parameter for ILGetDisplayNameEx() */ 00747 #define ILGDN_FORPARSING 0 00748 #define ILGDN_NORMAL 1 00749 #define ILGDN_INFOLDER 2 00750 00751 HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*); 00752 BOOL WINAPI SHDesktopMessageLoop(HANDLE); 00753 00754 #define WM_GETISHELLBROWSER (WM_USER+7) 00755 BOOL WINAPI SetShellWindow(HWND); 00756 BOOL WINAPI SetShellWindowEx(HWND, HWND); 00757 BOOL WINAPI RegisterShellHook(HWND, DWORD); 00758 IStream* WINAPI SHGetViewStream(LPCITEMIDLIST, DWORD, LPCTSTR, LPCTSTR, LPCTSTR); 00759 BOOL WINAPI SHIsEmptyStream(IStream*); 00760 00761 typedef struct tagCREATEMRULISTA 00762 { 00763 DWORD cbSize; 00764 DWORD nMaxItems; 00765 DWORD dwFlags; 00766 HKEY hKey; 00767 LPCSTR lpszSubKey; 00768 PROC lpfnCompare; 00769 } CREATEMRULISTA, *LPCREATEMRULISTA; 00770 typedef struct tagCREATEMRULISTW 00771 { 00772 DWORD cbSize; 00773 DWORD nMaxItems; 00774 DWORD dwFlags; 00775 HKEY hKey; 00776 LPCWSTR lpszSubKey; 00777 PROC lpfnCompare; 00778 } CREATEMRULISTW, *LPCREATEMRULISTW; 00779 00780 #define MRU_STRING 0x0 00781 #define MRU_BINARY 0x1 00782 #define MRU_CACHEWRITE 0x2 00783 00784 HANDLE WINAPI CreateMRUListW(LPCREATEMRULISTW); 00785 HANDLE WINAPI CreateMRUListA(LPCREATEMRULISTA); 00786 INT WINAPI AddMRUData(HANDLE,LPCVOID,DWORD); 00787 INT WINAPI FindMRUData(HANDLE,LPCVOID,DWORD,LPINT); 00788 VOID WINAPI FreeMRUList(HANDLE); 00789 00790 INT WINAPI AddMRUStringW(HANDLE hList, LPCWSTR lpszString); 00791 INT WINAPI AddMRUStringA(HANDLE hList, LPCSTR lpszString); 00792 BOOL WINAPI DelMRUString(HANDLE hList, INT nItemPos); 00793 INT WINAPI FindMRUStringW(HANDLE hList, LPCWSTR lpszString, LPINT lpRegNum); 00794 INT WINAPI FindMRUStringA(HANDLE hList, LPCSTR lpszString, LPINT lpRegNum); 00795 HANDLE WINAPI CreateMRUListLazyW(const CREATEMRULISTW *lpcml, DWORD dwParam2, 00796 DWORD dwParam3, DWORD dwParam4); 00797 HANDLE WINAPI CreateMRUListLazyA(const CREATEMRULISTA *lpcml, DWORD dwParam2, 00798 DWORD dwParam3, DWORD dwParam4); 00799 INT WINAPI EnumMRUListW(HANDLE hList, INT nItemPos, LPVOID lpBuffer, 00800 DWORD nBufferSize); 00801 INT WINAPI EnumMRUListA(HANDLE hList, INT nItemPos, LPVOID lpBuffer, 00802 DWORD nBufferSize); 00803 00804 #define DC_NOSENDMSG 0x2000 00805 BOOL WINAPI DrawCaptionTempA(HWND,HDC,const RECT*,HFONT,HICON,LPCSTR,UINT); 00806 BOOL WINAPI DrawCaptionTempW(HWND,HDC,const RECT*,HFONT,HICON,LPCWSTR,UINT); 00807 00808 #ifdef UNICODE 00809 typedef CREATEMRULISTW CREATEMRULIST, *PCREATEMRULIST; 00810 #define CreateMRUList CreateMRUListW 00811 #define DrawCaptionTemp DrawCaptionTempW 00812 #else 00813 typedef CREATEMRULISTA CREATEMRULIST, *PCREATEMRULIST; 00814 #define CreateMRUList CreateMRUListA 00815 #define DrawCaptionTemp DrawCaptionTempA 00816 #endif 00817 00818 HRESULT WINAPI SHInvokeDefaultCommand(HWND,IShellFolder*,LPCITEMIDLIST); 00819 00820 HRESULT WINAPI SHPropertyBag_ReadPOINTL(IPropertyBag*,LPCWSTR,POINTL*); 00821 00822 HRESULT WINAPI SHGetPerScreenResName(OUT LPWSTR lpResName, 00823 IN INT cchResName, 00824 IN DWORD dwReserved); 00825 00826 HRESULT WINAPI SHPropertyBag_ReadStream(IPropertyBag*,LPCWSTR,IStream**); 00827 00828 HWND WINAPI SHCreateWorkerWindowA(LONG wndProc, HWND hWndParent, DWORD dwExStyle, 00829 DWORD dwStyle, HMENU hMenu, LONG z); 00830 00831 HWND WINAPI SHCreateWorkerWindowW(LONG wndProc, HWND hWndParent, DWORD dwExStyle, 00832 DWORD dwStyle, HMENU hMenu, LONG z); 00833 #ifdef UNICODE 00834 #define SHCreateWorkerWindow SHCreateWorkerWindowW 00835 #else 00836 #define SHCreateWorkerWindow SHCreateWorkerWindowA 00837 #endif 00838 00839 #ifdef __cplusplus 00840 } /* extern "C" */ 00841 #endif /* defined(__cplusplus) */ 00842 00843 #endif // __SHLOBJ_UNDOC__H Generated on Sun May 27 2012 04:32:20 for ReactOS by
1.7.6.1
|