From d937dc2963a8a1686bbbbb0a5ae1b1cf00b07f2d Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 4 Sep 2003 19:43:39 +0000 Subject: [PATCH] Implemented shtypes.idl and shobjidl.idl and removed a few more wine/obj_* headers. --- dlls/shell32/shelllink.c | 2 +- dlls/shell32/shfldr_desktop.c | 4 +- dlls/shell32/shfldr_fs.c | 4 +- dlls/shell32/shfldr_mycomp.c | 4 +- dlls/shell32/shlview.c | 21 +- include/Makefile.in | 7 +- include/shlguid.h | 22 +- include/shlobj.h | 86 +- include/shobjidl.h | 2750 +++++++++++++++++++++++++++++++ include/shobjidl.idl | 693 ++++++++ include/shtypes.h | 60 + include/shtypes.idl | 74 + include/wine/obj_enumidlist.h | 61 - include/wine/obj_shellbrowser.h | 115 -- include/wine/obj_shellextinit.h | 50 - include/wine/obj_shellfolder.h | 317 ---- include/wine/obj_shelllink.h | 165 -- include/wine/obj_shellview.h | 175 -- 18 files changed, 3666 insertions(+), 944 deletions(-) create mode 100644 include/shobjidl.h create mode 100644 include/shobjidl.idl create mode 100644 include/shtypes.h create mode 100644 include/shtypes.idl delete mode 100644 include/wine/obj_enumidlist.h delete mode 100644 include/wine/obj_shellbrowser.h delete mode 100644 include/wine/obj_shellextinit.h delete mode 100644 include/wine/obj_shelllink.h delete mode 100644 include/wine/obj_shellview.h diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c index 4d3b9f9affc..ddd1c4be525 100644 --- a/dlls/shell32/shelllink.c +++ b/dlls/shell32/shelllink.c @@ -1186,7 +1186,7 @@ static ULONG WINAPI IShellLinkW_fnRelease(IShellLinkW * iface) return IShellLinkA_Release((IShellLinkA*)This); } -static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile,INT cchMaxPath, WIN32_FIND_DATAA *pfd, DWORD fFlags) +static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile,INT cchMaxPath, WIN32_FIND_DATAW *pfd, DWORD fFlags) { _ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface); diff --git a/dlls/shell32/shfldr_desktop.c b/dlls/shell32/shfldr_desktop.c index 77b5924170d..0459d65a325 100644 --- a/dlls/shell32/shfldr_desktop.c +++ b/dlls/shell32/shfldr_desktop.c @@ -636,7 +636,7 @@ static HRESULT WINAPI ISF_Desktop_fnGetDetailsOf (IShellFolder2 * iface, return hr; } -static HRESULT WINAPI ISF_Desktop_fnMapNameToSCID (IShellFolder2 * iface, LPCWSTR pwszName, SHCOLUMNID * pscid) +static HRESULT WINAPI ISF_Desktop_fnMapColumnToSCID (IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid) { ICOM_THIS (IGenericSFImpl, iface); FIXME ("(%p)\n", This); @@ -666,4 +666,4 @@ static ICOM_VTABLE (IShellFolder2) vt_MCFldr_ShellFolder2 = ISF_Desktop_fnGetDefaultColumnState, ISF_Desktop_fnGetDetailsEx, ISF_Desktop_fnGetDetailsOf, - ISF_Desktop_fnMapNameToSCID}; + ISF_Desktop_fnMapColumnToSCID}; diff --git a/dlls/shell32/shfldr_fs.c b/dlls/shell32/shfldr_fs.c index b1f9445d662..820ee179bcf 100644 --- a/dlls/shell32/shfldr_fs.c +++ b/dlls/shell32/shfldr_fs.c @@ -805,7 +805,7 @@ IShellFolder_fnGetDetailsOf (IShellFolder2 * iface, LPCITEMIDLIST pidl, UINT iCo return hr; } -static HRESULT WINAPI IShellFolder_fnMapNameToSCID (IShellFolder2 * iface, LPCWSTR pwszName, SHCOLUMNID * pscid) +static HRESULT WINAPI IShellFolder_fnMapColumnToSCID (IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid) { _ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface) FIXME ("(%p)\n", This); @@ -835,7 +835,7 @@ static ICOM_VTABLE (IShellFolder2) sfvt = IShellFolder_fnGetDefaultColumnState, IShellFolder_fnGetDetailsEx, IShellFolder_fnGetDetailsOf, - IShellFolder_fnMapNameToSCID + IShellFolder_fnMapColumnToSCID }; /**************************************************************************** diff --git a/dlls/shell32/shfldr_mycomp.c b/dlls/shell32/shfldr_mycomp.c index c133d2d8fa0..5bdf9ce9877 100644 --- a/dlls/shell32/shfldr_mycomp.c +++ b/dlls/shell32/shfldr_mycomp.c @@ -591,7 +591,7 @@ static HRESULT WINAPI ISF_MyComputer_fnGetDetailsOf (IShellFolder2 * iface, LPCI return hr; } -static HRESULT WINAPI ISF_MyComputer_fnMapNameToSCID (IShellFolder2 * iface, LPCWSTR pwszName, SHCOLUMNID * pscid) +static HRESULT WINAPI ISF_MyComputer_fnMapColumnToSCID (IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid) { ICOM_THIS (IGenericSFImpl, iface); FIXME ("(%p)\n", This); @@ -621,7 +621,7 @@ static ICOM_VTABLE (IShellFolder2) vt_ShellFolder2 = ISF_MyComputer_fnGetDefaultColumnState, ISF_MyComputer_fnGetDetailsEx, ISF_MyComputer_fnGetDetailsOf, - ISF_MyComputer_fnMapNameToSCID + ISF_MyComputer_fnMapColumnToSCID }; /************************************************************************ diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index e486d39f57a..c2af17977d2 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c @@ -1851,24 +1851,6 @@ static HRESULT WINAPI IShellView_fnGetItemObject(IShellView * iface, UINT uItem, return S_OK; } -static HRESULT WINAPI IShellView_fnEditItem( - IShellView * iface, - LPCITEMIDLIST pidl) -{ - ICOM_THIS(IShellViewImpl, iface); - int i; - - TRACE("(%p)->(pidl=%p)\n",This, pidl); - - i = LV_FindItemByPidl(This, pidl); - if (i != -1) - { - SetFocus(This->hWndList); - ListView_EditLabelA(This->hWndList, i); - } - return S_OK; -} - static struct ICOM_VTABLE(IShellView) svvt = { ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE @@ -1887,8 +1869,7 @@ static struct ICOM_VTABLE(IShellView) svvt = IShellView_fnAddPropertySheetPages, IShellView_fnSaveViewState, IShellView_fnSelectItem, - IShellView_fnGetItemObject, - IShellView_fnEditItem + IShellView_fnGetItemObject }; diff --git a/include/Makefile.in b/include/Makefile.in index d633cb7030c..8fa7c75cebd 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -13,6 +13,8 @@ IDL_SRCS = \ ocidl.idl \ oleidl.idl \ servprov.idl \ + shobjidl.idl \ + shtypes.idl \ strmif.idl \ unknwn.idl \ urlmon.idl \ @@ -246,13 +248,8 @@ WINE_INCLUDES = \ obj_contextmenu.h \ obj_dockingwindowframe.h \ obj_dragdrophelper.h \ - obj_enumidlist.h \ obj_extracticon.h \ - obj_shellbrowser.h \ - obj_shellextinit.h \ obj_shellfolder.h \ - obj_shelllink.h \ - obj_shellview.h \ unicode.h EXTRASUBDIRS = bitmaps msvcrt msvcrt/sys wine diff --git a/include/shlguid.h b/include/shlguid.h index 490a1d5d046..76d9472aa49 100644 --- a/include/shlguid.h +++ b/include/shlguid.h @@ -43,35 +43,41 @@ DEFINE_SHLGUID(CGID_ShellServiceObject, 0x000214D2L, 0, 0); DEFINE_SHLGUID(CGID_ExplorerBarDoc, 0x000214D3L, 0, 0); DEFINE_SHLGUID(IID_INewShortcutHookA, 0x000214E1L, 0, 0); -DEFINE_SHLGUID(IID_IShellBrowser, 0x000214E2L, 0, 0); -DEFINE_SHLGUID(IID_IShellView, 0x000214E3L, 0, 0); DEFINE_SHLGUID(IID_IContextMenu, 0x000214E4L, 0, 0); DEFINE_SHLGUID(IID_IShellIcon, 0x000214E5L, 0, 0); -DEFINE_SHLGUID(IID_IShellFolder, 0x000214E6L, 0, 0); -DEFINE_SHLGUID(IID_IShellExtInit, 0x000214E8L, 0, 0); DEFINE_SHLGUID(IID_IShellPropSheetExt, 0x000214E9L, 0, 0); -DEFINE_SHLGUID(IID_IPersistFolder, 0x000214EAL, 0, 0); DEFINE_SHLGUID(IID_IExtractIconA, 0x000214EBL, 0, 0); DEFINE_SHLGUID(IID_IShellDetails, 0x000214ECL, 0, 0); DEFINE_SHLGUID(IID_IDelayedRelease, 0x000214EDL, 0, 0); -DEFINE_SHLGUID(IID_IShellLinkA, 0x000214EEL, 0, 0); DEFINE_SHLGUID(IID_IShellCopyHookA, 0x000214EFL, 0, 0); DEFINE_SHLGUID(IID_IFileViewerA, 0x000214F0L, 0, 0); DEFINE_SHLGUID(IID_ICommDlgBrowser, 0x000214F1L, 0, 0); -DEFINE_SHLGUID(IID_IEnumIDList, 0x000214F2L, 0, 0); DEFINE_SHLGUID(IID_IFileViewerSite, 0x000214F3L, 0, 0); DEFINE_SHLGUID(IID_IContextMenu2, 0x000214F4L, 0, 0); DEFINE_SHLGUID(IID_IShellExecuteHookA, 0x000214F5L, 0, 0); DEFINE_SHLGUID(IID_IPropSheetPage, 0x000214F6L, 0, 0); DEFINE_SHLGUID(IID_INewShortcutHookW, 0x000214F7L, 0, 0); DEFINE_SHLGUID(IID_IFileViewerW, 0x000214F8L, 0, 0); -DEFINE_SHLGUID(IID_IShellLinkW, 0x000214F9L, 0, 0); DEFINE_SHLGUID(IID_IExtractIconW, 0x000214FAL, 0, 0); DEFINE_SHLGUID(IID_IShellExecuteHookW, 0x000214FBL, 0, 0); DEFINE_SHLGUID(IID_IShellCopyHookW, 0x000214FCL, 0, 0); DEFINE_SHLGUID(IID_IRemoteComputer, 0x000214FEL, 0, 0); DEFINE_SHLGUID(IID_IQueryInfo, 0x00021500L, 0, 0); +/* avoid duplicate definitions with shobjidl.h (FIXME) */ +/* DEFINE_SHLGUID(IID_IShellBrowser, 0x000214E2L, 0, 0); */ +/* DEFINE_SHLGUID(IID_IShellView, 0x000214E3L, 0, 0); */ +/* DEFINE_SHLGUID(IID_IShellFolder, 0x000214E6L, 0, 0); */ +/* DEFINE_SHLGUID(IID_IShellExtInit, 0x000214E8L, 0, 0); */ +/* DEFINE_SHLGUID(IID_IPersistFolder, 0x000214EAL, 0, 0); */ +/* DEFINE_SHLGUID(IID_IShellLinkA, 0x000214EEL, 0, 0); */ +/* DEFINE_SHLGUID(IID_IEnumIDList, 0x000214F2L, 0, 0); */ +/* DEFINE_SHLGUID(IID_IShellLinkW, 0x000214F9L, 0, 0); */ + +DEFINE_GUID(SID_STopLevelBrowser, 0x4C96BE40L, 0x915C, 0x11CF, 0x99, 0xD3, 0x00, 0xAA, 0x00, 0x4A, 0xE8, 0x37); + +#define SID_SShellBrowser IID_IShellBrowser + #define IID_IFileViewer WINELIB_NAME_AW(IID_IFileViewer) #define IID_IShellLink WINELIB_NAME_AW(IID_IShellLink) #define IID_IExtractIcon WINELIB_NAME_AW(IID_IExtractIcon) diff --git a/include/shlobj.h b/include/shlobj.h index 52de06c7e3c..44e3067cb4f 100644 --- a/include/shlobj.h +++ b/include/shlobj.h @@ -33,36 +33,17 @@ extern "C" { #include -/**************************************************************************** -* SHITEMID, ITEMIDLIST, PIDL API -*/ -#include -typedef struct -{ - WORD cb; /* nr of bytes in this item */ - BYTE abID[1]; /* first byte in this item */ -} SHITEMID, *LPSHITEMID; -typedef const SHITEMID *LPCSHITEMID; +#include +#include -typedef struct _ITEMIDLIST -{ - SHITEMID mkid; /* first itemid in list */ -} ITEMIDLIST,*LPITEMIDLIST; -typedef const ITEMIDLIST *LPCITEMIDLIST; -#include BOOL WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath); BOOL WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath); #define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList) -#include #include -#include -#include -#include #include -#include #include #include #include @@ -123,6 +104,69 @@ extern UINT cfFileContents; typedef GUID SHELLVIEWID; #define SV_CLASS_NAME ("SHELLDLL_DefView") +#define FCIDM_SHVIEWFIRST 0x0000 +/* undocumented */ +#define FCIDM_SHVIEW_ARRANGE 0x7001 +#define FCIDM_SHVIEW_DELETE 0x7011 +#define FCIDM_SHVIEW_PROPERTIES 0x7013 +#define FCIDM_SHVIEW_CUT 0x7018 +#define FCIDM_SHVIEW_COPY 0x7019 +#define FCIDM_SHVIEW_INSERT 0x701A +#define FCIDM_SHVIEW_UNDO 0x701B +#define FCIDM_SHVIEW_INSERTLINK 0x701C +#define FCIDM_SHVIEW_SELECTALL 0x7021 +#define FCIDM_SHVIEW_INVERTSELECTION 0x7022 + +#define FCIDM_SHVIEW_BIGICON 0x7029 +#define FCIDM_SHVIEW_SMALLICON 0x702A +#define FCIDM_SHVIEW_LISTVIEW 0x702B +#define FCIDM_SHVIEW_REPORTVIEW 0x702C +/* 0x7030-0x703f are used by the shellbrowser */ +#define FCIDM_SHVIEW_AUTOARRANGE 0x7031 +#define FCIDM_SHVIEW_SNAPTOGRID 0x7032 + +#define FCIDM_SHVIEW_HELP 0x7041 +#define FCIDM_SHVIEW_RENAME 0x7050 +#define FCIDM_SHVIEW_CREATELINK 0x7051 +#define FCIDM_SHVIEW_NEWLINK 0x7052 +#define FCIDM_SHVIEW_NEWFOLDER 0x7053 + +#define FCIDM_SHVIEW_REFRESH 0x7100 /* FIXME */ +#define FCIDM_SHVIEW_EXPLORE 0x7101 /* FIXME */ +#define FCIDM_SHVIEW_OPEN 0x7102 /* FIXME */ + +#define FCIDM_SHVIEWLAST 0x7fff +#define FCIDM_BROWSERFIRST 0xA000 +/* undocumented toolbar items from stddlg's*/ +#define FCIDM_TB_UPFOLDER 0xA001 +#define FCIDM_TB_NEWFOLDER 0xA002 +#define FCIDM_TB_SMALLICON 0xA003 +#define FCIDM_TB_REPORTVIEW 0xA004 +#define FCIDM_TB_DESKTOP 0xA005 /* FIXME */ + +#define FCIDM_BROWSERLAST 0xbf00 +#define FCIDM_GLOBALFIRST 0x8000 +#define FCIDM_GLOBALLAST 0x9fff + +/* +* Global submenu IDs and separator IDs +*/ +#define FCIDM_MENU_FILE (FCIDM_GLOBALFIRST+0x0000) +#define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040) +#define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080) +#define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST+0x0081) +#define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST+0x00c0) +#define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST+0x00c1) +#define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100) +#define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140) +#define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST+0x0150) +#define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST+0x0170) + +/* control IDs known to the view */ +#define FCIDM_TOOLBAR (FCIDM_BROWSERFIRST + 0) +#define FCIDM_STATUS (FCIDM_BROWSERFIRST + 1) + + /**************************************************************************** * IShellIcon interface */ diff --git a/include/shobjidl.h b/include/shobjidl.h new file mode 100644 index 00000000000..129d871cb7c --- /dev/null +++ b/include/shobjidl.h @@ -0,0 +1,2750 @@ +/*** Autogenerated by WIDL 0.1 from shobjidl.idl - Do not edit ***/ +#include +#include + +#ifndef __WIDL_SHOBJIDL_H +#define __WIDL_SHOBJIDL_H +#ifdef __cplusplus +extern "C" { +#endif +#include +#include +#include +#include +#include +#include +#ifndef __IPersistFolder_FWD_DEFINED__ +#define __IPersistFolder_FWD_DEFINED__ +typedef struct IPersistFolder IPersistFolder; +#endif + +typedef IPersistFolder *LPPERSISTFOLDER; + +/***************************************************************************** + * IPersistFolder interface + */ +#ifndef __IPersistFolder_INTERFACE_DEFINED__ +#define __IPersistFolder_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IPersistFolder : public IPersist +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + LPCITEMIDLIST pidl) = 0; + +}; +#else +typedef struct IPersistFolderVtbl IPersistFolderVtbl; +struct IPersistFolder { + const IPersistFolderVtbl* lpVtbl; +}; +struct IPersistFolderVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IPersistFolder* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IPersistFolder* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IPersistFolder* This); + + /*** IPersist methods ***/ + HRESULT (STDMETHODCALLTYPE *GetClassID)( + IPersistFolder* This, + CLSID* pClassID); + + /*** IPersistFolder methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IPersistFolder* This, + LPCITEMIDLIST pidl); + +}; + +/*** IUnknown methods ***/ +#define IPersistFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IPersistFolder_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IPersistFolder_Release(p) (p)->lpVtbl->Release(p) +/*** IPersist methods ***/ +#define IPersistFolder_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a) +/*** IPersistFolder methods ***/ +#define IPersistFolder_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) + +#endif + +#define IPersistFolder_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IPersist methods ***/ \ + STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \ + /*** IPersistFolder methods ***/ \ + STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; + +HRESULT CALLBACK IPersistFolder_Initialize_Proxy( + IPersistFolder* This, + LPCITEMIDLIST pidl); +void __RPC_STUB IPersistFolder_Initialize_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IPersistFolder_INTERFACE_DEFINED__ */ + +#ifndef __IPersistFolder2_FWD_DEFINED__ +#define __IPersistFolder2_FWD_DEFINED__ +typedef struct IPersistFolder2 IPersistFolder2; +#endif + +typedef IPersistFolder2 *LPPERSISTFOLDER2; + +/***************************************************************************** + * IPersistFolder2 interface + */ +#ifndef __IPersistFolder2_INTERFACE_DEFINED__ +#define __IPersistFolder2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IPersistFolder2 : public IPersistFolder +{ + virtual HRESULT STDMETHODCALLTYPE GetCurFolder( + LPITEMIDLIST* ppidl) = 0; + +}; +#else +typedef struct IPersistFolder2Vtbl IPersistFolder2Vtbl; +struct IPersistFolder2 { + const IPersistFolder2Vtbl* lpVtbl; +}; +struct IPersistFolder2Vtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IPersistFolder2* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IPersistFolder2* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IPersistFolder2* This); + + /*** IPersist methods ***/ + HRESULT (STDMETHODCALLTYPE *GetClassID)( + IPersistFolder2* This, + CLSID* pClassID); + + /*** IPersistFolder methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IPersistFolder2* This, + LPCITEMIDLIST pidl); + + /*** IPersistFolder2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetCurFolder)( + IPersistFolder2* This, + LPITEMIDLIST* ppidl); + +}; + +/*** IUnknown methods ***/ +#define IPersistFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IPersistFolder2_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IPersistFolder2_Release(p) (p)->lpVtbl->Release(p) +/*** IPersist methods ***/ +#define IPersistFolder2_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a) +/*** IPersistFolder methods ***/ +#define IPersistFolder2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) +/*** IPersistFolder2 methods ***/ +#define IPersistFolder2_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a) + +#endif + +#define IPersistFolder2_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IPersist methods ***/ \ + STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \ + /*** IPersistFolder methods ***/ \ + STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; \ + /*** IPersistFolder2 methods ***/ \ + STDMETHOD_(HRESULT,GetCurFolder)(THIS_ LPITEMIDLIST* ppidl) PURE; + +HRESULT CALLBACK IPersistFolder2_GetCurFolder_Proxy( + IPersistFolder2* This, + LPITEMIDLIST* ppidl); +void __RPC_STUB IPersistFolder2_GetCurFolder_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IPersistFolder2_INTERFACE_DEFINED__ */ + +#ifndef __IEnumIDList_FWD_DEFINED__ +#define __IEnumIDList_FWD_DEFINED__ +typedef struct IEnumIDList IEnumIDList; +#endif + +typedef IEnumIDList *LPENUMIDLIST; + +/***************************************************************************** + * IEnumIDList interface + */ +#ifndef __IEnumIDList_INTERFACE_DEFINED__ +#define __IEnumIDList_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IEnumIDList : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + ULONG celt, + LPITEMIDLIST* rgelt, + ULONG* pceltFetched) = 0; + + virtual HRESULT STDMETHODCALLTYPE Skip( + ULONG celt) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + IEnumIDList** ppenum) = 0; + +}; +#else +typedef struct IEnumIDListVtbl IEnumIDListVtbl; +struct IEnumIDList { + const IEnumIDListVtbl* lpVtbl; +}; +struct IEnumIDListVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IEnumIDList* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IEnumIDList* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IEnumIDList* This); + + /*** IEnumIDList methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IEnumIDList* This, + ULONG celt, + LPITEMIDLIST* rgelt, + ULONG* pceltFetched); + + HRESULT (STDMETHODCALLTYPE *Skip)( + IEnumIDList* This, + ULONG celt); + + HRESULT (STDMETHODCALLTYPE *Reset)( + IEnumIDList* This); + + HRESULT (STDMETHODCALLTYPE *Clone)( + IEnumIDList* This, + IEnumIDList** ppenum); + +}; + +/*** IUnknown methods ***/ +#define IEnumIDList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IEnumIDList_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IEnumIDList_Release(p) (p)->lpVtbl->Release(p) +/*** IEnumIDList methods ***/ +#define IEnumIDList_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) +#define IEnumIDList_Skip(p,a) (p)->lpVtbl->Skip(p,a) +#define IEnumIDList_Reset(p) (p)->lpVtbl->Reset(p) +#define IEnumIDList_Clone(p,a) (p)->lpVtbl->Clone(p,a) + +#endif + +#define IEnumIDList_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IEnumIDList methods ***/ \ + STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, LPITEMIDLIST* rgelt, ULONG* pceltFetched) PURE; \ + STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \ + STDMETHOD_(HRESULT,Reset)(THIS) PURE; \ + STDMETHOD_(HRESULT,Clone)(THIS_ IEnumIDList** ppenum) PURE; + +HRESULT CALLBACK IEnumIDList_Next_Proxy( + IEnumIDList* This, + ULONG celt, + LPITEMIDLIST* rgelt, + ULONG* pceltFetched); +void __RPC_STUB IEnumIDList_Next_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IEnumIDList_Skip_Proxy( + IEnumIDList* This, + ULONG celt); +void __RPC_STUB IEnumIDList_Skip_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IEnumIDList_Reset_Proxy( + IEnumIDList* This); +void __RPC_STUB IEnumIDList_Reset_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IEnumIDList_Clone_Proxy( + IEnumIDList* This, + IEnumIDList** ppenum); +void __RPC_STUB IEnumIDList_Clone_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IEnumIDList_INTERFACE_DEFINED__ */ + +#ifndef __IShellFolder_FWD_DEFINED__ +#define __IShellFolder_FWD_DEFINED__ +typedef struct IShellFolder IShellFolder; +#endif + +typedef IShellFolder *LPSHELLFOLDER; + +typedef enum tagSHGDN { + SHGDN_NORMAL = 0, + SHGDN_INFOLDER = 1, + SHGDN_FOREDITING = 0x1000, + SHGDN_INCLUDE_NONFILESYS = 0x2000, + SHGDN_FORADDRESSBAR = 0x4000, + SHGDN_FORPARSING = 0x8000 +} SHGNO; + +typedef DWORD SHGDNF; + +enum tagSHCONTF { + SHCONTF_FOLDERS = 32, + SHCONTF_NONFOLDERS = 64, + SHCONTF_INCLUDEHIDDEN = 128, + SHCONTF_INIT_ON_FIRST_NEXT = 256, + SHCONTF_NETPRINTERSRCH = 512, + SHCONTF_SHAREABLE = 1024, + SHCONTF_STORAGE = 2048 +}; + +typedef DWORD SHCONTF; + +#define SFGAO_CANCOPY DROPEFFECT_COPY +#define SFGAO_CANMOVE DROPEFFECT_MOVE +#define SFGAO_CANLINK DROPEFFECT_LINK +#define SFGAO_CANRENAME 0x00000010L +#define SFGAO_CANDELETE 0x00000020L +#define SFGAO_HASPROPSHEET 0x00000040L +#define SFGAO_DROPTARGET 0x00000100L +#define SFGAO_CAPABILITYMASK 0x00000177L +#define SFGAO_LINK 0x00010000L +#define SFGAO_SHARE 0x00020000L +#define SFGAO_READONLY 0x00040000L +#define SFGAO_GHOSTED 0x00080000L +#define SFGAO_HIDDEN 0x00080000L +#define SFGAO_DISPLAYATTRMASK 0x000F0000L +#define SFGAO_FILESYSANCESTOR 0x10000000L +#define SFGAO_FOLDER 0x20000000L +#define SFGAO_FILESYSTEM 0x40000000L +#define SFGAO_HASSUBFOLDER 0x80000000L +#define SFGAO_CONTENTSMASK 0x80000000L +#define SFGAO_VALIDATE 0x01000000L +#define SFGAO_REMOVABLE 0x02000000L +#define SFGAO_COMPRESSED 0x04000000L +#define SFGAO_BROWSABLE 0x08000000L +#define SFGAO_NONENUMERATED 0x00100000L +#define SFGAO_NEWCONTENT 0x00200000L +typedef ULONG SFGAOF; + +/***************************************************************************** + * IShellFolder interface + */ +#ifndef __IShellFolder_INTERFACE_DEFINED__ +#define __IShellFolder_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IShellFolder : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ParseDisplayName( + HWND hwndOwner, + LPBC pbcReserved, + LPOLESTR lpszDisplayName, + ULONG* pchEaten, + LPITEMIDLIST* ppidl, + ULONG* pdwAttributes) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnumObjects( + HWND hwndOwner, + SHCONTF grfFlags, + IEnumIDList** ppenumIDList) = 0; + + virtual HRESULT STDMETHODCALLTYPE BindToObject( + LPCITEMIDLIST pidl, + LPBC pbcReserved, + REFIID riid, + void** ppvOut) = 0; + + virtual HRESULT STDMETHODCALLTYPE BindToStorage( + LPCITEMIDLIST pidl, + LPBC pbcReserved, + REFIID riid, + void** ppvObj) = 0; + + virtual HRESULT STDMETHODCALLTYPE CompareIDs( + LPARAM lParam, + LPCITEMIDLIST pidl1, + LPCITEMIDLIST pidl2) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateViewObject( + HWND hwndOwner, + REFIID riid, + void** ppvOut) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAttributesOf( + UINT cidl, + LPCITEMIDLIST* apidl, + SFGAOF* rgfInOut) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf( + HWND hwndOwner, + UINT cidl, + LPCITEMIDLIST* apidl, + REFIID riid, + UINT* prgfInOut, + void** ppvOut) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf( + LPCITEMIDLIST pidl, + SHGDNF uFlags, + STRRET* lpName) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetNameOf( + HWND hwnd, + LPCITEMIDLIST pidl, + LPCOLESTR lpszName, + SHGDNF uFlags, + LPITEMIDLIST* ppidlOut) = 0; + +}; +#else +typedef struct IShellFolderVtbl IShellFolderVtbl; +struct IShellFolder { + const IShellFolderVtbl* lpVtbl; +}; +struct IShellFolderVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IShellFolder* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IShellFolder* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IShellFolder* This); + + /*** IShellFolder methods ***/ + HRESULT (STDMETHODCALLTYPE *ParseDisplayName)( + IShellFolder* This, + HWND hwndOwner, + LPBC pbcReserved, + LPOLESTR lpszDisplayName, + ULONG* pchEaten, + LPITEMIDLIST* ppidl, + ULONG* pdwAttributes); + + HRESULT (STDMETHODCALLTYPE *EnumObjects)( + IShellFolder* This, + HWND hwndOwner, + SHCONTF grfFlags, + IEnumIDList** ppenumIDList); + + HRESULT (STDMETHODCALLTYPE *BindToObject)( + IShellFolder* This, + LPCITEMIDLIST pidl, + LPBC pbcReserved, + REFIID riid, + void** ppvOut); + + HRESULT (STDMETHODCALLTYPE *BindToStorage)( + IShellFolder* This, + LPCITEMIDLIST pidl, + LPBC pbcReserved, + REFIID riid, + void** ppvObj); + + HRESULT (STDMETHODCALLTYPE *CompareIDs)( + IShellFolder* This, + LPARAM lParam, + LPCITEMIDLIST pidl1, + LPCITEMIDLIST pidl2); + + HRESULT (STDMETHODCALLTYPE *CreateViewObject)( + IShellFolder* This, + HWND hwndOwner, + REFIID riid, + void** ppvOut); + + HRESULT (STDMETHODCALLTYPE *GetAttributesOf)( + IShellFolder* This, + UINT cidl, + LPCITEMIDLIST* apidl, + SFGAOF* rgfInOut); + + HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)( + IShellFolder* This, + HWND hwndOwner, + UINT cidl, + LPCITEMIDLIST* apidl, + REFIID riid, + UINT* prgfInOut, + void** ppvOut); + + HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)( + IShellFolder* This, + LPCITEMIDLIST pidl, + SHGDNF uFlags, + STRRET* lpName); + + HRESULT (STDMETHODCALLTYPE *SetNameOf)( + IShellFolder* This, + HWND hwnd, + LPCITEMIDLIST pidl, + LPCOLESTR lpszName, + SHGDNF uFlags, + LPITEMIDLIST* ppidlOut); + +}; + +/*** IUnknown methods ***/ +#define IShellFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IShellFolder_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IShellFolder_Release(p) (p)->lpVtbl->Release(p) +/*** IShellFolder methods ***/ +#define IShellFolder_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f) +#define IShellFolder_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c) +#define IShellFolder_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d) +#define IShellFolder_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d) +#define IShellFolder_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c) +#define IShellFolder_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c) +#define IShellFolder_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c) +#define IShellFolder_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f) +#define IShellFolder_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c) +#define IShellFolder_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e) + +#endif + +#define IShellFolder_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IShellFolder methods ***/ \ + STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \ + STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \ + STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \ + STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \ + STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \ + STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \ + STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \ + STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \ + STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \ + STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE; + +HRESULT CALLBACK IShellFolder_ParseDisplayName_Proxy( + IShellFolder* This, + HWND hwndOwner, + LPBC pbcReserved, + LPOLESTR lpszDisplayName, + ULONG* pchEaten, + LPITEMIDLIST* ppidl, + ULONG* pdwAttributes); +void __RPC_STUB IShellFolder_ParseDisplayName_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder_EnumObjects_Proxy( + IShellFolder* This, + HWND hwndOwner, + SHCONTF grfFlags, + IEnumIDList** ppenumIDList); +void __RPC_STUB IShellFolder_EnumObjects_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder_BindToObject_Proxy( + IShellFolder* This, + LPCITEMIDLIST pidl, + LPBC pbcReserved, + REFIID riid, + void** ppvOut); +void __RPC_STUB IShellFolder_BindToObject_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder_BindToStorage_Proxy( + IShellFolder* This, + LPCITEMIDLIST pidl, + LPBC pbcReserved, + REFIID riid, + void** ppvObj); +void __RPC_STUB IShellFolder_BindToStorage_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder_CompareIDs_Proxy( + IShellFolder* This, + LPARAM lParam, + LPCITEMIDLIST pidl1, + LPCITEMIDLIST pidl2); +void __RPC_STUB IShellFolder_CompareIDs_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder_CreateViewObject_Proxy( + IShellFolder* This, + HWND hwndOwner, + REFIID riid, + void** ppvOut); +void __RPC_STUB IShellFolder_CreateViewObject_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder_GetAttributesOf_Proxy( + IShellFolder* This, + UINT cidl, + LPCITEMIDLIST* apidl, + SFGAOF* rgfInOut); +void __RPC_STUB IShellFolder_GetAttributesOf_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder_GetUIObjectOf_Proxy( + IShellFolder* This, + HWND hwndOwner, + UINT cidl, + LPCITEMIDLIST* apidl, + REFIID riid, + UINT* prgfInOut, + void** ppvOut); +void __RPC_STUB IShellFolder_GetUIObjectOf_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder_GetDisplayNameOf_Proxy( + IShellFolder* This, + LPCITEMIDLIST pidl, + SHGDNF uFlags, + STRRET* lpName); +void __RPC_STUB IShellFolder_GetDisplayNameOf_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder_SetNameOf_Proxy( + IShellFolder* This, + HWND hwnd, + LPCITEMIDLIST pidl, + LPCOLESTR lpszName, + SHGDNF uFlags, + LPITEMIDLIST* ppidlOut); +void __RPC_STUB IShellFolder_SetNameOf_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IShellFolder_INTERFACE_DEFINED__ */ + +#ifndef __IEnumExtraSearch_FWD_DEFINED__ +#define __IEnumExtraSearch_FWD_DEFINED__ +typedef struct IEnumExtraSearch IEnumExtraSearch; +#endif + +typedef IEnumExtraSearch *LPENUMEXTRASEARCH; + +typedef struct { + GUID guidSearch; + WCHAR wszFriendlyName[80]; + WCHAR wszUrl[2084]; +} EXTRASEARCH, *LPEXTRASEARCH; + +/***************************************************************************** + * IEnumExtraSearch interface + */ +#ifndef __IEnumExtraSearch_INTERFACE_DEFINED__ +#define __IEnumExtraSearch_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IEnumExtraSearch : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + ULONG celt, + EXTRASEARCH* rgelt, + ULONG* pceltFetched) = 0; + + virtual HRESULT STDMETHODCALLTYPE Skip( + ULONG celt) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + IEnumExtraSearch** ppenum) = 0; + +}; +#else +typedef struct IEnumExtraSearchVtbl IEnumExtraSearchVtbl; +struct IEnumExtraSearch { + const IEnumExtraSearchVtbl* lpVtbl; +}; +struct IEnumExtraSearchVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IEnumExtraSearch* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IEnumExtraSearch* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IEnumExtraSearch* This); + + /*** IEnumExtraSearch methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IEnumExtraSearch* This, + ULONG celt, + EXTRASEARCH* rgelt, + ULONG* pceltFetched); + + HRESULT (STDMETHODCALLTYPE *Skip)( + IEnumExtraSearch* This, + ULONG celt); + + HRESULT (STDMETHODCALLTYPE *Reset)( + IEnumExtraSearch* This); + + HRESULT (STDMETHODCALLTYPE *Clone)( + IEnumExtraSearch* This, + IEnumExtraSearch** ppenum); + +}; + +/*** IUnknown methods ***/ +#define IEnumExtraSearch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IEnumExtraSearch_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IEnumExtraSearch_Release(p) (p)->lpVtbl->Release(p) +/*** IEnumExtraSearch methods ***/ +#define IEnumExtraSearch_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) +#define IEnumExtraSearch_Skip(p,a) (p)->lpVtbl->Skip(p,a) +#define IEnumExtraSearch_Reset(p) (p)->lpVtbl->Reset(p) +#define IEnumExtraSearch_Clone(p,a) (p)->lpVtbl->Clone(p,a) + +#endif + +#define IEnumExtraSearch_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IEnumExtraSearch methods ***/ \ + STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, EXTRASEARCH* rgelt, ULONG* pceltFetched) PURE; \ + STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \ + STDMETHOD_(HRESULT,Reset)(THIS) PURE; \ + STDMETHOD_(HRESULT,Clone)(THIS_ IEnumExtraSearch** ppenum) PURE; + +HRESULT CALLBACK IEnumExtraSearch_Next_Proxy( + IEnumExtraSearch* This, + ULONG celt, + EXTRASEARCH* rgelt, + ULONG* pceltFetched); +void __RPC_STUB IEnumExtraSearch_Next_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IEnumExtraSearch_Skip_Proxy( + IEnumExtraSearch* This, + ULONG celt); +void __RPC_STUB IEnumExtraSearch_Skip_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IEnumExtraSearch_Reset_Proxy( + IEnumExtraSearch* This); +void __RPC_STUB IEnumExtraSearch_Reset_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IEnumExtraSearch_Clone_Proxy( + IEnumExtraSearch* This, + IEnumExtraSearch** ppenum); +void __RPC_STUB IEnumExtraSearch_Clone_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IEnumExtraSearch_INTERFACE_DEFINED__ */ + +#ifndef __IShellFolder2_FWD_DEFINED__ +#define __IShellFolder2_FWD_DEFINED__ +typedef struct IShellFolder2 IShellFolder2; +#endif + +typedef enum { + SHCOLSTATE_TYPE_STR = 0x1, + SHCOLSTATE_TYPE_INT = 0x2, + SHCOLSTATE_TYPE_DATE = 0x3, + SHCOLSTATE_TYPEMASK = 0xf, + SHCOLSTATE_ONBYDEFAULT = 0x10, + SHCOLSTATE_SLOW = 0x20, + SHCOLSTATE_EXTENDED = 0x40, + SHCOLSTATE_SECONDARYUI = 0x80, + SHCOLSTATE_HIDDEN = 0x100, + SHCOLSTATE_PREFER_VARCMP = 0x200 +} SHCOLSTATE; + +typedef DWORD SHCOLSTATEF; + +typedef struct { + GUID fmtid; + DWORD pid; +} SHCOLUMNID, *LPSHCOLUMNID; + +typedef const SHCOLUMNID *LPCSHCOLUMNID; + +/***************************************************************************** + * IShellFolder2 interface + */ +#ifndef __IShellFolder2_INTERFACE_DEFINED__ +#define __IShellFolder2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IShellFolder2 : public IShellFolder +{ + virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID( + GUID* lpguid) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnumSearches( + IEnumExtraSearch** ppenum) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn( + DWORD dwReserved, + ULONG* pSort, + ULONG* pDisplay) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState( + UINT iColumn, + SHCOLSTATEF* pcsFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDetailsEx( + LPCITEMIDLIST pidl, + const SHCOLUMNID* pscid, + VARIANT* pv) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDetailsOf( + LPCITEMIDLIST pidl, + UINT iColumn, + SHELLDETAILS* psd) = 0; + + virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID( + UINT iColumn, + SHCOLUMNID* pscid) = 0; + +}; +#else +typedef struct IShellFolder2Vtbl IShellFolder2Vtbl; +struct IShellFolder2 { + const IShellFolder2Vtbl* lpVtbl; +}; +struct IShellFolder2Vtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IShellFolder2* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IShellFolder2* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IShellFolder2* This); + + /*** IShellFolder methods ***/ + HRESULT (STDMETHODCALLTYPE *ParseDisplayName)( + IShellFolder2* This, + HWND hwndOwner, + LPBC pbcReserved, + LPOLESTR lpszDisplayName, + ULONG* pchEaten, + LPITEMIDLIST* ppidl, + ULONG* pdwAttributes); + + HRESULT (STDMETHODCALLTYPE *EnumObjects)( + IShellFolder2* This, + HWND hwndOwner, + SHCONTF grfFlags, + IEnumIDList** ppenumIDList); + + HRESULT (STDMETHODCALLTYPE *BindToObject)( + IShellFolder2* This, + LPCITEMIDLIST pidl, + LPBC pbcReserved, + REFIID riid, + void** ppvOut); + + HRESULT (STDMETHODCALLTYPE *BindToStorage)( + IShellFolder2* This, + LPCITEMIDLIST pidl, + LPBC pbcReserved, + REFIID riid, + void** ppvObj); + + HRESULT (STDMETHODCALLTYPE *CompareIDs)( + IShellFolder2* This, + LPARAM lParam, + LPCITEMIDLIST pidl1, + LPCITEMIDLIST pidl2); + + HRESULT (STDMETHODCALLTYPE *CreateViewObject)( + IShellFolder2* This, + HWND hwndOwner, + REFIID riid, + void** ppvOut); + + HRESULT (STDMETHODCALLTYPE *GetAttributesOf)( + IShellFolder2* This, + UINT cidl, + LPCITEMIDLIST* apidl, + SFGAOF* rgfInOut); + + HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)( + IShellFolder2* This, + HWND hwndOwner, + UINT cidl, + LPCITEMIDLIST* apidl, + REFIID riid, + UINT* prgfInOut, + void** ppvOut); + + HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)( + IShellFolder2* This, + LPCITEMIDLIST pidl, + SHGDNF uFlags, + STRRET* lpName); + + HRESULT (STDMETHODCALLTYPE *SetNameOf)( + IShellFolder2* This, + HWND hwnd, + LPCITEMIDLIST pidl, + LPCOLESTR lpszName, + SHGDNF uFlags, + LPITEMIDLIST* ppidlOut); + + /*** IShellFolder2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)( + IShellFolder2* This, + GUID* lpguid); + + HRESULT (STDMETHODCALLTYPE *EnumSearches)( + IShellFolder2* This, + IEnumExtraSearch** ppenum); + + HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)( + IShellFolder2* This, + DWORD dwReserved, + ULONG* pSort, + ULONG* pDisplay); + + HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)( + IShellFolder2* This, + UINT iColumn, + SHCOLSTATEF* pcsFlags); + + HRESULT (STDMETHODCALLTYPE *GetDetailsEx)( + IShellFolder2* This, + LPCITEMIDLIST pidl, + const SHCOLUMNID* pscid, + VARIANT* pv); + + HRESULT (STDMETHODCALLTYPE *GetDetailsOf)( + IShellFolder2* This, + LPCITEMIDLIST pidl, + UINT iColumn, + SHELLDETAILS* psd); + + HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)( + IShellFolder2* This, + UINT iColumn, + SHCOLUMNID* pscid); + +}; + +/*** IUnknown methods ***/ +#define IShellFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IShellFolder2_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IShellFolder2_Release(p) (p)->lpVtbl->Release(p) +/*** IShellFolder methods ***/ +#define IShellFolder2_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f) +#define IShellFolder2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c) +#define IShellFolder2_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d) +#define IShellFolder2_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d) +#define IShellFolder2_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c) +#define IShellFolder2_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c) +#define IShellFolder2_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c) +#define IShellFolder2_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f) +#define IShellFolder2_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c) +#define IShellFolder2_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e) +/*** IShellFolder2 methods ***/ +#define IShellFolder2_GetDefaultSearchGUID(p,a) (p)->lpVtbl->GetDefaultSearchGUID(p,a) +#define IShellFolder2_EnumSearches(p,a) (p)->lpVtbl->EnumSearches(p,a) +#define IShellFolder2_GetDefaultColumn(p,a,b,c) (p)->lpVtbl->GetDefaultColumn(p,a,b,c) +#define IShellFolder2_GetDefaultColumnState(p,a,b) (p)->lpVtbl->GetDefaultColumnState(p,a,b) +#define IShellFolder2_GetDetailsEx(p,a,b,c) (p)->lpVtbl->GetDetailsEx(p,a,b,c) +#define IShellFolder2_GetDetailsOf(p,a,b,c) (p)->lpVtbl->GetDetailsOf(p,a,b,c) +#define IShellFolder2_MapColumnToSCID(p,a,b) (p)->lpVtbl->MapColumnToSCID(p,a,b) + +#endif + +#define IShellFolder2_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IShellFolder methods ***/ \ + STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes) PURE; \ + STDMETHOD_(HRESULT,EnumObjects)(THIS_ HWND hwndOwner, SHCONTF grfFlags, IEnumIDList** ppenumIDList) PURE; \ + STDMETHOD_(HRESULT,BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvOut) PURE; \ + STDMETHOD_(HRESULT,BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, void** ppvObj) PURE; \ + STDMETHOD_(HRESULT,CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE; \ + STDMETHOD_(HRESULT,CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, void** ppvOut) PURE; \ + STDMETHOD_(HRESULT,GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST* apidl, SFGAOF* rgfInOut) PURE; \ + STDMETHOD_(HRESULT,GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, void** ppvOut) PURE; \ + STDMETHOD_(HRESULT,GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, SHGDNF uFlags, STRRET* lpName) PURE; \ + STDMETHOD_(HRESULT,SetNameOf)(THIS_ HWND hwnd, LPCITEMIDLIST pidl, LPCOLESTR lpszName, SHGDNF uFlags, LPITEMIDLIST* ppidlOut) PURE; \ + /*** IShellFolder2 methods ***/ \ + STDMETHOD_(HRESULT,GetDefaultSearchGUID)(THIS_ GUID* lpguid) PURE; \ + STDMETHOD_(HRESULT,EnumSearches)(THIS_ IEnumExtraSearch** ppenum) PURE; \ + STDMETHOD_(HRESULT,GetDefaultColumn)(THIS_ DWORD dwReserved, ULONG* pSort, ULONG* pDisplay) PURE; \ + STDMETHOD_(HRESULT,GetDefaultColumnState)(THIS_ UINT iColumn, SHCOLSTATEF* pcsFlags) PURE; \ + STDMETHOD_(HRESULT,GetDetailsEx)(THIS_ LPCITEMIDLIST pidl, const SHCOLUMNID* pscid, VARIANT* pv) PURE; \ + STDMETHOD_(HRESULT,GetDetailsOf)(THIS_ LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS* psd) PURE; \ + STDMETHOD_(HRESULT,MapColumnToSCID)(THIS_ UINT iColumn, SHCOLUMNID* pscid) PURE; + +HRESULT CALLBACK IShellFolder2_GetDefaultSearchGUID_Proxy( + IShellFolder2* This, + GUID* lpguid); +void __RPC_STUB IShellFolder2_GetDefaultSearchGUID_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder2_EnumSearches_Proxy( + IShellFolder2* This, + IEnumExtraSearch** ppenum); +void __RPC_STUB IShellFolder2_EnumSearches_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder2_GetDefaultColumn_Proxy( + IShellFolder2* This, + DWORD dwReserved, + ULONG* pSort, + ULONG* pDisplay); +void __RPC_STUB IShellFolder2_GetDefaultColumn_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder2_GetDefaultColumnState_Proxy( + IShellFolder2* This, + UINT iColumn, + SHCOLSTATEF* pcsFlags); +void __RPC_STUB IShellFolder2_GetDefaultColumnState_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder2_GetDetailsEx_Proxy( + IShellFolder2* This, + LPCITEMIDLIST pidl, + const SHCOLUMNID* pscid, + VARIANT* pv); +void __RPC_STUB IShellFolder2_GetDetailsEx_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder2_GetDetailsOf_Proxy( + IShellFolder2* This, + LPCITEMIDLIST pidl, + UINT iColumn, + SHELLDETAILS* psd); +void __RPC_STUB IShellFolder2_GetDetailsOf_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellFolder2_MapColumnToSCID_Proxy( + IShellFolder2* This, + UINT iColumn, + SHCOLUMNID* pscid); +void __RPC_STUB IShellFolder2_MapColumnToSCID_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IShellFolder2_INTERFACE_DEFINED__ */ + +typedef char *LPVIEWSETTINGS; + +typedef enum { + FWF_AUTOARRANGE = 0x1, + FWF_ABBREVIATEDNAMES = 0x2, + FWF_SNAPTOGRID = 0x4, + FWF_OWNERDATA = 0x8, + FWF_BESTFITWINDOW = 0x10, + FWF_DESKTOP = 0x20, + FWF_SINGLESEL = 0x40, + FWF_NOSUBFOLDERS = 0x80, + FWF_TRANSPARENT = 0x100, + FWF_NOCLIENTEDGE = 0x200, + FWF_NOSCROLL = 0x400, + FWF_ALIGNLEFT = 0x800, + FWF_NOICONS = 0x1000, + FWF_SHOWSELALWAYS = 0x2000, + FWF_NOVISIBLE = 0x4000, + FWF_SINGLECLICKACTIVATE = 0x8000, + FWF_NOWEBVIEW = 0x10000, + FWF_HIDEFILENAMES = 0x20000, + FWF_CHECKSELECT = 0x40000 +} FOLDERFLAGS; + +typedef enum { + FVM_ICON = 1, + FVM_FIRST = FVM_ICON, + FVM_SMALLICON = 2, + FVM_LIST = 3, + FVM_DETAILS = 4, + FVM_THUMBNAIL = 5, + FVM_TILE = 6, + FVM_THUMBSTRIP = 7, + FVM_LAST = FVM_THUMBSTRIP +} FOLDERVIEWMODE; + +typedef struct { + UINT ViewMode; + UINT fFlags; +} FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS; + +typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS; + +#ifndef __IShellBrowser_FWD_DEFINED__ +#define __IShellBrowser_FWD_DEFINED__ +typedef struct IShellBrowser IShellBrowser; +#endif + +#ifndef __IShellView_FWD_DEFINED__ +#define __IShellView_FWD_DEFINED__ +typedef struct IShellView IShellView; +#endif + +typedef IShellView *LPSHELLVIEW; + +#define SVSI_DESELECT 0x00000000 +#define SVSI_SELECT 0x00000001 +#define SVSI_EDIT 0x00000003 +#define SVSI_DESELECTOTHERS 0x00000004 +#define SVSI_ENSUREVISIBLE 0x00000008 +#define SVSI_FOCUSED 0x00000010 +#define SVSI_TRANSLATEPT 0x00000020 +#define SVSI_SELECTIONMARK 0x00000040 +#define SVSI_POSITIONITEM 0x00000080 +#define SVSI_CHECK 0x00000100 +#define SVSI_NOSTATECHANGE 0x80000000 +typedef UINT SVSIF; + +typedef enum { + SVGIO_BACKGROUND = 0x0, + SVGIO_SELECTION = 0x1, + SVGIO_ALLVIEW = 0x2, + SVGIO_CHECKED = 0x3, + SVGIO_TYPE_MASK = 0xf, + SVGIO_FLAG_VIEWORDER = 0x80000000 +} SVGIO; + +typedef enum { + SVUIA_DEACTIVATE = 0, + SVUIA_ACTIVATE_NOFOCUS = 1, + SVUIA_ACTIVATE_FOCUS = 2, + SVUIA_INPLACEACTIVATE = 3 +} SVUIA_STATUS; + +#if 0 +typedef LPARAM LPFNSVADDPROPSHEETPAGE; + +#else +#include +typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE; +#endif +/***************************************************************************** + * IShellView interface + */ +#ifndef __IShellView_INTERFACE_DEFINED__ +#define __IShellView_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IShellView : public IOleWindow +{ + virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator( + MSG* pmsg) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableModeless( + BOOL fEnable) = 0; + + virtual HRESULT STDMETHODCALLTYPE UIActivate( + UINT uState) = 0; + + virtual HRESULT STDMETHODCALLTYPE Refresh( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateViewWindow( + IShellView* psvPrevious, + LPCFOLDERSETTINGS lpfs, + IShellBrowser* psb, + RECT* prcView, + HWND* phWnd) = 0; + + virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo( + LPFOLDERSETTINGS lpfs) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages( + DWORD dwReserved, + LPFNSVADDPROPSHEETPAGE pfn, + LPARAM lparam) = 0; + + virtual HRESULT STDMETHODCALLTYPE SaveViewState( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SelectItem( + LPCITEMIDLIST pidlItem, + SVSIF uFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetItemObject( + UINT uItem, + REFIID riid, + void** ppv) = 0; + +}; +#else +typedef struct IShellViewVtbl IShellViewVtbl; +struct IShellView { + const IShellViewVtbl* lpVtbl; +}; +struct IShellViewVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IShellView* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IShellView* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IShellView* This); + + /*** IOleWindow methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWindow)( + IShellView* This, + HWND* phwnd); + + HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)( + IShellView* This, + BOOL fEnterMode); + + /*** IShellView methods ***/ + HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)( + IShellView* This, + MSG* pmsg); + + HRESULT (STDMETHODCALLTYPE *EnableModeless)( + IShellView* This, + BOOL fEnable); + + HRESULT (STDMETHODCALLTYPE *UIActivate)( + IShellView* This, + UINT uState); + + HRESULT (STDMETHODCALLTYPE *Refresh)( + IShellView* This); + + HRESULT (STDMETHODCALLTYPE *CreateViewWindow)( + IShellView* This, + IShellView* psvPrevious, + LPCFOLDERSETTINGS lpfs, + IShellBrowser* psb, + RECT* prcView, + HWND* phWnd); + + HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)( + IShellView* This); + + HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)( + IShellView* This, + LPFOLDERSETTINGS lpfs); + + HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)( + IShellView* This, + DWORD dwReserved, + LPFNSVADDPROPSHEETPAGE pfn, + LPARAM lparam); + + HRESULT (STDMETHODCALLTYPE *SaveViewState)( + IShellView* This); + + HRESULT (STDMETHODCALLTYPE *SelectItem)( + IShellView* This, + LPCITEMIDLIST pidlItem, + SVSIF uFlags); + + HRESULT (STDMETHODCALLTYPE *GetItemObject)( + IShellView* This, + UINT uItem, + REFIID riid, + void** ppv); + +}; + +/*** IUnknown methods ***/ +#define IShellView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IShellView_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IShellView_Release(p) (p)->lpVtbl->Release(p) +/*** IOleWindow methods ***/ +#define IShellView_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a) +#define IShellView_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a) +/*** IShellView methods ***/ +#define IShellView_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a) +#define IShellView_EnableModeless(p,a) (p)->lpVtbl->EnableModeless(p,a) +#define IShellView_UIActivate(p,a) (p)->lpVtbl->UIActivate(p,a) +#define IShellView_Refresh(p) (p)->lpVtbl->Refresh(p) +#define IShellView_CreateViewWindow(p,a,b,c,d,e) (p)->lpVtbl->CreateViewWindow(p,a,b,c,d,e) +#define IShellView_DestroyViewWindow(p) (p)->lpVtbl->DestroyViewWindow(p) +#define IShellView_GetCurrentInfo(p,a) (p)->lpVtbl->GetCurrentInfo(p,a) +#define IShellView_AddPropertySheetPages(p,a,b,c) (p)->lpVtbl->AddPropertySheetPages(p,a,b,c) +#define IShellView_SaveViewState(p) (p)->lpVtbl->SaveViewState(p) +#define IShellView_SelectItem(p,a,b) (p)->lpVtbl->SelectItem(p,a,b) +#define IShellView_GetItemObject(p,a,b,c) (p)->lpVtbl->GetItemObject(p,a,b,c) + +#endif + +#define IShellView_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IOleWindow methods ***/ \ + STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \ + STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \ + /*** IShellView methods ***/ \ + STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ MSG* pmsg) PURE; \ + STDMETHOD_(HRESULT,EnableModeless)(THIS_ BOOL fEnable) PURE; \ + STDMETHOD_(HRESULT,UIActivate)(THIS_ UINT uState) PURE; \ + STDMETHOD_(HRESULT,Refresh)(THIS) PURE; \ + STDMETHOD_(HRESULT,CreateViewWindow)(THIS_ IShellView* psvPrevious, LPCFOLDERSETTINGS lpfs, IShellBrowser* psb, RECT* prcView, HWND* phWnd) PURE; \ + STDMETHOD_(HRESULT,DestroyViewWindow)(THIS) PURE; \ + STDMETHOD_(HRESULT,GetCurrentInfo)(THIS_ LPFOLDERSETTINGS lpfs) PURE; \ + STDMETHOD_(HRESULT,AddPropertySheetPages)(THIS_ DWORD dwReserved, LPFNSVADDPROPSHEETPAGE pfn, LPARAM lparam) PURE; \ + STDMETHOD_(HRESULT,SaveViewState)(THIS) PURE; \ + STDMETHOD_(HRESULT,SelectItem)(THIS_ LPCITEMIDLIST pidlItem, SVSIF uFlags) PURE; \ + STDMETHOD_(HRESULT,GetItemObject)(THIS_ UINT uItem, REFIID riid, void** ppv) PURE; + +HRESULT CALLBACK IShellView_TranslateAccelerator_Proxy( + IShellView* This, + MSG* pmsg); +void __RPC_STUB IShellView_TranslateAccelerator_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellView_EnableModeless_Proxy( + IShellView* This, + BOOL fEnable); +void __RPC_STUB IShellView_EnableModeless_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellView_UIActivate_Proxy( + IShellView* This, + UINT uState); +void __RPC_STUB IShellView_UIActivate_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellView_Refresh_Proxy( + IShellView* This); +void __RPC_STUB IShellView_Refresh_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellView_CreateViewWindow_Proxy( + IShellView* This, + IShellView* psvPrevious, + LPCFOLDERSETTINGS lpfs, + IShellBrowser* psb, + RECT* prcView, + HWND* phWnd); +void __RPC_STUB IShellView_CreateViewWindow_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellView_DestroyViewWindow_Proxy( + IShellView* This); +void __RPC_STUB IShellView_DestroyViewWindow_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellView_GetCurrentInfo_Proxy( + IShellView* This, + LPFOLDERSETTINGS lpfs); +void __RPC_STUB IShellView_GetCurrentInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellView_SaveViewState_Proxy( + IShellView* This); +void __RPC_STUB IShellView_SaveViewState_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellView_SelectItem_Proxy( + IShellView* This, + LPCITEMIDLIST pidlItem, + SVSIF uFlags); +void __RPC_STUB IShellView_SelectItem_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellView_GetItemObject_Proxy( + IShellView* This, + UINT uItem, + REFIID riid, + void** ppv); +void __RPC_STUB IShellView_GetItemObject_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IShellView_INTERFACE_DEFINED__ */ + +typedef IShellBrowser *LPSHELLBROWSER; + +#define SBSP_DEFBROWSER 0x00000000 +#define SBSP_SAMEBROWSER 0x00000001 +#define SBSP_NEWBROWSER 0x00000002 +#define SBSP_DEFMODE 0x00000000 +#define SBSP_OPENMODE 0x00000010 +#define SBSP_EXPLOREMODE 0x00000020 +#define SBSP_HELPMODE 0x00000040 +#define SBSP_NOTRANSFERHIST 0x00000080 +#define SBSP_ABSOLUTE 0x00000000 +#define SBSP_RELATIVE 0x00001000 +#define SBSP_PARENT 0x00002000 +#define SBSP_NAVIGATEBACK 0x00004000 +#define SBSP_NAVIGATEFORWARD 0x00008000 +#define SBSP_ALLOW_AUTONAVIGATE 0x00010000 +#define SBSP_NOAUTOSELECT 0x04000000 +#define SBSP_WRITENOHISTORY 0x08000000 +#define SBSP_REDIRECT 0x40000000 +#define SBSP_INITIATEDBYHLINKFRAME 0x80000000 +#define FCW_STATUS 0x0001 +#define FCW_TOOLBAR 0x0002 +#define FCW_TREE 0x0003 +#define FCW_INTERNETBAR 0x0006 +#define FCW_PROGRESS 0x0008 +#define FCT_MERGE 0x0001 +#define FCT_CONFIGABLE 0x0002 +#define FCT_ADDTOEND 0x0004 +#if 0 +typedef LPARAM LPTBBUTTONSB; + +#else +#include +typedef LPTBBUTTON LPTBBUTTONSB; +#endif +/***************************************************************************** + * IShellBrowser interface + */ +#ifndef __IShellBrowser_INTERFACE_DEFINED__ +#define __IShellBrowser_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IShellBrowser : public IOleWindow +{ + virtual HRESULT STDMETHODCALLTYPE InsertMenusSB( + HMENU hmenuShared, + LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMenuSB( + HMENU hmenuShared, + HOLEMENU holemenuReserved, + HWND hwndActiveObject) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB( + HMENU hmenuShared) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB( + LPCOLESTR pszStatusText) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableModelessSB( + BOOL fEnable) = 0; + + virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB( + MSG* pmsg, + WORD wID) = 0; + + virtual HRESULT STDMETHODCALLTYPE BrowseObject( + LPCITEMIDLIST pidl, + UINT wFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetViewStateStream( + DWORD grfMode, + IStream** ppStrm) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetControlWindow( + UINT id, + HWND* phwnd) = 0; + + virtual HRESULT STDMETHODCALLTYPE SendControlMsg( + UINT id, + UINT uMsg, + WPARAM wParam, + LPARAM lParam, + LRESULT* pret) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView( + IShellView** ppshv) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive( + IShellView* pshv) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetToolbarItems( + LPTBBUTTONSB lpButtons, + UINT nButtons, + UINT uFlags) = 0; + +}; +#else +typedef struct IShellBrowserVtbl IShellBrowserVtbl; +struct IShellBrowser { + const IShellBrowserVtbl* lpVtbl; +}; +struct IShellBrowserVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IShellBrowser* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IShellBrowser* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IShellBrowser* This); + + /*** IOleWindow methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWindow)( + IShellBrowser* This, + HWND* phwnd); + + HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)( + IShellBrowser* This, + BOOL fEnterMode); + + /*** IShellBrowser methods ***/ + HRESULT (STDMETHODCALLTYPE *InsertMenusSB)( + IShellBrowser* This, + HMENU hmenuShared, + LPOLEMENUGROUPWIDTHS lpMenuWidths); + + HRESULT (STDMETHODCALLTYPE *SetMenuSB)( + IShellBrowser* This, + HMENU hmenuShared, + HOLEMENU holemenuReserved, + HWND hwndActiveObject); + + HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)( + IShellBrowser* This, + HMENU hmenuShared); + + HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)( + IShellBrowser* This, + LPCOLESTR pszStatusText); + + HRESULT (STDMETHODCALLTYPE *EnableModelessSB)( + IShellBrowser* This, + BOOL fEnable); + + HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)( + IShellBrowser* This, + MSG* pmsg, + WORD wID); + + HRESULT (STDMETHODCALLTYPE *BrowseObject)( + IShellBrowser* This, + LPCITEMIDLIST pidl, + UINT wFlags); + + HRESULT (STDMETHODCALLTYPE *GetViewStateStream)( + IShellBrowser* This, + DWORD grfMode, + IStream** ppStrm); + + HRESULT (STDMETHODCALLTYPE *GetControlWindow)( + IShellBrowser* This, + UINT id, + HWND* phwnd); + + HRESULT (STDMETHODCALLTYPE *SendControlMsg)( + IShellBrowser* This, + UINT id, + UINT uMsg, + WPARAM wParam, + LPARAM lParam, + LRESULT* pret); + + HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)( + IShellBrowser* This, + IShellView** ppshv); + + HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)( + IShellBrowser* This, + IShellView* pshv); + + HRESULT (STDMETHODCALLTYPE *SetToolbarItems)( + IShellBrowser* This, + LPTBBUTTONSB lpButtons, + UINT nButtons, + UINT uFlags); + +}; + +/*** IUnknown methods ***/ +#define IShellBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IShellBrowser_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IShellBrowser_Release(p) (p)->lpVtbl->Release(p) +/*** IOleWindow methods ***/ +#define IShellBrowser_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a) +#define IShellBrowser_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a) +/*** IShellBrowser methods ***/ +#define IShellBrowser_InsertMenusSB(p,a,b) (p)->lpVtbl->InsertMenusSB(p,a,b) +#define IShellBrowser_SetMenuSB(p,a,b,c) (p)->lpVtbl->SetMenuSB(p,a,b,c) +#define IShellBrowser_RemoveMenusSB(p,a) (p)->lpVtbl->RemoveMenusSB(p,a) +#define IShellBrowser_SetStatusTextSB(p,a) (p)->lpVtbl->SetStatusTextSB(p,a) +#define IShellBrowser_EnableModelessSB(p,a) (p)->lpVtbl->EnableModelessSB(p,a) +#define IShellBrowser_TranslateAcceleratorSB(p,a,b) (p)->lpVtbl->TranslateAcceleratorSB(p,a,b) +#define IShellBrowser_BrowseObject(p,a,b) (p)->lpVtbl->BrowseObject(p,a,b) +#define IShellBrowser_GetViewStateStream(p,a,b) (p)->lpVtbl->GetViewStateStream(p,a,b) +#define IShellBrowser_GetControlWindow(p,a,b) (p)->lpVtbl->GetControlWindow(p,a,b) +#define IShellBrowser_SendControlMsg(p,a,b,c,d,e) (p)->lpVtbl->SendControlMsg(p,a,b,c,d,e) +#define IShellBrowser_QueryActiveShellView(p,a) (p)->lpVtbl->QueryActiveShellView(p,a) +#define IShellBrowser_OnViewWindowActive(p,a) (p)->lpVtbl->OnViewWindowActive(p,a) +#define IShellBrowser_SetToolbarItems(p,a,b,c) (p)->lpVtbl->SetToolbarItems(p,a,b,c) + +#endif + +#define IShellBrowser_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IOleWindow methods ***/ \ + STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \ + STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \ + /*** IShellBrowser methods ***/ \ + STDMETHOD_(HRESULT,InsertMenusSB)(THIS_ HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) PURE; \ + STDMETHOD_(HRESULT,SetMenuSB)(THIS_ HMENU hmenuShared, HOLEMENU holemenuReserved, HWND hwndActiveObject) PURE; \ + STDMETHOD_(HRESULT,RemoveMenusSB)(THIS_ HMENU hmenuShared) PURE; \ + STDMETHOD_(HRESULT,SetStatusTextSB)(THIS_ LPCOLESTR pszStatusText) PURE; \ + STDMETHOD_(HRESULT,EnableModelessSB)(THIS_ BOOL fEnable) PURE; \ + STDMETHOD_(HRESULT,TranslateAcceleratorSB)(THIS_ MSG* pmsg, WORD wID) PURE; \ + STDMETHOD_(HRESULT,BrowseObject)(THIS_ LPCITEMIDLIST pidl, UINT wFlags) PURE; \ + STDMETHOD_(HRESULT,GetViewStateStream)(THIS_ DWORD grfMode, IStream** ppStrm) PURE; \ + STDMETHOD_(HRESULT,GetControlWindow)(THIS_ UINT id, HWND* phwnd) PURE; \ + STDMETHOD_(HRESULT,SendControlMsg)(THIS_ UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* pret) PURE; \ + STDMETHOD_(HRESULT,QueryActiveShellView)(THIS_ IShellView** ppshv) PURE; \ + STDMETHOD_(HRESULT,OnViewWindowActive)(THIS_ IShellView* pshv) PURE; \ + STDMETHOD_(HRESULT,SetToolbarItems)(THIS_ LPTBBUTTONSB lpButtons, UINT nButtons, UINT uFlags) PURE; + +HRESULT CALLBACK IShellBrowser_InsertMenusSB_Proxy( + IShellBrowser* This, + HMENU hmenuShared, + LPOLEMENUGROUPWIDTHS lpMenuWidths); +void __RPC_STUB IShellBrowser_InsertMenusSB_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellBrowser_SetMenuSB_Proxy( + IShellBrowser* This, + HMENU hmenuShared, + HOLEMENU holemenuReserved, + HWND hwndActiveObject); +void __RPC_STUB IShellBrowser_SetMenuSB_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellBrowser_RemoveMenusSB_Proxy( + IShellBrowser* This, + HMENU hmenuShared); +void __RPC_STUB IShellBrowser_RemoveMenusSB_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellBrowser_SetStatusTextSB_Proxy( + IShellBrowser* This, + LPCOLESTR pszStatusText); +void __RPC_STUB IShellBrowser_SetStatusTextSB_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellBrowser_EnableModelessSB_Proxy( + IShellBrowser* This, + BOOL fEnable); +void __RPC_STUB IShellBrowser_EnableModelessSB_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellBrowser_TranslateAcceleratorSB_Proxy( + IShellBrowser* This, + MSG* pmsg, + WORD wID); +void __RPC_STUB IShellBrowser_TranslateAcceleratorSB_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellBrowser_BrowseObject_Proxy( + IShellBrowser* This, + LPCITEMIDLIST pidl, + UINT wFlags); +void __RPC_STUB IShellBrowser_BrowseObject_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellBrowser_GetViewStateStream_Proxy( + IShellBrowser* This, + DWORD grfMode, + IStream** ppStrm); +void __RPC_STUB IShellBrowser_GetViewStateStream_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellBrowser_GetControlWindow_Proxy( + IShellBrowser* This, + UINT id, + HWND* phwnd); +void __RPC_STUB IShellBrowser_GetControlWindow_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellBrowser_QueryActiveShellView_Proxy( + IShellBrowser* This, + IShellView** ppshv); +void __RPC_STUB IShellBrowser_QueryActiveShellView_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellBrowser_OnViewWindowActive_Proxy( + IShellBrowser* This, + IShellView* pshv); +void __RPC_STUB IShellBrowser_OnViewWindowActive_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IShellBrowser_INTERFACE_DEFINED__ */ + +#ifndef __IShellLinkA_FWD_DEFINED__ +#define __IShellLinkA_FWD_DEFINED__ +typedef struct IShellLinkA IShellLinkA; +#endif + +typedef enum { + SLR_NO_UI = 0x1, + SLR_ANY_MATCH = 0x2, + SLR_UPDATE = 0x4, + SLR_NOUPDATE = 0x8, + SLR_NOSEARCH = 0x10, + SLR_NOTRACK = 0x20, + SLR_NOLINKINFO = 0x40, + SLR_INVOKE_MSI = 0x80, + SLR_NO_UI_WITH_MSG_PUMP = 0x101 +} SLR_FLAGS; + +typedef enum { + SLGP_SHORTPATH = 0x1, + SLGP_UNCPRIORITY = 0x2, + SLGP_RAWPATH = 0x4 +} SLGP_FLAGS; + +/***************************************************************************** + * IShellLinkA interface + */ +#ifndef __IShellLinkA_INTERFACE_DEFINED__ +#define __IShellLinkA_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IShellLinkA : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetPath( + LPSTR pszFile, + int cch, + WIN32_FIND_DATAA* pfd, + DWORD fFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIDList( + LPITEMIDLIST* ppidl) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetIDList( + LPCITEMIDLIST pidl) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDescription( + LPSTR pszName, + int cch) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDescription( + LPCSTR pszName) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory( + LPSTR pszDir, + int cch) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory( + LPCSTR pszDir) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetArguments( + LPSTR pszArgs, + int cch) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetArguments( + LPCSTR pszArgs) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHotkey( + WORD* pwHotkey) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetHotkey( + WORD wHotkey) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetShowCmd( + int* piShowCmd) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetShowCmd( + int iShowCmd) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIconLocation( + LPSTR pszIconPath, + int cch, + int* piIcon) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetIconLocation( + LPCSTR pszIconPath, + int iIcon) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRelativePath( + LPCSTR pszPathRel, + DWORD dwReserved) = 0; + + virtual HRESULT STDMETHODCALLTYPE Resolve( + HWND hwnd, + DWORD fFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPath( + LPCSTR pszFile) = 0; + +}; +#else +typedef struct IShellLinkAVtbl IShellLinkAVtbl; +struct IShellLinkA { + const IShellLinkAVtbl* lpVtbl; +}; +struct IShellLinkAVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IShellLinkA* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IShellLinkA* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IShellLinkA* This); + + /*** IShellLinkA methods ***/ + HRESULT (STDMETHODCALLTYPE *GetPath)( + IShellLinkA* This, + LPSTR pszFile, + int cch, + WIN32_FIND_DATAA* pfd, + DWORD fFlags); + + HRESULT (STDMETHODCALLTYPE *GetIDList)( + IShellLinkA* This, + LPITEMIDLIST* ppidl); + + HRESULT (STDMETHODCALLTYPE *SetIDList)( + IShellLinkA* This, + LPCITEMIDLIST pidl); + + HRESULT (STDMETHODCALLTYPE *GetDescription)( + IShellLinkA* This, + LPSTR pszName, + int cch); + + HRESULT (STDMETHODCALLTYPE *SetDescription)( + IShellLinkA* This, + LPCSTR pszName); + + HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)( + IShellLinkA* This, + LPSTR pszDir, + int cch); + + HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)( + IShellLinkA* This, + LPCSTR pszDir); + + HRESULT (STDMETHODCALLTYPE *GetArguments)( + IShellLinkA* This, + LPSTR pszArgs, + int cch); + + HRESULT (STDMETHODCALLTYPE *SetArguments)( + IShellLinkA* This, + LPCSTR pszArgs); + + HRESULT (STDMETHODCALLTYPE *GetHotkey)( + IShellLinkA* This, + WORD* pwHotkey); + + HRESULT (STDMETHODCALLTYPE *SetHotkey)( + IShellLinkA* This, + WORD wHotkey); + + HRESULT (STDMETHODCALLTYPE *GetShowCmd)( + IShellLinkA* This, + int* piShowCmd); + + HRESULT (STDMETHODCALLTYPE *SetShowCmd)( + IShellLinkA* This, + int iShowCmd); + + HRESULT (STDMETHODCALLTYPE *GetIconLocation)( + IShellLinkA* This, + LPSTR pszIconPath, + int cch, + int* piIcon); + + HRESULT (STDMETHODCALLTYPE *SetIconLocation)( + IShellLinkA* This, + LPCSTR pszIconPath, + int iIcon); + + HRESULT (STDMETHODCALLTYPE *SetRelativePath)( + IShellLinkA* This, + LPCSTR pszPathRel, + DWORD dwReserved); + + HRESULT (STDMETHODCALLTYPE *Resolve)( + IShellLinkA* This, + HWND hwnd, + DWORD fFlags); + + HRESULT (STDMETHODCALLTYPE *SetPath)( + IShellLinkA* This, + LPCSTR pszFile); + +}; + +/*** IUnknown methods ***/ +#define IShellLinkA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IShellLinkA_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IShellLinkA_Release(p) (p)->lpVtbl->Release(p) +/*** IShellLinkA methods ***/ +#define IShellLinkA_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d) +#define IShellLinkA_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a) +#define IShellLinkA_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a) +#define IShellLinkA_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b) +#define IShellLinkA_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a) +#define IShellLinkA_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b) +#define IShellLinkA_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a) +#define IShellLinkA_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b) +#define IShellLinkA_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a) +#define IShellLinkA_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a) +#define IShellLinkA_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a) +#define IShellLinkA_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a) +#define IShellLinkA_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a) +#define IShellLinkA_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c) +#define IShellLinkA_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b) +#define IShellLinkA_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b) +#define IShellLinkA_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b) +#define IShellLinkA_SetPath(p,a) (p)->lpVtbl->SetPath(p,a) + +#endif + +#define IShellLinkA_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IShellLinkA methods ***/ \ + STDMETHOD_(HRESULT,GetPath)(THIS_ LPSTR pszFile, int cch, WIN32_FIND_DATAA* pfd, DWORD fFlags) PURE; \ + STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \ + STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \ + STDMETHOD_(HRESULT,GetDescription)(THIS_ LPSTR pszName, int cch) PURE; \ + STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCSTR pszName) PURE; \ + STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPSTR pszDir, int cch) PURE; \ + STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCSTR pszDir) PURE; \ + STDMETHOD_(HRESULT,GetArguments)(THIS_ LPSTR pszArgs, int cch) PURE; \ + STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCSTR pszArgs) PURE; \ + STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \ + STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \ + STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \ + STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \ + STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPSTR pszIconPath, int cch, int* piIcon) PURE; \ + STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCSTR pszIconPath, int iIcon) PURE; \ + STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCSTR pszPathRel, DWORD dwReserved) PURE; \ + STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \ + STDMETHOD_(HRESULT,SetPath)(THIS_ LPCSTR pszFile) PURE; + +HRESULT CALLBACK IShellLinkA_GetPath_Proxy( + IShellLinkA* This, + LPSTR pszFile, + int cch, + WIN32_FIND_DATAA* pfd, + DWORD fFlags); +void __RPC_STUB IShellLinkA_GetPath_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_GetIDList_Proxy( + IShellLinkA* This, + LPITEMIDLIST* ppidl); +void __RPC_STUB IShellLinkA_GetIDList_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_SetIDList_Proxy( + IShellLinkA* This, + LPCITEMIDLIST pidl); +void __RPC_STUB IShellLinkA_SetIDList_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_GetDescription_Proxy( + IShellLinkA* This, + LPSTR pszName, + int cch); +void __RPC_STUB IShellLinkA_GetDescription_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_SetDescription_Proxy( + IShellLinkA* This, + LPCSTR pszName); +void __RPC_STUB IShellLinkA_SetDescription_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_GetWorkingDirectory_Proxy( + IShellLinkA* This, + LPSTR pszDir, + int cch); +void __RPC_STUB IShellLinkA_GetWorkingDirectory_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_SetWorkingDirectory_Proxy( + IShellLinkA* This, + LPCSTR pszDir); +void __RPC_STUB IShellLinkA_SetWorkingDirectory_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_GetArguments_Proxy( + IShellLinkA* This, + LPSTR pszArgs, + int cch); +void __RPC_STUB IShellLinkA_GetArguments_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_SetArguments_Proxy( + IShellLinkA* This, + LPCSTR pszArgs); +void __RPC_STUB IShellLinkA_SetArguments_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_GetHotkey_Proxy( + IShellLinkA* This, + WORD* pwHotkey); +void __RPC_STUB IShellLinkA_GetHotkey_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_SetHotkey_Proxy( + IShellLinkA* This, + WORD wHotkey); +void __RPC_STUB IShellLinkA_SetHotkey_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_GetShowCmd_Proxy( + IShellLinkA* This, + int* piShowCmd); +void __RPC_STUB IShellLinkA_GetShowCmd_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_SetShowCmd_Proxy( + IShellLinkA* This, + int iShowCmd); +void __RPC_STUB IShellLinkA_SetShowCmd_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_GetIconLocation_Proxy( + IShellLinkA* This, + LPSTR pszIconPath, + int cch, + int* piIcon); +void __RPC_STUB IShellLinkA_GetIconLocation_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_SetIconLocation_Proxy( + IShellLinkA* This, + LPCSTR pszIconPath, + int iIcon); +void __RPC_STUB IShellLinkA_SetIconLocation_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_SetRelativePath_Proxy( + IShellLinkA* This, + LPCSTR pszPathRel, + DWORD dwReserved); +void __RPC_STUB IShellLinkA_SetRelativePath_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_Resolve_Proxy( + IShellLinkA* This, + HWND hwnd, + DWORD fFlags); +void __RPC_STUB IShellLinkA_Resolve_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkA_SetPath_Proxy( + IShellLinkA* This, + LPCSTR pszFile); +void __RPC_STUB IShellLinkA_SetPath_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IShellLinkA_INTERFACE_DEFINED__ */ + +#ifndef __IShellLinkW_FWD_DEFINED__ +#define __IShellLinkW_FWD_DEFINED__ +typedef struct IShellLinkW IShellLinkW; +#endif + +/***************************************************************************** + * IShellLinkW interface + */ +#ifndef __IShellLinkW_INTERFACE_DEFINED__ +#define __IShellLinkW_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IShellLinkW : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetPath( + LPWSTR pszFile, + int cch, + WIN32_FIND_DATAW* pfd, + DWORD fFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIDList( + LPITEMIDLIST* ppidl) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetIDList( + LPCITEMIDLIST pidl) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDescription( + LPWSTR pszName, + int cch) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDescription( + LPCWSTR pszName) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory( + LPWSTR pszDir, + int cch) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory( + LPCWSTR pszDir) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetArguments( + LPWSTR pszArgs, + int cch) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetArguments( + LPCWSTR pszArgs) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHotkey( + WORD* pwHotkey) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetHotkey( + WORD wHotkey) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetShowCmd( + int* piShowCmd) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetShowCmd( + int iShowCmd) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIconLocation( + LPWSTR pszIconPath, + int cch, + int* piIcon) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetIconLocation( + LPCWSTR pszIconPath, + int iIcon) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRelativePath( + LPCWSTR pszPathRel, + DWORD dwReserved) = 0; + + virtual HRESULT STDMETHODCALLTYPE Resolve( + HWND hwnd, + DWORD fFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPath( + LPCWSTR pszFile) = 0; + +}; +#else +typedef struct IShellLinkWVtbl IShellLinkWVtbl; +struct IShellLinkW { + const IShellLinkWVtbl* lpVtbl; +}; +struct IShellLinkWVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IShellLinkW* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IShellLinkW* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IShellLinkW* This); + + /*** IShellLinkW methods ***/ + HRESULT (STDMETHODCALLTYPE *GetPath)( + IShellLinkW* This, + LPWSTR pszFile, + int cch, + WIN32_FIND_DATAW* pfd, + DWORD fFlags); + + HRESULT (STDMETHODCALLTYPE *GetIDList)( + IShellLinkW* This, + LPITEMIDLIST* ppidl); + + HRESULT (STDMETHODCALLTYPE *SetIDList)( + IShellLinkW* This, + LPCITEMIDLIST pidl); + + HRESULT (STDMETHODCALLTYPE *GetDescription)( + IShellLinkW* This, + LPWSTR pszName, + int cch); + + HRESULT (STDMETHODCALLTYPE *SetDescription)( + IShellLinkW* This, + LPCWSTR pszName); + + HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)( + IShellLinkW* This, + LPWSTR pszDir, + int cch); + + HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)( + IShellLinkW* This, + LPCWSTR pszDir); + + HRESULT (STDMETHODCALLTYPE *GetArguments)( + IShellLinkW* This, + LPWSTR pszArgs, + int cch); + + HRESULT (STDMETHODCALLTYPE *SetArguments)( + IShellLinkW* This, + LPCWSTR pszArgs); + + HRESULT (STDMETHODCALLTYPE *GetHotkey)( + IShellLinkW* This, + WORD* pwHotkey); + + HRESULT (STDMETHODCALLTYPE *SetHotkey)( + IShellLinkW* This, + WORD wHotkey); + + HRESULT (STDMETHODCALLTYPE *GetShowCmd)( + IShellLinkW* This, + int* piShowCmd); + + HRESULT (STDMETHODCALLTYPE *SetShowCmd)( + IShellLinkW* This, + int iShowCmd); + + HRESULT (STDMETHODCALLTYPE *GetIconLocation)( + IShellLinkW* This, + LPWSTR pszIconPath, + int cch, + int* piIcon); + + HRESULT (STDMETHODCALLTYPE *SetIconLocation)( + IShellLinkW* This, + LPCWSTR pszIconPath, + int iIcon); + + HRESULT (STDMETHODCALLTYPE *SetRelativePath)( + IShellLinkW* This, + LPCWSTR pszPathRel, + DWORD dwReserved); + + HRESULT (STDMETHODCALLTYPE *Resolve)( + IShellLinkW* This, + HWND hwnd, + DWORD fFlags); + + HRESULT (STDMETHODCALLTYPE *SetPath)( + IShellLinkW* This, + LPCWSTR pszFile); + +}; + +/*** IUnknown methods ***/ +#define IShellLinkW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IShellLinkW_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IShellLinkW_Release(p) (p)->lpVtbl->Release(p) +/*** IShellLinkW methods ***/ +#define IShellLinkW_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d) +#define IShellLinkW_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a) +#define IShellLinkW_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a) +#define IShellLinkW_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b) +#define IShellLinkW_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a) +#define IShellLinkW_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b) +#define IShellLinkW_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a) +#define IShellLinkW_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b) +#define IShellLinkW_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a) +#define IShellLinkW_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a) +#define IShellLinkW_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a) +#define IShellLinkW_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a) +#define IShellLinkW_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a) +#define IShellLinkW_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c) +#define IShellLinkW_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b) +#define IShellLinkW_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b) +#define IShellLinkW_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b) +#define IShellLinkW_SetPath(p,a) (p)->lpVtbl->SetPath(p,a) + +#endif + +#define IShellLinkW_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IShellLinkW methods ***/ \ + STDMETHOD_(HRESULT,GetPath)(THIS_ LPWSTR pszFile, int cch, WIN32_FIND_DATAW* pfd, DWORD fFlags) PURE; \ + STDMETHOD_(HRESULT,GetIDList)(THIS_ LPITEMIDLIST* ppidl) PURE; \ + STDMETHOD_(HRESULT,SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \ + STDMETHOD_(HRESULT,GetDescription)(THIS_ LPWSTR pszName, int cch) PURE; \ + STDMETHOD_(HRESULT,SetDescription)(THIS_ LPCWSTR pszName) PURE; \ + STDMETHOD_(HRESULT,GetWorkingDirectory)(THIS_ LPWSTR pszDir, int cch) PURE; \ + STDMETHOD_(HRESULT,SetWorkingDirectory)(THIS_ LPCWSTR pszDir) PURE; \ + STDMETHOD_(HRESULT,GetArguments)(THIS_ LPWSTR pszArgs, int cch) PURE; \ + STDMETHOD_(HRESULT,SetArguments)(THIS_ LPCWSTR pszArgs) PURE; \ + STDMETHOD_(HRESULT,GetHotkey)(THIS_ WORD* pwHotkey) PURE; \ + STDMETHOD_(HRESULT,SetHotkey)(THIS_ WORD wHotkey) PURE; \ + STDMETHOD_(HRESULT,GetShowCmd)(THIS_ int* piShowCmd) PURE; \ + STDMETHOD_(HRESULT,SetShowCmd)(THIS_ int iShowCmd) PURE; \ + STDMETHOD_(HRESULT,GetIconLocation)(THIS_ LPWSTR pszIconPath, int cch, int* piIcon) PURE; \ + STDMETHOD_(HRESULT,SetIconLocation)(THIS_ LPCWSTR pszIconPath, int iIcon) PURE; \ + STDMETHOD_(HRESULT,SetRelativePath)(THIS_ LPCWSTR pszPathRel, DWORD dwReserved) PURE; \ + STDMETHOD_(HRESULT,Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \ + STDMETHOD_(HRESULT,SetPath)(THIS_ LPCWSTR pszFile) PURE; + +HRESULT CALLBACK IShellLinkW_GetPath_Proxy( + IShellLinkW* This, + LPWSTR pszFile, + int cch, + WIN32_FIND_DATAW* pfd, + DWORD fFlags); +void __RPC_STUB IShellLinkW_GetPath_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_GetIDList_Proxy( + IShellLinkW* This, + LPITEMIDLIST* ppidl); +void __RPC_STUB IShellLinkW_GetIDList_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_SetIDList_Proxy( + IShellLinkW* This, + LPCITEMIDLIST pidl); +void __RPC_STUB IShellLinkW_SetIDList_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_GetDescription_Proxy( + IShellLinkW* This, + LPWSTR pszName, + int cch); +void __RPC_STUB IShellLinkW_GetDescription_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_SetDescription_Proxy( + IShellLinkW* This, + LPCWSTR pszName); +void __RPC_STUB IShellLinkW_SetDescription_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_GetWorkingDirectory_Proxy( + IShellLinkW* This, + LPWSTR pszDir, + int cch); +void __RPC_STUB IShellLinkW_GetWorkingDirectory_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_SetWorkingDirectory_Proxy( + IShellLinkW* This, + LPCWSTR pszDir); +void __RPC_STUB IShellLinkW_SetWorkingDirectory_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_GetArguments_Proxy( + IShellLinkW* This, + LPWSTR pszArgs, + int cch); +void __RPC_STUB IShellLinkW_GetArguments_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_SetArguments_Proxy( + IShellLinkW* This, + LPCWSTR pszArgs); +void __RPC_STUB IShellLinkW_SetArguments_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_GetHotkey_Proxy( + IShellLinkW* This, + WORD* pwHotkey); +void __RPC_STUB IShellLinkW_GetHotkey_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_SetHotkey_Proxy( + IShellLinkW* This, + WORD wHotkey); +void __RPC_STUB IShellLinkW_SetHotkey_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_GetShowCmd_Proxy( + IShellLinkW* This, + int* piShowCmd); +void __RPC_STUB IShellLinkW_GetShowCmd_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_SetShowCmd_Proxy( + IShellLinkW* This, + int iShowCmd); +void __RPC_STUB IShellLinkW_SetShowCmd_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_GetIconLocation_Proxy( + IShellLinkW* This, + LPWSTR pszIconPath, + int cch, + int* piIcon); +void __RPC_STUB IShellLinkW_GetIconLocation_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_SetIconLocation_Proxy( + IShellLinkW* This, + LPCWSTR pszIconPath, + int iIcon); +void __RPC_STUB IShellLinkW_SetIconLocation_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_SetRelativePath_Proxy( + IShellLinkW* This, + LPCWSTR pszPathRel, + DWORD dwReserved); +void __RPC_STUB IShellLinkW_SetRelativePath_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_Resolve_Proxy( + IShellLinkW* This, + HWND hwnd, + DWORD fFlags); +void __RPC_STUB IShellLinkW_Resolve_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IShellLinkW_SetPath_Proxy( + IShellLinkW* This, + LPCWSTR pszFile); +void __RPC_STUB IShellLinkW_SetPath_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IShellLinkW_INTERFACE_DEFINED__ */ + +#define IShellLink WINELIB_NAME_AW(IShellLink) +#ifndef __IShellExtInit_FWD_DEFINED__ +#define __IShellExtInit_FWD_DEFINED__ +typedef struct IShellExtInit IShellExtInit; +#endif + +typedef IShellExtInit *LPSHELLEXTINIT; + +/***************************************************************************** + * IShellExtInit interface + */ +#ifndef __IShellExtInit_INTERFACE_DEFINED__ +#define __IShellExtInit_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IShellExtInit : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + LPCITEMIDLIST pidlFolder, + IDataObject* pdtobj, + HKEY hkeyProgID) = 0; + +}; +#else +typedef struct IShellExtInitVtbl IShellExtInitVtbl; +struct IShellExtInit { + const IShellExtInitVtbl* lpVtbl; +}; +struct IShellExtInitVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IShellExtInit* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IShellExtInit* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IShellExtInit* This); + + /*** IShellExtInit methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IShellExtInit* This, + LPCITEMIDLIST pidlFolder, + IDataObject* pdtobj, + HKEY hkeyProgID); + +}; + +/*** IUnknown methods ***/ +#define IShellExtInit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IShellExtInit_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IShellExtInit_Release(p) (p)->lpVtbl->Release(p) +/*** IShellExtInit methods ***/ +#define IShellExtInit_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c) + +#endif + +#define IShellExtInit_METHODS \ + ICOM_MSVTABLE_COMPAT_FIELDS \ + /*** IUnknown methods ***/ \ + STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \ + STDMETHOD_(ULONG,AddRef)(THIS) PURE; \ + STDMETHOD_(ULONG,Release)(THIS) PURE; \ + /*** IShellExtInit methods ***/ \ + STDMETHOD_(HRESULT,Initialize)(THIS_ LPCITEMIDLIST pidlFolder, IDataObject* pdtobj, HKEY hkeyProgID) PURE; + +HRESULT CALLBACK IShellExtInit_Initialize_Proxy( + IShellExtInit* This, + LPCITEMIDLIST pidlFolder, + IDataObject* pdtobj, + HKEY hkeyProgID); +void __RPC_STUB IShellExtInit_Initialize_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IShellExtInit_INTERFACE_DEFINED__ */ + +#ifdef __cplusplus +} +#endif +#endif /* __WIDL_SHOBJIDL_H */ diff --git a/include/shobjidl.idl b/include/shobjidl.idl new file mode 100644 index 00000000000..a8fe34f3764 --- /dev/null +++ b/include/shobjidl.idl @@ -0,0 +1,693 @@ +/* + * COM interfaces for shell objects + * + * Copyright (C) 1999 Juergen Schmied + * Copyright (C) 2003 Alexandre Julliard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +import "objidl.idl"; +import "oleidl.idl"; +import "oaidl.idl"; +import "shtypes.idl"; +import "servprov.idl"; +import "comcat.idl"; +/*import "propidl.idl";*/ +/*import "prsht.idl";*/ +/*import "msxml.idl";*/ + + +/***************************************************************************** + * IPersistFolder interface + */ +[ + object, + uuid(000214ea-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IPersistFolder : IPersist +{ + typedef IPersistFolder *LPPERSISTFOLDER; + + HRESULT Initialize( [in] LPCITEMIDLIST pidl ); +} + + +/***************************************************************************** + * IPersistFolder2 interface + */ +[ + object, + uuid(1ac3d9f0-175c-11d1-95be-00609797ea4f), + pointer_default(unique) +] +interface IPersistFolder2 : IPersistFolder +{ + typedef IPersistFolder2 *LPPERSISTFOLDER2; + + HRESULT GetCurFolder( [out] LPITEMIDLIST *ppidl ); +} + + +/***************************************************************************** + * IEnumIDList interface + */ +[ + object, + uuid(000214f2-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IEnumIDList : IUnknown +{ + typedef IEnumIDList *LPENUMIDLIST; + + HRESULT Next( + [in] ULONG celt, + [out, size_is(celt), length_is(*pceltFetched)] LPITEMIDLIST *rgelt, + [out] ULONG *pceltFetched); + + HRESULT Skip( [in] ULONG celt ); + HRESULT Reset(); + HRESULT Clone( [out] IEnumIDList **ppenum ); +} + + +/***************************************************************************** + * IShellFolder interface + */ +[ + object, + uuid(000214e6-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IShellFolder : IUnknown +{ + typedef IShellFolder * LPSHELLFOLDER; + + typedef enum tagSHGDN + { + SHGDN_NORMAL = 0, + SHGDN_INFOLDER = 1, + SHGDN_FOREDITING = 0x1000, + SHGDN_INCLUDE_NONFILESYS = 0x2000, + SHGDN_FORADDRESSBAR = 0x4000, + SHGDN_FORPARSING = 0x8000 + } SHGNO; + + typedef DWORD SHGDNF; + + enum tagSHCONTF + { + SHCONTF_FOLDERS = 32, + SHCONTF_NONFOLDERS = 64, + SHCONTF_INCLUDEHIDDEN = 128, + SHCONTF_INIT_ON_FIRST_NEXT = 256, + SHCONTF_NETPRINTERSRCH = 512, + SHCONTF_SHAREABLE = 1024, + SHCONTF_STORAGE = 2048 + }; + + typedef DWORD SHCONTF; + + cpp_quote("#define SFGAO_CANCOPY DROPEFFECT_COPY") + cpp_quote("#define SFGAO_CANMOVE DROPEFFECT_MOVE") + cpp_quote("#define SFGAO_CANLINK DROPEFFECT_LINK") + cpp_quote("#define SFGAO_CANRENAME 0x00000010L") + cpp_quote("#define SFGAO_CANDELETE 0x00000020L") + cpp_quote("#define SFGAO_HASPROPSHEET 0x00000040L") + cpp_quote("#define SFGAO_DROPTARGET 0x00000100L") + cpp_quote("#define SFGAO_CAPABILITYMASK 0x00000177L") + cpp_quote("#define SFGAO_LINK 0x00010000L") + cpp_quote("#define SFGAO_SHARE 0x00020000L") + cpp_quote("#define SFGAO_READONLY 0x00040000L") + cpp_quote("#define SFGAO_GHOSTED 0x00080000L") + cpp_quote("#define SFGAO_HIDDEN 0x00080000L") + cpp_quote("#define SFGAO_DISPLAYATTRMASK 0x000F0000L") + cpp_quote("#define SFGAO_FILESYSANCESTOR 0x10000000L") + cpp_quote("#define SFGAO_FOLDER 0x20000000L") + cpp_quote("#define SFGAO_FILESYSTEM 0x40000000L") + cpp_quote("#define SFGAO_HASSUBFOLDER 0x80000000L") + cpp_quote("#define SFGAO_CONTENTSMASK 0x80000000L") + cpp_quote("#define SFGAO_VALIDATE 0x01000000L") + cpp_quote("#define SFGAO_REMOVABLE 0x02000000L") + cpp_quote("#define SFGAO_COMPRESSED 0x04000000L") + cpp_quote("#define SFGAO_BROWSABLE 0x08000000L") + cpp_quote("#define SFGAO_NONENUMERATED 0x00100000L") + cpp_quote("#define SFGAO_NEWCONTENT 0x00200000L") + + typedef ULONG SFGAOF; + + HRESULT ParseDisplayName( + [in] HWND hwndOwner, + [in] LPBC pbcReserved, + [in, string] LPOLESTR lpszDisplayName, + [out] ULONG *pchEaten, + [out] LPITEMIDLIST *ppidl, + [in, out, unique] ULONG *pdwAttributes); + + HRESULT EnumObjects( + [in] HWND hwndOwner, + [in] SHCONTF grfFlags, + [out] IEnumIDList **ppenumIDList); + + HRESULT BindToObject( + [in] LPCITEMIDLIST pidl, + [in] LPBC pbcReserved, + [in] REFIID riid, + [out, iid_is(riid)] void **ppvOut); + + HRESULT BindToStorage( + [in] LPCITEMIDLIST pidl, + [in] LPBC pbcReserved, + [in] REFIID riid, + [out, iid_is(riid)] void **ppvObj); + + HRESULT CompareIDs( + [in] LPARAM lParam, + [in] LPCITEMIDLIST pidl1, + [in] LPCITEMIDLIST pidl2); + + HRESULT CreateViewObject( + [in] HWND hwndOwner, + [in] REFIID riid, + [out, iid_is(riid)] void **ppvOut); + + HRESULT GetAttributesOf( + [in] UINT cidl, + [in, size_is(cidl)] LPCITEMIDLIST *apidl, + [in, out] SFGAOF *rgfInOut); + + HRESULT GetUIObjectOf( + [in] HWND hwndOwner, + [in] UINT cidl, + [in, size_is(cidl)] LPCITEMIDLIST *apidl, + [in] REFIID riid, + [in, out, unique] UINT *prgfInOut, + [out, iid_is(riid)] void **ppvOut); + + HRESULT GetDisplayNameOf( + [in] LPCITEMIDLIST pidl, + [in] SHGDNF uFlags, + [out] STRRET *lpName); + + HRESULT SetNameOf( + [in] HWND hwnd, + [in] LPCITEMIDLIST pidl, + [in, string] LPCOLESTR lpszName, + [in] SHGDNF uFlags, + [out] LPITEMIDLIST *ppidlOut); +} + + +/***************************************************************************** + * IEnumExtraSearch interface + */ +[ + object, + uuid(0e700be1-9db6-11d1-a1ce-00c04fd75d13), + pointer_default(unique) +] +interface IEnumExtraSearch : IUnknown +{ + typedef IEnumExtraSearch *LPENUMEXTRASEARCH; + + typedef struct + { + GUID guidSearch; + WCHAR wszFriendlyName[80]; + /* + *WCHAR wszMenuText[80]; + *WCHAR wszHelpText[MAX_PATH]; + */ + WCHAR wszUrl[2084]; + /* + *WCHAR wszIcon[MAX_PATH+10]; + *WCHAR wszGreyIcon[MAX_PATH+10]; + *WCHAR wszClrIcon[MAX_PATH+10]; + */ + } EXTRASEARCH, *LPEXTRASEARCH; + + HRESULT Next( + [in] ULONG celt, + [out, size_is(celt), length_is(*pceltFetched)] EXTRASEARCH *rgelt, + [out] ULONG *pceltFetched); + + HRESULT Skip( [in] ULONG celt ); + HRESULT Reset(); + HRESULT Clone( [out] IEnumExtraSearch **ppenum ); +} + + +/***************************************************************************** + * IShellFolder2 interface + */ +[ + object, + uuid(93f2f68c-1d1b-11d3-a30e-00c04f79abd1), + pointer_default(unique) +] +interface IShellFolder2 : IShellFolder +{ + typedef enum + { + SHCOLSTATE_TYPE_STR = 0x00000001, + SHCOLSTATE_TYPE_INT = 0x00000002, + SHCOLSTATE_TYPE_DATE = 0x00000003, + SHCOLSTATE_TYPEMASK = 0x0000000f, + SHCOLSTATE_ONBYDEFAULT = 0x00000010, + SHCOLSTATE_SLOW = 0x00000020, + SHCOLSTATE_EXTENDED = 0x00000040, + SHCOLSTATE_SECONDARYUI = 0x00000080, + SHCOLSTATE_HIDDEN = 0x00000100, + SHCOLSTATE_PREFER_VARCMP = 0x00000200 + } SHCOLSTATE; + + typedef DWORD SHCOLSTATEF; + + typedef struct + { + GUID fmtid; + DWORD pid; + } SHCOLUMNID, *LPSHCOLUMNID; + typedef const SHCOLUMNID *LPCSHCOLUMNID; + + HRESULT GetDefaultSearchGUID( [out] GUID *lpguid ); + HRESULT EnumSearches( [out] IEnumExtraSearch **ppenum ); + HRESULT GetDefaultColumn( [in] DWORD dwReserved, [out] ULONG *pSort, [out] ULONG *pDisplay ); + HRESULT GetDefaultColumnState( [in] UINT iColumn, [out] SHCOLSTATEF *pcsFlags ); + HRESULT GetDetailsEx( [in] LPCITEMIDLIST pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv); + HRESULT GetDetailsOf( [in] LPCITEMIDLIST pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd); + HRESULT MapColumnToSCID( [in] UINT iColumn, [in] SHCOLUMNID *pscid ); +} + + + +/***************************************************************************** + * FOLDERSETTINGS + */ +typedef char *LPVIEWSETTINGS; + +typedef enum +{ + FWF_AUTOARRANGE = 0x00000001, + FWF_ABBREVIATEDNAMES = 0x00000002, + FWF_SNAPTOGRID = 0x00000004, + FWF_OWNERDATA = 0x00000008, + FWF_BESTFITWINDOW = 0x00000010, + FWF_DESKTOP = 0x00000020, + FWF_SINGLESEL = 0x00000040, + FWF_NOSUBFOLDERS = 0x00000080, + FWF_TRANSPARENT = 0x00000100, + FWF_NOCLIENTEDGE = 0x00000200, + FWF_NOSCROLL = 0x00000400, + FWF_ALIGNLEFT = 0x00000800, + FWF_NOICONS = 0x00001000, + FWF_SHOWSELALWAYS = 0x00002000, + FWF_NOVISIBLE = 0x00004000, + FWF_SINGLECLICKACTIVATE = 0x00008000, + FWF_NOWEBVIEW = 0x00010000, + FWF_HIDEFILENAMES = 0x00020000, + FWF_CHECKSELECT = 0x00040000 +} FOLDERFLAGS; + +typedef enum +{ + FVM_ICON = 1, + FVM_FIRST = FVM_ICON, + FVM_SMALLICON = 2, + FVM_LIST = 3, + FVM_DETAILS = 4, + FVM_THUMBNAIL = 5, + FVM_TILE = 6, + FVM_THUMBSTRIP = 7, + FVM_LAST = FVM_THUMBSTRIP +} FOLDERVIEWMODE; + +typedef struct +{ + UINT ViewMode; + UINT fFlags; +} FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS; +typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS; + + +/***************************************************************************** + * IShellView interface + */ +interface IShellBrowser; /* forward declaration */ +[ + object, + uuid(000214e3-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IShellView : IOleWindow +{ + typedef IShellView *LPSHELLVIEW; + + cpp_quote("#define SVSI_DESELECT 0x00000000") + cpp_quote("#define SVSI_SELECT 0x00000001") + cpp_quote("#define SVSI_EDIT 0x00000003") + cpp_quote("#define SVSI_DESELECTOTHERS 0x00000004") + cpp_quote("#define SVSI_ENSUREVISIBLE 0x00000008") + cpp_quote("#define SVSI_FOCUSED 0x00000010") + cpp_quote("#define SVSI_TRANSLATEPT 0x00000020") + cpp_quote("#define SVSI_SELECTIONMARK 0x00000040") + cpp_quote("#define SVSI_POSITIONITEM 0x00000080") + cpp_quote("#define SVSI_CHECK 0x00000100") + cpp_quote("#define SVSI_NOSTATECHANGE 0x80000000") + + typedef UINT SVSIF; + + typedef enum + { + SVGIO_BACKGROUND = 0x00000000, + SVGIO_SELECTION = 0x00000001, + SVGIO_ALLVIEW = 0x00000002, + SVGIO_CHECKED = 0x00000003, + SVGIO_TYPE_MASK = 0x0000000f, + SVGIO_FLAG_VIEWORDER = 0x80000000, + } SVGIO; + + typedef enum + { + SVUIA_DEACTIVATE = 0, + SVUIA_ACTIVATE_NOFOCUS = 1, + SVUIA_ACTIVATE_FOCUS = 2, + SVUIA_INPLACEACTIVATE = 3 + } SVUIA_STATUS; + +cpp_quote("#if 0") + typedef LPARAM LPFNSVADDPROPSHEETPAGE; +cpp_quote("#else") +cpp_quote("#include ") +cpp_quote("typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;") +cpp_quote("#endif") + + HRESULT TranslateAccelerator( [in] MSG *pmsg ); + HRESULT EnableModeless( [in] BOOL fEnable ); + HRESULT UIActivate( [in] UINT uState ); + HRESULT Refresh(); + HRESULT CreateViewWindow( + [in] IShellView *psvPrevious, + [in] LPCFOLDERSETTINGS lpfs, + [in] IShellBrowser *psb, + [out] RECT *prcView, + [out] HWND *phWnd); + + HRESULT DestroyViewWindow(); + HRESULT GetCurrentInfo( [out] LPFOLDERSETTINGS lpfs ); + + [local] HRESULT AddPropertySheetPages( + [in] DWORD dwReserved, + [in] LPFNSVADDPROPSHEETPAGE pfn, + [in] LPARAM lparam); + + HRESULT SaveViewState(); + HRESULT SelectItem( + [in] LPCITEMIDLIST pidlItem, + [in] SVSIF uFlags); + HRESULT GetItemObject( + [in] UINT uItem, + [in] REFIID riid, + [out, iid_is(riid)] void **ppv); +} + + +/***************************************************************************** + * IShellBrowser interface + */ +[ + object, + uuid(000214e2-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IShellBrowser : IOleWindow +{ + typedef IShellBrowser *LPSHELLBROWSER; + +cpp_quote("#define SBSP_DEFBROWSER 0x00000000") +cpp_quote("#define SBSP_SAMEBROWSER 0x00000001") +cpp_quote("#define SBSP_NEWBROWSER 0x00000002") +cpp_quote("#define SBSP_DEFMODE 0x00000000") +cpp_quote("#define SBSP_OPENMODE 0x00000010") +cpp_quote("#define SBSP_EXPLOREMODE 0x00000020") +cpp_quote("#define SBSP_HELPMODE 0x00000040") +cpp_quote("#define SBSP_NOTRANSFERHIST 0x00000080") +cpp_quote("#define SBSP_ABSOLUTE 0x00000000") +cpp_quote("#define SBSP_RELATIVE 0x00001000") +cpp_quote("#define SBSP_PARENT 0x00002000") +cpp_quote("#define SBSP_NAVIGATEBACK 0x00004000") +cpp_quote("#define SBSP_NAVIGATEFORWARD 0x00008000") +cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE 0x00010000") +cpp_quote("#define SBSP_NOAUTOSELECT 0x04000000") +cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000") +cpp_quote("#define SBSP_REDIRECT 0x40000000") +cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000") + +cpp_quote("#define FCW_STATUS 0x0001") +cpp_quote("#define FCW_TOOLBAR 0x0002") +cpp_quote("#define FCW_TREE 0x0003") +cpp_quote("#define FCW_INTERNETBAR 0x0006") +cpp_quote("#define FCW_PROGRESS 0x0008") + +cpp_quote("#define FCT_MERGE 0x0001") +cpp_quote("#define FCT_CONFIGABLE 0x0002") +cpp_quote("#define FCT_ADDTOEND 0x0004") + +cpp_quote("#if 0") + typedef LPARAM LPTBBUTTONSB; +cpp_quote("#else") +cpp_quote("#include ") +cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;") +cpp_quote("#endif") + + HRESULT InsertMenusSB( + [in] HMENU hmenuShared, + [in, out] LPOLEMENUGROUPWIDTHS lpMenuWidths); + + HRESULT SetMenuSB( + [in] HMENU hmenuShared, + [in] HOLEMENU holemenuReserved, + [in] HWND hwndActiveObject); + + HRESULT RemoveMenusSB( [in] HMENU hmenuShared ); + HRESULT SetStatusTextSB( [in, unique] LPCOLESTR pszStatusText ); + HRESULT EnableModelessSB( [in] BOOL fEnable ); + HRESULT TranslateAcceleratorSB( [in] MSG *pmsg, [in] WORD wID ); + + HRESULT BrowseObject( + [in] LPCITEMIDLIST pidl, + [in] UINT wFlags); + + HRESULT GetViewStateStream( + [in] DWORD grfMode, + [out] IStream **ppStrm); + + HRESULT GetControlWindow( + [in] UINT id, + [out] HWND *phwnd); + + [local] HRESULT SendControlMsg( + [in] UINT id, + [in] UINT uMsg, + [in] WPARAM wParam, + [in] LPARAM lParam, + [in] LRESULT *pret); + + HRESULT QueryActiveShellView( [out] IShellView **ppshv ); + HRESULT OnViewWindowActive( [in] IShellView *pshv ); + + [local] + HRESULT SetToolbarItems( + [in] LPTBBUTTONSB lpButtons, + [in] UINT nButtons, + [in] UINT uFlags); +} + + +/***************************************************************************** + * IShellLinkA interface + */ +[ + object, + uuid(000214ee-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IShellLinkA : IUnknown +{ + typedef enum + { + SLR_NO_UI = 0x0001, + SLR_ANY_MATCH = 0x0002, + SLR_UPDATE = 0x0004, + SLR_NOUPDATE = 0x0008, + SLR_NOSEARCH = 0x0010, + SLR_NOTRACK = 0x0020, + SLR_NOLINKINFO = 0x0040, + SLR_INVOKE_MSI = 0x0080, + SLR_NO_UI_WITH_MSG_PUMP = 0x0101, + } SLR_FLAGS; + + typedef enum + { + SLGP_SHORTPATH = 0x0001, + SLGP_UNCPRIORITY = 0x0002, + SLGP_RAWPATH = 0x0004, + } SLGP_FLAGS; + + HRESULT GetPath( + [out, size_is(cch)] LPSTR pszFile, + [in] int cch, + [in, out] WIN32_FIND_DATAA *pfd, + [in] DWORD fFlags); + + HRESULT GetIDList( [out] LPITEMIDLIST * ppidl ); + + HRESULT SetIDList( [in] LPCITEMIDLIST pidl ); + + HRESULT GetDescription( + [out, size_is(cch)] LPSTR pszName, + [in] int cch); + + HRESULT SetDescription( [in] LPCSTR pszName ); + + HRESULT GetWorkingDirectory( + [out, size_is(cch)] LPSTR pszDir, + [in] int cch); + + HRESULT SetWorkingDirectory( [in] LPCSTR pszDir ); + + HRESULT GetArguments( + [out, size_is(cch)] LPSTR pszArgs, + [in] int cch); + + HRESULT SetArguments( [in] LPCSTR pszArgs ); + + HRESULT GetHotkey( [out] WORD *pwHotkey ); + + HRESULT SetHotkey( [in] WORD wHotkey ); + + HRESULT GetShowCmd( [out] int *piShowCmd ); + + HRESULT SetShowCmd( [in] int iShowCmd ); + + HRESULT GetIconLocation( + [out, size_is(cch)] LPSTR pszIconPath, + [in] int cch, + [out] int *piIcon); + + HRESULT SetIconLocation( + [in] LPCSTR pszIconPath, + [in] int iIcon); + + HRESULT SetRelativePath( + [in] LPCSTR pszPathRel, + [in] DWORD dwReserved); + + HRESULT Resolve( + [in] HWND hwnd, + [in] DWORD fFlags); + + HRESULT SetPath( [in] LPCSTR pszFile ); +} + + +/***************************************************************************** + * IShellLinkW interface + */ +[ + object, + uuid(000214f9-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IShellLinkW : IUnknown +{ + HRESULT GetPath( + [out, size_is(cch)] LPWSTR pszFile, + [in] int cch, + [in, out] WIN32_FIND_DATAW *pfd, + [in] DWORD fFlags); + + HRESULT GetIDList( [out] LPITEMIDLIST * ppidl ); + + HRESULT SetIDList( [in] LPCITEMIDLIST pidl ); + + HRESULT GetDescription( + [out, size_is(cch)] LPWSTR pszName, + [in] int cch); + + HRESULT SetDescription( [in] LPCWSTR pszName ); + + HRESULT GetWorkingDirectory( + [out, size_is(cch)] LPWSTR pszDir, + [in] int cch); + + HRESULT SetWorkingDirectory( [in] LPCWSTR pszDir ); + + HRESULT GetArguments( + [out, size_is(cch)] LPWSTR pszArgs, + [in] int cch); + + HRESULT SetArguments( [in] LPCWSTR pszArgs ); + + HRESULT GetHotkey( [out] WORD *pwHotkey ); + + HRESULT SetHotkey( [in] WORD wHotkey ); + + HRESULT GetShowCmd( [out] int *piShowCmd ); + + HRESULT SetShowCmd( [in] int iShowCmd ); + + HRESULT GetIconLocation( + [out, size_is(cch)] LPWSTR pszIconPath, + [in] int cch, + [out] int *piIcon); + + HRESULT SetIconLocation( + [in] LPCWSTR pszIconPath, + [in] int iIcon); + + HRESULT SetRelativePath( + [in] LPCWSTR pszPathRel, + [in] DWORD dwReserved); + + HRESULT Resolve( + [in] HWND hwnd, + [in] DWORD fFlags); + + HRESULT SetPath( [in] LPCWSTR pszFile ); +} + +cpp_quote("#define IShellLink WINELIB_NAME_AW(IShellLink)") + + +/***************************************************************************** + * IShellExtInit interface + */ +[ + object, + uuid(000214e8-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IShellExtInit : IUnknown +{ + typedef IShellExtInit *LPSHELLEXTINIT; + + HRESULT Initialize( + [in] LPCITEMIDLIST pidlFolder, + [in] IDataObject *pdtobj, + [in] HKEY hkeyProgID); +} diff --git a/include/shtypes.h b/include/shtypes.h new file mode 100644 index 00000000000..8946190cdd1 --- /dev/null +++ b/include/shtypes.h @@ -0,0 +1,60 @@ +/*** Autogenerated by WIDL 0.1 from shtypes.idl - Do not edit ***/ +#include +#include + +#ifndef __WIDL_SHTYPES_H +#define __WIDL_SHTYPES_H +#ifdef __cplusplus +extern "C" { +#endif +#include +#include +typedef struct { + WORD cb; + BYTE abID[1]; +} SHITEMID, *LPSHITEMID; + +typedef const SHITEMID *LPCSHITEMID; + +typedef struct _ITEMIDLIST { + SHITEMID mkid; +} ITEMIDLIST, *LPITEMIDLIST; + +typedef const ITEMIDLIST *LPCITEMIDLIST; + +#include +#if 0 +typedef struct { + int dummy; +} WIN32_FIND_DATAA, WIN32_FIND_DATAW; + +#endif +typedef enum tagSTRRET_TYPE { + STRRET_WSTR = 0, + STRRET_OFFSET = 1, + STRRET_CSTR = 2 +} STRRET_TYPE; + +#include +typedef struct _STRRET { + UINT uType; + union { + LPWSTR pOleStr; + UINT uOffset; + char cStr[260]; + } DUMMYUNIONNAME; +} STRRET, *LPSTRRET; + +#include +#include +typedef struct { + int fmt; + int cxChar; + STRRET str; +} SHELLDETAILS, *LPSHELLDETAILS; + +#include +#ifdef __cplusplus +} +#endif +#endif /* __WIDL_SHTYPES_H */ diff --git a/include/shtypes.idl b/include/shtypes.idl new file mode 100644 index 00000000000..22eede247f2 --- /dev/null +++ b/include/shtypes.idl @@ -0,0 +1,74 @@ +/* + * Type definitions for shell objects + * + * Copyright (C) 1999 Juergen Schmied + * Copyright (C) 2003 Alexandre Julliard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +import "wtypes.idl"; + +cpp_quote("#include ") +typedef struct +{ + WORD cb; /* nr of bytes in this item */ + BYTE abID[1]; /* first byte in this item */ +} SHITEMID, *LPSHITEMID; +typedef const SHITEMID *LPCSHITEMID; + +typedef struct _ITEMIDLIST +{ + SHITEMID mkid; /* first itemid in list */ +} ITEMIDLIST,*LPITEMIDLIST; +typedef const ITEMIDLIST *LPCITEMIDLIST; +cpp_quote("#include ") + +#ifndef MAX_PATH +#define MAX_PATH 260 +#endif + +cpp_quote("#if 0") +typedef struct { int dummy; } WIN32_FIND_DATAA, WIN32_FIND_DATAW; +cpp_quote("#endif") + +typedef enum tagSTRRET_TYPE +{ + STRRET_WSTR = 0, + STRRET_OFFSET = 1, + STRRET_CSTR = 2 +} STRRET_TYPE; + +cpp_quote("#include ") +typedef struct _STRRET +{ + UINT uType; /* STRRET_xxx */ + [switch_type(UINT), switch_is(uType)] union + { + [case(STRRET_WSTR)][string] LPWSTR pOleStr; /* OLESTR that will be freed */ + [case(STRRET_OFFSET)] UINT uOffset; /* Offset into SHITEMID (ANSI) */ + [case(STRRET_CSTR)] char cStr[MAX_PATH]; /* ANSI Buffer */ + } DUMMYUNIONNAME; +} STRRET, *LPSTRRET; +cpp_quote("#include ") + +cpp_quote("#include ") +typedef struct +{ + int fmt; + int cxChar; + STRRET str; +} SHELLDETAILS, *LPSHELLDETAILS; +cpp_quote("#include ") diff --git a/include/wine/obj_enumidlist.h b/include/wine/obj_enumidlist.h deleted file mode 100644 index 578e6509ea9..00000000000 --- a/include/wine/obj_enumidlist.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Defines the COM interfaces and APIs related to EnumIDList - * - * Depends on 'obj_base.h'. - * - * Copyright (C) 1999 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __WINE_WINE_OBJ_ENUMIDLIST_H -#define __WINE_WINE_OBJ_ENUMIDLIST_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -/***************************************************************************** - * Predeclare the interfaces - */ -typedef struct IEnumIDList IEnumIDList, *LPENUMIDLIST; - -#define INTERFACE IEnumIDList -#define IEnumIDList_METHODS \ - IUnknown_METHODS \ - STDMETHOD(Next)(THIS_ ULONG celt, LPITEMIDLIST * rgelt, ULONG * pceltFetched) PURE; \ - STDMETHOD(Skip)(THIS_ ULONG celt) PURE; \ - STDMETHOD(Reset)(THIS) PURE; \ - STDMETHOD(Clone)(THIS_ IEnumIDList ** ppenum) PURE; -ICOM_DEFINE(IEnumIDList,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IEnumIDList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IEnumIDList_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IEnumIDList_Release(p) (p)->lpVtbl->Release(p) -/*** IEnumIDList methods ***/ -#define IEnumIDList_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) -#define IEnumIDList_Skip(p,a) (p)->lpVtbl->Skip(p,a) -#define IEnumIDList_Reset(p) (p)->lpVtbl->Reset(p) -#define IEnumIDList_Clone(p,a) (p)->lpVtbl->Clone(p,a) -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_ENUMIDLIST_H */ diff --git a/include/wine/obj_shellbrowser.h b/include/wine/obj_shellbrowser.h deleted file mode 100644 index 1f2d70c35c2..00000000000 --- a/include/wine/obj_shellbrowser.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * IShellBrowser - * - * Copyright (C) 1999 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __WINE_WINE_OBJ_SHELLBROWSER_H -#define __WINE_WINE_OBJ_SHELLBROWSER_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -/* it's ok commented out, see obj_shellview.h - typedef struct IShellBrowser IShellBrowser, *LPSHELLBROWSER; -*/ - -#define SID_SShellBrowser IID_IShellBrowser - -DEFINE_GUID(SID_STopLevelBrowser, 0x4C96BE40L, 0x915C, 0x11CF, 0x99, 0xD3, 0x00, 0xAA, 0x00, 0x4A, 0xE8, 0x37); - -/* targets for GetWindow/SendControlMsg */ -#define FCW_STATUS 0x0001 -#define FCW_TOOLBAR 0x0002 -#define FCW_TREE 0x0003 -#define FCW_INTERNETBAR 0x0006 -#define FCW_PROGRESS 0x0008 - -/* wFlags for BrowseObject*/ -#define SBSP_DEFBROWSER 0x0000 -#define SBSP_SAMEBROWSER 0x0001 -#define SBSP_NEWBROWSER 0x0002 - -#define SBSP_DEFMODE 0x0000 -#define SBSP_OPENMODE 0x0010 -#define SBSP_EXPLOREMODE 0x0020 - -#define SBSP_ABSOLUTE 0x0000 -#define SBSP_RELATIVE 0x1000 -#define SBSP_PARENT 0x2000 -#define SBSP_NAVIGATEBACK 0x4000 -#define SBSP_NAVIGATEFORWARD 0x8000 - -#define SBSP_ALLOW_AUTONAVIGATE 0x10000 - -#define SBSP_INITIATEDBYHLINKFRAME 0x80000000 -#define SBSP_REDIRECT 0x40000000 -#define SBSP_WRITENOHISTORY 0x08000000 - -/* uFlage for SetToolbarItems */ -#define FCT_MERGE 0x0001 -#define FCT_CONFIGABLE 0x0002 -#define FCT_ADDTOEND 0x0004 - -#define INTERFACE IShellBrowser -#define IShellBrowser_METHODS \ - IOleWindow_METHODS \ - STDMETHOD(InsertMenusSB)(THIS_ HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) PURE; \ - STDMETHOD(SetMenuSB)(THIS_ HMENU hmenuShared, HOLEMENU holemenuReserved, HWND hwndActiveObject) PURE; \ - STDMETHOD(RemoveMenusSB)(THIS_ HMENU hmenuShared) PURE; \ - STDMETHOD(SetStatusTextSB)(THIS_ LPCOLESTR lpszStatusText) PURE; \ - STDMETHOD(EnableModelessSB)(THIS_ BOOL fEnable) PURE; \ - STDMETHOD(TranslateAcceleratorSB)(THIS_ LPMSG lpmsg, WORD wID) PURE; \ - STDMETHOD(BrowseObject)(THIS_ LPCITEMIDLIST pidl, UINT wFlags) PURE; \ - STDMETHOD(GetViewStateStream)(THIS_ DWORD grfMode, LPSTREAM * ppStrm) PURE; \ - STDMETHOD(GetControlWindow)(THIS_ UINT id, HWND * lphwnd) PURE; \ - STDMETHOD(SendControlMsg)(THIS_ UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT * pret) PURE; \ - STDMETHOD(QueryActiveShellView)(THIS_ IShellView ** IShellView) PURE; \ - STDMETHOD(OnViewWindowActive)(THIS_ IShellView * IShellView) PURE; \ - STDMETHOD(SetToolbarItems)(THIS_ LPTBBUTTON lpButtons, UINT nButtons, UINT uFlags) PURE; -ICOM_DEFINE(IShellBrowser,IOleWindow) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IShellBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IShellBrowser_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IShellBrowser_Release(p) (p)->lpVtbl->Release(p) -/*** IShellBrowser methods ***/ -#define IShellBrowser_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a) -#define IShellBrowser_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a) -#define IShellBrowser_InsertMenusSB(p,a,b) (p)->lpVtbl->InsertMenusSB(p,a,b) -#define IShellBrowser_SetMenuSB(p,a,b,c) (p)->lpVtbl->SetMenuSB(p,a,b,c) -#define IShellBrowser_RemoveMenusSB(p,a) (p)->lpVtbl->RemoveMenusSB(p,a) -#define IShellBrowser_SetStatusTextSB(p,a) (p)->lpVtbl->SetStatusTextSB(p,a) -#define IShellBrowser_EnableModelessSB(p,a) (p)->lpVtbl->EnableModelessSB(p,a) -#define IShellBrowser_TranslateAcceleratorSB(p,a,b) (p)->lpVtbl->TranslateAcceleratorSB(p,a,b) -#define IShellBrowser_BrowseObject(p,a,b) (p)->lpVtbl->BrowseObject(p,a,b) -#define IShellBrowser_GetViewStateStream(p,a,b) (p)->lpVtbl->GetViewStateStream(p,a,b) -#define IShellBrowser_GetControlWindow(p,a,b) (p)->lpVtbl->GetControlWindow(p,a,b) -#define IShellBrowser_SendControlMsg(p,a,b,c,d,e) (p)->lpVtbl->SendControlMsg(p,a,b,c,d,e) -#define IShellBrowser_QueryActiveShellView(p,a) (p)->lpVtbl->QueryActiveShellView(p,a) -#define IShellBrowser_OnViewWindowActive(p,a) (p)->lpVtbl->OnViewWindowActive(p,a) -#define IShellBrowser_SetToolbarItems(p,a,b,c) (p)->lpVtbl->SetToolbarItems(p,a,b,c) -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_SHELLBROWSER_H */ diff --git a/include/wine/obj_shellextinit.h b/include/wine/obj_shellextinit.h deleted file mode 100644 index 1c2b0b0e2cf..00000000000 --- a/include/wine/obj_shellextinit.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * IShellExtInit - * - * Copyright (C) 1999 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __WINE_WINE_OBJ_SHELLEXTINIT_H -#define __WINE_WINE_OBJ_SHELLEXTINIT_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -typedef struct IShellExtInit IShellExtInit, *LPSHELLEXTINIT; - -#define INTERFACE IShellExtInit -#define IShellExtInit_METHODS \ - IUnknown_METHODS \ - STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST pidlFolder, LPDATAOBJECT lpdobj, HKEY hkeyProgID) PURE; -ICOM_DEFINE(IShellExtInit,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IShellExtInit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IShellExtInit_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IShellExtInit_Release(p) (p)->lpVtbl->Release(p) -/*** IShellExtInit methods ***/ -#define IShellExtInit_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c) -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_SHELLEXTINIT_H */ diff --git a/include/wine/obj_shellfolder.h b/include/wine/obj_shellfolder.h index 8ad48848094..9ef8c748448 100644 --- a/include/wine/obj_shellfolder.h +++ b/include/wine/obj_shellfolder.h @@ -27,174 +27,12 @@ extern "C" { #endif /* defined(__cplusplus) */ -/**************************************************************************** -* STRRET -*/ -#define STRRET_WSTR 0x0000 -#define STRRET_OFFSET 0x0001 -#define STRRET_CSTR 0x0002 - -typedef struct _STRRET { - UINT uType; /* STRRET_xxx */ - union { - LPWSTR pOleStr; /* OLESTR that will be freed */ - UINT uOffset; /* Offset into SHITEMID (ANSI) */ - char cStr[MAX_PATH]; /* ANSI Buffer */ - } DUMMYUNIONNAME; -} STRRET,*LPSTRRET; - /***************************************************************************** * Predeclare the interfaces */ -typedef struct IShellFolder IShellFolder, *LPSHELLFOLDER; - -typedef struct IPersistFolder IPersistFolder, *LPPERSISTFOLDER; - -DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0L, 0x175C, 0x11D1, 0x95, 0xBE, 0x00, 0x60, 0x97, 0x97, 0xEA, 0x4F); -typedef struct IPersistFolder2 IPersistFolder2, *LPPERSISTFOLDER2; - DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87, 0xa5, 0x0, 0xc0, 0x4f, 0x68, 0x37, 0xcf); typedef struct IPersistFolder3 IPersistFolder3, *LPPERSISTFOLDER3; -DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3, 0x0e, 0x00, 0xc0, 0x4f, 0x79, 0xab, 0xd1); -typedef struct IShellFolder2 IShellFolder2, *LPSHELLFOLDER2; - -DEFINE_GUID(IID_IEnumExtraSearch, 0xE700BE1, 0x9DB6, 0x11D1, 0xA1, 0xCE, 0x0, 0xc0, 0x4F, 0xD7, 0x5D, 0x13); -typedef struct IEnumExtraSearch IEnumExtraSearch, *LPENUMEXTRASEARCH; - -/***************************************************************************** - * IEnumExtraSearch interface - */ - -typedef struct -{ - GUID guidSearch; - WCHAR wszFriendlyName[80]; - WCHAR wszMenuText[80]; - WCHAR wszHelpText[MAX_PATH]; - WCHAR wszUrl[2084]; - WCHAR wszIcon[MAX_PATH+10]; - WCHAR wszGreyIcon[MAX_PATH+10]; - WCHAR wszClrIcon[MAX_PATH+10]; -} EXTRASEARCH,* LPEXTRASEARCH; - -#define INTERFACE IEnumExtraSearch -#define IEnumExtraSearch_METHODS \ - IUnknown_METHODS \ - STDMETHOD(Next)(THIS_ ULONG celt, LPEXTRASEARCH * rgelt, ULONG * pceltFetched) PURE; \ - STDMETHOD(Skip)(THIS_ ULONG celt) PURE; \ - STDMETHOD(Reset)(THIS) PURE; \ - STDMETHOD(Clone)(THIS_ IEnumExtraSearch ** ppenum) PURE; -ICOM_DEFINE(IEnumExtraSearch,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IEnumIDList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IEnumIDList_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IEnumIDList_Release(p) (p)->lpVtbl->Release(p) -/*** IEnumIDList methods ***/ -#define IEnumIDList_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c) -#define IEnumIDList_Skip(p,a) (p)->lpVtbl->Skip(p,a) -#define IEnumIDList_Reset(p) (p)->lpVtbl->Reset(p) -#define IEnumIDList_Clone(p,a) (p)->lpVtbl->Clone(p,a) -#endif - -/***************************************************************************** - * IShellFolder::GetDisplayNameOf/SetNameOf uFlags - */ -typedef enum -{ SHGDN_NORMAL = 0, /* default (display purpose) */ - SHGDN_INFOLDER = 1, /* displayed under a folder (relative)*/ - SHGDN_INCLUDE_NONFILESYS = 0x2000, /* if not set, display names for shel name space - items, that are not in the file system wil fail */ - SHGDN_FORADDRESSBAR = 0x4000, /* for displaying in the address (drives drop down) bar */ - SHGDN_FORPARSING = 0x8000 /* for ParseDisplayName or path */ -} SHGNO; -typedef DWORD SHGDNF; - -/***************************************************************************** - * IShellFolder::EnumObjects - */ -typedef enum tagSHCONTF -{ SHCONTF_FOLDERS = 32, /* for shell browser */ - SHCONTF_NONFOLDERS = 64, /* for default view */ - SHCONTF_INCLUDEHIDDEN = 128, /* for hidden/system objects */ - SHCONTF_INIT_ON_FIRST_NEXT = 256, /* allow EnumObject() to return before validating enum */ - SHCONTF_NETPRINTERSRCH = 512, /* hint that client is looking for printers */ - SHCONTF_SHAREABLE = 1024, /* hint that client is looking sharable resources (remote shares) */ - SHCONTF_STORAGE = 2048 /* include all items with accessible storage and their ancestors */ -} SHCONTF; - -/***************************************************************************** - * IShellFolder::GetAttributesOf flags - */ -#define SFGAO_CANCOPY DROPEFFECT_COPY /* Objects can be copied */ -#define SFGAO_CANMOVE DROPEFFECT_MOVE /* Objects can be moved */ -#define SFGAO_CANLINK DROPEFFECT_LINK /* Objects can be linked */ -#define SFGAO_CANRENAME 0x00000010L /* Objects can be renamed */ -#define SFGAO_CANDELETE 0x00000020L /* Objects can be deleted */ -#define SFGAO_HASPROPSHEET 0x00000040L /* Objects have property sheets */ -#define SFGAO_DROPTARGET 0x00000100L /* Objects are drop target */ -#define SFGAO_CAPABILITYMASK 0x00000177L -#define SFGAO_LINK 0x00010000L /* Shortcut (link) */ -#define SFGAO_SHARE 0x00020000L /* shared */ -#define SFGAO_READONLY 0x00040000L /* read-only */ -#define SFGAO_GHOSTED 0x00080000L /* ghosted icon */ -#define SFGAO_HIDDEN 0x00080000L /* hidden object */ -#define SFGAO_DISPLAYATTRMASK 0x000F0000L -#define SFGAO_FILESYSANCESTOR 0x10000000L /* It contains file system folder */ -#define SFGAO_FOLDER 0x20000000L /* It's a folder. */ -#define SFGAO_FILESYSTEM 0x40000000L /* is a file system thing (file/folder/root) */ -#define SFGAO_HASSUBFOLDER 0x80000000L /* Expandable in the map pane */ -#define SFGAO_CONTENTSMASK 0x80000000L -#define SFGAO_VALIDATE 0x01000000L /* invalidate cached information */ -#define SFGAO_REMOVABLE 0x02000000L /* is this removeable media? */ -#define SFGAO_COMPRESSED 0x04000000L /* is this object compressed? */ -#define SFGAO_BROWSABLE 0x08000000L /* is in-place browsable */ -#define SFGAO_NONENUMERATED 0x00100000L /* is a non-enumerated object */ -#define SFGAO_NEWCONTENT 0x00200000L /* should show bold in explorer tree */ - -typedef ULONG SFGAOF; - -/************************************************************************ - * - * FOLDERSETTINGS -*/ - -typedef LPBYTE LPVIEWSETTINGS; - -/* NB Bitfields. */ -/* FWF_DESKTOP implies FWF_TRANSPARENT/NOCLIENTEDGE/NOSCROLL */ -typedef enum -{ FWF_AUTOARRANGE = 0x0001, - FWF_ABBREVIATEDNAMES = 0x0002, - FWF_SNAPTOGRID = 0x0004, - FWF_OWNERDATA = 0x0008, - FWF_BESTFITWINDOW = 0x0010, - FWF_DESKTOP = 0x0020, - FWF_SINGLESEL = 0x0040, - FWF_NOSUBFOLDERS = 0x0080, - FWF_TRANSPARENT = 0x0100, - FWF_NOCLIENTEDGE = 0x0200, - FWF_NOSCROLL = 0x0400, - FWF_ALIGNLEFT = 0x0800, - FWF_SINGLECLICKACTIVATE=0x8000 /* TEMPORARY -- NO UI FOR THIS */ -} FOLDERFLAGS; - -typedef enum -{ FVM_ICON = 1, - FVM_SMALLICON = 2, - FVM_LIST = 3, - FVM_DETAILS = 4 -} FOLDERVIEWMODE; - -typedef struct -{ UINT ViewMode; /* View mode (FOLDERVIEWMODE values) */ - UINT fFlags; /* View options (FOLDERFLAGS bits) */ -} FOLDERSETTINGS, *LPFOLDERSETTINGS; - -typedef const FOLDERSETTINGS * LPCFOLDERSETTINGS; /************************************************************************ * Desktopfolder @@ -204,166 +42,11 @@ extern IShellFolder * pdesktopfolder; DWORD WINAPI SHGetDesktopFolder(IShellFolder * *); -/***************************************************************************** - * IShellFolder interface - */ -#define INTERFACE IShellFolder -#define IShellFolder_METHODS \ - IUnknown_METHODS \ - STDMETHOD(ParseDisplayName)(THIS_ HWND hwndOwner,LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG * pchEaten, LPITEMIDLIST * ppidl, ULONG * pdwAttributes) PURE; \ - STDMETHOD(EnumObjects)(THIS_ HWND hwndOwner, DWORD grfFlags, LPENUMIDLIST * ppenumIDList) PURE;\ - STDMETHOD(BindToObject)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut) PURE;\ - STDMETHOD(BindToStorage)(THIS_ LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvObj) PURE;\ - STDMETHOD(CompareIDs)(THIS_ LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE;\ - STDMETHOD(CreateViewObject)(THIS_ HWND hwndOwner, REFIID riid, LPVOID * ppvOut) PURE;\ - STDMETHOD(GetAttributesOf)(THIS_ UINT cidl, LPCITEMIDLIST * apidl, ULONG * rgfInOut) PURE;\ - STDMETHOD(GetUIObjectOf)(THIS_ HWND hwndOwner, UINT cidl, LPCITEMIDLIST * apidl, REFIID riid, UINT * prgfInOut, LPVOID * ppvOut) PURE;\ - STDMETHOD(GetDisplayNameOf)(THIS_ LPCITEMIDLIST pidl, DWORD uFlags, LPSTRRET lpName) PURE;\ - STDMETHOD(SetNameOf)(THIS_ HWND hwndOwner, LPCITEMIDLIST pidl,LPCOLESTR lpszName, DWORD uFlags,LPITEMIDLIST * ppidlOut) PURE; -ICOM_DEFINE(IShellFolder,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IShellFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IShellFolder_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IShellFolder_Release(p) (p)->lpVtbl->Release(p) -/*** IShellFolder methods ***/ -#define IShellFolder_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f) -#define IShellFolder_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c) -#define IShellFolder_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d) -#define IShellFolder_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d) -#define IShellFolder_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c) -#define IShellFolder_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c) -#define IShellFolder_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c) -#define IShellFolder_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f) -#define IShellFolder_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c) -#define IShellFolder_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e) -#endif - -/***************************************************************************** - * IShellFolder2 interface - */ -/* IShellFolder2 */ - -/* GetDefaultColumnState */ -typedef enum -{ - SHCOLSTATE_TYPE_STR = 0x00000001, - SHCOLSTATE_TYPE_INT = 0x00000002, - SHCOLSTATE_TYPE_DATE = 0x00000003, - SHCOLSTATE_TYPEMASK = 0x0000000F, - SHCOLSTATE_ONBYDEFAULT = 0x00000010, - SHCOLSTATE_SLOW = 0x00000020, - SHCOLSTATE_EXTENDED = 0x00000040, - SHCOLSTATE_SECONDARYUI = 0x00000080, - SHCOLSTATE_HIDDEN = 0x00000100 -} SHCOLSTATE; - -typedef struct -{ - GUID fmtid; - DWORD pid; -} SHCOLUMNID, *LPSHCOLUMNID; -typedef const SHCOLUMNID* LPCSHCOLUMNID; - /* GetDetailsEx */ #define PID_FINDDATA 0 #define PID_NETRESOURCE 1 #define PID_DESCRIPTIONID 2 -typedef struct -{ - int fmt; - int cxChar; - STRRET str; -} SHELLDETAILS, *LPSHELLDETAILS; - -#define INTERFACE IShellFolder2 -#define IShellFolder2_METHODS \ - IShellFolder_METHODS \ - STDMETHOD(GetDefaultSearchGUID)(THIS_ LPGUID lpguid) PURE;\ - STDMETHOD(EnumSearches)(THIS_ LPENUMEXTRASEARCH * ppEnum) PURE; \ - STDMETHOD(GetDefaultColumn)(THIS_ DWORD dwReserved, ULONG * pSort, ULONG * pDisplay) PURE;\ - STDMETHOD(GetDefaultColumnState)(THIS_ UINT iColumn, DWORD * pcsFlags) PURE;\ - STDMETHOD(GetDetailsEx)(THIS_ LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv) PURE;\ - STDMETHOD(GetDetailsOf)(THIS_ LPCITEMIDLIST pidl, UINT iColumn, LPSHELLDETAILS pDetails) PURE;\ - STDMETHOD(MapNameToSCID)(THIS_ LPCWSTR pwszName, SHCOLUMNID * pscid) PURE; -ICOM_DEFINE(IShellFolder2, IShellFolder) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IShellFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IShellFolder2_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IShellFolder2_Release(p) (p)->lpVtbl->Release(p) -/*** IShellFolder methods ***/ -#define IShellFolder2_ParseDisplayName(p,a,b,c,d,e,f) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e,f) -#define IShellFolder2_EnumObjects(p,a,b,c) (p)->lpVtbl->EnumObjects(p,a,b,c) -#define IShellFolder2_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d) -#define IShellFolder2_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d) -#define IShellFolder2_CompareIDs(p,a,b,c) (p)->lpVtbl->CompareIDs(p,a,b,c) -#define IShellFolder2_CreateViewObject(p,a,b,c) (p)->lpVtbl->CreateViewObject(p,a,b,c) -#define IShellFolder2_GetAttributesOf(p,a,b,c) (p)->lpVtbl->GetAttributesOf(p,a,b,c) -#define IShellFolder2_GetUIObjectOf(p,a,b,c,d,e,f) (p)->lpVtbl->GetUIObjectOf(p,a,b,c,d,e,f) -#define IShellFolder2_GetDisplayNameOf(p,a,b,c) (p)->lpVtbl->GetDisplayNameOf(p,a,b,c) -#define IShellFolder2_SetNameOf(p,a,b,c,d,e) (p)->lpVtbl->SetNameOf(p,a,b,c,d,e) -/*** IShellFolder2 methods ***/ -#define IShellFolder2_GetDefaultSearchGUID(p,a) (p)->lpVtbl->GetDefaultSearchGUID(p,a) -#define IShellFolder2_EnumSearches(p,a) (p)->lpVtbl->EnumSearches(p,a) -#define IShellFolder2_GetDefaultColumn(p,a,b,c) (p)->lpVtbl->GetDefaultColumn(p,a,b,c) -#define IShellFolder2_GetDefaultColumnState(p,a,b) (p)->lpVtbl->GetDefaultColumnState(p,a,b) -#define IShellFolder2_GetDetailsEx(p,a,b,c) (p)->lpVtbl->GetDetailsEx(p,a,b,c) -#define IShellFolder2_GetDetailsOf(p,a,b,c) (p)->lpVtbl->GetDetailsOf(p,a,b,c) -#define IShellFolder2_MapNameToSCID(p,a,b) (p)->lpVtbl->MapNameToSCID(p,a,b) -#endif - -/***************************************************************************** - * IPersistFolder interface - */ - -#define INTERFACE IPersistFolder -#define IPersistFolder_METHODS \ - IPersist_METHODS \ - STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST pidl) PURE; -ICOM_DEFINE(IPersistFolder, IPersist) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IPersistFolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IPersistFolder_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IPersistFolder_Release(p) (p)->lpVtbl->Release(p) -/*** IPersist methods ***/ -#define IPersistFolder_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a) -/*** IPersistFolder methods ***/ -#define IPersistFolder_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) -#endif - -/***************************************************************************** - * IPersistFolder2 interface - */ - -#define INTERFACE IPersistFolder2 -#define IPersistFolder2_METHODS \ - IPersistFolder_METHODS \ - STDMETHOD(GetCurFolder)(THIS_ LPITEMIDLIST * pidl) PURE; -ICOM_DEFINE(IPersistFolder2, IPersistFolder) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IPersistFolder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IPersistFolder2_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IPersistFolder2_Release(p) (p)->lpVtbl->Release(p) -/*** IPersist methods ***/ -#define IPersistFolder2_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a) -/*** IPersistFolder methods ***/ -#define IPersistFolder2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) -/*** IPersistFolder2 methods ***/ -#define IPersistFolder2_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a) -#endif - /***************************************************************************** * IPersistFolder3 interface diff --git a/include/wine/obj_shelllink.h b/include/wine/obj_shelllink.h deleted file mode 100644 index 61b65c56b2b..00000000000 --- a/include/wine/obj_shelllink.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Defines the COM interfaces and APIs related to IShellLink. - * - * Depends on 'obj_base.h'. - * - * Copyright (C) 1999 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __WINE_WINE_OBJ_SHELLLINK_H -#define __WINE_WINE_OBJ_SHELLLINK_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -#define IShellLink WINELIB_NAME_AW(IShellLink) - -/***************************************************************************** - * Predeclare the interfaces - */ -typedef struct IShellLinkA IShellLinkA,*LPSHELLLINK; -typedef struct IShellLinkW IShellLinkW,*LPSHELLLINKW; - -/***************************************************************************** - * - */ -typedef enum -{ SLR_NO_UI = 0x0001, - SLR_ANY_MATCH = 0x0002, - SLR_UPDATE = 0x0004 -} SLR_FLAGS; - -/***************************************************************************** - * GetPath fFlags - */ -typedef enum -{ SLGP_SHORTPATH = 0x0001, - SLGP_UNCPRIORITY = 0x0002, - SLGP_RAWPATH = 0x0004 -} SLGP_FLAGS; -/***************************************************************************** - * IShellLink interface - */ -#define INTERFACE IShellLinkA -#define IShellLinkA_METHODS \ - IUnknown_METHODS \ - STDMETHOD(GetPath)(THIS_ LPSTR pszFile, INT cchMaxPath, WIN32_FIND_DATAA * pfd, DWORD fFlags) PURE; \ - STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST * ppidl) PURE; \ - STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \ - STDMETHOD(GetDescription)(THIS_ LPSTR pszName, INT cchMaxName) PURE; \ - STDMETHOD(SetDescription)(THIS_ LPCSTR pszName) PURE; \ - STDMETHOD(GetWorkingDirectory)(THIS_ LPSTR pszDir,INT cchMaxPath) PURE; \ - STDMETHOD(SetWorkingDirectory)(THIS_ LPCSTR pszDir) PURE; \ - STDMETHOD(GetArguments)(THIS_ LPSTR pszArgs, INT cchMaxPath) PURE; \ - STDMETHOD(SetArguments)(THIS_ LPCSTR pszArgs) PURE; \ - STDMETHOD(GetHotkey)(THIS_ WORD * pwHotkey) PURE; \ - STDMETHOD(SetHotkey)(THIS_ WORD wHotkey) PURE; \ - STDMETHOD(GetShowCmd)(THIS_ INT * piShowCmd) PURE; \ - STDMETHOD(SetShowCmd)(THIS_ INT iShowCmd) PURE; \ - STDMETHOD(GetIconLocation)(THIS_ LPSTR pszIconPath, INT cchIconPath,INT * piIcon) PURE; \ - STDMETHOD(SetIconLocation)(THIS_ LPCSTR pszIconPath,INT iIcon) PURE; \ - STDMETHOD(SetRelativePath)(THIS_ LPCSTR pszPathRel, DWORD dwReserved) PURE; \ - STDMETHOD(Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \ - STDMETHOD(SetPath)(THIS_ LPCSTR pszFile) PURE; -ICOM_DEFINE(IShellLinkA,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IShellLinkA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IShellLinkA_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IShellLinkA_Release(p) (p)->lpVtbl->Release(p) -/*** IShellLink methods ***/ -#define IShellLinkA_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d) -#define IShellLinkA_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a) -#define IShellLinkA_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a) -#define IShellLinkA_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b) -#define IShellLinkA_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a) -#define IShellLinkA_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b) -#define IShellLinkA_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a) -#define IShellLinkA_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b) -#define IShellLinkA_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a) -#define IShellLinkA_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a) -#define IShellLinkA_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a) -#define IShellLinkA_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a) -#define IShellLinkA_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a) -#define IShellLinkA_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c) -#define IShellLinkA_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b) -#define IShellLinkA_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b) -#define IShellLinkA_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b) -#define IShellLinkA_SetPath(p,a) (p)->lpVtbl->SetPath(p,a) -#endif - -/***************************************************************************** - * IShellLinkW interface - */ -#define INTERFACE IShellLinkW -#define IShellLinkW_METHODS \ - IUnknown_METHODS \ - STDMETHOD(GetPath)(THIS_ LPWSTR pszFile, INT cchMaxPath, WIN32_FIND_DATAA * pfd, DWORD fFlags) PURE; \ - STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST * ppidl) PURE; \ - STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST pidl) PURE; \ - STDMETHOD(GetDescription)(THIS_ LPWSTR pszName, INT cchMaxName) PURE; \ - STDMETHOD(SetDescription)(THIS_ LPCWSTR pszName) PURE; \ - STDMETHOD(GetWorkingDirectory)(THIS_ LPWSTR pszDir,INT cchMaxPath) PURE; \ - STDMETHOD(SetWorkingDirectory)(THIS_ LPCWSTR pszDir) PURE; \ - STDMETHOD(GetArguments)(THIS_ LPWSTR pszArgs, INT cchMaxPath) PURE; \ - STDMETHOD(SetArguments)(THIS_ LPCWSTR pszArgs) PURE; \ - STDMETHOD(GetHotkey)(THIS_ WORD * pwHotkey) PURE; \ - STDMETHOD(SetHotkey)(THIS_ WORD wHotkey) PURE; \ - STDMETHOD(GetShowCmd)(THIS_ INT * piShowCmd) PURE; \ - STDMETHOD(SetShowCmd)(THIS_ INT iShowCmd) PURE; \ - STDMETHOD(GetIconLocation)(THIS_ LPWSTR pszIconPath, INT cchIconPath,INT * piIcon) PURE; \ - STDMETHOD(SetIconLocation)(THIS_ LPCWSTR pszIconPath,INT iIcon) PURE; \ - STDMETHOD(SetRelativePath)(THIS_ LPCWSTR pszPathRel, DWORD dwReserved) PURE; \ - STDMETHOD(Resolve)(THIS_ HWND hwnd, DWORD fFlags) PURE; \ - STDMETHOD(SetPath)(THIS_ LPCWSTR pszFile) PURE; -ICOM_DEFINE(IShellLinkW,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IShellLinkW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IShellLinkW_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IShellLinkW_Release(p) (p)->lpVtbl->Release(p) -/*** IShellLinkW methods ***/ -#define IShellLinkW_GetPath(p,a,b,c,d) (p)->lpVtbl->GetPath(p,a,b,c,d) -#define IShellLinkW_GetIDList(p,a) (p)->lpVtbl->GetIDList(p,a) -#define IShellLinkW_SetIDList(p,a) (p)->lpVtbl->SetIDList(p,a) -#define IShellLinkW_GetDescription(p,a,b) (p)->lpVtbl->GetDescription(p,a,b) -#define IShellLinkW_SetDescription(p,a) (p)->lpVtbl->SetDescription(p,a) -#define IShellLinkW_GetWorkingDirectory(p,a,b) (p)->lpVtbl->GetWorkingDirectory(p,a,b) -#define IShellLinkW_SetWorkingDirectory(p,a) (p)->lpVtbl->SetWorkingDirectory(p,a) -#define IShellLinkW_GetArguments(p,a,b) (p)->lpVtbl->GetArguments(p,a,b) -#define IShellLinkW_SetArguments(p,a) (p)->lpVtbl->SetArguments(p,a) -#define IShellLinkW_GetHotkey(p,a) (p)->lpVtbl->GetHotkey(p,a) -#define IShellLinkW_SetHotkey(p,a) (p)->lpVtbl->SetHotkey(p,a) -#define IShellLinkW_GetShowCmd(p,a) (p)->lpVtbl->GetShowCmd(p,a) -#define IShellLinkW_SetShowCmd(p,a) (p)->lpVtbl->SetShowCmd(p,a) -#define IShellLinkW_GetIconLocation(p,a,b,c) (p)->lpVtbl->GetIconLocation(p,a,b,c) -#define IShellLinkW_SetIconLocation(p,a,b) (p)->lpVtbl->SetIconLocation(p,a,b) -#define IShellLinkW_SetRelativePath(p,a,b) (p)->lpVtbl->SetRelativePath(p,a,b) -#define IShellLinkW_Resolve(p,a,b) (p)->lpVtbl->Resolve(p,a,b) -#define IShellLinkW_SetPath(p,a) (p)->lpVtbl->SetPath(p,a) -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_SHELLLINK_H */ diff --git a/include/wine/obj_shellview.h b/include/wine/obj_shellview.h deleted file mode 100644 index 93162f2b667..00000000000 --- a/include/wine/obj_shellview.h +++ /dev/null @@ -1,175 +0,0 @@ -/* - * IShellView - * - * Copyright (C) 1999 Juergen Schmied - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __WINE_WINE_OBJ_SHELLVIEW_H -#define __WINE_WINE_OBJ_SHELLVIEW_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -/**************************************************************************** - * IShellBrowser is here defined because of a cyclic dependance between - * IShellBrowser and IShellView - */ -typedef struct IShellBrowser IShellBrowser, *LPSHELLBROWSER; - -typedef struct IShellView IShellView, *LPSHELLVIEW; - -/* shellview select item flags*/ -#define SVSI_DESELECT 0x0000 -#define SVSI_SELECT 0x0001 -#define SVSI_EDIT 0x0003 /* includes select */ -#define SVSI_DESELECTOTHERS 0x0004 -#define SVSI_ENSUREVISIBLE 0x0008 -#define SVSI_FOCUSED 0x0010 - -/* shellview get item object flags */ -#define SVGIO_BACKGROUND 0x00000000 -#define SVGIO_SELECTION 0x00000001 -#define SVGIO_ALLVIEW 0x00000002 - -/* The explorer dispatches WM_COMMAND messages based on the range of - command/menuitem IDs. All the IDs of menuitems that the view (right - pane) inserts must be in FCIDM_SHVIEWFIRST/LAST (otherwise, the explorer - won't dispatch them). The view should not deal with any menuitems - in FCIDM_BROWSERFIRST/LAST (otherwise, it won't work with the future - version of the shell). - - FCIDM_SHVIEWFIRST/LAST for the right pane (IShellView) - FCIDM_BROWSERFIRST/LAST for the explorer frame (IShellBrowser) - FCIDM_GLOBAL/LAST for the explorer's submenu IDs -*/ -#define FCIDM_SHVIEWFIRST 0x0000 -/* undocumented */ -#define FCIDM_SHVIEW_ARRANGE 0x7001 -#define FCIDM_SHVIEW_DELETE 0x7011 -#define FCIDM_SHVIEW_PROPERTIES 0x7013 -#define FCIDM_SHVIEW_CUT 0x7018 -#define FCIDM_SHVIEW_COPY 0x7019 -#define FCIDM_SHVIEW_INSERT 0x701A -#define FCIDM_SHVIEW_UNDO 0x701B -#define FCIDM_SHVIEW_INSERTLINK 0x701C -#define FCIDM_SHVIEW_SELECTALL 0x7021 -#define FCIDM_SHVIEW_INVERTSELECTION 0x7022 - -#define FCIDM_SHVIEW_BIGICON 0x7029 -#define FCIDM_SHVIEW_SMALLICON 0x702A -#define FCIDM_SHVIEW_LISTVIEW 0x702B -#define FCIDM_SHVIEW_REPORTVIEW 0x702C -/* 0x7030-0x703f are used by the shellbrowser */ -#define FCIDM_SHVIEW_AUTOARRANGE 0x7031 -#define FCIDM_SHVIEW_SNAPTOGRID 0x7032 - -#define FCIDM_SHVIEW_HELP 0x7041 -#define FCIDM_SHVIEW_RENAME 0x7050 -#define FCIDM_SHVIEW_CREATELINK 0x7051 -#define FCIDM_SHVIEW_NEWLINK 0x7052 -#define FCIDM_SHVIEW_NEWFOLDER 0x7053 - -#define FCIDM_SHVIEW_REFRESH 0x7100 /* FIXME */ -#define FCIDM_SHVIEW_EXPLORE 0x7101 /* FIXME */ -#define FCIDM_SHVIEW_OPEN 0x7102 /* FIXME */ - -#define FCIDM_SHVIEWLAST 0x7fff -#define FCIDM_BROWSERFIRST 0xA000 -/* undocumented toolbar items from stddlg's*/ -#define FCIDM_TB_UPFOLDER 0xA001 -#define FCIDM_TB_NEWFOLDER 0xA002 -#define FCIDM_TB_SMALLICON 0xA003 -#define FCIDM_TB_REPORTVIEW 0xA004 -#define FCIDM_TB_DESKTOP 0xA005 /* FIXME */ - -#define FCIDM_BROWSERLAST 0xbf00 -#define FCIDM_GLOBALFIRST 0x8000 -#define FCIDM_GLOBALLAST 0x9fff - -/* -* Global submenu IDs and separator IDs -*/ -#define FCIDM_MENU_FILE (FCIDM_GLOBALFIRST+0x0000) -#define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040) -#define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080) -#define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST+0x0081) -#define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST+0x00c0) -#define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST+0x00c1) -#define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100) -#define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140) -#define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST+0x0150) -#define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST+0x0170) - -/* control IDs known to the view */ -#define FCIDM_TOOLBAR (FCIDM_BROWSERFIRST + 0) -#define FCIDM_STATUS (FCIDM_BROWSERFIRST + 1) - -/* uState values for IShellView::UIActivate */ -typedef enum -{ SVUIA_DEACTIVATE = 0, - SVUIA_ACTIVATE_NOFOCUS = 1, - SVUIA_ACTIVATE_FOCUS = 2, - SVUIA_INPLACEACTIVATE = 3 /* new flag for IShellView2 */ -} SVUIA_STATUS; - -#define INTERFACE IShellView -#define IShellView_METHODS \ - IOleWindow_METHODS \ - STDMETHOD(TranslateAccelerator)(THIS_ LPMSG lpmsg) PURE; \ - STDMETHOD(EnableModeless)(THIS_ BOOL fEnable) PURE; \ - STDMETHOD(UIActivate)(THIS_ UINT uState) PURE; \ - STDMETHOD(Refresh)(THIS) PURE; \ - STDMETHOD(CreateViewWindow)(THIS_ IShellView * lpPrevView, LPCFOLDERSETTINGS lpfs, IShellBrowser * psb, RECT * prcView, HWND * phWnd) PURE; \ - STDMETHOD(DestroyViewWindow)(THIS) PURE; \ - STDMETHOD(GetCurrentInfo)(THIS_ LPFOLDERSETTINGS lpfs) PURE; \ - STDMETHOD(AddPropertySheetPages)(THIS_ DWORD dwReserved, LPFNADDPROPSHEETPAGE lpfn, LPARAM lparam) PURE; \ - STDMETHOD(SaveViewState)(THIS) PURE; \ - STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST pidlItem, UINT uFlags) PURE; \ - STDMETHOD(GetItemObject)(THIS_ UINT uItem, REFIID riid, LPVOID * ppv) PURE; \ - STDMETHOD(EditItem)(THIS_ LPCITEMIDLIST pidlItem) PURE; -ICOM_DEFINE(IShellView,IOleWindow) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IShellView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IShellView_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IShellView_Release(p) (p)->lpVtbl->Release(p) -/*** IShellView methods ***/ -#define IShellView_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a) -#define IShellView_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a) -#define IShellView_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a) -#define IShellView_EnableModeless(p,a) (p)->lpVtbl->EnableModeless(p,a) -#define IShellView_UIActivate(p,a) (p)->lpVtbl->UIActivate(p,a) -#define IShellView_Refresh(p) (p)->lpVtbl->Refresh(p) -#define IShellView_CreateViewWindow(p,a,b,c,d,e) (p)->lpVtbl->CreateViewWindow(p,a,b,c,d,e) -#define IShellView_DestroyViewWindow(p) (p)->lpVtbl->DestroyViewWindow(p) -#define IShellView_GetCurrentInfo(p,a) (p)->lpVtbl->GetCurrentInfo(p,a) -#define IShellView_AddPropertySheetPages(p,a,b,c) (p)->lpVtbl->AddPropertySheetPages(p,a,b,c) -#define IShellView_SaveViewState(p) (p)->lpVtbl->SaveViewState(p) -#define IShellView_SelectItem(p,a,b) (p)->lpVtbl->SelectItem(p,a,b) -#define IShellView_GetItemObject(p,a,b,c) (p)->lpVtbl->GetItemObject(p,a,b,c) -/* WINE specific */ -#define IShellView_EditItem(p,a) (p)->lpVtbl->EditItem(p,a) -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_SHELLVIEW_H */