| /* |
| * COM interfaces for shell objects |
| * |
| * Copyright (C) 2004 Maxime Bellengé |
| * |
| * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| import "ocidl.idl"; |
| |
| #include <shdispid.h> |
| |
| cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") |
| cpp_quote("#undef ShellExecute") |
| cpp_quote("#endif") |
| |
| /***************************************************************************** |
| * IEnumACString interface |
| */ |
| [ |
| local, |
| object, |
| uuid(8e74c210-cf9d-4eaf-a403-7356428f0a5a), |
| pointer_default(unique) |
| ] |
| interface IEnumACString : IEnumString |
| { |
| typedef IEnumACString *PENUMACSTRING, *LPENUMACSTRING; |
| |
| typedef enum _tagACENUMOPTION |
| { |
| ACEO_NONE = 0x00000000, |
| ACEO_MOSTRECENTFIRST = 0x00000001, |
| ACEO_FIRSTUNUSED = 0x00010000, |
| } ACENUMOPTION; |
| |
| HRESULT NextItem( [out] LPWSTR pszUrl, |
| [in] ULONG cchMax, |
| [out] ULONG *pulSortIndex); |
| |
| HRESULT SetEnumOptions( [in] DWORD dwOptions ); |
| |
| HRESULT GetEnumOptions( [out] DWORD *pdwOptions ); |
| } |
| |
| /***************************************************************************** |
| * IAutoComplete interface |
| */ |
| [ |
| local, |
| object, |
| uuid(00bb2762-6a77-11d0-a535-00c04fd7d062), |
| pointer_default(unique) |
| ] |
| interface IAutoComplete : IUnknown |
| { |
| typedef IAutoComplete *LPAUTOCOMPLETE; |
| |
| HRESULT Init( [in] HWND hwndEdit, |
| [in] IUnknown *punkACL, |
| [in] LPCOLESTR pwszRegKeyPath, |
| [in] LPCOLESTR pwszQuickComplete); |
| |
| HRESULT Enable( [in] BOOL fEnable ); |
| } |
| |
| /***************************************************************************** |
| * IAutoComplete2 interface |
| */ |
| [ |
| local, |
| object, |
| uuid(eac04bc0-3791-11d2-bb95-0060977b464c), |
| pointer_default(unique) |
| ] |
| interface IAutoComplete2 : IAutoComplete |
| { |
| typedef IAutoComplete2 *LPAUTOCOMPLETE2; |
| |
| typedef enum _tagAUTOCOMPLETEOPTIONS |
| { |
| ACO_NONE = 0x00, /* No AutoComplete */ |
| ACO_AUTOSUGGEST = 0x01, /* enable autosuggest dropdown */ |
| ACO_AUTOAPPEND = 0x02, /* enable autoappend */ |
| ACO_SEARCH = 0x04, /* add search entry to completion list */ |
| ACO_FILTERPREFIXES = 0x08, /* don't match common prefixes (www., http://, etc) */ |
| ACO_USETAB = 0x10, /* use tab to select autosuggest entries */ |
| ACO_UPDOWNKEYDROPSLIST = 0x20, /* up/down arrow key invokes autosuggest dropdown (if enabled) */ |
| ACO_RTLREADING = 0x40, /* enable RTL reading order for dropdown */ |
| } AUTOCOMPLETEOPTIONS; |
| |
| HRESULT SetOptions( [in] DWORD dwFlag); |
| |
| HRESULT GetOptions( [out] DWORD *pdwFlag); |
| } |
| |
| [ |
| uuid(50a7e9b0-70ef-11d1-b75a-00a0c90564fe), |
| version(1.0) |
| ] |
| library Shell32 |
| { |
| |
| importlib("stdole2.tlb"); |
| |
| [ |
| object, |
| oleautomation, |
| uuid(9ba05970-f6a8-11cf-a442-00a0c90a8f39), |
| pointer_default(unique) |
| ] |
| interface IFolderViewOC : IDispatch |
| { |
| HRESULT SetFolderView( [in] IDispatch *pdisp ); |
| } |
| |
| [ |
| uuid(62112aa2-ebe4-11cf-a5fb-0020afe7292d) |
| ] |
| dispinterface DShellFolderViewEvents |
| { |
| properties: |
| methods: |
| [id(DISPID_SELECTIONCHANGED)] |
| void SelectionChanged(); |
| |
| [id(DISPID_FILELISTENUMDONE)] |
| void EnumDone(); |
| |
| [id(DISPID_VERBINVOKED)] |
| VARIANT_BOOL VerbInvoked(); |
| |
| [id(DISPID_DEFAULTVERBINVOKED)] |
| VARIANT_BOOL DefaultVerbInvoked(); |
| |
| [id(DISPID_BEGINDRAG)] |
| VARIANT_BOOL BeginDrag(); |
| } |
| |
| [ |
| uuid(9ba05971-f6a8-11cf-a442-00a0c90a8f39), |
| hidden |
| ] |
| 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 ); |
| } |
| |
| /***************************************************************************** |
| * Folder2 interface |
| */ |
| [ |
| object, |
| uuid(f0d2d8ef-3890-11d2-bf8b-00c04fb93661), |
| oleautomation, |
| dual |
| ] |
| interface Folder2 : Folder |
| { |
| [propget] |
| HRESULT Self( [out, retval] FolderItem **ppfi ); |
| |
| [propget] |
| HRESULT OfflineStatus( [out, retval] LONG *pul ); |
| |
| HRESULT Synchronize(); |
| |
| [propget, id(1)] |
| HRESULT HaveToShowWebViewBarricade( |
| [out, retval] VARIANT_BOOL *pbHaveToShowWebViewBarricade ); |
| |
| HRESULT DismissedWebViewBarricade(); |
| } |
| |
| /***************************************************************************** |
| * Folder3 interface |
| */ |
| [ |
| object, |
| uuid(a7ae5f64-c4d7-4d7f-9307-4d24ee54b841), |
| oleautomation, |
| dual |
| ] |
| interface Folder3 : Folder2 |
| { |
| [propget, id(2)] |
| HRESULT ShowWebViewBarricade( |
| [out, retval] VARIANT_BOOL *pbShowWebViewBarricade ); |
| |
| [propput, id(2)] |
| HRESULT ShowWebViewBarricade( [in] VARIANT_BOOL bShowWebViewBarricade ); |
| } |
| |
| /***************************************************************************** |
| * 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 ); |
| } |
| |
| [ |
| object, |
| uuid(a4c6892c-3ba9-11d2-9dea-00c04fb16162), |
| oleautomation, |
| hidden, |
| dual, |
| ] |
| interface IShellDispatch2 : IShellDispatch |
| { |
| HRESULT IsRestricted([in] BSTR group, [in] BSTR restriction, [out, retval] long *value); |
| HRESULT ShellExecute([in] BSTR file, [in, optional] VARIANT args, [in, optional] VARIANT dir, |
| [in, optional] VARIANT op, [in, optional] VARIANT show); |
| HRESULT FindPrinter([in, optional] BSTR name, [in, optional] BSTR location, [in, optional] BSTR model); |
| HRESULT GetSystemInformation([in] BSTR name, [out, retval] VARIANT *ret); |
| HRESULT ServiceStart([in] BSTR service, [in] VARIANT persistent, [out, retval] VARIANT *ret); |
| HRESULT ServiceStop([in] BSTR service, [in] VARIANT persistent, [out, retval] VARIANT *ret); |
| HRESULT IsServiceRunning([in] BSTR service, [out, retval] VARIANT *running); |
| HRESULT CanStartStopService([in] BSTR service, [out, retval] VARIANT *ret); |
| HRESULT ShowBrowserBar([in] BSTR clsid, [in] VARIANT show, [out, retval] VARIANT *ret); |
| } |
| |
| [ |
| uuid(13709620-c279-11ce-a49e-444553540000) |
| ] |
| coclass Shell |
| { |
| [default] interface IShellDispatch2; |
| } |
| |
| [ |
| uuid(0a89a860-d7b1-11ce-8350-444553540000), |
| hidden |
| ] |
| coclass ShellDispatchInproc |
| { |
| interface IUnknown; |
| } |
| |
| typedef |
| [ |
| uuid(ca31ea20-48d0-11cf-8350-444553540000) |
| ] |
| enum ShellSpecialFolderConstants { |
| ssfDESKTOP = 0x00, |
| ssfPROGRAMS = 0x02, |
| ssfCONTROLS = 0x03, |
| ssfPRINTERS = 0x04, |
| ssfPERSONAL = 0x05, |
| ssfFAVORITES = 0x06, |
| ssfSTARTUP = 0x07, |
| ssfRECENT = 0x08, |
| ssfSENDTO = 0x09, |
| ssfBITBUCKET = 0x0a, |
| ssfSTARTMENU = 0x0b, |
| ssfDESKTOPDIRECTORY = 0x10, |
| ssfDRIVES = 0x11, |
| ssfNETWORK = 0x12, |
| ssfNETHOOD = 0x13, |
| ssfFONTS = 0x14, |
| ssfTEMPLATES = 0x15, |
| ssfCOMMONSTARTMENU = 0x16, |
| ssfCOMMONPROGRAMS = 0x17, |
| ssfCOMMONSTARTUP = 0x18, |
| ssfCOMMONDESKTOPDIR = 0x19, |
| ssfAPPDATA = 0x1a, |
| ssfPRINTHOOD = 0x1b, |
| ssfLOCALAPPDATA = 0x1c, |
| ssfALTSTARTUP = 0x1d, |
| ssfCOMMONALTSTARTUP = 0x1e, |
| ssfCOMMONFAVORITES = 0x1f, |
| ssfINTERNETCACHE = 0x20, |
| ssfCOOKIES = 0x21, |
| ssfHISTORY = 0x22, |
| ssfCOMMONAPPDATA = 0x23, |
| ssfWINDOWS = 0x24, |
| ssfSYSTEM = 0x25, |
| ssfPROGRAMFILES = 0x26, |
| ssfMYPICTURES = 0x27, |
| ssfPROFILE = 0x28, |
| ssfSYSTEMx86 = 0x29, |
| ssfPROGRAMFILESx86 = 0x30 |
| } ShellSpecialFolderConstants; |
| |
| } /* library Shell32 */ |
| |
| /***************************************************************************** |
| * IAsyncOperation interface |
| */ |
| [ |
| uuid(3d8b0590-f691-11d2-8ea9-006097df5bd4), |
| object, |
| ] |
| |
| interface IAsyncOperation : IUnknown |
| { |
| typedef [unique] IAsyncOperation *LPASYNCOPERATION; |
| |
| HRESULT SetAsyncMode([in] BOOL fDoOpAsync); |
| |
| HRESULT GetAsyncMode([out] BOOL *pfIsOpAsync); |
| |
| HRESULT StartOperation([in, unique, optional] IBindCtx *pbcReserved); |
| |
| HRESULT InOperation([out] BOOL *pfInAsyncOp); |
| |
| HRESULT EndOperation( |
| [in] HRESULT hResult, |
| [in, unique] IBindCtx *pbcReserved, |
| [in] DWORD dwEffects); |
| } |