126 lines
3.3 KiB
Plaintext
126 lines
3.3 KiB
Plaintext
|
|
import "oaidl.idl";
|
|
import "shobjidl.idl";
|
|
|
|
|
|
interface IShellMoniker;
|
|
[
|
|
helpstring("Shell Namespace helper"),
|
|
uuid(1079acf9-29bd-11d3-8e0d-00c04f6837d5),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IShellMoniker : IUnknown
|
|
{
|
|
HRESULT BindToObject(
|
|
[in] IBindCtx *pbc,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void **ppvOut);
|
|
|
|
HRESULT BindToStorage(
|
|
[in] IBindCtx *pbc,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void **ppvOut);
|
|
|
|
HRESULT GetDisplayName(
|
|
[in] IBindCtx *pbc,
|
|
[in] SHGDNF shgdnFlags,
|
|
[out, string] LPOLESTR *ppszName);
|
|
|
|
HRESULT GetAttributes(
|
|
[in] SFGAOF sfgaoMask,
|
|
[out] SFGAOF *psfgaoFlags);
|
|
|
|
HRESULT GetProperty(
|
|
[in] IBindCtx *pbc,
|
|
[in] REFFMTID fmtid,
|
|
[in] PROPID pid,
|
|
[out] VARIANT *pv);
|
|
};
|
|
|
|
interface IStorageDescriptor;
|
|
[
|
|
helpstring("Describes the underlying storage"),
|
|
uuid(1079acfa-29bd-11d3-8e0d-00c04f6837d5),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IStorageDescriptor : IUnknown
|
|
{
|
|
// IStorageDescriptor methods
|
|
HRESULT GetStgDescription([out, string] LPOLESTR *ppszName);
|
|
};
|
|
|
|
interface IFileSystemDescriptor;
|
|
[
|
|
helpstring("Describes file system Objects"),
|
|
uuid(1079acfb-29bd-11d3-8e0d-00c04f6837d5),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IFileSystemDescriptor : IStorageDescriptor
|
|
{
|
|
// IFileSystemDescriptor methods
|
|
HRESULT GetFSPath([out, string] LPOLESTR *ppszName);
|
|
};
|
|
|
|
interface IMonikerHelper;
|
|
[
|
|
helpstring("Assist legacy applications to use IMoniker"),
|
|
uuid(679d9e36-f8f9-11d2-8deb-00c04f6837d5),
|
|
object,
|
|
]
|
|
|
|
interface IMonikerHelper : IUnknown
|
|
{
|
|
|
|
cpp_quote("// flags for IMonikerHelper methods")
|
|
cpp_quote("// MKHELPF_INIT_READONLY read only helper, Commit fails with E_ACCESSDENIED")
|
|
cpp_quote("// MKHELPF_INIT_SAVEAS write only helper, no download required for GLP")
|
|
cpp_quote("// MKHELPF_FORCEROUNDTRIP never use local cache (always roundtrip)")
|
|
cpp_quote("// MKHELPF_NOPROGRESSUI no progress will be displayed, only errors/confirmations")
|
|
cpp_quote("// MKHELPF_NOUI overrides all other UI flags")
|
|
|
|
[v1_enum] enum
|
|
{
|
|
MKHELPF_INIT_READONLY = 0x00000001,
|
|
MKHELPF_INIT_SAVEAS = 0x00000002,
|
|
MKHELPF_FORCEROUNDTRIP = 0x00000010,
|
|
MKHELPF_NOPROGRESSUI = 0x00000020,
|
|
MKHELPF_NOUI = 0x00000040,
|
|
};
|
|
|
|
typedef DWORD MKHELPF;
|
|
|
|
// IMonikerHelper methods
|
|
HRESULT Init([in] MKHELPF flags, [in] IMoniker *pmk);
|
|
HRESULT GetLocalPath([in] MKHELPF flags, [in] HWND hwnd, [in] LPCWSTR pszTitle, [out, size_is(*pcchOut)] LPWSTR pszOut, [in, out] DWORD *pcchOut);
|
|
HRESULT Commit([in] MKHELPF flags, [in] HWND hwnd, [in] LPCWSTR pszTitle);
|
|
};
|
|
|
|
[
|
|
uuid(50a7e9b1-70ef-11d1-b75a-00c04f6837d5), // LIBID_ShellHelpers
|
|
helpstring("Microsoft Shell Helper Objects"),
|
|
version(1.0),
|
|
restricted
|
|
]
|
|
library ShellHelpers
|
|
{
|
|
[
|
|
uuid(1079acf8-29bd-11d3-8e0d-00c04f6837d5), // CLSID_ShellMoniker
|
|
]
|
|
coclass ShellMoniker
|
|
{
|
|
[restricted] interface IShellMoniker;
|
|
};
|
|
|
|
[
|
|
uuid(679d9e37-f8f9-11d2-8deb-00c04f6837d5), // CLSID_MonikerHelper
|
|
]
|
|
coclass MonikerHelper
|
|
{
|
|
[restricted] interface IMonikerHelper;
|
|
};
|
|
};
|
|
|