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.

127 lines
2.4 KiB

  1. /*
  2. * propstg.h - Property storage ADT
  3. */
  4. #ifndef _PROPSTG_H_
  5. #define _PROPSTG_H_
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. DECLARE_HANDLE(HPROPSTG);
  10. HRESULT
  11. WINAPI
  12. PropStg_Create(
  13. OUT HPROPSTG * phstg,
  14. IN DWORD dwFlags); // PSTGF_*
  15. // Flags for PropStg_Create
  16. #define PSTGF_DEFAULT 0x00000000
  17. HRESULT
  18. WINAPI
  19. PropStg_Destroy(
  20. IN HPROPSTG hstg);
  21. HRESULT
  22. WINAPI
  23. PropStg_ReadMultiple(
  24. IN HPROPSTG hstg,
  25. IN ULONG cpspec,
  26. IN const PROPSPEC * rgpropspec,
  27. IN PROPVARIANT * rgpropvar);
  28. HRESULT
  29. WINAPI
  30. PropStg_WriteMultiple(
  31. IN HPROPSTG hstg,
  32. IN ULONG cpspec,
  33. IN const PROPSPEC * rgpropspec,
  34. IN const PROPVARIANT * rgpropvar,
  35. IN PROPID propidFirst); OPTIONAL
  36. typedef HRESULT (CALLBACK *PFNPROPVARMASSAGE)(PROPID propid, const PROPVARIANT * ppropvar, LPARAM lParam);
  37. HRESULT
  38. WINAPI
  39. PropStg_WriteMultipleEx(
  40. IN HPROPSTG hstg,
  41. IN ULONG cpspec,
  42. IN const PROPSPEC * rgpropspec,
  43. IN const PROPVARIANT * rgpropvar,
  44. IN PROPID propidFirst, OPTIONAL
  45. IN PFNPROPVARMASSAGE pfn, OPTIONAL
  46. IN LPARAM lParam); OPTIONAL
  47. HRESULT
  48. WINAPI
  49. PropStg_DeleteMultiple(
  50. IN HPROPSTG hstg,
  51. IN ULONG cpspec,
  52. IN const PROPSPEC * rgpropspec);
  53. HRESULT
  54. WINAPI
  55. PropStg_DirtyMultiple(
  56. IN HPROPSTG hstg,
  57. IN ULONG cpspec,
  58. IN const PROPSPEC * rgpropspec,
  59. IN BOOL bDirty);
  60. HRESULT
  61. WINAPI
  62. PropStg_DirtyAll(
  63. IN HPROPSTG hstg,
  64. IN BOOL bDirty);
  65. HRESULT
  66. WINAPI
  67. PropStg_IsDirty(
  68. IN HPROPSTG hstg);
  69. typedef HRESULT (CALLBACK *PFNPROPSTGENUM)(PROPID propid, PROPVARIANT * ppropvar, LPARAM lParam);
  70. HRESULT
  71. WINAPI
  72. PropStg_Enum(
  73. IN HPROPSTG hstg,
  74. IN DWORD dwFlags, // One of PSTGEF_
  75. IN PFNPROPSTGENUM pfnEnum,
  76. IN LPARAM lParam); OPTIONAL
  77. // Filter flags for PropStg_Enum
  78. #define PSTGEF_DEFAULT 0x00000000
  79. #define PSTGEF_DIRTY 0x00000001
  80. #ifdef DEBUG
  81. HRESULT
  82. WINAPI
  83. PropStg_Dump(
  84. IN HPROPSTG hstg,
  85. IN DWORD dwFlags); // One of PSTGDF_
  86. #endif
  87. #ifdef DEBUG
  88. BOOL
  89. IsValidPPROPSPEC(
  90. PROPSPEC * ppropspec);
  91. BOOL
  92. IsValidHPROPSTG(
  93. HPROPSTG hstg);
  94. #endif
  95. #ifdef __cplusplus
  96. };
  97. #endif
  98. #endif // _PROPSTG_H_