Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
3.5 KiB

  1. import "oaidl.idl";
  2. import "shobjidl.idl";
  3. interface IShellMoniker;
  4. [
  5. helpstring("Shell Namespace helper"),
  6. uuid(1079acf9-29bd-11d3-8e0d-00c04f6837d5),
  7. object,
  8. pointer_default(unique)
  9. ]
  10. interface IShellMoniker : IUnknown
  11. {
  12. HRESULT BindToObject(
  13. [in] IBindCtx *pbc,
  14. [in] REFIID riid,
  15. [out, iid_is(riid)] void **ppvOut);
  16. HRESULT BindToStorage(
  17. [in] IBindCtx *pbc,
  18. [in] REFIID riid,
  19. [out, iid_is(riid)] void **ppvOut);
  20. HRESULT GetDisplayName(
  21. [in] IBindCtx *pbc,
  22. [in] SHGDNF shgdnFlags,
  23. [out, string] LPOLESTR *ppszName);
  24. HRESULT GetAttributes(
  25. [in] SFGAOF sfgaoMask,
  26. [out] SFGAOF *psfgaoFlags);
  27. HRESULT GetProperty(
  28. [in] IBindCtx *pbc,
  29. [in] REFFMTID fmtid,
  30. [in] PROPID pid,
  31. [out] VARIANT *pv);
  32. };
  33. interface IStorageDescriptor;
  34. [
  35. helpstring("Describes the underlying storage"),
  36. uuid(1079acfa-29bd-11d3-8e0d-00c04f6837d5),
  37. object,
  38. pointer_default(unique)
  39. ]
  40. interface IStorageDescriptor : IUnknown
  41. {
  42. // IStorageDescriptor methods
  43. HRESULT GetStgDescription([out, string] LPOLESTR *ppszName);
  44. };
  45. interface IFileSystemDescriptor;
  46. [
  47. helpstring("Describes file system Objects"),
  48. uuid(1079acfb-29bd-11d3-8e0d-00c04f6837d5),
  49. object,
  50. pointer_default(unique)
  51. ]
  52. interface IFileSystemDescriptor : IStorageDescriptor
  53. {
  54. // IFileSystemDescriptor methods
  55. HRESULT GetFSPath([out, string] LPOLESTR *ppszName);
  56. };
  57. interface IMonikerHelper;
  58. [
  59. helpstring("Assist legacy applications to use IMoniker"),
  60. uuid(679d9e36-f8f9-11d2-8deb-00c04f6837d5),
  61. object,
  62. ]
  63. interface IMonikerHelper : IUnknown
  64. {
  65. cpp_quote("// flags for IMonikerHelper methods")
  66. cpp_quote("// MKHELPF_INIT_READONLY read only helper, Commit fails with E_ACCESSDENIED")
  67. cpp_quote("// MKHELPF_INIT_SAVEAS write only helper, no download required for GLP")
  68. cpp_quote("// MKHELPF_FORCEROUNDTRIP never use local cache (always roundtrip)")
  69. cpp_quote("// MKHELPF_NOPROGRESSUI no progress will be displayed, only errors/confirmations")
  70. cpp_quote("// MKHELPF_NOUI overrides all other UI flags")
  71. [v1_enum] enum
  72. {
  73. MKHELPF_INIT_READONLY = 0x00000001,
  74. MKHELPF_INIT_SAVEAS = 0x00000002,
  75. MKHELPF_FORCEROUNDTRIP = 0x00000010,
  76. MKHELPF_NOPROGRESSUI = 0x00000020,
  77. MKHELPF_NOUI = 0x00000040,
  78. };
  79. typedef DWORD MKHELPF;
  80. // IMonikerHelper methods
  81. HRESULT Init([in] MKHELPF flags, [in] IMoniker *pmk);
  82. HRESULT GetLocalPath([in] MKHELPF flags, [in] HWND hwnd, [in] LPCWSTR pszTitle, [out, size_is(*pcchOut)] LPWSTR pszOut, [in, out] DWORD *pcchOut);
  83. HRESULT Commit([in] MKHELPF flags, [in] HWND hwnd, [in] LPCWSTR pszTitle);
  84. };
  85. [
  86. uuid(50a7e9b1-70ef-11d1-b75a-00c04f6837d5), // LIBID_ShellHelpers
  87. helpstring("Microsoft Shell Helper Objects"),
  88. version(1.0),
  89. restricted
  90. ]
  91. library ShellHelpers
  92. {
  93. [
  94. uuid(1079acf8-29bd-11d3-8e0d-00c04f6837d5), // CLSID_ShellMoniker
  95. ]
  96. coclass ShellMoniker
  97. {
  98. [restricted] interface IShellMoniker;
  99. };
  100. [
  101. uuid(679d9e37-f8f9-11d2-8deb-00c04f6837d5), // CLSID_MonikerHelper
  102. ]
  103. coclass MonikerHelper
  104. {
  105. [restricted] interface IMonikerHelper;
  106. };
  107. };