ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

shlobj_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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.