Commit d937dc29 authored by Alexandre Julliard's avatar Alexandre Julliard

Implemented shtypes.idl and shobjidl.idl and removed a few more

wine/obj_* headers.
parent 837e357d
......@@ -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);
......
......@@ -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};
......@@ -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
};
/****************************************************************************
......
......@@ -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
};
/************************************************************************
......
......@@ -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
};
......
......@@ -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
......
......@@ -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)
......
......@@ -33,36 +33,17 @@ extern "C" {
#include <pshpack1.h>
/****************************************************************************
* SHITEMID, ITEMIDLIST, PIDL API
*/
#include <pshpack1.h>
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 <shtypes.h>
#include <shobjidl.h>
typedef struct _ITEMIDLIST
{
SHITEMID mkid; /* first itemid in list */
} ITEMIDLIST,*LPITEMIDLIST;
typedef const ITEMIDLIST *LPCITEMIDLIST;
#include <poppack.h>
BOOL WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath);
BOOL WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath);
#define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList)
#include <wine/obj_enumidlist.h>
#include <wine/obj_shellfolder.h>
#include <wine/obj_shellview.h>
#include <wine/obj_shelllink.h>
#include <wine/obj_shellbrowser.h>
#include <wine/obj_contextmenu.h>
#include <wine/obj_shellextinit.h>
#include <wine/obj_extracticon.h>
#include <wine/obj_commdlgbrowser.h>
#include <wine/obj_dockingwindowframe.h>
......@@ -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
*/
......
/*** Autogenerated by WIDL 0.1 from shobjidl.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>
#ifndef __WIDL_SHOBJIDL_H
#define __WIDL_SHOBJIDL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <objidl.h>
#include <oleidl.h>
#include <oaidl.h>
#include <shtypes.h>
#include <servprov.h>
#include <comcat.h>
#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 <prsht.h>
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 <commctrl.h>
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 */
/*
* 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 <prsht.h>")
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 <commctrl.h>")
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);
}
/*** Autogenerated by WIDL 0.1 from shtypes.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>
#ifndef __WIDL_SHTYPES_H
#define __WIDL_SHTYPES_H
#ifdef __cplusplus
extern "C" {
#endif
#include <wtypes.h>
#include <pshpack1.h>
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 <poppack.h>
#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 <pshpack4.h>
typedef struct _STRRET {
UINT uType;
union {
LPWSTR pOleStr;
UINT uOffset;
char cStr[260];
} DUMMYUNIONNAME;
} STRRET, *LPSTRRET;
#include <poppack.h>
#include <pshpack1.h>
typedef struct {
int fmt;
int cxChar;
STRRET str;
} SHELLDETAILS, *LPSHELLDETAILS;
#include <poppack.h>
#ifdef __cplusplus
}
#endif
#endif /* __WIDL_SHTYPES_H */
/*
* 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 <pshpack1.h>")
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 <poppack.h>")
#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 <pshpack4.h>")
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 <poppack.h>")
cpp_quote("#include <pshpack1.h>")
typedef struct
{
int fmt;
int cxChar;
STRRET str;
} SHELLDETAILS, *LPSHELLDETAILS;
cpp_quote("#include <poppack.h>")
/*
* 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 */
/*
* 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 */
/*
* 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 */
......@@ -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
......
/*
* 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 */
/*
* 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 */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment