1 /* 2 * ReactOS undocumented shell interface 3 * 4 * Copyright 2009 Andrew Hill <ash77 at domain reactos.org> 5 * Copyright 2013 Dominik Hornung 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * This library is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this library; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 */ 21 22 #ifndef __SHLOBJ_UNDOC__H 23 #define __SHLOBJ_UNDOC__H 24 25 #ifdef __cplusplus 26 extern "C" { 27 #endif /* defined(__cplusplus) */ 28 29 typedef struct tagSLOTITEMDATA 30 { 31 DWORD dwFlags; 32 UINT cbData; 33 LPVOID pvData; 34 } SLOTITEMDATA, *PSLOTITEMDATA; 35 36 typedef INT (CALLBACK *SLOTCOMPARE)(LPCVOID pvData1, LPCVOID pvData2, UINT cbData); 37 38 /***************************************************************************** 39 * New shellstate structure 40 */ 41 struct SHELLSTATE2 42 { 43 SHELLSTATE oldState; 44 long newState1; 45 long newState2; 46 }; 47 48 /***************************************************************************** 49 * Header for persisted view state in cabinet windows 50 */ 51 struct persistState 52 { 53 long dwSize; 54 long browseType; 55 long alwaysZero; 56 long browserIndex; 57 CLSID persistClass; 58 ULONG pidlSize; 59 }; 60 61 /***************************************************************************** 62 * CGID_Explorer (IShellBrowser OLECMD IDs) 63 */ 64 #define SBCMDID_EXPLORERBARFOLDERS 35 // Query/Toggle 65 #define SBCMDID_MIXEDZONE 39 66 #define SBCMDID_ONVIEWMOVETOTOP 60 67 //SBCMDID_ENABLESHOWTREE ? 68 //SBCMDID_SHOWCONTROL ? 69 //SBCMDID_CANCELNAVIGATION ? 70 //SBCMDID_MAYSAVECHANGES ? 71 //SBCMDID_SETHLINKFRAME ? 72 //SBCMDID_ENABLESTOP ? 73 //SBCMDID_SELECTHISTPIDL ? 74 //SBCMDID_GETPANE ? // This is in the official SDK but only the panes are defined 75 #define PANE_NONE ((DWORD)-1) 76 #define PANE_ZONE 1 77 #define PANE_OFFLINE 2 78 #define PANE_PRINTER 3 79 #define PANE_SSL 4 80 #define PANE_NAVIGATION 5 81 #define PANE_PROGRESS 6 82 #if (_WIN32_IE >= _WIN32_IE_IE60) 83 #define PANE_PRIVACY 7 84 #endif 85 86 /***************************************************************************** 87 * IInitializeObject interface 88 */ 89 #undef INTERFACE 90 #define INTERFACE IInitializeObject 91 92 DECLARE_INTERFACE_(IInitializeObject, IUnknown)//, "4622AD16-FF23-11d0-8D34-00A0C90F2719") 93 { 94 STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppv) PURE; 95 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 96 STDMETHOD_(ULONG,Release) (THIS) PURE; 97 98 STDMETHOD(Initialize)(THIS) PURE; 99 }; 100 #undef INTERFACE 101 #if !defined(__cplusplus) || defined(CINTERFACE) 102 #define IInitializeObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 103 #define IInitializeObject_AddRef(T) (T)->lpVtbl->AddRef(T) 104 #define IInitializeObject_Release(T) (T)->lpVtbl->Release(T) 105 #define IInitializeObject_Initialize(T) (T)->lpVtbl->Initialize(T) 106 #endif 107 108 109 /***************************************************************************** 110 * IBanneredBar interface 111 */ 112 enum 113 { 114 BMICON_LARGE = 0, 115 BMICON_SMALL 116 }; 117 #define INTERFACE IBanneredBar 118 DECLARE_INTERFACE_(IBanneredBar, IUnknown)//, "596A9A94-013E-11d1-8D34-00A0C90F2719") 119 { 120 STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppv) PURE; 121 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 122 STDMETHOD_(ULONG,Release) (THIS) PURE; 123 124 STDMETHOD(SetIconSize)(THIS_ DWORD iIcon) PURE; 125 STDMETHOD(GetIconSize)(THIS_ DWORD* piIcon) PURE; 126 STDMETHOD(SetBitmap)(THIS_ HBITMAP hBitmap) PURE; 127 STDMETHOD(GetBitmap)(THIS_ HBITMAP* phBitmap) PURE; 128 129 }; 130 #undef INTERFACE 131 132 #if !defined(__cplusplus) || defined(CINTERFACE) 133 #define IBanneredBar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 134 #define IBanneredBar_AddRef(T) (T)->lpVtbl->AddRef(T) 135 #define IBanneredBar_Release(T) (T)->lpVtbl->Release(T) 136 #define IBanneredBar_SetIconSize(T,a) (T)->lpVtbl->SetIconSize(T,a) 137 #define IBanneredBar_GetIconSize(T,a) (T)->lpVtbl->GetIconSize(T,a) 138 #define IBanneredBar_SetBitmap(T,a) (T)->lpVtbl->SetBitmap(T,a) 139 #define IBanneredBar_GetBitmap(T,a) (T)->lpVtbl->GetBitmap(T,a) 140 #endif 141 142 /***************************************************************************** 143 * IGlobalFolderSettings interface 144 */ 145 struct DEFFOLDERSETTINGS 146 { 147 long offset0; 148 }; 149 150 #undef INTERFACE 151 #define INTERFACE IGlobalFolderSettings 152 DECLARE_INTERFACE_(IGlobalFolderSettings, IUnknown) 153 { 154 /*** IUnknown ***/ 155 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 156 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 157 STDMETHOD_(ULONG,Release)(THIS) PURE; 158 /*** IGlobalFolderSettings ***/ 159 STDMETHOD(Get)(THIS_ struct DEFFOLDERSETTINGS *buffer, int theSize) PURE; 160 STDMETHOD(Set)(THIS_ const struct DEFFOLDERSETTINGS *buffer, int theSize, unsigned int param14) PURE; 161 }; 162 #undef INTERFACE 163 164 /***************************************************************************** 165 * IStartMenuCallback interface 166 */ 167 #define INTERFACE IStartMenuCallback 168 DECLARE_INTERFACE_(IStartMenuCallback, IOleWindow) 169 { 170 /*** IUnknown ***/ 171 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 172 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 173 STDMETHOD_(ULONG,Release)(THIS) PURE; 174 /*** IOleWindow methods ***/ 175 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE; 176 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE; 177 /*** IStartMenuCallback ***/ 178 STDMETHOD_(HRESULT,Execute)(THIS_ IShellFolder*,LPCITEMIDLIST) PURE; 179 STDMETHOD_(HRESULT,Unknown)(THIS_ PVOID,PVOID,PVOID,PVOID) PURE; 180 STDMETHOD_(HRESULT,AppendMenu)(THIS_ HMENU*) PURE; 181 }; 182 #undef INTERFACE 183 184 #ifdef COBJMACROS 185 #define IStartMenuCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 186 #define IStartMenuCallback_AddRef(T) (T)->lpVtbl->AddRef(T) 187 #define IStartMenuCallback_Release(T) (T)->lpVtbl->Release(T) 188 #define IStartMenuCallback_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a) 189 #define IStartMenuCallback_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a) 190 #define IStartMenuCallback_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b) 191 #define IStartMenuCallback_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d) 192 #define IStartMenuCallback_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a) 193 #endif 194 195 /***************************************************************************** 196 * IBandSiteStreamCallback interface 197 */ 198 #define INTERFACE IBandSiteStreamCallback 199 DECLARE_INTERFACE_(IBandSiteStreamCallback, IUnknown) 200 { 201 /*** IUnknown ***/ 202 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 203 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 204 STDMETHOD_(ULONG,Release)(THIS) PURE; 205 /*** IBandSiteStreamCallback ***/ 206 STDMETHOD_(HRESULT,OnLoad)(THIS_ IStream *pStm, REFIID riid, PVOID *pvObj) PURE; 207 STDMETHOD_(HRESULT,OnSave)(THIS_ IUnknown *pUnk, IStream *pStm) PURE; 208 }; 209 #undef INTERFACE 210 211 #ifdef COBJMACROS 212 #define IBandSiteStreamCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 213 #define IBandSiteStreamCallback_AddRef(T) (T)->lpVtbl->AddRef(T) 214 #define IBandSiteStreamCallback_Release(T) (T)->lpVtbl->Release(T) 215 #define IBandSiteStreamCallback_OnLoad(T,a,b,c) (T)->lpVtbl->OnLoad(T,a,b,c) 216 #define IBandSiteStreamCallback_OnSave(T,a,b) (T)->lpVtbl->OnSave(T,a,b) 217 #endif 218 219 /***************************************************************************** 220 * IShellDesktopTray interface 221 */ 222 #define INTERFACE IShellDesktopTray 223 DECLARE_INTERFACE_(IShellDesktopTray, IUnknown) 224 { 225 /*** IUnknown ***/ 226 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 227 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 228 STDMETHOD_(ULONG,Release)(THIS) PURE; 229 /*** IShellDesktopTray ***/ 230 STDMETHOD_(ULONG,GetState)(THIS) PURE; 231 STDMETHOD(GetTrayWindow)(THIS_ HWND*) PURE; 232 STDMETHOD(RegisterDesktopWindow)(THIS_ HWND) PURE; 233 STDMETHOD(Unknown)(THIS_ DWORD,DWORD) PURE; 234 }; 235 #undef INTERFACE 236 237 #ifdef COBJMACROS 238 #define IShellDesktopTray_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 239 #define IShellDesktopTray_AddRef(T) (T)->lpVtbl->AddRef(T) 240 #define IShellDesktopTray_Release(T) (T)->lpVtbl->Release(T) 241 #define IShellDesktopTray_GetState(T) (T)->lpVtbl->GetState(T) 242 #define IShellDesktopTray_GetTrayWindow(T,a) (T)->lpVtbl->GetTrayWindow(T,a) 243 #define IShellDesktopTray_RegisterDesktopWindow(T,a) (T)->lpVtbl->RegisterDesktopWindow(T,a) 244 #define IShellDesktopTray_Unknown(T,a,b) (T)->lpVtbl->Unknown(T,a,b) 245 #endif 246 247 /***************************************************************************** 248 * INscTree interface 249 */ 250 #define INTERFACE INscTree 251 DECLARE_INTERFACE_(INscTree, IUnknown) 252 { 253 /*** IUnknown ***/ 254 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 255 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 256 STDMETHOD_(ULONG,Release)(THIS) PURE; 257 /*** INscTree ***/ 258 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE; 259 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE; 260 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE; 261 STDMETHOD(Refresh)(THIS) PURE; 262 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE; 263 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE; 264 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE; 265 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE; 266 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE; 267 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE; 268 STDMETHOD(InLabelEdit)(THIS) PURE; 269 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE; 270 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE; 271 }; 272 #undef INTERFACE 273 274 #ifdef COBJMACROS 275 #define INscTree_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 276 #define INscTree_AddRef(T) (T)->lpVtbl->AddRef(T) 277 #define INscTree_Release(T) (T)->lpVtbl->Release(T) 278 #define INscTree_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c) 279 #define INscTree_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c) 280 #define INscTree_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a) 281 #define INscTree_Refresh(T) (T)->lpVtbl->Refresh(T) 282 #define INscTree_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b) 283 #define INscTree_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d) 284 #define INscTree_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a) 285 #define INscTree_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a) 286 #define INscTree_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b) 287 #define INscTree_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c) 288 #define INscTree_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T) 289 #define INscTree_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a) 290 #define INscTree_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a) 291 #endif 292 293 /***************************************************************************** 294 * INscTree2 interface 295 */ 296 #define INTERFACE INscTree2 297 DECLARE_INTERFACE_(INscTree2, INscTree) 298 { 299 /*** IUnknown ***/ 300 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 301 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 302 STDMETHOD_(ULONG,Release)(THIS) PURE; 303 /*** INscTree ***/ 304 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE; 305 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE; 306 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE; 307 STDMETHOD(Refresh)(THIS) PURE; 308 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE; 309 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE; 310 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE; 311 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE; 312 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE; 313 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE; 314 STDMETHOD(InLabelEdit)(THIS) PURE; 315 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE; 316 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE; 317 /*** INscTree2 ***/ 318 STDMETHOD(CreateTree2)(THIS_ long paramC, long param10, long param14, long param18) PURE; 319 }; 320 #undef INTERFACE 321 322 #ifdef COBJMACROS 323 #define INscTree2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 324 #define INscTree2_AddRef(T) (T)->lpVtbl->AddRef(T) 325 #define INscTree2_Release(T) (T)->lpVtbl->Release(T) 326 #define INscTree2_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c) 327 #define INscTree2_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c) 328 #define INscTree2_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a) 329 #define INscTree2_Refresh(T) (T)->lpVtbl->Refresh(T) 330 #define INscTree2_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b) 331 #define INscTree2_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d) 332 #define INscTree2_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a) 333 #define INscTree2_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a) 334 #define INscTree2_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b) 335 #define INscTree2_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c) 336 #define INscTree2_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T) 337 #define INscTree2_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a) 338 #define INscTree2_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a) 339 #define INscTree2_CreateTree2(T,a,b,c,d) (T)->lpVtbl->CreateTree2(T,a,b,c,d) 340 #endif 341 342 /***************************************************************************** 343 * IAddressEditBox interface 344 */ 345 #define INTERFACE IAddressEditBox 346 DECLARE_INTERFACE_(IAddressEditBox, IUnknown) 347 { 348 /*** IUnknown ***/ 349 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 350 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 351 STDMETHOD_(ULONG,Release)(THIS) PURE; 352 /*** IAddressEditBox ***/ 353 STDMETHOD(Init)(THIS_ HWND comboboxEx, HWND editControl, long param14, IUnknown *param18) PURE; 354 STDMETHOD(SetCurrentDir)(THIS_ long paramC) PURE; 355 STDMETHOD(ParseNow)(THIS_ long paramC) PURE; 356 STDMETHOD(Execute)(THIS_ long paramC) PURE; 357 STDMETHOD(Save)(THIS_ long paramC) PURE; 358 }; 359 #undef INTERFACE 360 361 #ifdef COBJMACROS 362 #define IAddressEditBox_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 363 #define IAddressEditBox_AddRef(T) (T)->lpVtbl->AddRef(T) 364 #define IAddressEditBox_Release(T) (T)->lpVtbl->Release(T) 365 #define IAddressEditBox_Init(T,a,b,c,d) (T)->lpVtbl->Init(T,a,b,c,d) 366 #define IAddressEditBox_SetCurrentDir(T,a) (T)->lpVtbl->SetCurrentDir(T,a) 367 #define IAddressEditBox_ParseNow(T,a) (T)->lpVtbl->ParseNow(T,a) 368 #define IAddressEditBox_Execute(T,a) (T)->lpVtbl->Execute(T,a) 369 #define IAddressEditBox_Save(T,a) (T)->lpVtbl->Save(T,a) 370 #endif 371 372 /***************************************************************************** 373 * IBandProxy interface 374 */ 375 #define INTERFACE IBandProxy 376 DECLARE_INTERFACE_(IBandProxy, IUnknown) 377 { 378 /*** IUnknown ***/ 379 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 380 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 381 STDMETHOD_(ULONG,Release)(THIS) PURE; 382 /*** IBandProxy ***/ 383 STDMETHOD(SetSite)(THIS_ IUnknown *paramC) PURE; 384 STDMETHOD(CreateNewWindow)(THIS_ long paramC) PURE; 385 STDMETHOD(GetBrowserWindow)(THIS_ IUnknown **paramC) PURE; 386 STDMETHOD(IsConnected)(THIS) PURE; 387 STDMETHOD(NavigateToPIDL)(THIS_ LPCITEMIDLIST pidl) PURE; 388 STDMETHOD(NavigateToURL)(THIS_ long paramC, long param10) PURE; 389 }; 390 #undef INTERFACE 391 392 #ifdef COBJMACROS 393 #define IBandProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 394 #define IBandProxy_AddRef(T) (T)->lpVtbl->AddRef(T) 395 #define IBandProxy_Release(T) (T)->lpVtbl->Release(T) 396 #define IBandProxy_SetSite(T,a) (T)->lpVtbl->SetSite(T,a) 397 #define IBandProxy_CreateNewWindow(T,a) (T)->lpVtbl->CreateNewWindow(T,a) 398 #define IBandProxy_GetBrowserWindow(T,a) (T)->lpVtbl->GetBrowserWindow(T,a) 399 #define IBandProxy_IsConnected(T) (T)->lpVtbl->IsConnected(T) 400 #define IBandProxy_NavigateToPIDL(T,a) (T)->lpVtbl->NavigateToPIDL(T,a) 401 #define IBandProxy_NavigateToURL(T,a,b) (T)->lpVtbl->NavigateToURL(T,a,b) 402 #endif 403 404 /***************************************************************************** 405 * IExplorerToolbar interface 406 */ 407 #define INTERFACE IExplorerToolbar 408 DECLARE_INTERFACE_(IExplorerToolbar, IUnknown) 409 { 410 /*** IUnknown ***/ 411 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 412 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 413 STDMETHOD_(ULONG,Release)(THIS) PURE; 414 /*** IExplorerToolbar ***/ 415 STDMETHOD(SetCommandTarget)(THIS_ IUnknown *theTarget, GUID *category, long param14) PURE; 416 STDMETHOD(Unknown1)(THIS) PURE; 417 STDMETHOD(AddButtons)(THIS_ const GUID *pguidCmdGroup, long buttonCount, TBBUTTON *buttons) PURE; 418 STDMETHOD(AddString)(THIS_ const GUID *pguidCmdGroup, HINSTANCE param10, LPCTSTR param14, long *param18) PURE; 419 STDMETHOD(GetButton)(THIS_ const GUID *paramC, long param10, long param14) PURE; 420 STDMETHOD(GetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long *theState) PURE; 421 STDMETHOD(SetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long theState) PURE; 422 STDMETHOD(AddBitmap)(THIS_ const GUID *pguidCmdGroup, long param10, long buttonCount, TBADDBITMAP *lParam, long *newIndex, COLORREF param20) PURE; 423 STDMETHOD(GetBitmapSize)(THIS_ long *paramC) PURE; 424 STDMETHOD(SendToolbarMsg)(THIS_ const GUID *pguidCmdGroup, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *result) PURE; 425 STDMETHOD(SetImageList)(THIS_ const GUID *pguidCmdGroup, HIMAGELIST param10, HIMAGELIST param14, HIMAGELIST param18) PURE; 426 STDMETHOD(ModifyButton)(THIS_ const GUID *paramC, long param10, long param14) PURE; 427 }; 428 #undef INTERFACE 429 430 #ifdef COBJMACROS 431 #define IExplorerToolbar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 432 #define IExplorerToolbar_AddRef(T) (T)->lpVtbl->AddRef(T) 433 #define IExplorerToolbar_Release(T) (T)->lpVtbl->Release(T) 434 #define IExplorerToolbar_SetCommandTarget(T,a,b,c) (T)->lpVtbl->SetCommandTarget(T,a,b,c) 435 #define IExplorerToolbar_Unknown1(T) (T)->lpVtbl->Unknown1(T) 436 #define IExplorerToolbar_AddButtons(T,a,b,c) (T)->lpVtbl->AddButtons(T,a,b,c) 437 #define IExplorerToolbar_AddString(T,a,b,c,d) (T)->lpVtbl->AddString(T,a,b,c,d) 438 #define IExplorerToolbar_GetButton(T,a,b,c) (T)->lpVtbl->GetButton(T,a,b,c) 439 #define IExplorerToolbar_GetState(T,a,b,c) (T)->lpVtbl->GetState(T,a,b,c) 440 #define IExplorerToolbar_SetState(T,a,b,c) (T)->lpVtbl->SetState(T,a,b,c) 441 #define IExplorerToolbar_AddBitmap(T,a,b,c,d,e,f) (T)->lpVtbl->AddBitmap(T,a,b,c,d,e,f) 442 #define IExplorerToolbar_GetBitmapSize(T,a) (T)->lpVtbl->GetBitmapSize(T,a) 443 #define IExplorerToolbar_SendToolbarMsg(T,a,b,c,d,e) (T)->lpVtbl->SendToolbarMsg(T,a,b,c,d,e) 444 #define IExplorerToolbar_SetImageList(T,a,b,c,d) (T)->lpVtbl->SetImageList(T,a,b,c,d) 445 #define IExplorerToolbar_ModifyButton(T,a,b,c) (T)->lpVtbl->ModifyButton(T,a,b,c) 446 #endif 447 448 /***************************************************************************** 449 * IRegTreeOptions interface 450 */ 451 typedef enum tagWALK_TREE_CMD 452 { 453 WALK_TREE_OPTION0 = 0, 454 WALK_TREE_OPTION1 = 1, 455 WALK_TREE_OPTION2 = 2, 456 WALK_TREE_OPTION3 = 3 457 } WALK_TREE_CMD; 458 459 #define INTERFACE IRegTreeOptions 460 DECLARE_INTERFACE_(IRegTreeOptions, IUnknown) 461 { 462 /*** IUnknown ***/ 463 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 464 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 465 STDMETHOD_(ULONG,Release)(THIS) PURE; 466 /*** IRegTreeOptions ***/ 467 STDMETHOD(InitTree)(THIS_ HWND paramC, HKEY param10, char const *param14, char const *param18) PURE; 468 STDMETHOD(WalkTree)(THIS_ WALK_TREE_CMD paramC) PURE; 469 STDMETHOD(ToggleItem)(THIS_ HTREEITEM paramC) PURE; 470 STDMETHOD(ShowHelp)(THIS_ HTREEITEM paramC, unsigned long param10) PURE; 471 }; 472 #undef INTERFACE 473 474 #ifdef COBJMACROS 475 #define IRegTreeOptions_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 476 #define IRegTreeOptions_AddRef(T) (T)->lpVtbl->AddRef(T) 477 #define IRegTreeOptions_Release(T) (T)->lpVtbl->Release(T) 478 #define IRegTreeOptions_InitTree(T,a,b,c,d) (T)->lpVtbl->InitTree(T,a,b,c,d) 479 #define IRegTreeOptions_WalkTree(T,a) (T)->lpVtbl->WalkTree(T,a) 480 #define IRegTreeOptions_ToggleItem(T,a) (T)->lpVtbl->ToggleItem(T,a) 481 #define IRegTreeOptions_ShowHelp(T,a,b) (T)->lpVtbl->ShowHelp(T,a,b) 482 #endif 483 484 /***************************************************************************** 485 * IBandNavigate interface 486 */ 487 #define INTERFACE IBandNavigate 488 DECLARE_INTERFACE_(IBandNavigate, IUnknown) 489 { 490 /*** IUnknown ***/ 491 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 492 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 493 STDMETHOD_(ULONG,Release)(THIS) PURE; 494 /*** IBandNavigate ***/ 495 STDMETHOD(Select)(THIS_ long paramC) PURE; 496 }; 497 #undef INTERFACE 498 499 #ifdef COBJMACROS 500 #define IBandNavigate_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 501 #define IBandNavigate_AddRef(T) (T)->lpVtbl->AddRef(T) 502 #define IBandNavigate_Release(T) (T)->lpVtbl->Release(T) 503 #define IBandNavigate_Select(T,a) (T)->lpVtbl->Select(T,a) 504 #endif 505 506 /***************************************************************************** 507 * INamespaceProxy interface 508 */ 509 #define INTERFACE INamespaceProxy 510 DECLARE_INTERFACE_(INamespaceProxy, IUnknown) 511 { 512 /*** IUnknown ***/ 513 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 514 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 515 STDMETHOD_(ULONG,Release)(THIS) PURE; 516 /*** INamespaceProxy ***/ 517 STDMETHOD(GetNavigateTarget)(THIS_ long paramC, long param10, long param14) PURE; 518 STDMETHOD(Invoke)(THIS_ long paramC) PURE; 519 STDMETHOD(OnSelectionChanged)(THIS_ long paramC) PURE; 520 STDMETHOD(RefreshFlags)(THIS_ long paramC, long param10, long param14) PURE; 521 STDMETHOD(CacheItem)(THIS_ long paramC) PURE; 522 }; 523 #undef INTERFACE 524 525 #ifdef COBJMACROS 526 #define INamespaceProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 527 #define INamespaceProxy_AddRef(T) (T)->lpVtbl->AddRef(T) 528 #define INamespaceProxy_Release(T) (T)->lpVtbl->Release(T) 529 #define INamespaceProxy_GetNavigateTarget(T,a,b,c) (T)->lpVtbl->GetNavigateTarget(T,a,b,c) 530 #define INamespaceProxy_Invoke(T,a) (T)->lpVtbl->Invoke(T,a) 531 #define INamespaceProxy_OnSelectionChanged(T,a) (T)->lpVtbl->OnSelectionChanged(T,a) 532 #define INamespaceProxy_RefreshFlags(T,a,b,c) (T)->lpVtbl->RefreshFlags(T,a,b,c) 533 #define INamespaceProxy_CacheItem(T,a) (T)->lpVtbl->CacheItem(T,a) 534 #endif 535 536 /***************************************************************************** 537 * IShellMenu2 interface 538 */ 539 #define INTERFACE IShellMenu2 540 DECLARE_INTERFACE_(IShellMenu2, IShellMenu) 541 { 542 /*** IUnknown ***/ 543 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 544 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 545 STDMETHOD_(ULONG,Release)(THIS) PURE; 546 /*** IShellMenu ***/ 547 STDMETHOD(Initialize)(THIS_ IShellMenuCallback *psmc, UINT uId, UINT uIdAncestor, DWORD dwFlags) PURE; 548 STDMETHOD(GetMenuInfo)(THIS_ IShellMenuCallback **ppsmc, UINT *puId, UINT *puIdAncestor, DWORD *pdwFlags) PURE; 549 STDMETHOD(SetShellFolder)(THIS_ IShellFolder *psf, LPCITEMIDLIST pidlFolder, HKEY hKey, DWORD dwFlags) PURE; 550 STDMETHOD(GetShellFolder)(THIS_ DWORD *pdwFlags, LPITEMIDLIST *ppidl, REFIID riid, void **ppv) PURE; 551 STDMETHOD(SetMenu)(THIS_ HMENU hmenu, HWND hwnd, DWORD dwFlags) PURE; 552 STDMETHOD(GetMenu)(THIS_ HMENU *phmenu, HWND *phwnd, DWORD *pdwFlags) PURE; 553 STDMETHOD(InvalidateItem)(THIS_ LPSMDATA psmd, DWORD dwFlags) PURE; 554 STDMETHOD(GetState)(THIS_ LPSMDATA psmd) PURE; 555 STDMETHOD(SetMenuToolbar)(THIS_ IUnknown *punk, DWORD dwFlags) PURE; 556 /*** IShellMenu2 ***/ 557 STDMETHOD(GetSubMenu)(THIS) PURE; 558 STDMETHOD(SetToolbar)(THIS) PURE; 559 STDMETHOD(SetMinWidth)(THIS) PURE; 560 STDMETHOD(SetNoBorder)(THIS) PURE; 561 STDMETHOD(SetTheme)(THIS) PURE; 562 }; 563 #undef INTERFACE 564 565 #ifdef COBJMACROS 566 #define IShellMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 567 #define IShellMenu2_AddRef(T) (T)->lpVtbl->AddRef(T) 568 #define IShellMenu2_Release(T) (T)->lpVtbl->Release(T) 569 #define IShellMenu2_Initialize(T,a,b,c,d) (T)->lpVtbl->Initialize(T,a,b,c,d) 570 #define IShellMenu2_GetMenuInfo(T,a,b,c,d) (T)->lpVtbl->GetMenuInfo(T,a,b,c,d) 571 #define IShellMenu2_SetShellFolder(T,a,b,c,d) (T)->lpVtbl->SetShellFolder(T,a,b,c,d) 572 #define IShellMenu2_GetShellFolder(T,a,b,c,d) (T)->lpVtbl->GetShellFolder(T,a,b,c,d) 573 #define IShellMenu2_SetMenu(T,a,b,c) (T)->lpVtbl->SetMenu(T,a,b,c) 574 #define IShellMenu2_GetMenu(T,a,b,c) (T)->lpVtbl->GetMenu(T,a,b,c) 575 #define IShellMenu2_InvalidateItem(T,a,b) (T)->lpVtbl->InvalidateItem(T,a,b) 576 #define IShellMenu2_GetState(T,a) (T)->lpVtbl->GetState(T,a) 577 #define IShellMenu2_SetMenuToolbar(T,a,b) (T)->lpVtbl->SetMenuToolbar(T,a,b) 578 #define IShellMenu2_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T) 579 #define IShellMenu2_SetToolbar(T) (T)->lpVtbl->SetToolbar(T) 580 #define IShellMenu2_SetMinWidth(T) (T)->lpVtbl->SetMinWidth(T) 581 #define IShellMenu2_SetNoBorder(T) (T)->lpVtbl->SetNoBorder(T) 582 #define IShellMenu2_SetTheme(T) (T)->lpVtbl->SetTheme(T) 583 #endif 584 585 /***************************************************************************** 586 * IWinEventHandler interface 587 */ 588 #define INTERFACE IWinEventHandler 589 DECLARE_INTERFACE_(IWinEventHandler, IUnknown) 590 { 591 /*** IUnknown ***/ 592 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 593 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 594 STDMETHOD_(ULONG,Release)(THIS) PURE; 595 /*** IWinEventHandler ***/ 596 STDMETHOD(OnWinEvent)(THIS_ HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) PURE; 597 STDMETHOD(IsWindowOwner)(THIS_ HWND hWnd) PURE; 598 }; 599 #undef INTERFACE 600 601 #ifdef COBJMACROS 602 #define IWinEventHandler_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 603 #define IWinEventHandler_AddRef(T) (T)->lpVtbl->AddRef(T) 604 #define IWinEventHandler_Release(T) (T)->lpVtbl->Release(T) 605 #define IWinEventHandler_OnWinEvent(T,a,b,c,d,e) (T)->lpVtbl->OnWinEvent(T,a,b,c,d,e) 606 #define IWinEventHandler_IsWindowOwner(T,a) (T)->lpVtbl->IsWindowOwner(T,a) 607 #endif 608 609 /***************************************************************************** 610 * IAddressBand interface 611 */ 612 #define INTERFACE IAddressBand 613 DECLARE_INTERFACE_(IAddressBand, IUnknown) 614 { 615 /*** IUnknown ***/ 616 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 617 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 618 STDMETHOD_(ULONG,Release)(THIS) PURE; 619 /*** IAddressBand ***/ 620 STDMETHOD(FileSysChange)(THIS_ long param8, long paramC) PURE; 621 STDMETHOD(Refresh)(THIS_ long param8) PURE; 622 }; 623 #undef INTERFACE 624 625 #ifdef COBJMACROS 626 #define IAddressBand_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 627 #define IAddressBand_AddRef(T) (T)->lpVtbl->AddRef(T) 628 #define IAddressBand_Release(T) (T)->lpVtbl->Release(T) 629 #define IAddressBand_FileSysChange(T,a,b) (T)->lpVtbl->FileSysChange(T,a,b) 630 #define IAddressBand_Refresh(T,a) (T)->lpVtbl->Refresh(T,a) 631 #endif 632 633 /***************************************************************************** 634 * IShellMenuAcc interface 635 */ 636 #define INTERFACE IShellMenuAcc 637 DECLARE_INTERFACE_(IShellMenuAcc, IUnknown) 638 { 639 /*** IUnknown ***/ 640 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 641 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 642 STDMETHOD_(ULONG,Release)(THIS) PURE; 643 /*** IShellMenuAcc ***/ 644 STDMETHOD(GetTop)(THIS) PURE; 645 STDMETHOD(GetBottom)(THIS) PURE; 646 STDMETHOD(GetTracked)(THIS) PURE; 647 STDMETHOD(GetParentSite)(THIS) PURE; 648 STDMETHOD(GetState)(THIS) PURE; 649 STDMETHOD(DoDefaultAction)(THIS) PURE; 650 STDMETHOD(GetSubMenu)(THIS) PURE; 651 STDMETHOD(IsEmpty)(THIS) PURE; 652 }; 653 #undef INTERFACE 654 655 #ifdef COBJMACROS 656 #define IShellMenuAcc_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 657 #define IShellMenuAcc_AddRef(T) (T)->lpVtbl->AddRef(T) 658 #define IShellMenuAcc_Release(T) (T)->lpVtbl->Release(T) 659 #define IShellMenuAcc_GetTop(T) (T)->lpVtbl->GetTop(T) 660 #define IShellMenuAcc_GetBottom(T) (T)->lpVtbl->GetBottom(T) 661 #define IShellMenuAcc_GetTracked(T) (T)->lpVtbl->GetTracked(T) 662 #define IShellMenuAcc_GetParentSite(T) (T)->lpVtbl->GetParentSite(T) 663 #define IShellMenuAcc_GetState(T) (T)->lpVtbl->GetState(T) 664 #define IShellMenuAcc_DoDefaultAction(T) (T)->lpVtbl->DoDefaultAction(T) 665 #define IShellMenuAcc_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T) 666 #define IShellMenuAcc_IsEmpty(T) (T)->lpVtbl->IsEmpty(T) 667 #endif 668 669 /***************************************************************************** 670 * IAddressBand interface 671 */ 672 #define INTERFACE IBandSiteHelper 673 DECLARE_INTERFACE_(IBandSiteHelper, IUnknown) 674 { 675 /*** IUnknown ***/ 676 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 677 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 678 STDMETHOD_(ULONG,Release)(THIS) PURE; 679 /*** IBandSiteHelper ***/ 680 STDMETHOD(LoadFromStreamBS)(THIS_ IStream *, REFGUID, void **) PURE; 681 STDMETHOD(SaveToStreamBS)(THIS_ IUnknown *, IStream *) PURE; 682 }; 683 #undef INTERFACE 684 685 #ifdef COBJMACROS 686 #define IBandSiteHelper_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 687 #define IBandSiteHelper_AddRef(T) (T)->lpVtbl->AddRef(T) 688 #define IBandSiteHelper_Release(T) (T)->lpVtbl->Release(T) 689 #define IBandSiteHelper_LoadFromStreamBS(T,a,b) (T)->lpVtbl->LoadFromStreamBS(T,a,b) 690 #define IBandSiteHelper_SaveToStreamBS(T,a,b) (T)->lpVtbl->SaveToStreamBS(T,a,b) 691 #endif 692 693 /***************************************************************************** 694 * IAddressBand interface 695 */ 696 #define INTERFACE IShellBrowserService 697 DECLARE_INTERFACE_(IShellBrowserService, IUnknown) 698 { 699 /*** IUnknown ***/ 700 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 701 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 702 STDMETHOD_(ULONG,Release)(THIS) PURE; 703 /*** IShellBrowserService ***/ 704 STDMETHOD(GetPropertyBag)(THIS_ long flags, REFIID riid, void **ppvObject) PURE; 705 }; 706 #undef INTERFACE 707 708 #ifdef COBJMACROS 709 #define IShellBrowserService_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 710 #define IShellBrowserService_AddRef(T) (T)->lpVtbl->AddRef(T) 711 #define IShellBrowserService_Release(T) (T)->lpVtbl->Release(T) 712 #define IShellBrowserService_GetPropertyBag(T,a,b,c) (T)->lpVtbl->GetPropertyBag(T,a,b,c) 713 #endif 714 715 /***************************************************************************** 716 * IMruDataList interface 717 */ 718 #define INTERFACE IMruDataList 719 DECLARE_INTERFACE_(IMruDataList, IUnknown) 720 { 721 /*** IUnknown ***/ 722 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 723 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 724 STDMETHOD_(ULONG,Release)(THIS) PURE; 725 /*** IMruDataList ***/ 726 STDMETHOD(InitData)(THIS_ UINT, UINT, HKEY, LPCWSTR, SLOTCOMPARE) PURE; 727 STDMETHOD(AddData)(THIS_ LPCVOID , DWORD, UINT*) PURE; 728 STDMETHOD(FindData)(THIS_ LPCVOID , DWORD, UINT*) PURE; 729 STDMETHOD(GetData)(THIS_ UINT, LPVOID, DWORD) PURE; 730 STDMETHOD(QueryInfo)(THIS_ UINT, UINT*, DWORD*) PURE; 731 STDMETHOD(Delete)(THIS_ UINT) PURE; 732 }; 733 #undef INTERFACE 734 735 #ifdef COBJMACROS 736 #define IMruDataList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 737 #define IMruDataList_AddRef(T) (T)->lpVtbl->AddRef(T) 738 #define IMruDataList_Release(T) (T)->lpVtbl->Release(T) 739 #define IMruDataList_InitData(T,a,b,c,d,e) (T)->lpVtbl->InitData(T,a,b,c,d,e) 740 #define IMruDataList_AddData(T,a,b,c) (T)->lpVtbl->AddData(T,a,b,c) 741 #define IMruDataList_FindData(T,a,b,c) (T)->lpVtbl->FindData(T,a,b,c) 742 #define IMruDataList_GetData(T,a,b,c) (T)->lpVtbl->GetData(T,a,b,c) 743 #define IMruDataList_QueryInfo(T,a,b,c) (T)->lpVtbl->QueryInfo(T,a,b,c) 744 #define IMruDataList_Delete(T,a) (T)->lpVtbl->Delete(T,a) 745 #endif 746 747 /***************************************************************************** 748 * IMruPidlList interface 749 */ 750 #define INTERFACE IMruPidlList 751 DECLARE_INTERFACE_(IMruPidlList, IUnknown) 752 { 753 /*** IUnknown ***/ 754 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 755 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 756 STDMETHOD_(ULONG,Release)(THIS) PURE; 757 /*** IMruPidlList ***/ 758 STDMETHOD(InitList)(THIS_ UINT, HKEY, LPCWSTR) PURE; 759 STDMETHOD(UsePidl)(THIS_ LPCITEMIDLIST, UINT*) PURE; 760 STDMETHOD(QueryPidl)(THIS_ LPCITEMIDLIST, UINT, UINT*, UINT*) PURE; 761 STDMETHOD(PruneKids)(THIS_ LPCITEMIDLIST) PURE; 762 }; 763 #undef INTERFACE 764 765 #ifdef COBJMACROS 766 #define IMruPidlList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 767 #define IMruPidlList_AddRef(T) (T)->lpVtbl->AddRef(T) 768 #define IMruPidlList_Release(T) (T)->lpVtbl->Release(T) 769 #define IMruPidlList_InitList(T,a,b,c) (T)->lpVtbl->InitList(T,a,b,c) 770 #define IMruPidlList_UsePidl(T,a,b) (T)->lpVtbl->UsePidl(T,a,b) 771 #define IMruPidlList_QueryPidl(T,a,b,c,d) (T)->lpVtbl->QueryPidl(T,a,b,c,d) 772 #define IMruPidlList_PruneKids(T,a) (T)->lpVtbl->PruneKids(T,a) 773 #endif 774 775 /***************************************************************************** 776 * ITrayPriv interface 777 */ 778 #define INTERFACE ITrayPriv 779 DECLARE_INTERFACE_(ITrayPriv, IUnknown) 780 { 781 /*** IUnknown ***/ 782 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 783 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 784 STDMETHOD_(ULONG,Release)(THIS) PURE; 785 /*** IOleWindow methods ***/ 786 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE; 787 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE; 788 /*** ITrayPriv ***/ 789 STDMETHOD_(HRESULT,Execute)(THIS_ IShellFolder*,LPCITEMIDLIST) PURE; 790 STDMETHOD_(HRESULT,Unknown)(THIS_ PVOID,PVOID,PVOID,PVOID) PURE; 791 STDMETHOD_(HRESULT,AppendMenu)(THIS_ HMENU*) PURE; 792 }; 793 #undef INTERFACE 794 795 #ifdef COBJMACROS 796 #define ITrayPriv_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) 797 #define ITrayPriv_AddRef(T) (T)->lpVtbl->AddRef(T) 798 #define ITrayPriv_Release(T) (T)->lpVtbl->Release(T) 799 #define ITrayPriv_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a) 800 #define ITrayPriv_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a) 801 #define ITrayPriv_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b) 802 #define ITrayPriv_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d) 803 #define ITrayPriv_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a) 804 #endif 805 806 HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*); 807 BOOL WINAPI SHDesktopMessageLoop(HANDLE); 808 HRESULT WINAPI SHCreateFileDataObject(PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, IDataObject* pDataInner, IDataObject** ppDataObj); 809 810 #ifdef __cplusplus 811 } /* extern "C" */ 812 #endif /* defined(__cplusplus) */ 813 814 #endif // __SHLOBJ_UNDOC__H 815