From 5ee94a1d5bd93a0f0dc2a05438f76f7f56a9e83e Mon Sep 17 00:00:00 2001 From: Alexander Morozov Date: Mon, 13 Dec 2010 17:36:34 +0300 Subject: [PATCH] include: Add some Shell32 interfaces and coclasses (eterbug #3850). --- include/shldisp.idl | 276 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 276 insertions(+) diff --git a/include/shldisp.idl b/include/shldisp.idl index 4e2d2fead3..039e9f22e5 100644 --- a/include/shldisp.idl +++ b/include/shldisp.idl @@ -76,6 +76,15 @@ interface IAutoComplete2 : IAutoComplete HRESULT GetOptions( [out] DWORD *pdwFlag); } +[ + uuid(50a7e9b0-70ef-11d1-b75a-00a0c90564fe), + version(1.0) +] +library Shell32 +{ + +importlib("stdole2.tlb"); + [ object, uuid(9ba05970-f6a8-11cf-a442-00a0c90a8f39), @@ -118,3 +127,270 @@ coclass ShellFolderViewOC [default] interface IFolderViewOC; [default, source] dispinterface DShellFolderViewEvents; } + +interface FolderItem; +interface FolderItems; +interface FolderItemVerb; +interface FolderItemVerbs; + +/***************************************************************************** + * Folder interface + */ +[ + object, + uuid(bbcbde60-c3ff-11ce-8350-444553540000), + oleautomation, + dual +] +interface Folder : IDispatch +{ + [propget, id(DISPID_VALUE)] + HRESULT Title( [out, retval] BSTR *pbs ); + + [propget] + HRESULT Application( [out, retval] IDispatch **ppid ); + + [propget] + HRESULT Parent( [out, retval] IDispatch **ppid ); + + [propget] + HRESULT ParentFolder( [out, retval] Folder **ppsf ); + + HRESULT Items( [out, retval] FolderItems **ppid ); + + HRESULT ParseName( [in] BSTR bName, [out, retval] FolderItem **ppid ); + + HRESULT NewFolder( [in] BSTR bName, [in, optional] VARIANT vOptions ); + + HRESULT MoveHere( [in] VARIANT vItem, [in, optional] VARIANT vOptions ); + + HRESULT CopyHere( [in] VARIANT vItem, [in, optional] VARIANT vOptions ); + + HRESULT GetDetailsOf( [in] VARIANT vItem, + [in] int iColumn, + [out, retval] BSTR *pbs ); +} + +/***************************************************************************** + * FolderItem interface + */ +[ + object, + uuid(fac32c80-cbe4-11ce-8350-444553540000), + oleautomation, + dual +] +interface FolderItem : IDispatch +{ + typedef FolderItem *LPFOLDERITEM; + + [propget] + HRESULT Application( [out, retval] IDispatch **ppid ); + + [propget] + HRESULT Parent( [out, retval] IDispatch **ppid ); + + [propget, id(DISPID_VALUE)] + HRESULT Name( [out, retval] BSTR *pbs ); + + [propput, id(DISPID_VALUE)] + HRESULT Name( [in] BSTR bs ); + + [propget] + HRESULT Path( [out, retval]BSTR *pbs ); + + [propget] + HRESULT GetLink( [out, retval] IDispatch **ppid ); + + [propget] + HRESULT GetFolder( [out, retval] IDispatch **ppid ); + + [propget] + HRESULT IsLink( [out, retval] VARIANT_BOOL *pb ); + + [propget] + HRESULT IsFolder( [out, retval] VARIANT_BOOL *pb ); + + [propget] + HRESULT IsFileSystem( [out, retval] VARIANT_BOOL *pb ); + + [propget] + HRESULT IsBrowsable( [out, retval] VARIANT_BOOL *pb ); + + [propget] + HRESULT ModifyDate( [out, retval] DATE *pdt ); + + [propput] + HRESULT ModifyDate( [in] DATE dt ); + + [propget] + HRESULT Size( [out, retval] LONG *pul ); + + [propget] + HRESULT Type( [out, retval] BSTR *pbs ); + + HRESULT Verbs( [out, retval] FolderItemVerbs **ppfic ); + + HRESULT InvokeVerb( [in, optional] VARIANT vVerb ); +} + +/***************************************************************************** + * FolderItems interface + */ +[ + object, + uuid(744129e0-cbe5-11ce-8350-444553540000), + oleautomation, + dual +] +interface FolderItems : IDispatch +{ + [propget] + HRESULT Count( [out, retval] long *plCount ); + + [propget] + HRESULT Application( [out, retval] IDispatch **ppid ); + + [propget] + HRESULT Parent( [out, retval] IDispatch **ppid ); + + HRESULT Item( [in, optional] VARIANT index, + [out, retval] FolderItem **ppid ); + + [id(DISPID_NEWENUM)] + HRESULT _NewEnum( [out, retval] IUnknown **ppunk ); +} + +/***************************************************************************** + * FolderItemVerb interface + */ +[ + object, + uuid(08ec3e00-50b0-11cf-960c-0080c7f4ee85), + oleautomation, + dual +] +interface FolderItemVerb : IDispatch +{ + [propget] + HRESULT Application( [out, retval] IDispatch **ppid ); + + [propget] + HRESULT Parent( [out, retval] IDispatch **ppid ); + + [propget, id(DISPID_VALUE)] + HRESULT Name( [out, retval] BSTR *pbs ); + + HRESULT DoIt(); +} + +/***************************************************************************** + * FolderItemVerbs interface + */ +[ + object, + uuid(1f8352c0-50b0-11cf-960c-0080c7f4ee85), + oleautomation, + dual +] +interface FolderItemVerbs : IDispatch +{ + [propget] + HRESULT Count( [out, retval] long *plCount ); + + [propget] + HRESULT Application( [out, retval] IDispatch **ppid ); + + [propget] + HRESULT Parent( [out, retval] IDispatch **ppid ); + + HRESULT Item( [in, optional] VARIANT index, + [out, retval] FolderItemVerb **ppid ); + + [id(DISPID_NEWENUM)] + HRESULT _NewEnum( [out, retval] IUnknown **ppunk ); +} + +/***************************************************************************** + * IShellDispatch interface + */ +[ + object, + uuid(d8f015c0-c278-11ce-a49e-444553540000), + oleautomation, + hidden, + dual +] +interface IShellDispatch : IDispatch +{ + [propget] + HRESULT Application( [out, retval] IDispatch **ppid ); + + [propget] + HRESULT Parent( [out, retval] IDispatch **ppid ); + + HRESULT NameSpace( [in] VARIANT vDir, [out, retval] Folder **ppsdf ); + + HRESULT BrowseForFolder( [in] long Hwnd, + [in] BSTR Title, + [in] long Options, + [in, optional] VARIANT RootFolder, + [out, retval] Folder **ppsdf ); + + HRESULT Windows( [out, retval] IDispatch **ppid ); + + HRESULT Open( [in] VARIANT vDir ); + + HRESULT Explore( [in] VARIANT vDir ); + + HRESULT MinimizeAll(); + + HRESULT UndoMinimizeALL(); + + HRESULT FileRun(); + + HRESULT CascadeWindows(); + + HRESULT TileVertically(); + + HRESULT TileHorizontally(); + + HRESULT ShutdownWindows(); + + HRESULT Suspend(); + + HRESULT EjectPC(); + + HRESULT SetTime(); + + HRESULT TrayProperties(); + + HRESULT Help(); + + HRESULT FindFiles(); + + HRESULT FindComputer(); + + HRESULT RefreshMenu(); + + HRESULT ControlPanelItem( [in] BSTR szDir ); +} + +[ + uuid(13709620-c279-11ce-a49e-444553540000) +] +coclass Shell +{ + [default] interface IShellDispatch; +} + +[ + uuid(0a89a860-d7b1-11ce-8350-444553540000), + hidden +] +coclass ShellDispatchInproc +{ + interface IUnknown; +} + +} /* library Shell32 */ -- 2.33.8