X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=sdk%2Finclude%2Fpsdk%2Fshobjidl.idl;h=a7bbf3d75659600c59aae236803c9fb15ad7d1d0;hp=efcf9a362b5cb2a25b0313ed9ad7b3849f7a50af;hb=1d4d88b062c5df08ba8dd082f2c92862db3d0de4;hpb=371aba1abee3f872ee9f146015f9db59ec6297df diff --git a/sdk/include/psdk/shobjidl.idl b/sdk/include/psdk/shobjidl.idl index efcf9a362b5..a7bbf3d7565 100644 --- a/sdk/include/psdk/shobjidl.idl +++ b/sdk/include/psdk/shobjidl.idl @@ -2196,6 +2196,156 @@ interface IDefaultExtractIconInit : IUnknown [in] int iIcon); } + +#ifdef __REACTOS__ +/***************************************************************************** + * IExplorerCommand interface (Vista+) + */ + +interface IEnumExplorerCommand; + +[ + uuid(A08CE4D0-FA25-44AB-B57C-C7B1C323E0B9), + pointer_default(unique) +] +interface IExplorerCommand : IUnknown +{ + cpp_quote("// GetIcon(ppszIcon) Receives resource string that identifies icon source") + typedef [v1_enum] enum _EXPCMDSTATE + { + ECS_ENABLED = 0x000, + ECS_DISABLED = 0x001, + ECS_HIDDEN = 0x002, + ECS_CHECKBOX = 0x004, + ECS_CHECKED = 0x008, + ECS_RADIOCHECK = 0x010, // Windows 7 + } EXPCMDSTATE; + + typedef [v1_enum] enum _EXPCMDFLAGS + { + ECF_DEFAULT = 0x000, + ECF_HASSUBCOMMANDS = 0x001, + ECF_HASSPLITBUTTON = 0x002, + ECF_HIDELABEL = 0x004, + ECF_ISSEPARATOR = 0x008, + ECF_HASLUASHIELD = 0x010, + ECF_SEPARATORBEFORE = 0x020, // Windows 7 + ECF_SEPARATORAFTER = 0x040, // Windows 7 + ECF_ISDROPDOWN = 0x080, // Windows 7 + ECF_TOGGLEABLE = 0x100, // Windows 8 + ECF_AUTOMENUICONS = 0x200, // Windows 8 + } EXPCMDFLAGS; + + HRESULT GetTitle( + [in, unique] IShellItemArray *psiItemArray, + [out, string] LPWSTR *ppszName); + HRESULT GetIcon( + [in, unique] IShellItemArray *psiItemArray, + [out, string] LPWSTR *ppszIcon); + HRESULT GetToolTip( + [in, unique] IShellItemArray *psiItemArray, + [out, string] LPWSTR *ppszInfotip); + HRESULT GetCanonicalName( + [out] GUID* pguidCommandName); + HRESULT GetState( + [in] IShellItemArray *psiItemArray, + [in] BOOL fOkToBeSlow, + [out] EXPCMDSTATE *pCmdState); + HRESULT Invoke( + [in] IShellItemArray *psiItemArray, + [in, unique] IBindCtx *pbc); + HRESULT GetFlags( + [out] EXPCMDFLAGS *pFlags); + HRESULT EnumSubCommands( + [out] IEnumExplorerCommand **ppEnum); +}; + + +/***************************************************************************** + * IExplorerCommandState interface (Vista+) + */ +[ + object, + uuid(BDDACB60-7657-47AE-8445-D23E1ACF82AE), + pointer_default(unique) +] +interface IExplorerCommandState : IUnknown +{ + HRESULT GetState( + [in] IShellItemArray *psiItemArray, + [in] BOOL fOkToBeSlow, + [out] EXPCMDSTATE *pCmdState); +} + + +/***************************************************************************** + * IInitializeCommand interface (Vista+) + */ +[ + object, + uuid(85075ACF-231F-40EA-9610-D26B7B58F638), + pointer_default(unique) +] +interface IInitializeCommand : IUnknown +{ + HRESULT Initialize( + [in, string] LPCWSTR pszCommandName, + [in] IPropertyBag *ppb); +} + + +/***************************************************************************** + * IEnumExplorerCommand interface (Vista+) + */ +[ + object, + uuid(A88826F8-186F-4987-AADE-EA0CEF8FBFE8), + pointer_default(unique) +] +interface IEnumExplorerCommand : IUnknown +{ + [local] + HRESULT Next( + [in] ULONG celt, + [out] IExplorerCommand** pUICommand, + [out, optional] ULONG *pceltFetched); + [call_as(Next)] + HRESULT RemoteNext( + [in] ULONG celt, + [out] IExplorerCommand** pUICommand, + [out, optional] ULONG *pceltFetched); + HRESULT Skip( + [in] ULONG celt); + HRESULT Reset(); + HRESULT Clone( + [out] IEnumExplorerCommand **ppenum); +}; + + +/***************************************************************************** + * IExplorerCommandProvider interface (Vista+) + */ +[ + uuid(64961751-0835-43C0-8FFE-D57686530E64), + pointer_default(unique) +] +interface IExplorerCommandProvider : IUnknown +{ + cpp_quote("// GetCommands usually creates an IEnumExplorerCommand") + cpp_quote("// GetCommand usually creates an IExplorerCommand") + + HRESULT GetCommands( + [in] IUnknown *punkSite, + [in] REFIID riid, + [out, iid_is(riid)] void **ppv); + HRESULT GetCommand( + [in] REFGUID rguidCommandId, + [in] REFIID riid, + [out, iid_is(riid)] void **ppv); +}; + +#endif // __REACTOS__ + /***************************************************************************** * IDeskBand interface */