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.

102 lines
2.8 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1993 - 1996.
  5. //
  6. // File: propbag2.idl
  7. //
  8. //----------------------------------------------------------------------------
  9. cpp_quote("//+-------------------------------------------------------------------------")
  10. cpp_quote("//")
  11. cpp_quote("// Microsoft Windows")
  12. cpp_quote("// Copyright (C) Microsoft Corporation, 1993 - 1996.")
  13. cpp_quote("//")
  14. cpp_quote("//--------------------------------------------------------------------------")
  15. #ifndef DO_NO_IMPORTS
  16. import "objidl.idl";
  17. import "oleidl.idl";
  18. import "servprov.idl";
  19. //import "unknwn.idl";
  20. import "ocidl.idl";
  21. #endif
  22. interface IPersistPropertyBag2;
  23. interface IPropertyBag2;
  24. [object, uuid(22F55881-280B-11d0-A8A9-00A0C90C2004), pointer_default(unique)]
  25. interface IPersistPropertyBag2 : IPersist
  26. {
  27. typedef [unique] IPersistPropertyBag2 *LPPERSISTPROPERTYBAG2;
  28. HRESULT InitNew();
  29. HRESULT Load(
  30. [in]IPropertyBag2 * pPropBag,
  31. [in]IErrorLog * pErrLog);
  32. HRESULT Save(
  33. [in]IPropertyBag2 * pPropBag,
  34. [in]BOOL fClearDirty,
  35. [in]BOOL fSaveAllProperties);
  36. HRESULT IsDirty();
  37. }
  38. [object, uuid(22F55882-280B-11d0-A8A9-00A0C90C2004), pointer_default(unique)]
  39. interface IPropertyBag2 : IUnknown
  40. {
  41. typedef enum _tagPROPBAG2_TYPE
  42. {
  43. PROPBAG2_TYPE_UNDEFINED = 0,
  44. PROPBAG2_TYPE_DATA = 1, // Value is simple data
  45. PROPBAG2_TYPE_URL = 2, // Value is a URL reference
  46. PROPBAG2_TYPE_OBJECT = 3, // Value is an object
  47. PROPBAG2_TYPE_STREAM = 4, // Value is a stream
  48. PROPBAG2_TYPE_STORAGE = 5, // Value is a storage
  49. PROPBAG2_TYPE_MONIKER = 6 // Value is a moniker
  50. } PROPBAG2_TYPE;
  51. typedef struct _tagPROPBAG2
  52. {
  53. DWORD dwType; // Property type (from PROPBAG2_TYPE)
  54. VARTYPE vt; // VARIANT property type
  55. CLIPFORMAT cfType; // Clipboard format (aka MIME-type)
  56. DWORD dwHint; // Property name hint
  57. LPOLESTR pstrName; // Property name
  58. CLSID clsid; // CLSID (for PROPBAG2_TYPE_OBJECT)
  59. } PROPBAG2;
  60. typedef [unique]IPropertyBag2 *LPPROPERTYBAG2;
  61. HRESULT Read(
  62. [in] ULONG cProperties,
  63. [in] PROPBAG2 * pPropBag,
  64. [in] IErrorLog * pErrLog,
  65. [out] VARIANT * pvarValue,
  66. [out] HRESULT * phrError);
  67. HRESULT Write(
  68. [in] ULONG cProperties,
  69. [in] PROPBAG2 * pPropBag,
  70. [in] VARIANT * pvarValue);
  71. HRESULT CountProperties(
  72. [out] ULONG * pcProperties);
  73. HRESULT GetPropertyInfo(
  74. [in] ULONG iProperty,
  75. [in] ULONG cProperties,
  76. [out] PROPBAG2 * pPropBag,
  77. [out] ULONG * pcProperties);
  78. HRESULT LoadObject(
  79. [in] LPCOLESTR pstrName,
  80. [in] DWORD dwHint,
  81. [in] IUnknown * pUnkObject,
  82. [in] IErrorLog * pErrLog);
  83. }