diff --git a/dlls/commdlg/filedlg95.c b/dlls/commdlg/filedlg95.c index b06ab8f413b..e8dd865b770 100644 --- a/dlls/commdlg/filedlg95.c +++ b/dlls/commdlg/filedlg95.c @@ -1417,15 +1417,15 @@ static LRESULT FILEDLG95_OnWMCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) break; /* New folder button */ case FCIDM_TB_NEWFOLDER: - FILEDLG95_SHELL_ExecuteCommand(hwnd,CMDSTR_NEWFOLDER); + FILEDLG95_SHELL_ExecuteCommand(hwnd,CMDSTR_NEWFOLDERA); break; /* List option button */ case FCIDM_TB_SMALLICON: - FILEDLG95_SHELL_ExecuteCommand(hwnd,CMDSTR_VIEWLIST); + FILEDLG95_SHELL_ExecuteCommand(hwnd,CMDSTR_VIEWLISTA); break; /* Details option button */ case FCIDM_TB_REPORTVIEW: - FILEDLG95_SHELL_ExecuteCommand(hwnd,CMDSTR_VIEWDETAILS); + FILEDLG95_SHELL_ExecuteCommand(hwnd,CMDSTR_VIEWDETAILSA); break; /* Details option button */ case FCIDM_TB_DESKTOP: diff --git a/dlls/shell32/shell32_main.h b/dlls/shell32/shell32_main.h index 77b6a963f3d..0636607fec6 100644 --- a/dlls/shell32/shell32_main.h +++ b/dlls/shell32/shell32_main.h @@ -85,8 +85,8 @@ LPDATAOBJECT IDataObject_Constructor(HWND hwndOwner, LPCITEMIDLIST myPidl, LPCIT LPENUMFORMATETC IEnumFORMATETC_Constructor(UINT, const FORMATETC []); LPCLASSFACTORY IClassFactory_Constructor(REFCLSID); -IContextMenu * ISvItemCm_Constructor(LPSHELLFOLDER pSFParent, LPCITEMIDLIST pidl, LPCITEMIDLIST *aPidls, UINT uItemCount); -IContextMenu * ISvBgCm_Constructor(LPSHELLFOLDER pSFParent); +IContextMenu2 * ISvItemCm_Constructor(LPSHELLFOLDER pSFParent, LPCITEMIDLIST pidl, LPCITEMIDLIST *aPidls, UINT uItemCount); +IContextMenu2 * ISvBgCm_Constructor(LPSHELLFOLDER pSFParent); LPSHELLVIEW IShellView_Constructor(LPSHELLFOLDER); HRESULT WINAPI IFSFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv); diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index 1b2586fdfdf..e08c6a309f5 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c @@ -808,7 +808,7 @@ static void ShellView_DoContextMenu(IShellViewImpl * This, WORD x, WORD y, BOOL BOOL fExplore = FALSE; HWND hwndTree = 0; LPCONTEXTMENU pContextMenu = NULL; - IContextMenu * pCM = NULL; + IContextMenu2 *pCM = NULL; CMINVOKECOMMANDINFO cmi; TRACE("(%p)->(0x%08x 0x%08x 0x%08x) stub\n",This, x, y, bDefault); @@ -880,7 +880,7 @@ static void ShellView_DoContextMenu(IShellViewImpl * This, WORD x, WORD y, BOOL hMenu = CreatePopupMenu(); pCM = ISvBgCm_Constructor(This->pSFParent); - IContextMenu_QueryContextMenu(pCM, hMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, 0); + IContextMenu2_QueryContextMenu(pCM, hMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, 0); uCommand = TrackPopupMenu( hMenu, TPM_LEFTALIGN | TPM_RETURNCMD,x,y,0,This->hWnd,NULL); DestroyMenu(hMenu); @@ -891,9 +891,9 @@ static void ShellView_DoContextMenu(IShellViewImpl * This, WORD x, WORD y, BOOL cmi.cbSize = sizeof(cmi); cmi.lpVerb = (LPCSTR)MAKEINTRESOURCEA(uCommand); cmi.hwnd = This->hWndParent; - IContextMenu_InvokeCommand(pCM, &cmi); + IContextMenu2_InvokeCommand(pCM, &cmi); - IContextMenu_Release(pCM); + IContextMenu2_Release(pCM); } } diff --git a/dlls/shell32/shv_bg_cmenu.c b/dlls/shell32/shv_bg_cmenu.c index f02409394b6..e78f0bedb0e 100644 --- a/dlls/shell32/shv_bg_cmenu.c +++ b/dlls/shell32/shv_bg_cmenu.c @@ -41,18 +41,18 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell); */ typedef struct { - ICOM_VFIELD(IContextMenu); + ICOM_VFIELD(IContextMenu2); IShellFolder* pSFParent; DWORD ref; } BgCmImpl; -static struct ICOM_VTABLE(IContextMenu) cmvt; +static struct ICOM_VTABLE(IContextMenu2) cmvt; /************************************************************************** * ISVBgCm_Constructor() */ -IContextMenu *ISvBgCm_Constructor(IShellFolder* pSFParent) +IContextMenu2 *ISvBgCm_Constructor(IShellFolder* pSFParent) { BgCmImpl* cm; @@ -63,13 +63,13 @@ IContextMenu *ISvBgCm_Constructor(IShellFolder* pSFParent) if(pSFParent) IShellFolder_AddRef(pSFParent); TRACE("(%p)->()\n",cm); - return (IContextMenu*)cm; + return (IContextMenu2*)cm; } /************************************************************************** * ISVBgCm_fnQueryInterface */ -static HRESULT WINAPI ISVBgCm_fnQueryInterface(IContextMenu *iface, REFIID riid, LPVOID *ppvObj) +static HRESULT WINAPI ISVBgCm_fnQueryInterface(IContextMenu2 *iface, REFIID riid, LPVOID *ppvObj) { ICOM_THIS(BgCmImpl, iface); @@ -77,11 +77,9 @@ static HRESULT WINAPI ISVBgCm_fnQueryInterface(IContextMenu *iface, REFIID riid, *ppvObj = NULL; - if(IsEqualIID(riid, &IID_IUnknown)) /*IUnknown*/ - { - *ppvObj = This; - } - else if(IsEqualIID(riid, &IID_IContextMenu)) /*IContextMenu*/ + if(IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IContextMenu) || + IsEqualIID(riid, &IID_IContextMenu2)) { *ppvObj = This; } @@ -103,7 +101,7 @@ static HRESULT WINAPI ISVBgCm_fnQueryInterface(IContextMenu *iface, REFIID riid, /************************************************************************** * ISVBgCm_fnAddRef */ -static ULONG WINAPI ISVBgCm_fnAddRef(IContextMenu *iface) +static ULONG WINAPI ISVBgCm_fnAddRef(IContextMenu2 *iface) { ICOM_THIS(BgCmImpl, iface); @@ -115,7 +113,7 @@ static ULONG WINAPI ISVBgCm_fnAddRef(IContextMenu *iface) /************************************************************************** * ISVBgCm_fnRelease */ -static ULONG WINAPI ISVBgCm_fnRelease(IContextMenu *iface) +static ULONG WINAPI ISVBgCm_fnRelease(IContextMenu2 *iface) { ICOM_THIS(BgCmImpl, iface); @@ -140,7 +138,7 @@ static ULONG WINAPI ISVBgCm_fnRelease(IContextMenu *iface) */ static HRESULT WINAPI ISVBgCm_fnQueryContextMenu( - IContextMenu *iface, + IContextMenu2 *iface, HMENU hMenu, UINT indexMenu, UINT idCmdFirst, @@ -186,7 +184,7 @@ static HRESULT WINAPI ISVBgCm_fnQueryContextMenu( * DoNewFolder */ static void DoNewFolder( - IContextMenu *iface, + IContextMenu2 *iface, IShellView *psv) { ICOM_THIS(BgCmImpl, iface); @@ -217,7 +215,7 @@ static void DoNewFolder( * DoPaste */ static BOOL DoPaste( - IContextMenu *iface) + IContextMenu2 *iface) { ICOM_THIS(BgCmImpl, iface); BOOL bSuccess = FALSE; @@ -313,7 +311,7 @@ static BOOL DoPaste( * ISVBgCm_fnInvokeCommand() */ static HRESULT WINAPI ISVBgCm_fnInvokeCommand( - IContextMenu *iface, + IContextMenu2 *iface, LPCMINVOKECOMMANDINFO lpcmi) { ICOM_THIS(BgCmImpl, iface); @@ -383,7 +381,7 @@ static HRESULT WINAPI ISVBgCm_fnInvokeCommand( * */ static HRESULT WINAPI ISVBgCm_fnGetCommandString( - IContextMenu *iface, + IContextMenu2 *iface, UINT idCommand, UINT uFlags, UINT* lpReserved, @@ -417,7 +415,7 @@ static HRESULT WINAPI ISVBgCm_fnGetCommandString( * ISVBgCm_fnHandleMenuMsg() */ static HRESULT WINAPI ISVBgCm_fnHandleMenuMsg( - IContextMenu *iface, + IContextMenu2 *iface, UINT uMsg, WPARAM wParam, LPARAM lParam) @@ -430,10 +428,10 @@ static HRESULT WINAPI ISVBgCm_fnHandleMenuMsg( } /************************************************************************** -* IContextMenu VTable +* IContextMenu2 VTable * */ -static struct ICOM_VTABLE(IContextMenu) cmvt = +static struct ICOM_VTABLE(IContextMenu2) cmvt = { ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE ISVBgCm_fnQueryInterface, @@ -442,6 +440,5 @@ static struct ICOM_VTABLE(IContextMenu) cmvt = ISVBgCm_fnQueryContextMenu, ISVBgCm_fnInvokeCommand, ISVBgCm_fnGetCommandString, - ISVBgCm_fnHandleMenuMsg, - (void *) 0xdeadbabe /* just paranoia (IContextMenu3) */ + ISVBgCm_fnHandleMenuMsg }; diff --git a/dlls/shell32/shv_item_cmenu.c b/dlls/shell32/shv_item_cmenu.c index 593727d83ed..7883662e7cd 100644 --- a/dlls/shell32/shv_item_cmenu.c +++ b/dlls/shell32/shv_item_cmenu.c @@ -41,7 +41,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell); * IContextMenu Implementation */ typedef struct -{ ICOM_VFIELD(IContextMenu); +{ ICOM_VFIELD(IContextMenu2); DWORD ref; IShellFolder* pSFParent; LPITEMIDLIST pidl; /* root pidl */ @@ -51,7 +51,7 @@ typedef struct } ItemCmImpl; -static struct ICOM_VTABLE(IContextMenu) cmvt; +static struct ICOM_VTABLE(IContextMenu2) cmvt; /************************************************************************** * ISvItemCm_CanRenameItems() @@ -76,7 +76,7 @@ static BOOL ISvItemCm_CanRenameItems(ItemCmImpl *This) /************************************************************************** * ISvItemCm_Constructor() */ -IContextMenu *ISvItemCm_Constructor(LPSHELLFOLDER pSFParent, LPCITEMIDLIST pidl, LPCITEMIDLIST *apidl, UINT cidl) +IContextMenu2 *ISvItemCm_Constructor(LPSHELLFOLDER pSFParent, LPCITEMIDLIST pidl, LPCITEMIDLIST *apidl, UINT cidl) { ItemCmImpl* cm; UINT u; @@ -99,13 +99,13 @@ IContextMenu *ISvItemCm_Constructor(LPSHELLFOLDER pSFParent, LPCITEMIDLIST pidl, TRACE("(%p)->()\n",cm); - return (IContextMenu*)cm; + return (IContextMenu2*)cm; } /************************************************************************** * ISvItemCm_fnQueryInterface */ -static HRESULT WINAPI ISvItemCm_fnQueryInterface(IContextMenu *iface, REFIID riid, LPVOID *ppvObj) +static HRESULT WINAPI ISvItemCm_fnQueryInterface(IContextMenu2 *iface, REFIID riid, LPVOID *ppvObj) { ICOM_THIS(ItemCmImpl, iface); @@ -113,11 +113,9 @@ static HRESULT WINAPI ISvItemCm_fnQueryInterface(IContextMenu *iface, REFIID rii *ppvObj = NULL; - if(IsEqualIID(riid, &IID_IUnknown)) /*IUnknown*/ - { - *ppvObj = This; - } - else if(IsEqualIID(riid, &IID_IContextMenu)) /*IContextMenu*/ + if(IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IContextMenu) || + IsEqualIID(riid, &IID_IContextMenu2)) { *ppvObj = This; } @@ -139,7 +137,7 @@ static HRESULT WINAPI ISvItemCm_fnQueryInterface(IContextMenu *iface, REFIID rii /************************************************************************** * ISvItemCm_fnAddRef */ -static ULONG WINAPI ISvItemCm_fnAddRef(IContextMenu *iface) +static ULONG WINAPI ISvItemCm_fnAddRef(IContextMenu2 *iface) { ICOM_THIS(ItemCmImpl, iface); @@ -151,7 +149,7 @@ static ULONG WINAPI ISvItemCm_fnAddRef(IContextMenu *iface) /************************************************************************** * ISvItemCm_fnRelease */ -static ULONG WINAPI ISvItemCm_fnRelease(IContextMenu *iface) +static ULONG WINAPI ISvItemCm_fnRelease(IContextMenu2 *iface) { ICOM_THIS(ItemCmImpl, iface); @@ -211,7 +209,7 @@ void WINAPI _InsertMenuItem ( */ static HRESULT WINAPI ISvItemCm_fnQueryContextMenu( - IContextMenu *iface, + IContextMenu2 *iface, HMENU hmenu, UINT indexMenu, UINT idCmdFirst, @@ -263,7 +261,7 @@ static HRESULT WINAPI ISvItemCm_fnQueryContextMenu( */ static void DoOpenExplore( - IContextMenu *iface, + IContextMenu2 *iface, HWND hwnd, LPCSTR verb) { @@ -305,7 +303,7 @@ static void DoOpenExplore( * DoRename */ static void DoRename( - IContextMenu *iface, + IContextMenu2 *iface, HWND hwnd) { ICOM_THIS(ItemCmImpl, iface); @@ -333,7 +331,7 @@ static void DoRename( * * deletes the currently selected items */ -static void DoDelete(IContextMenu *iface) +static void DoDelete(IContextMenu2 *iface) { ICOM_THIS(ItemCmImpl, iface); ISFHelper * psfhlp; @@ -352,7 +350,7 @@ static void DoDelete(IContextMenu *iface) * copies the currently selected items into the clipboard */ static BOOL DoCopyOrCut( - IContextMenu *iface, + IContextMenu2 *iface, HWND hwnd, BOOL bCut) { @@ -425,7 +423,7 @@ static BOOL DoCopyOrCut( * ISvItemCm_fnInvokeCommand() */ static HRESULT WINAPI ISvItemCm_fnInvokeCommand( - IContextMenu *iface, + IContextMenu2 *iface, LPCMINVOKECOMMANDINFO lpcmi) { ICOM_THIS(ItemCmImpl, iface); @@ -488,7 +486,7 @@ static HRESULT WINAPI ISvItemCm_fnInvokeCommand( * ISvItemCm_fnGetCommandString() */ static HRESULT WINAPI ISvItemCm_fnGetCommandString( - IContextMenu *iface, + IContextMenu2 *iface, UINT idCommand, UINT uFlags, UINT* lpReserved, @@ -503,7 +501,8 @@ static HRESULT WINAPI ISvItemCm_fnGetCommandString( switch(uFlags) { - case GCS_HELPTEXT: + case GCS_HELPTEXTA: + case GCS_HELPTEXTW: hr = E_NOTIMPL; break; @@ -528,7 +527,8 @@ static HRESULT WINAPI ISvItemCm_fnGetCommandString( } break; - case GCS_VALIDATE: + case GCS_VALIDATEA: + case GCS_VALIDATEW: hr = NOERROR; break; } @@ -543,7 +543,7 @@ static HRESULT WINAPI ISvItemCm_fnGetCommandString( * is nevertheless called from word95 */ static HRESULT WINAPI ISvItemCm_fnHandleMenuMsg( - IContextMenu *iface, + IContextMenu2 *iface, UINT uMsg, WPARAM wParam, LPARAM lParam) @@ -555,7 +555,7 @@ static HRESULT WINAPI ISvItemCm_fnHandleMenuMsg( return E_NOTIMPL; } -static struct ICOM_VTABLE(IContextMenu) cmvt = +static struct ICOM_VTABLE(IContextMenu2) cmvt = { ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE ISvItemCm_fnQueryInterface, @@ -564,6 +564,5 @@ static struct ICOM_VTABLE(IContextMenu) cmvt = ISvItemCm_fnQueryContextMenu, ISvItemCm_fnInvokeCommand, ISvItemCm_fnGetCommandString, - ISvItemCm_fnHandleMenuMsg, - (void *) 0xdeadbabe /* just paranoia */ + ISvItemCm_fnHandleMenuMsg }; diff --git a/include/Makefile.in b/include/Makefile.in index 8fa7c75cebd..23819690455 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -244,12 +244,6 @@ WINE_INCLUDES = \ debug.h \ exception.h \ library.h \ - obj_commdlgbrowser.h \ - obj_contextmenu.h \ - obj_dockingwindowframe.h \ - obj_dragdrophelper.h \ - obj_extracticon.h \ - obj_shellfolder.h \ unicode.h EXTRASUBDIRS = bitmaps msvcrt msvcrt/sys wine diff --git a/include/shlguid.h b/include/shlguid.h index bc29ebdd5d8..82293e97beb 100644 --- a/include/shlguid.h +++ b/include/shlguid.h @@ -41,28 +41,28 @@ DEFINE_SHLGUID(CGID_ShellServiceObject, 0x000214D2L, 0, 0); DEFINE_SHLGUID(CGID_ExplorerBarDoc, 0x000214D3L, 0, 0); DEFINE_SHLGUID(IID_INewShortcutHookA, 0x000214E1L, 0, 0); -DEFINE_SHLGUID(IID_IContextMenu, 0x000214E4L, 0, 0); DEFINE_SHLGUID(IID_IShellIcon, 0x000214E5L, 0, 0); DEFINE_SHLGUID(IID_IShellPropSheetExt, 0x000214E9L, 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_IShellCopyHookA, 0x000214EFL, 0, 0); DEFINE_SHLGUID(IID_IFileViewerA, 0x000214F0L, 0, 0); -DEFINE_SHLGUID(IID_ICommDlgBrowser, 0x000214F1L, 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_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_IExtractIconA, 0x000214EBL, 0, 0); */ +/* DEFINE_SHLGUID(IID_IExtractIconW, 0x000214FAL, 0, 0); */ +/* DEFINE_SHLGUID(IID_IContextMenu, 0x000214E4L, 0, 0); */ +/* DEFINE_SHLGUID(IID_IContextMenu2, 0x000214F4L, 0, 0); */ +/* DEFINE_SHLGUID(IID_ICommDlgBrowser, 0x000214F1L, 0, 0); */ /* DEFINE_SHLGUID(IID_IShellBrowser, 0x000214E2L, 0, 0); */ /* DEFINE_SHLGUID(IID_IShellView, 0x000214E3L, 0, 0); */ /* DEFINE_SHLGUID(IID_IShellFolder, 0x000214E6L, 0, 0); */ @@ -103,4 +103,13 @@ DEFINE_GUID(CLSID_MyDocuments, 0x450d8fba, 0xad25, 0x11d0, 0x98, 0xa8, 0x08, 0x0 DEFINE_GUID(IID_IQueryAssociations, 0xc46ca590, 0x3c3f, 0x11d2, 0xbe, 0xe6, 0x00, 0x00, 0xf8, 0x05, 0xca, 0x57); +DEFINE_GUID(CLSID_DragDropHelper, 0x4657278a, 0x411b, 0x11d2, 0x83, 0x9a, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0xd0); + +#define PID_FINDDATA 0 +#define PID_NETRESOURCE 1 +#define PID_DESCRIPTIONID 2 +#define PID_WHICHFOLDER 3 +#define PID_NETWORKLOCATION 4 +#define PID_COMPUTERNAME 5 + #endif /* __WINE_SHLGUID_H */ diff --git a/include/shlobj.h b/include/shlobj.h index 622359b4214..8f707b9c59c 100644 --- a/include/shlobj.h +++ b/include/shlobj.h @@ -39,13 +39,6 @@ BOOL WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath); #define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList) -#include -#include -#include -#include -#include -#include - /***************************************************************************** * Predeclare interfaces */ diff --git a/include/shobjidl.h b/include/shobjidl.h index 129d871cb7c..9440fb25f9e 100644 --- a/include/shobjidl.h +++ b/include/shobjidl.h @@ -2744,6 +2744,1374 @@ void __RPC_STUB IShellExtInit_Initialize_Stub( #endif /* __IShellExtInit_INTERFACE_DEFINED__ */ +#ifndef __IPersistFolder3_FWD_DEFINED__ +#define __IPersistFolder3_FWD_DEFINED__ +typedef struct IPersistFolder3 IPersistFolder3; +#endif + +typedef struct { + LPITEMIDLIST pidlTargetFolder; + WCHAR szTargetParsingName[260]; + WCHAR szNetworkProvider[260]; + DWORD dwAttributes; + int csidl; +} PERSIST_FOLDER_TARGET_INFO; + +/***************************************************************************** + * IPersistFolder3 interface + */ +#ifndef __IPersistFolder3_INTERFACE_DEFINED__ +#define __IPersistFolder3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IPersistFolder3 : public IPersistFolder2 +{ + virtual HRESULT STDMETHODCALLTYPE InitializeEx( + IBindCtx* pbc, + LPCITEMIDLIST pidlRoot, + const PERSIST_FOLDER_TARGET_INFO* ppfti) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo( + PERSIST_FOLDER_TARGET_INFO* ppfti) = 0; + +}; +#else +typedef struct IPersistFolder3Vtbl IPersistFolder3Vtbl; +struct IPersistFolder3 { + const IPersistFolder3Vtbl* lpVtbl; +}; +struct IPersistFolder3Vtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IPersistFolder3* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IPersistFolder3* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IPersistFolder3* This); + + /*** IPersist methods ***/ + HRESULT (STDMETHODCALLTYPE *GetClassID)( + IPersistFolder3* This, + CLSID* pClassID); + + /*** IPersistFolder methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IPersistFolder3* This, + LPCITEMIDLIST pidl); + + /*** IPersistFolder2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetCurFolder)( + IPersistFolder3* This, + LPITEMIDLIST* ppidl); + + /*** IPersistFolder3 methods ***/ + HRESULT (STDMETHODCALLTYPE *InitializeEx)( + IPersistFolder3* This, + IBindCtx* pbc, + LPCITEMIDLIST pidlRoot, + const PERSIST_FOLDER_TARGET_INFO* ppfti); + + HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)( + IPersistFolder3* This, + PERSIST_FOLDER_TARGET_INFO* ppfti); + +}; + +/*** IUnknown methods ***/ +#define IPersistFolder3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IPersistFolder3_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IPersistFolder3_Release(p) (p)->lpVtbl->Release(p) +/*** IPersist methods ***/ +#define IPersistFolder3_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a) +/*** IPersistFolder methods ***/ +#define IPersistFolder3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) +/*** IPersistFolder2 methods ***/ +#define IPersistFolder3_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a) +/*** IPersistFolder3 methods ***/ +#define IPersistFolder3_InitializeEx(p,a,b,c) (p)->lpVtbl->InitializeEx(p,a,b,c) +#define IPersistFolder3_GetFolderTargetInfo(p,a) (p)->lpVtbl->GetFolderTargetInfo(p,a) + +#endif + +#define IPersistFolder3_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; \ + /*** IPersistFolder3 methods ***/ \ + STDMETHOD_(HRESULT,InitializeEx)(THIS_ IBindCtx* pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO* ppfti) PURE; \ + STDMETHOD_(HRESULT,GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO* ppfti) PURE; + +HRESULT CALLBACK IPersistFolder3_InitializeEx_Proxy( + IPersistFolder3* This, + IBindCtx* pbc, + LPCITEMIDLIST pidlRoot, + const PERSIST_FOLDER_TARGET_INFO* ppfti); +void __RPC_STUB IPersistFolder3_InitializeEx_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IPersistFolder3_GetFolderTargetInfo_Proxy( + IPersistFolder3* This, + PERSIST_FOLDER_TARGET_INFO* ppfti); +void __RPC_STUB IPersistFolder3_GetFolderTargetInfo_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IPersistFolder3_INTERFACE_DEFINED__ */ + +#ifndef __IExtractIconA_FWD_DEFINED__ +#define __IExtractIconA_FWD_DEFINED__ +typedef struct IExtractIconA IExtractIconA; +#endif + +#define GIL_OPENICON 0x0001 +#define GIL_FORSHELL 0x0002 +#define GIL_ASYNC 0x0020 +#define GIL_DEFAULTICON 0x0040 +#define GIL_FORSHORTCUT 0x0080 +#define GIL_SIMULATEDOC 0x0001 +#define GIL_PERINSTANCE 0x0002 +#define GIL_PERCLASS 0x0004 +#define GIL_NOTFILENAME 0x0008 +#define GIL_DONTCACHE 0x0010 +typedef IExtractIconA *LPEXTRACTICONA; + +/***************************************************************************** + * IExtractIconA interface + */ +#ifndef __IExtractIconA_INTERFACE_DEFINED__ +#define __IExtractIconA_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IExtractIconA, 0x000214eb, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IExtractIconA : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetIconLocation( + UINT uFlags, + LPSTR szIconFile, + UINT cchMax, + INT* piIndex, + UINT* pwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE Extract( + LPCSTR pszFile, + UINT nIconIndex, + HICON* phiconLarge, + HICON* phiconSmall, + UINT nIconSize) = 0; + +}; +#else +typedef struct IExtractIconAVtbl IExtractIconAVtbl; +struct IExtractIconA { + const IExtractIconAVtbl* lpVtbl; +}; +struct IExtractIconAVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IExtractIconA* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IExtractIconA* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IExtractIconA* This); + + /*** IExtractIconA methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIconLocation)( + IExtractIconA* This, + UINT uFlags, + LPSTR szIconFile, + UINT cchMax, + INT* piIndex, + UINT* pwFlags); + + HRESULT (STDMETHODCALLTYPE *Extract)( + IExtractIconA* This, + LPCSTR pszFile, + UINT nIconIndex, + HICON* phiconLarge, + HICON* phiconSmall, + UINT nIconSize); + +}; + +/*** IUnknown methods ***/ +#define IExtractIconA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IExtractIconA_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IExtractIconA_Release(p) (p)->lpVtbl->Release(p) +/*** IExtractIconA methods ***/ +#define IExtractIconA_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e) +#define IExtractIconA_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e) + +#endif + +#define IExtractIconA_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; \ + /*** IExtractIconA methods ***/ \ + STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \ + STDMETHOD_(HRESULT,Extract)(THIS_ LPCSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE; + +HRESULT CALLBACK IExtractIconA_GetIconLocation_Proxy( + IExtractIconA* This, + UINT uFlags, + LPSTR szIconFile, + UINT cchMax, + INT* piIndex, + UINT* pwFlags); +void __RPC_STUB IExtractIconA_GetIconLocation_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IExtractIconA_Extract_Proxy( + IExtractIconA* This, + LPCSTR pszFile, + UINT nIconIndex, + HICON* phiconLarge, + HICON* phiconSmall, + UINT nIconSize); +void __RPC_STUB IExtractIconA_Extract_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IExtractIconA_INTERFACE_DEFINED__ */ + +#ifndef __IExtractIconW_FWD_DEFINED__ +#define __IExtractIconW_FWD_DEFINED__ +typedef struct IExtractIconW IExtractIconW; +#endif + +typedef IExtractIconW *LPEXTRACTICONW; + +/***************************************************************************** + * IExtractIconW interface + */ +#ifndef __IExtractIconW_INTERFACE_DEFINED__ +#define __IExtractIconW_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IExtractIconW, 0x000214fa, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IExtractIconW : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetIconLocation( + UINT uFlags, + LPWSTR szIconFile, + UINT cchMax, + INT* piIndex, + UINT* pwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE Extract( + LPCWSTR pszFile, + UINT nIconIndex, + HICON* phiconLarge, + HICON* phiconSmall, + UINT nIconSize) = 0; + +}; +#else +typedef struct IExtractIconWVtbl IExtractIconWVtbl; +struct IExtractIconW { + const IExtractIconWVtbl* lpVtbl; +}; +struct IExtractIconWVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IExtractIconW* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IExtractIconW* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IExtractIconW* This); + + /*** IExtractIconW methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIconLocation)( + IExtractIconW* This, + UINT uFlags, + LPWSTR szIconFile, + UINT cchMax, + INT* piIndex, + UINT* pwFlags); + + HRESULT (STDMETHODCALLTYPE *Extract)( + IExtractIconW* This, + LPCWSTR pszFile, + UINT nIconIndex, + HICON* phiconLarge, + HICON* phiconSmall, + UINT nIconSize); + +}; + +/*** IUnknown methods ***/ +#define IExtractIconW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IExtractIconW_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IExtractIconW_Release(p) (p)->lpVtbl->Release(p) +/*** IExtractIconW methods ***/ +#define IExtractIconW_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e) +#define IExtractIconW_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e) + +#endif + +#define IExtractIconW_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; \ + /*** IExtractIconW methods ***/ \ + STDMETHOD_(HRESULT,GetIconLocation)(THIS_ UINT uFlags, LPWSTR szIconFile, UINT cchMax, INT* piIndex, UINT* pwFlags) PURE; \ + STDMETHOD_(HRESULT,Extract)(THIS_ LPCWSTR pszFile, UINT nIconIndex, HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize) PURE; + +HRESULT CALLBACK IExtractIconW_GetIconLocation_Proxy( + IExtractIconW* This, + UINT uFlags, + LPWSTR szIconFile, + UINT cchMax, + INT* piIndex, + UINT* pwFlags); +void __RPC_STUB IExtractIconW_GetIconLocation_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IExtractIconW_Extract_Proxy( + IExtractIconW* This, + LPCWSTR pszFile, + UINT nIconIndex, + HICON* phiconLarge, + HICON* phiconSmall, + UINT nIconSize); +void __RPC_STUB IExtractIconW_Extract_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IExtractIconW_INTERFACE_DEFINED__ */ + +#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON) +#define IExtractIcon WINELIB_NAME_AW(IExtractIcon) +#ifndef __ICommDlgBrowser_FWD_DEFINED__ +#define __ICommDlgBrowser_FWD_DEFINED__ +typedef struct ICommDlgBrowser ICommDlgBrowser; +#endif + +#define CDBOSC_SETFOCUS 0x00000000 +#define CDBOSC_KILLFOCUS 0x00000001 +#define CDBOSC_SELCHANGE 0x00000002 +#define CDBOSC_RENAME 0x00000003 +#define CDBOSC_STATECHANGE 0x00000004 +typedef ICommDlgBrowser *LPCOMMDLGBROWSER; + +/***************************************************************************** + * ICommDlgBrowser interface + */ +#ifndef __ICommDlgBrowser_INTERFACE_DEFINED__ +#define __ICommDlgBrowser_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct ICommDlgBrowser : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand( + IShellView* shv) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnStateChange( + IShellView* shv, + ULONG uChange) = 0; + + virtual HRESULT STDMETHODCALLTYPE IncludeObject( + IShellView* shv, + LPCITEMIDLIST pidl) = 0; + +}; +#else +typedef struct ICommDlgBrowserVtbl ICommDlgBrowserVtbl; +struct ICommDlgBrowser { + const ICommDlgBrowserVtbl* lpVtbl; +}; +struct ICommDlgBrowserVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + ICommDlgBrowser* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + ICommDlgBrowser* This); + + ULONG (STDMETHODCALLTYPE *Release)( + ICommDlgBrowser* This); + + /*** ICommDlgBrowser methods ***/ + HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)( + ICommDlgBrowser* This, + IShellView* shv); + + HRESULT (STDMETHODCALLTYPE *OnStateChange)( + ICommDlgBrowser* This, + IShellView* shv, + ULONG uChange); + + HRESULT (STDMETHODCALLTYPE *IncludeObject)( + ICommDlgBrowser* This, + IShellView* shv, + LPCITEMIDLIST pidl); + +}; + +/*** IUnknown methods ***/ +#define ICommDlgBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define ICommDlgBrowser_AddRef(p) (p)->lpVtbl->AddRef(p) +#define ICommDlgBrowser_Release(p) (p)->lpVtbl->Release(p) +/*** ICommDlgBrowser methods ***/ +#define ICommDlgBrowser_OnDefaultCommand(p,a) (p)->lpVtbl->OnDefaultCommand(p,a) +#define ICommDlgBrowser_OnStateChange(p,a,b) (p)->lpVtbl->OnStateChange(p,a,b) +#define ICommDlgBrowser_IncludeObject(p,a,b) (p)->lpVtbl->IncludeObject(p,a,b) + +#endif + +#define ICommDlgBrowser_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; \ + /*** ICommDlgBrowser methods ***/ \ + STDMETHOD_(HRESULT,OnDefaultCommand)(THIS_ IShellView* shv) PURE; \ + STDMETHOD_(HRESULT,OnStateChange)(THIS_ IShellView* shv, ULONG uChange) PURE; \ + STDMETHOD_(HRESULT,IncludeObject)(THIS_ IShellView* shv, LPCITEMIDLIST pidl) PURE; + +HRESULT CALLBACK ICommDlgBrowser_OnDefaultCommand_Proxy( + ICommDlgBrowser* This, + IShellView* shv); +void __RPC_STUB ICommDlgBrowser_OnDefaultCommand_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICommDlgBrowser_OnStateChange_Proxy( + ICommDlgBrowser* This, + IShellView* shv, + ULONG uChange); +void __RPC_STUB ICommDlgBrowser_OnStateChange_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK ICommDlgBrowser_IncludeObject_Proxy( + ICommDlgBrowser* This, + IShellView* shv, + LPCITEMIDLIST pidl); +void __RPC_STUB ICommDlgBrowser_IncludeObject_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __ICommDlgBrowser_INTERFACE_DEFINED__ */ + +#ifndef __IDockingWindowFrame_FWD_DEFINED__ +#define __IDockingWindowFrame_FWD_DEFINED__ +typedef struct IDockingWindowFrame IDockingWindowFrame; +#endif + +#define DWFRF_NORMAL 0x0000 +#define DWFRF_DELETECONFIGDATA 0x0001 +#define DWFAF_HIDDEN 0x0001 +/***************************************************************************** + * IDockingWindowFrame interface + */ +#ifndef __IDockingWindowFrame_INTERFACE_DEFINED__ +#define __IDockingWindowFrame_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDockingWindowFrame, 0x47d2657a, 0x7b27, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IDockingWindowFrame : public IOleWindow +{ + virtual HRESULT STDMETHODCALLTYPE AddToolbar( + IUnknown* punkSrc, + LPCWSTR pwszItem, + DWORD dwAddFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveToolbar( + IUnknown* punkSrc, + DWORD dwRemoveFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindToolbar( + LPCWSTR pwszItem, + REFIID riid, + LPVOID* ppvObj) = 0; + +}; +#else +typedef struct IDockingWindowFrameVtbl IDockingWindowFrameVtbl; +struct IDockingWindowFrame { + const IDockingWindowFrameVtbl* lpVtbl; +}; +struct IDockingWindowFrameVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDockingWindowFrame* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDockingWindowFrame* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDockingWindowFrame* This); + + /*** IOleWindow methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWindow)( + IDockingWindowFrame* This, + HWND* phwnd); + + HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)( + IDockingWindowFrame* This, + BOOL fEnterMode); + + /*** IDockingWindowFrame methods ***/ + HRESULT (STDMETHODCALLTYPE *AddToolbar)( + IDockingWindowFrame* This, + IUnknown* punkSrc, + LPCWSTR pwszItem, + DWORD dwAddFlags); + + HRESULT (STDMETHODCALLTYPE *RemoveToolbar)( + IDockingWindowFrame* This, + IUnknown* punkSrc, + DWORD dwRemoveFlags); + + HRESULT (STDMETHODCALLTYPE *FindToolbar)( + IDockingWindowFrame* This, + LPCWSTR pwszItem, + REFIID riid, + LPVOID* ppvObj); + +}; + +/*** IUnknown methods ***/ +#define IDockingWindowFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDockingWindowFrame_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDockingWindowFrame_Release(p) (p)->lpVtbl->Release(p) +/*** IOleWindow methods ***/ +#define IDockingWindowFrame_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a) +#define IDockingWindowFrame_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a) +/*** IDockingWindowFrame methods ***/ +#define IDockingWindowFrame_AddToolbar(p,a,b,c) (p)->lpVtbl->AddToolbar(p,a,b,c) +#define IDockingWindowFrame_RemoveToolbar(p,a,b) (p)->lpVtbl->RemoveToolbar(p,a,b) +#define IDockingWindowFrame_FindToolbar(p,a,b,c) (p)->lpVtbl->FindToolbar(p,a,b,c) + +#endif + +#define IDockingWindowFrame_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; \ + /*** IDockingWindowFrame methods ***/ \ + STDMETHOD_(HRESULT,AddToolbar)(THIS_ IUnknown* punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags) PURE; \ + STDMETHOD_(HRESULT,RemoveToolbar)(THIS_ IUnknown* punkSrc, DWORD dwRemoveFlags) PURE; \ + STDMETHOD_(HRESULT,FindToolbar)(THIS_ LPCWSTR pwszItem, REFIID riid, LPVOID* ppvObj) PURE; + +HRESULT CALLBACK IDockingWindowFrame_AddToolbar_Proxy( + IDockingWindowFrame* This, + IUnknown* punkSrc, + LPCWSTR pwszItem, + DWORD dwAddFlags); +void __RPC_STUB IDockingWindowFrame_AddToolbar_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDockingWindowFrame_RemoveToolbar_Proxy( + IDockingWindowFrame* This, + IUnknown* punkSrc, + DWORD dwRemoveFlags); +void __RPC_STUB IDockingWindowFrame_RemoveToolbar_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDockingWindowFrame_FindToolbar_Proxy( + IDockingWindowFrame* This, + LPCWSTR pwszItem, + REFIID riid, + LPVOID* ppvObj); +void __RPC_STUB IDockingWindowFrame_FindToolbar_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IDockingWindowFrame_INTERFACE_DEFINED__ */ + +#ifndef __IDragSourceHelper_FWD_DEFINED__ +#define __IDragSourceHelper_FWD_DEFINED__ +typedef struct IDragSourceHelper IDragSourceHelper; +#endif + +typedef struct { + SIZE sizeDragImage; + POINT ptOffset; + HBITMAP hbmpDragImage; + COLORREF crColorKey; +} SHDRAGIMAGE, *LPSHDRAGIMAGE; + +/***************************************************************************** + * IDragSourceHelper interface + */ +#ifndef __IDragSourceHelper_INTERFACE_DEFINED__ +#define __IDragSourceHelper_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IDragSourceHelper : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap( + LPSHDRAGIMAGE pshdi, + IDataObject* pDataObject) = 0; + + virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow( + HWND hwnd, + POINT* ppt, + IDataObject* pDataObject) = 0; + +}; +#else +typedef struct IDragSourceHelperVtbl IDragSourceHelperVtbl; +struct IDragSourceHelper { + const IDragSourceHelperVtbl* lpVtbl; +}; +struct IDragSourceHelperVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDragSourceHelper* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDragSourceHelper* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDragSourceHelper* This); + + /*** IDragSourceHelper methods ***/ + HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)( + IDragSourceHelper* This, + LPSHDRAGIMAGE pshdi, + IDataObject* pDataObject); + + HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)( + IDragSourceHelper* This, + HWND hwnd, + POINT* ppt, + IDataObject* pDataObject); + +}; + +/*** IUnknown methods ***/ +#define IDragSourceHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDragSourceHelper_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDragSourceHelper_Release(p) (p)->lpVtbl->Release(p) +/*** IDragSourceHelper methods ***/ +#define IDragSourceHelper_InitializeFromBitmap(p,a,b) (p)->lpVtbl->InitializeFromBitmap(p,a,b) +#define IDragSourceHelper_InitializeFromWindow(p,a,b,c) (p)->lpVtbl->InitializeFromWindow(p,a,b,c) + +#endif + +#define IDragSourceHelper_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; \ + /*** IDragSourceHelper methods ***/ \ + STDMETHOD_(HRESULT,InitializeFromBitmap)(THIS_ LPSHDRAGIMAGE pshdi, IDataObject* pDataObject) PURE; \ + STDMETHOD_(HRESULT,InitializeFromWindow)(THIS_ HWND hwnd, POINT* ppt, IDataObject* pDataObject) PURE; + +HRESULT CALLBACK IDragSourceHelper_InitializeFromBitmap_Proxy( + IDragSourceHelper* This, + LPSHDRAGIMAGE pshdi, + IDataObject* pDataObject); +void __RPC_STUB IDragSourceHelper_InitializeFromBitmap_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDragSourceHelper_InitializeFromWindow_Proxy( + IDragSourceHelper* This, + HWND hwnd, + POINT* ppt, + IDataObject* pDataObject); +void __RPC_STUB IDragSourceHelper_InitializeFromWindow_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IDragSourceHelper_INTERFACE_DEFINED__ */ + +#ifndef __IDropTargetHelper_FWD_DEFINED__ +#define __IDropTargetHelper_FWD_DEFINED__ +typedef struct IDropTargetHelper IDropTargetHelper; +#endif + +/***************************************************************************** + * IDropTargetHelper interface + */ +#ifndef __IDropTargetHelper_INTERFACE_DEFINED__ +#define __IDropTargetHelper_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IDropTargetHelper : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DragEnter( + HWND hwndTarget, + IDataObject* pDataObject, + POINT* ppt, + DWORD dwEffect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DragLeave( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE DragOver( + POINT* ppt, + DWORD dwEffect) = 0; + + virtual HRESULT STDMETHODCALLTYPE Drop( + IDataObject* pDataObject, + POINT* ppt, + DWORD dwEffect) = 0; + + virtual HRESULT STDMETHODCALLTYPE Show( + BOOL fShow) = 0; + +}; +#else +typedef struct IDropTargetHelperVtbl IDropTargetHelperVtbl; +struct IDropTargetHelper { + const IDropTargetHelperVtbl* lpVtbl; +}; +struct IDropTargetHelperVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDropTargetHelper* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDropTargetHelper* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDropTargetHelper* This); + + /*** IDropTargetHelper methods ***/ + HRESULT (STDMETHODCALLTYPE *DragEnter)( + IDropTargetHelper* This, + HWND hwndTarget, + IDataObject* pDataObject, + POINT* ppt, + DWORD dwEffect); + + HRESULT (STDMETHODCALLTYPE *DragLeave)( + IDropTargetHelper* This); + + HRESULT (STDMETHODCALLTYPE *DragOver)( + IDropTargetHelper* This, + POINT* ppt, + DWORD dwEffect); + + HRESULT (STDMETHODCALLTYPE *Drop)( + IDropTargetHelper* This, + IDataObject* pDataObject, + POINT* ppt, + DWORD dwEffect); + + HRESULT (STDMETHODCALLTYPE *Show)( + IDropTargetHelper* This, + BOOL fShow); + +}; + +/*** IUnknown methods ***/ +#define IDropTargetHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDropTargetHelper_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDropTargetHelper_Release(p) (p)->lpVtbl->Release(p) +/*** IDropTargetHelper methods ***/ +#define IDropTargetHelper_DragEnter(p,a,b,c,d) (p)->lpVtbl->DragEnter(p,a,b,c,d) +#define IDropTargetHelper_DragLeave(p) (p)->lpVtbl->DragLeave(p) +#define IDropTargetHelper_DragOver(p,a,b) (p)->lpVtbl->DragOver(p,a,b) +#define IDropTargetHelper_Drop(p,a,b,c) (p)->lpVtbl->Drop(p,a,b,c) +#define IDropTargetHelper_Show(p,a) (p)->lpVtbl->Show(p,a) + +#endif + +#define IDropTargetHelper_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; \ + /*** IDropTargetHelper methods ***/ \ + STDMETHOD_(HRESULT,DragEnter)(THIS_ HWND hwndTarget, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \ + STDMETHOD_(HRESULT,DragLeave)(THIS) PURE; \ + STDMETHOD_(HRESULT,DragOver)(THIS_ POINT* ppt, DWORD dwEffect) PURE; \ + STDMETHOD_(HRESULT,Drop)(THIS_ IDataObject* pDataObject, POINT* ppt, DWORD dwEffect) PURE; \ + STDMETHOD_(HRESULT,Show)(THIS_ BOOL fShow) PURE; + +HRESULT CALLBACK IDropTargetHelper_DragEnter_Proxy( + IDropTargetHelper* This, + HWND hwndTarget, + IDataObject* pDataObject, + POINT* ppt, + DWORD dwEffect); +void __RPC_STUB IDropTargetHelper_DragEnter_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDropTargetHelper_DragLeave_Proxy( + IDropTargetHelper* This); +void __RPC_STUB IDropTargetHelper_DragLeave_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDropTargetHelper_DragOver_Proxy( + IDropTargetHelper* This, + POINT* ppt, + DWORD dwEffect); +void __RPC_STUB IDropTargetHelper_DragOver_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDropTargetHelper_Drop_Proxy( + IDropTargetHelper* This, + IDataObject* pDataObject, + POINT* ppt, + DWORD dwEffect); +void __RPC_STUB IDropTargetHelper_Drop_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IDropTargetHelper_Show_Proxy( + IDropTargetHelper* This, + BOOL fShow); +void __RPC_STUB IDropTargetHelper_Show_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IDropTargetHelper_INTERFACE_DEFINED__ */ + +#ifndef __IContextMenu_FWD_DEFINED__ +#define __IContextMenu_FWD_DEFINED__ +typedef struct IContextMenu IContextMenu; +#endif + +#define CMF_NORMAL 0x00000000 +#define CMF_DEFAULTONLY 0x00000001 +#define CMF_VERBSONLY 0x00000002 +#define CMF_EXPLORE 0x00000004 +#define CMF_NOVERBS 0x00000008 +#define CMF_CANRENAME 0x00000010 +#define CMF_NODEFAULT 0x00000020 +#define CMF_INCLUDESTATIC 0x00000040 +#define CMF_EXTENDEDVERBS 0x00000100 +#define CMF_RESERVED 0xffff0000 +#define GCS_VERBA 0x00000000 +#define GCS_HELPTEXTA 0x00000001 +#define GCS_VALIDATEA 0x00000002 +#define GCS_VERBW 0x00000004 +#define GCS_HELPTEXTW 0x00000005 +#define GCS_VALIDATEW 0x00000006 +#define GCS_UNICODE 0x00000004 +#define GCS_VERB WINELIB_NAME_AW(GCS_VERB) +#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT) +#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE) +#define CMDSTR_NEWFOLDERA "NewFolder" +#define CMDSTR_VIEWLISTA "ViewList" +#define CMDSTR_VIEWDETAILSA "ViewDetails" +#if defined(__GNUC__) +# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 } +# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 } +# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 } +#elif defined(_MSC_VER) +# define CMDSTR_NEWFOLDERW L"NewFolder" +# define CMDSTR_VIEWLISTW L"ViewList" +# define CMDSTR_VIEWDETAILSW L"ViewDetails" +#else +static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0}; +static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0}; +static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0}; +#endif +#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER) +#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST) +#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS) +#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY +#define CMIC_MASK_ICON SEE_MASK_ICON +#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI +#define CMIC_MASK_UNICODE SEE_MASK_UNICODE +#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE +#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME +#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM +#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE +#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK +#define CMIC_MASK_SHIFT_DOWN 0x10000000 +#define CMIC_MASK_PTINVOKE 0x20000000 +#define CMIC_MASK_CONTROL_DOWN 0x40000000 +#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE +#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS +typedef IContextMenu *LPCONTEXTMENU; + +typedef struct tagCMINVOKECOMMANDINFO { + DWORD cbSize; + DWORD fMask; + HWND hwnd; + LPCSTR lpVerb; + LPCSTR lpParameters; + LPCSTR lpDirectory; + INT nShow; + DWORD dwHotKey; + HANDLE hIcon; +} CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO; + +typedef struct tagCMInvokeCommandInfoEx { + DWORD cbSize; + DWORD fMask; + HWND hwnd; + LPCSTR lpVerb; + LPCSTR lpParameters; + LPCSTR lpDirectory; + INT nShow; + DWORD dwHotKey; + HANDLE hIcon; + LPCSTR lpTitle; + LPCWSTR lpVerbW; + LPCWSTR lpParametersW; + LPCWSTR lpDirectoryW; + LPCWSTR lpTitleW; + POINT ptInvoke; +} CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX; + +/***************************************************************************** + * IContextMenu interface + */ +#ifndef __IContextMenu_INTERFACE_DEFINED__ +#define __IContextMenu_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IContextMenu : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE QueryContextMenu( + HMENU hmenu, + UINT indexMenu, + UINT idCmdFirst, + UINT idCmdLast, + UINT uFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE InvokeCommand( + LPCMINVOKECOMMANDINFO lpici) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCommandString( + UINT idCmd, + UINT uType, + UINT* pwReserved, + LPSTR pszName, + UINT cchMax) = 0; + +}; +#else +typedef struct IContextMenuVtbl IContextMenuVtbl; +struct IContextMenu { + const IContextMenuVtbl* lpVtbl; +}; +struct IContextMenuVtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IContextMenu* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IContextMenu* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IContextMenu* This); + + /*** IContextMenu methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryContextMenu)( + IContextMenu* This, + HMENU hmenu, + UINT indexMenu, + UINT idCmdFirst, + UINT idCmdLast, + UINT uFlags); + + HRESULT (STDMETHODCALLTYPE *InvokeCommand)( + IContextMenu* This, + LPCMINVOKECOMMANDINFO lpici); + + HRESULT (STDMETHODCALLTYPE *GetCommandString)( + IContextMenu* This, + UINT idCmd, + UINT uType, + UINT* pwReserved, + LPSTR pszName, + UINT cchMax); + +}; + +/*** IUnknown methods ***/ +#define IContextMenu_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IContextMenu_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IContextMenu_Release(p) (p)->lpVtbl->Release(p) +/*** IContextMenu methods ***/ +#define IContextMenu_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e) +#define IContextMenu_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a) +#define IContextMenu_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e) + +#endif + +#define IContextMenu_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; \ + /*** IContextMenu methods ***/ \ + STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \ + STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \ + STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; + +HRESULT CALLBACK IContextMenu_QueryContextMenu_Proxy( + IContextMenu* This, + HMENU hmenu, + UINT indexMenu, + UINT idCmdFirst, + UINT idCmdLast, + UINT uFlags); +void __RPC_STUB IContextMenu_QueryContextMenu_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IContextMenu_InvokeCommand_Proxy( + IContextMenu* This, + LPCMINVOKECOMMANDINFO lpici); +void __RPC_STUB IContextMenu_InvokeCommand_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT CALLBACK IContextMenu_GetCommandString_Proxy( + IContextMenu* This, + UINT idCmd, + UINT uType, + UINT* pwReserved, + LPSTR pszName, + UINT cchMax); +void __RPC_STUB IContextMenu_GetCommandString_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IContextMenu_INTERFACE_DEFINED__ */ + +#ifndef __IContextMenu2_FWD_DEFINED__ +#define __IContextMenu2_FWD_DEFINED__ +typedef struct IContextMenu2 IContextMenu2; +#endif + +typedef IContextMenu2 *LPCONTEXTMENU2; + +/***************************************************************************** + * IContextMenu2 interface + */ +#ifndef __IContextMenu2_INTERFACE_DEFINED__ +#define __IContextMenu2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IContextMenu2 : public IContextMenu +{ + virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg( + UINT uMsg, + WPARAM wParam, + LPARAM lParam) = 0; + +}; +#else +typedef struct IContextMenu2Vtbl IContextMenu2Vtbl; +struct IContextMenu2 { + const IContextMenu2Vtbl* lpVtbl; +}; +struct IContextMenu2Vtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IContextMenu2* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IContextMenu2* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IContextMenu2* This); + + /*** IContextMenu methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryContextMenu)( + IContextMenu2* This, + HMENU hmenu, + UINT indexMenu, + UINT idCmdFirst, + UINT idCmdLast, + UINT uFlags); + + HRESULT (STDMETHODCALLTYPE *InvokeCommand)( + IContextMenu2* This, + LPCMINVOKECOMMANDINFO lpici); + + HRESULT (STDMETHODCALLTYPE *GetCommandString)( + IContextMenu2* This, + UINT idCmd, + UINT uType, + UINT* pwReserved, + LPSTR pszName, + UINT cchMax); + + /*** IContextMenu2 methods ***/ + HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)( + IContextMenu2* This, + UINT uMsg, + WPARAM wParam, + LPARAM lParam); + +}; + +/*** IUnknown methods ***/ +#define IContextMenu2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IContextMenu2_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IContextMenu2_Release(p) (p)->lpVtbl->Release(p) +/*** IContextMenu methods ***/ +#define IContextMenu2_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e) +#define IContextMenu2_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a) +#define IContextMenu2_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e) +/*** IContextMenu2 methods ***/ +#define IContextMenu2_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c) + +#endif + +#define IContextMenu2_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; \ + /*** IContextMenu methods ***/ \ + STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \ + STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \ + STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \ + /*** IContextMenu2 methods ***/ \ + STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE; + +HRESULT CALLBACK IContextMenu2_HandleMenuMsg_Proxy( + IContextMenu2* This, + UINT uMsg, + WPARAM wParam, + LPARAM lParam); +void __RPC_STUB IContextMenu2_HandleMenuMsg_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IContextMenu2_INTERFACE_DEFINED__ */ + +#ifndef __IContextMenu3_FWD_DEFINED__ +#define __IContextMenu3_FWD_DEFINED__ +typedef struct IContextMenu3 IContextMenu3; +#endif + +typedef IContextMenu3 *LPCONTEXTMENU3; + +/***************************************************************************** + * IContextMenu3 interface + */ +#ifndef __IContextMenu3_INTERFACE_DEFINED__ +#define __IContextMenu3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19); +#if defined(__cplusplus) && !defined(CINTERFACE) +struct IContextMenu3 : public IContextMenu2 +{ + virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2( + UINT uMsg, + WPARAM wParam, + LPARAM lParam, + LRESULT* plResult) = 0; + +}; +#else +typedef struct IContextMenu3Vtbl IContextMenu3Vtbl; +struct IContextMenu3 { + const IContextMenu3Vtbl* lpVtbl; +}; +struct IContextMenu3Vtbl { + ICOM_MSVTABLE_COMPAT_FIELDS + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IContextMenu3* This, + REFIID riid, + void** ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IContextMenu3* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IContextMenu3* This); + + /*** IContextMenu methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryContextMenu)( + IContextMenu3* This, + HMENU hmenu, + UINT indexMenu, + UINT idCmdFirst, + UINT idCmdLast, + UINT uFlags); + + HRESULT (STDMETHODCALLTYPE *InvokeCommand)( + IContextMenu3* This, + LPCMINVOKECOMMANDINFO lpici); + + HRESULT (STDMETHODCALLTYPE *GetCommandString)( + IContextMenu3* This, + UINT idCmd, + UINT uType, + UINT* pwReserved, + LPSTR pszName, + UINT cchMax); + + /*** IContextMenu2 methods ***/ + HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)( + IContextMenu3* This, + UINT uMsg, + WPARAM wParam, + LPARAM lParam); + + /*** IContextMenu3 methods ***/ + HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)( + IContextMenu3* This, + UINT uMsg, + WPARAM wParam, + LPARAM lParam, + LRESULT* plResult); + +}; + +/*** IUnknown methods ***/ +#define IContextMenu3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IContextMenu3_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IContextMenu3_Release(p) (p)->lpVtbl->Release(p) +/*** IContextMenu methods ***/ +#define IContextMenu3_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e) +#define IContextMenu3_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a) +#define IContextMenu3_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e) +/*** IContextMenu2 methods ***/ +#define IContextMenu3_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c) +/*** IContextMenu3 methods ***/ +#define IContextMenu3_HandleMenuMsg2(p,a,b,c,d) (p)->lpVtbl->HandleMenuMsg2(p,a,b,c,d) + +#endif + +#define IContextMenu3_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; \ + /*** IContextMenu methods ***/ \ + STDMETHOD_(HRESULT,QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \ + STDMETHOD_(HRESULT,InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \ + STDMETHOD_(HRESULT,GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax) PURE; \ + /*** IContextMenu2 methods ***/ \ + STDMETHOD_(HRESULT,HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE; \ + /*** IContextMenu3 methods ***/ \ + STDMETHOD_(HRESULT,HandleMenuMsg2)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* plResult) PURE; + +HRESULT CALLBACK IContextMenu3_HandleMenuMsg2_Proxy( + IContextMenu3* This, + UINT uMsg, + WPARAM wParam, + LPARAM lParam, + LRESULT* plResult); +void __RPC_STUB IContextMenu3_HandleMenuMsg2_Stub( + struct IRpcStubBuffer* This, + struct IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IContextMenu3_INTERFACE_DEFINED__ */ + #ifdef __cplusplus } #endif diff --git a/include/shobjidl.idl b/include/shobjidl.idl index a8fe34f3764..8c7d8c988fe 100644 --- a/include/shobjidl.idl +++ b/include/shobjidl.idl @@ -691,3 +691,385 @@ interface IShellExtInit : IUnknown [in] IDataObject *pdtobj, [in] HKEY hkeyProgID); } + + +/*******************************************************************************/ +/* Note: the following interfaces are not in shobjidl.idl under Windows, they */ +/* are declared directly in shlobj.h. It hopefully won't break anything to put */ +/* them here anyway. */ +/*******************************************************************************/ + +#ifndef MAX_PATH +#define MAX_PATH 260 +#endif + + +/***************************************************************************** + * IPersistFolder3 interface + */ +[ + object, + uuid(cef04fdf-fe72-11d2-87a5-00c04f6837cf), + pointer_default(unique) +] +interface IPersistFolder3 : IPersistFolder2 +{ + typedef struct + { + LPITEMIDLIST pidlTargetFolder; + WCHAR szTargetParsingName[MAX_PATH]; + WCHAR szNetworkProvider[MAX_PATH]; + DWORD dwAttributes; + int csidl; + } PERSIST_FOLDER_TARGET_INFO; + + HRESULT InitializeEx( + [in] IBindCtx *pbc, + [in] LPCITEMIDLIST pidlRoot, + [in] const PERSIST_FOLDER_TARGET_INFO *ppfti); + + HRESULT GetFolderTargetInfo( [out] PERSIST_FOLDER_TARGET_INFO *ppfti ); +} + + +/***************************************************************************** + * IExtractIconA interface + */ +[ + object, + uuid(000214eb-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IExtractIconA : IUnknown +{ +cpp_quote("#define GIL_OPENICON 0x0001") +cpp_quote("#define GIL_FORSHELL 0x0002") +cpp_quote("#define GIL_ASYNC 0x0020") +cpp_quote("#define GIL_DEFAULTICON 0x0040") +cpp_quote("#define GIL_FORSHORTCUT 0x0080") + +cpp_quote("#define GIL_SIMULATEDOC 0x0001") +cpp_quote("#define GIL_PERINSTANCE 0x0002") +cpp_quote("#define GIL_PERCLASS 0x0004") +cpp_quote("#define GIL_NOTFILENAME 0x0008") +cpp_quote("#define GIL_DONTCACHE 0x0010") + + typedef IExtractIconA *LPEXTRACTICONA; + + HRESULT GetIconLocation( + [in] UINT uFlags, + [out, size_is(cchMax)] LPSTR szIconFile, + [in] UINT cchMax, + [out] INT *piIndex, + [out] UINT *pwFlags); + + HRESULT Extract( + [in] LPCSTR pszFile, + [in] UINT nIconIndex, + [out] HICON *phiconLarge, + [out] HICON *phiconSmall, + [in] UINT nIconSize ); +} + + +/***************************************************************************** + * IExtractIconW interface + */ +[ + object, + uuid(000214fa-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IExtractIconW : IUnknown +{ + typedef IExtractIconW *LPEXTRACTICONW; + + HRESULT GetIconLocation( + [in] UINT uFlags, + [out, size_is(cchMax)] LPWSTR szIconFile, + [in] UINT cchMax, + [out] INT *piIndex, + [out] UINT *pwFlags); + + HRESULT Extract( + [in] LPCWSTR pszFile, + [in] UINT nIconIndex, + [out] HICON *phiconLarge, + [out] HICON *phiconSmall, + [in] UINT nIconSize ); +} + +cpp_quote("#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)") +cpp_quote("#define IExtractIcon WINELIB_NAME_AW(IExtractIcon)") + + +/***************************************************************************** + * ICommDlgBrowser interface + */ +[ + object, + uuid(000214f1-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface ICommDlgBrowser : IUnknown +{ +cpp_quote("#define CDBOSC_SETFOCUS 0x00000000") +cpp_quote("#define CDBOSC_KILLFOCUS 0x00000001") +cpp_quote("#define CDBOSC_SELCHANGE 0x00000002") +cpp_quote("#define CDBOSC_RENAME 0x00000003") +cpp_quote("#define CDBOSC_STATECHANGE 0x00000004") + + typedef ICommDlgBrowser *LPCOMMDLGBROWSER; + + HRESULT OnDefaultCommand( [in] IShellView *shv ); + HRESULT OnStateChange( [in] IShellView *shv, [in] ULONG uChange ); + HRESULT IncludeObject( [in] IShellView *shv, [in] LPCITEMIDLIST pidl ); +} + + +/***************************************************************************** + * IDockingWindowFrame interface + */ +[ + object, + uuid(47d2657a-7b27-11d0-8ca9-00a0c92dbfe8), + pointer_default(unique) +] +interface IDockingWindowFrame : IOleWindow +{ +cpp_quote("#define DWFRF_NORMAL 0x0000") +cpp_quote("#define DWFRF_DELETECONFIGDATA 0x0001") +cpp_quote("#define DWFAF_HIDDEN 0x0001") + + HRESULT AddToolbar( + [in] IUnknown *punkSrc, + [in] LPCWSTR pwszItem, + [in] DWORD dwAddFlags); + + HRESULT RemoveToolbar( + [in] IUnknown *punkSrc, + [in] DWORD dwRemoveFlags); + + HRESULT FindToolbar( + [in] LPCWSTR pwszItem, + [in] REFIID riid, + [out] LPVOID *ppvObj); +} + + +/***************************************************************************** + * IDragSourceHelper interface + */ +[ + object, + uuid(de5bf786-477a-11d2-839d-00c04fd918d0), + pointer_default(unique) +] +interface IDragSourceHelper : IUnknown +{ + typedef struct + { + SIZE sizeDragImage; + POINT ptOffset; + HBITMAP hbmpDragImage; + COLORREF crColorKey; + } SHDRAGIMAGE, *LPSHDRAGIMAGE; + + HRESULT InitializeFromBitmap( + [in] LPSHDRAGIMAGE pshdi, + [in] IDataObject *pDataObject); + + HRESULT InitializeFromWindow( + [in] HWND hwnd, + [in] POINT *ppt, + [in] IDataObject *pDataObject); +} + + +/***************************************************************************** + * IDropTargetHelper interface + */ +[ + object, + uuid(4657278b-411b-11d2-839a-00c04fd918d0), + pointer_default(unique) +] +interface IDropTargetHelper : IUnknown +{ + HRESULT DragEnter( + [in] HWND hwndTarget, + [in] IDataObject *pDataObject, + [in] POINT *ppt, + [in] DWORD dwEffect); + + HRESULT DragLeave(); + + HRESULT DragOver( + [in] POINT *ppt, + [in] DWORD dwEffect); + + HRESULT Drop( + [in] IDataObject *pDataObject, + [in] POINT *ppt, + [in] DWORD dwEffect); + + HRESULT Show( [in] BOOL fShow ); +} + + +/***************************************************************************** + * IContextMenu interface + */ +[ + object, + uuid(000214e4-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IContextMenu : IUnknown +{ +cpp_quote("#define CMF_NORMAL 0x00000000") +cpp_quote("#define CMF_DEFAULTONLY 0x00000001") +cpp_quote("#define CMF_VERBSONLY 0x00000002") +cpp_quote("#define CMF_EXPLORE 0x00000004") +cpp_quote("#define CMF_NOVERBS 0x00000008") +cpp_quote("#define CMF_CANRENAME 0x00000010") +cpp_quote("#define CMF_NODEFAULT 0x00000020") +cpp_quote("#define CMF_INCLUDESTATIC 0x00000040") +cpp_quote("#define CMF_EXTENDEDVERBS 0x00000100") +cpp_quote("#define CMF_RESERVED 0xffff0000") + +cpp_quote("#define GCS_VERBA 0x00000000") +cpp_quote("#define GCS_HELPTEXTA 0x00000001") +cpp_quote("#define GCS_VALIDATEA 0x00000002") +cpp_quote("#define GCS_VERBW 0x00000004") +cpp_quote("#define GCS_HELPTEXTW 0x00000005") +cpp_quote("#define GCS_VALIDATEW 0x00000006") +cpp_quote("#define GCS_UNICODE 0x00000004") +cpp_quote("#define GCS_VERB WINELIB_NAME_AW(GCS_VERB)") +cpp_quote("#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)") +cpp_quote("#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)") + +cpp_quote("#define CMDSTR_NEWFOLDERA \"NewFolder\"") +cpp_quote("#define CMDSTR_VIEWLISTA \"ViewList\"") +cpp_quote("#define CMDSTR_VIEWDETAILSA \"ViewDetails\"") +cpp_quote("#if defined(__GNUC__)") +cpp_quote("# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }") +cpp_quote("# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }") +cpp_quote("# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }") +cpp_quote("#elif defined(_MSC_VER)") +cpp_quote("# define CMDSTR_NEWFOLDERW L\"NewFolder\"") +cpp_quote("# define CMDSTR_VIEWLISTW L\"ViewList\"") +cpp_quote("# define CMDSTR_VIEWDETAILSW L\"ViewDetails\"") +cpp_quote("#else") +cpp_quote("static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};") +cpp_quote("static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};") +cpp_quote("static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};") +cpp_quote("#endif") +cpp_quote("#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)") +cpp_quote("#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)") +cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)") + +cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY") +cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON") +cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI") +cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE") +cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE") +cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME") +cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM") +cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE") +cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK") +cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000") +cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000") +cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000") +cpp_quote("#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE") +cpp_quote("#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS") + + typedef IContextMenu *LPCONTEXTMENU; + + typedef struct tagCMINVOKECOMMANDINFO + { + DWORD cbSize; + DWORD fMask; + HWND hwnd; + LPCSTR lpVerb; + LPCSTR lpParameters; + LPCSTR lpDirectory; + INT nShow; + DWORD dwHotKey; + HANDLE hIcon; + } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO; + + typedef struct tagCMInvokeCommandInfoEx + { + DWORD cbSize; + DWORD fMask; + HWND hwnd; + LPCSTR lpVerb; + LPCSTR lpParameters; + LPCSTR lpDirectory; + INT nShow; + DWORD dwHotKey; + HANDLE hIcon; + LPCSTR lpTitle; + LPCWSTR lpVerbW; + LPCWSTR lpParametersW; + LPCWSTR lpDirectoryW; + LPCWSTR lpTitleW; + POINT ptInvoke; + } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX; + + HRESULT QueryContextMenu( + [in] HMENU hmenu, + [in] UINT indexMenu, + [in] UINT idCmdFirst, + [in] UINT idCmdLast, + [in] UINT uFlags); + + HRESULT InvokeCommand( [in] LPCMINVOKECOMMANDINFO lpici ); + + HRESULT GetCommandString( + [in] UINT idCmd, + [in] UINT uType, + [out] UINT *pwReserved, + [out, size_is(cchMax)] LPSTR pszName, + [in] UINT cchMax); +} + + +/***************************************************************************** + * IContextMenu2 interface + */ +[ + object, + uuid(000214f4-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IContextMenu2 : IContextMenu +{ + typedef IContextMenu2 *LPCONTEXTMENU2; + + HRESULT HandleMenuMsg( + [in] UINT uMsg, + [in] WPARAM wParam, + [in] LPARAM lParam); +} + + +/***************************************************************************** + * IContextMenu3 interface + */ +[ + object, + uuid(bcfce0a0-ec17-11d0-8d10-00a0c90f2719), + pointer_default(unique) +] +interface IContextMenu3 : IContextMenu2 +{ + typedef IContextMenu3 *LPCONTEXTMENU3; + + HRESULT HandleMenuMsg2( + [in] UINT uMsg, + [in] WPARAM wParam, + [in] LPARAM lParam, + [out] LRESULT *plResult); +} diff --git a/include/wine/obj_commdlgbrowser.h b/include/wine/obj_commdlgbrowser.h deleted file mode 100644 index 55d9f9be91f..00000000000 --- a/include/wine/obj_commdlgbrowser.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * ICommDlgBrowser - * - * 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_COMMDLGBROWSER_H -#define __WINE_WINE_OBJ_COMMDLGBROWSER_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -typedef struct ICommDlgBrowser ICommDlgBrowser, *LPCOMMDLGBROWSER; - -/* for OnStateChange*/ -#define CDBOSC_SETFOCUS 0x00000000 -#define CDBOSC_KILLFOCUS 0x00000001 -#define CDBOSC_SELCHANGE 0x00000002 -#define CDBOSC_RENAME 0x00000003 - - -#define INTERFACE ICommDlgBrowser -#define ICommDlgBrowser_METHODS \ - IUnknown_METHODS \ - STDMETHOD(OnDefaultCommand)(THIS_ IShellView * IShellView) PURE; \ - STDMETHOD(OnStateChange)(THIS_ IShellView * IShellView, ULONG uChange) PURE; \ - STDMETHOD(IncludeObject)(THIS_ IShellView * IShellView, LPCITEMIDLIST pidl) PURE; -ICOM_DEFINE(ICommDlgBrowser,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -#define ICommDlgBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define ICommDlgBrowser_AddRef(p) (p)->lpVtbl->AddRef(p) -#define ICommDlgBrowser_Release(p) (p)->lpVtbl->Release(p) -#define ICommDlgBrowser_OnDefaultCommand(p,a) (p)->lpVtbl->OnDefaultCommand(p,a) -#define ICommDlgBrowser_OnStateChange(p,a,b) (p)->lpVtbl->OnStateChange(p,a,b) -#define ICommDlgBrowser_IncludeObject(p,a,b) (p)->lpVtbl->IncludeObject(p,a,b) -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_COMMDLGBROWSER_H */ diff --git a/include/wine/obj_contextmenu.h b/include/wine/obj_contextmenu.h deleted file mode 100644 index 37c2ece1215..00000000000 --- a/include/wine/obj_contextmenu.h +++ /dev/null @@ -1,151 +0,0 @@ -/* - * IContextMenu - * - * Undocumented: - * word95 gets a IContextMenu Interface and calls HandleMenuMsg() - * which should only a member of IContextMenu2. - * - * 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_CONTEXTMENU_H -#define __WINE_WINE_OBJ_CONTEXTMENU_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -typedef struct IContextMenu IContextMenu, *LPCONTEXTMENU; - -/* QueryContextMenu uFlags */ -#define CMF_NORMAL 0x00000000 -#define CMF_DEFAULTONLY 0x00000001 -#define CMF_VERBSONLY 0x00000002 -#define CMF_EXPLORE 0x00000004 -#define CMF_NOVERBS 0x00000008 -#define CMF_CANRENAME 0x00000010 -#define CMF_NODEFAULT 0x00000020 -#define CMF_INCLUDESTATIC 0x00000040 -#define CMF_RESERVED 0xffff0000 /* View specific */ - -/* GetCommandString uFlags */ -#define GCS_VERBA 0x00000000 /* canonical verb */ -#define GCS_HELPTEXTA 0x00000001 /* help text (for status bar) */ -#define GCS_VALIDATEA 0x00000002 /* validate command exists */ -#define GCS_VERBW 0x00000004 /* canonical verb (unicode) */ -#define GCS_HELPTEXTW 0x00000005 /* help text (unicode version) */ -#define GCS_VALIDATEW 0x00000006 /* validate command exists (unicode) */ -#define GCS_UNICODE 0x00000004 /* for bit testing - Unicode string */ - -#define GCS_VERB GCS_VERBA -#define GCS_HELPTEXT GCS_HELPTEXTA -#define GCS_VALIDATE GCS_VALIDATEA - -#define CMDSTR_NEWFOLDERA "NewFolder" -#define CMDSTR_VIEWLISTA "ViewList" -#define CMDSTR_VIEWDETAILSA "ViewDetails" -#if defined(__GNUC__) -# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 } -# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 } -# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 } -#elif defined(_MSC_VER) -# define CMDSTR_NEWFOLDERW L"NewFolder" -# define CMDSTR_VIEWLISTW L"ViewList" -# define CMDSTR_VIEWDETAILSW L"ViewDetails" -#else -static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0}; -static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0}; -static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0}; -#endif - -#define CMDSTR_NEWFOLDER CMDSTR_NEWFOLDERA -#define CMDSTR_VIEWLIST CMDSTR_VIEWLISTA -#define CMDSTR_VIEWDETAILS CMDSTR_VIEWDETAILSA - -#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY -#define CMIC_MASK_ICON SEE_MASK_ICON -#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI -#define CMIC_MASK_UNICODE SEE_MASK_UNICODE -#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE -#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME -#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM -#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE -#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK - -#define CMIC_MASK_PTINVOKE 0x20000000 - -/*NOTE: When SEE_MASK_HMONITOR is set, hIcon is treated as hMonitor */ -typedef struct tagCMINVOKECOMMANDINFO -{ DWORD cbSize; /* sizeof(CMINVOKECOMMANDINFO) */ - DWORD fMask; /* any combination of CMIC_MASK_* */ - HWND hwnd; /* might be NULL (indicating no owner window) */ - LPCSTR lpVerb; /* either a string or MAKEINTRESOURCE(idOffset) */ - LPCSTR lpParameters; /* might be NULL (indicating no parameter) */ - LPCSTR lpDirectory; /* might be NULL (indicating no specific directory) */ - INT nShow; /* one of SW_ values for ShowWindow() API */ - - DWORD dwHotKey; - HANDLE hIcon; -} CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO; - -typedef struct tagCMInvokeCommandInfoEx -{ DWORD cbSize; /* must be sizeof(CMINVOKECOMMANDINFOEX) */ - DWORD fMask; /* any combination of CMIC_MASK_* */ - HWND hwnd; /* might be NULL (indicating no owner window) */ - LPCSTR lpVerb; /* either a string or MAKEINTRESOURCE(idOffset) */ - LPCSTR lpParameters; /* might be NULL (indicating no parameter) */ - LPCSTR lpDirectory; /* might be NULL (indicating no specific directory) */ - INT nShow; /* one of SW_ values for ShowWindow() API */ - - DWORD dwHotKey; - - HANDLE hIcon; - LPCSTR lpTitle; /* For CreateProcess-StartupInfo.lpTitle */ - LPCWSTR lpVerbW; /* Unicode verb (for those who can use it) */ - LPCWSTR lpParametersW; /* Unicode parameters (for those who can use it) */ - LPCWSTR lpDirectoryW; /* Unicode directory (for those who can use it) */ - LPCWSTR lpTitleW; /* Unicode title (for those who can use it) */ - POINT ptInvoke; /* Point where it's invoked */ - -} CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX; - -#define INTERFACE IContextMenu -#define IContextMenu_METHODS \ - IUnknown_METHODS \ - STDMETHOD(QueryContextMenu)(THIS_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) PURE; \ - STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO lpici) PURE; \ - STDMETHOD(GetCommandString)(THIS_ UINT idCmd, UINT uType, UINT * pwReserved, LPSTR pszName, UINT cchMax) PURE; \ - STDMETHOD(HandleMenuMsg)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE; \ - void * guard; /*possibly another nasty entry from ContextMenu3 ?*/ -ICOM_DEFINE(IContextMenu,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -#define IContextMenu_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IContextMenu_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IContextMenu_Release(p) (p)->lpVtbl->Release(p) -#define IContextMenu_QueryContextMenu(p,a,b,c,d,e) (p)->lpVtbl->QueryContextMenu(p,a,b,c,d,e) -#define IContextMenu_InvokeCommand(p,a) (p)->lpVtbl->InvokeCommand(p,a) -#define IContextMenu_GetCommandString(p,a,b,c,d,e) (p)->lpVtbl->GetCommandString(p,a,b,c,d,e) -#define IContextMenu_HandleMenuMsg(p,a,b,c) (p)->lpVtbl->HandleMenuMsg(p,a,b,c) -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_CONTEXTMENU_H */ diff --git a/include/wine/obj_dockingwindowframe.h b/include/wine/obj_dockingwindowframe.h deleted file mode 100644 index 873dd791b4b..00000000000 --- a/include/wine/obj_dockingwindowframe.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * IDockingWindowFrame - * - * 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_DOCKINGWINDOWFRAME_H -#define __WINE_WINE_OBJ_DOCKINGWINDOWFRAME_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -typedef struct IDockingWindowFrame IDockingWindowFrame, *LPDOCKINGWINDOWFRAME; -DEFINE_GUID (IID_IDockingWindowFrame, 0x47D2657AL, 0x7B27, 0x11D0, 0x8C, 0xA9, 0x00, 0xA0, 0xC9, 0x2D, 0xBF, 0xE8); - -#define DWFRF_NORMAL 0x0000 /* femove toolbar flags*/ -#define DWFRF_DELETECONFIGDATA 0x0001 -#define DWFAF_HIDDEN 0x0001 /* add tolbar*/ - -#define INTERFACE IDockingWindowFrame -#define IDockingWindowFrame_METHODS \ - IOleWindow_METHODS \ - STDMETHOD(AddToolbar)(THIS_ IUnknown * punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags) PURE; \ - STDMETHOD(RemoveToolbar)(THIS_ IUnknown * punkSrc, DWORD dwRemoveFlags) PURE; \ - STDMETHOD(FindToolbar)(THIS_ LPCWSTR pwszItem, REFIID riid, LPVOID * ppvObj) PURE; -ICOM_DEFINE(IDockingWindowFrame,IOleWindow) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IDockingWindowFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IDockingWindowFrame_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IDockingWindowFrame_Release(p) (p)->lpVtbl->Release(p) -/*** IDockingWindowFrame methods ***/ -#define IDockingWindowFrame_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a) -#define IDockingWindowFrame_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a) -#define IDockingWindowFrame_AddToolbar(p,a,b,c) (p)->lpVtbl->AddToolbar(p,a,b,c) -#define IDockingWindowFrame_RemoveToolbar(p,a,b) (p)->lpVtbl->RemoveToolbar(p,a,b) -#define IDockingWindowFrame_FindToolbar(p,a,b,c) (p)->lpVtbl->FindToolbar(p,a,b,c) -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_DOCKINGWINDOWFRAME_H */ diff --git a/include/wine/obj_dragdrophelper.h b/include/wine/obj_dragdrophelper.h deleted file mode 100644 index bcd7e14daf2..00000000000 --- a/include/wine/obj_dragdrophelper.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Defines the COM interfaces related to SHELL DragDropHelper - * - * 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_DRAGDROPHELPER_H -#define __WINE_WINE_OBJ_DRAGDROPHELPER_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -/***************************************************************************** - * Predeclare the interfaces - */ -DEFINE_GUID(CLSID_DragDropHelper, 0x4657278a, 0x411b, 0x11d2, 0x83, 0x9a, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0xd0); - -DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83, 0x9a, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0xd0); -typedef struct IDropTargetHelper IDropTargetHelper,*LPDROPTARGETHELPER; - -DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83, 0x9d, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0xd0); -typedef struct IDragSourceHelper IDragSourceHelper,*LPDRAGSOURCEHELPER; - -/***************************************************************************** - * IDragSourceHelper interface - */ - -typedef struct { - SIZE sizeDragImage; - POINT ptOffset; - HBITMAP hbmpDragImage; - COLORREF crColorKey; -} SHDRAGIMAGE, *LPSHDRAGIMAGE; - - -#define INTERFACE IDragSourceHelper -#define IDragSourceHelper_METHODS \ - IUnknown_METHODS \ - STDMETHOD(InitializeFromBitmap)(THIS_ LPSHDRAGIMAGE pshdi, IDataObject * pDataObject) PURE; \ - STDMETHOD(InitializeFromWindow)(THIS_ HWND hwnd, POINT * ppt, IDataObject * pDataObject) PURE; -ICOM_DEFINE(IDragSourceHelper,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IDragSourceHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IDragSourceHelper_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IDragSourceHelper_Release(p) (p)->lpVtbl->Release(p) -/*** IDropSource methods ***/ -#define IDragSourceHelper_InitializeFromBitmap(p,a,b) (p)->lpVtbl->InitializeFromBitmap(p,a,b) -#define IDragSourceHelper_InitializeFromWindow(p,a,b,c) (p)->lpVtbl->InitializeFromWindow(p,a,b,c) -#endif - - -/***************************************************************************** - * IDropTargetHelper interface - */ -#define INTERFACE IDropTargetHelper -#define IDropTargetHelper_METHODS \ - IUnknown_METHODS \ - STDMETHOD(DragEnter)(THIS_ HWND hwndTarget, IDataObject * pDataObject, POINT * ppt, DWORD dwEffect) PURE; \ - STDMETHOD(DragLeave)(THIS) PURE; \ - STDMETHOD(DragOver)(THIS_ POINT * ppt, DWORD dwEffect) PURE; \ - STDMETHOD(Drop)(THIS_ IDataObject * pDataObject, POINT * ppt,DWORD dwEffect) PURE; \ - STDMETHOD(Show)(THIS_ BOOL fShow) PURE; -ICOM_DEFINE(IDropTargetHelper,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IDropTargetHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IDropTargetHelper_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IDropTargetHelper_Release(p) (p)->lpVtbl->Release(p) -/*** IDropTargetHelper methods ***/ -#define IDropTargetHelper_DragEnter(p,a,b,c,d) (p)->lpVtbl->DragEnter(p,a,b,c,d) -#define IDropTargetHelper_DragLeave(p) (p)->lpVtbl->DragLeave(p) -#define IDropTargetHelper_DragOver(p,a,b) (p)->lpVtbl->DragOver(p,a,b) -#define IDropTargetHelper_Drop(p,a,b,c) (p)->lpVtbl->Drop(p,a,b,c) -#define IDropTargetHelper_Show(p,a) (p)->lpVtbl->Show(p,a,b,c,d) -#endif - - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_DRAGDROPHELPER_H */ diff --git a/include/wine/obj_extracticon.h b/include/wine/obj_extracticon.h deleted file mode 100644 index 36f00ec5324..00000000000 --- a/include/wine/obj_extracticon.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * IExtractIconA, IExtractIconW - * - * 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_EXTRACTICON_H -#define __WINE_WINE_OBJ_EXTRACTICON_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -#define IID_IExtractIcon WINELIB_NAME_AW(IID_IExtractIcon) - -typedef struct IExtractIconA IExtractIconA,*LPEXTRACTICONA; -typedef struct IExtractIconW IExtractIconW,*LPEXTRACTICONW; -#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON) -#define IExtractIcon WINELIB_NAME_AW(IExtractIcon) - -/* GetIconLocation() input flags*/ -#define GIL_OPENICON 0x0001 /* allows containers to specify an "open" look */ -#define GIL_FORSHELL 0x0002 /* icon is to be displayed in a ShellFolder */ -#define GIL_ASYNC 0x0020 /* this is an async extract, return E_ASYNC */ - -/* GetIconLocation() return flags */ -#define GIL_SIMULATEDOC 0x0001 /* simulate this document icon for this */ -#define GIL_PERINSTANCE 0x0002 /* icons from this class are per instance (each file has its own) */ -#define GIL_PERCLASS 0x0004 /* icons from this class per class (shared for all files of this type) */ -#define GIL_NOTFILENAME 0x0008 /* location is not a filename, must call ::ExtractIcon */ -#define GIL_DONTCACHE 0x0010 /* this icon should not be cached */ - - -#define INTERFACE IExtractIconA -#define IExtractIconA_METHODS \ - IUnknown_METHODS \ - STDMETHOD(GetIconLocation)(THIS_ UINT uFlags, LPSTR szIconFile, UINT cchMax, INT * piIndex, UINT * pwFlags) PURE; \ - STDMETHOD(Extract)(THIS_ LPCSTR pszFile, UINT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIconSize) PURE; -ICOM_DEFINE(IExtractIconA,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -#define IExtractIconA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IExtractIconA_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IExtractIconA_Release(p) (p)->lpVtbl->Release(p) -#define IExtractIconA_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e) -#define IExtractIconA_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e) -#endif - - -#define INTERFACE IExtractIconW -#define IExtractIconW_METHODS \ - IUnknown_METHODS \ - STDMETHOD(GetIconLocation)(THIS_ UINT uFlags, LPWSTR szIconFile, UINT cchMax, INT * piIndex, UINT * pwFlags) PURE; \ - STDMETHOD(Extract)(THIS_ LPCWSTR pszFile, UINT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIconSize) PURE; -ICOM_DEFINE(IExtractIconW,IUnknown) -#undef INTERFACE - -#ifdef COBJMACROS -#define IExtractIconW_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IExtractIconW_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IExtractIconW_Release(p) (p)->lpVtbl->Release(p) -#define IExtractIconW_GetIconLocation(p,a,b,c,d,e) (p)->lpVtbl->GetIconLocation(p,a,b,c,d,e) -#define IExtractIconW_Extract(p,a,b,c,d,e) (p)->lpVtbl->Extract(p,a,b,c,d,e) -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_EXTRACTICON_H */ diff --git a/include/wine/obj_shellfolder.h b/include/wine/obj_shellfolder.h deleted file mode 100644 index 15fe09af0cc..00000000000 --- a/include/wine/obj_shellfolder.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Defines the COM interfaces and APIs related to IShellFolder - * - * 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_SHELLFOLDER_H -#define __WINE_WINE_OBJ_SHELLFOLDER_H - -#ifdef __cplusplus -extern "C" { -#endif /* defined(__cplusplus) */ - -/***************************************************************************** - * Predeclare the interfaces - */ -DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87, 0xa5, 0x0, 0xc0, 0x4f, 0x68, 0x37, 0xcf); -typedef struct IPersistFolder3 IPersistFolder3, *LPPERSISTFOLDER3; - -/* GetDetailsEx */ -#define PID_FINDDATA 0 -#define PID_NETRESOURCE 1 -#define PID_DESCRIPTIONID 2 - - -/***************************************************************************** - * IPersistFolder3 interface - */ - -typedef struct { - LPITEMIDLIST pidlTargetFolder; - WCHAR szTargetParsingName[MAX_PATH]; - WCHAR szNetworkProvider[MAX_PATH]; - DWORD dwAttributes; - int csidl; -} PERSIST_FOLDER_TARGET_INFO; - -#define INTERFACE IPersistFolder3 -#define IPersistFolder3_METHODS \ - IPersistFolder2_METHODS \ - STDMETHOD(InitializeEx)(THIS_ IBindCtx * pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO * ppfti) PURE;\ - STDMETHOD(GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO * ppfti) PURE; -ICOM_DEFINE(IPersistFolder3, IPersistFolder2) -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IPersistFolder3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IPersistFolder3_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IPersistFolder3_Release(p) (p)->lpVtbl->Release(p) -/*** IPersist methods ***/ -#define IPersistFolder3_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a) -/*** IPersistFolder methods ***/ -#define IPersistFolder3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) -/*** IPersistFolder2 methods ***/ -#define IPersistFolder3_GetCurFolder(p,a) (p)->lpVtbl->GetCurFolder(p,a) -/*** IPersistFolder3 methods ***/ -#define IPersistFolder3_InitializeEx(p,a,b,c) (p)->lpVtbl->InitializeEx(p,a,b,c) -#define IPersistFolder3_GetFolderTargetInfo(p,a) (p)->lpVtbl->InitializeEx(p,a) -#endif - - -#ifdef __cplusplus -} /* extern "C" */ -#endif /* defined(__cplusplus) */ - -#endif /* __WINE_WINE_OBJ_SHELLFOLDER_H */ diff --git a/include/wtypes.h b/include/wtypes.h index ae79eff8462..4a1950ba3a5 100644 --- a/include/wtypes.h +++ b/include/wtypes.h @@ -76,6 +76,8 @@ typedef void *HTASK; typedef void *HKEY; +typedef void *HICON; + typedef LONG_PTR LRESULT; typedef double DATE; diff --git a/include/wtypes.idl b/include/wtypes.idl index 5a05e5a4bb2..a4c000bce00 100644 --- a/include/wtypes.idl +++ b/include/wtypes.idl @@ -75,6 +75,7 @@ DECLARE_HANDLE(HINSTANCE); DECLARE_HANDLE(HRGN); DECLARE_HANDLE(HTASK); DECLARE_HANDLE(HKEY); +DECLARE_HANDLE(HICON); typedef LONG_PTR LRESULT;