reactos/include/psdk/shldisp.idl
Amine Khaldi 527f2f9057 [SHELL/EXPERIMENTS]
* Create a branch for some evul shell experiments.

svn path=/branches/shell-experiments/; revision=61927
2014-02-02 19:37:27 +00:00

586 lines
14 KiB
Plaintext

/*
* 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 );
}
[
object,
uuid(edc817aa-92b8-11d1-b075-00c04fc33aa5),
oleautomation,
dual
]
interface FolderItem2 : FolderItem
{
HRESULT InvokeVerbEx( [in, optional] VARIANT vVerb, [in, optional] VARIANT vArgs );
HRESULT ExtendedProperty( [in] BSTR sPropName, [out, retval] VARIANT *pvRet );
}
[
uuid(2fe352ea-fd1f-11d2-b1f4-00c04f8eeb3e)
]
coclass ShellFolderItem
{
interface FolderItem2;
}
/*****************************************************************************
* 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);
}