Index: src/chext/chext.idl =================================================================== diff -u -rd2b121c78f510b5384b8ef0ca80afbfd7f77fef7 -rd0fdcc905035e648382256101a3d99f429af6d56 --- src/chext/chext.idl (.../chext.idl) (revision d2b121c78f510b5384b8ef0ca80afbfd7f77fef7) +++ src/chext/chext.idl (.../chext.idl) (revision d0fdcc905035e648382256101a3d99f429af6d56) @@ -25,6 +25,17 @@ import "oaidl.idl"; import "ocidl.idl"; [ + v1_enum, + uuid(54F8BFDD-6685-4792-94BD-40DF00099F9B), + helpstring("Shell extension flags") + ] + enum EShellExtFlags + { + eShellExt_None = 0, + eShellExt_Enabled = 1 + }; + + [ object, uuid(413AA618-E769-4E6E-A610-7BDC8A189FB2), dual, @@ -54,6 +65,26 @@ // [id(1), helpstring("method InvokeCommand")] HRESULT InvokeCommand(LPCMINVOKECOMMANDINFO lpici); }; + [ + object, + uuid(317E503A-9D2F-4f42-995E-D314CB9D89B0), + dual, + helpstring("IShellExtControl Interface"), + pointer_default(unique) + ] + interface IShellExtControl : IDispatch + { + // Shell extension version (numeric and readable) + [id(1),helpstring("Retrieves the extension version information")] + HRESULT GetVersion([out]LONG* plVersion, [out]BSTR* pbstrVersion); + + // Flag setting/retrieving + [id(2),helpstring("Sets the flags for shell extension")] + HRESULT SetFlags(LONG lFlags, LONG lMask); + [id(3),helpstring("Retrieves the shell extension flags")] + HRESULT GetFlags(LONG* plFlags); + }; + [ uuid(68FAFC14-8EB8-4DA1-90EB-6B3D22010505), version(1.0), @@ -80,4 +111,12 @@ { [default] interface IDropMenuExt; }; + [ + uuid(3D855ACA-8274-4f1f-94E9-6BEF4FC2A2AF), + helpstring("CShellExtControl Class") + ] + coclass CShellExtControl + { + [default] interface IShellExtControl; + }; };