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.

182 lines
4.0 KiB

  1. //----------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 2000.
  5. //
  6. // File: cumiprop.hxx
  7. //
  8. // Contents: Header for the property list implementation for UMI.
  9. //
  10. // History: 02-28-00 SivaramR Created.
  11. //
  12. //----------------------------------------------------------------------------
  13. #ifndef __CUMIPROP_H__
  14. #define __CUMIPROP_H__
  15. class CUmiPropList : INHERIT_TRACKING,
  16. public IUmiPropList
  17. {
  18. public:
  19. CUmiPropList(PPROPERTYINFO pSchema, DWORD dwSchemaSize);
  20. ~CUmiPropList(void);
  21. DECLARE_STD_REFCOUNTING
  22. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppInterface) ;
  23. HRESULT FInit(CPropertyCache *pPropCache, LPWSTR *ppszUnImpl);
  24. STDMETHODIMP Put(
  25. LPCWSTR pszName,
  26. ULONG uFlags,
  27. UMI_PROPERTY_VALUES *pProp
  28. );
  29. STDMETHODIMP Get(
  30. LPCWSTR pszName,
  31. ULONG uFlags,
  32. UMI_PROPERTY_VALUES **ppProp
  33. );
  34. STDMETHODIMP GetAs(
  35. LPCWSTR pszName,
  36. ULONG uFlags,
  37. ULONG uCoercionType,
  38. UMI_PROPERTY_VALUES **ppProp
  39. );
  40. STDMETHODIMP FreeMemory(
  41. ULONG uReserved,
  42. LPVOID pMem
  43. );
  44. STDMETHODIMP GetAt(
  45. LPCWSTR pszName,
  46. ULONG uFlags,
  47. ULONG uBufferLength,
  48. LPVOID pExistingMem
  49. );
  50. STDMETHODIMP GetProps(
  51. LPCWSTR *pszNames,
  52. ULONG uNameCount,
  53. ULONG uFlags,
  54. UMI_PROPERTY_VALUES **pProps
  55. );
  56. STDMETHODIMP PutProps(
  57. LPCWSTR *pszNames,
  58. ULONG uNameCount,
  59. ULONG uFlags,
  60. UMI_PROPERTY_VALUES *pProps
  61. );
  62. STDMETHODIMP PutFrom(
  63. LPCWSTR pszName,
  64. ULONG uFlags,
  65. ULONG uBufferLength,
  66. LPVOID pExistingMem
  67. );
  68. STDMETHODIMP Delete(
  69. LPCWSTR pszName,
  70. ULONG uFlags
  71. );
  72. HRESULT GetLastStatus(
  73. ULONG uFlags,
  74. ULONG *puSpecificStatus,
  75. REFIID riid,
  76. LPVOID *pStatusObj
  77. );
  78. HRESULT SetStandardProperties(
  79. IADs *pIADs,
  80. CCoreADsObject *pCoreObj
  81. );
  82. void SetClassInfo(
  83. CLASSINFO *pClassInfo
  84. );
  85. HRESULT GetHelper(
  86. LPCWSTR pszName,
  87. ULONG uFlags,
  88. UMI_PROPERTY_VALUES **ppProp,
  89. UMI_TYPE UmiDstType,
  90. BOOL fInternal,
  91. BOOL fIsGetAs = FALSE
  92. );
  93. void DisableWrites(void);
  94. HRESULT SetDefaultConnProps(void);
  95. HRESULT SetPropertyCount(DWORD dwPropCount);
  96. private:
  97. HRESULT ValidatePutArgs(
  98. LPCWSTR pszName,
  99. ULONG uFlags,
  100. UMI_PROPERTY_VALUES *pProp
  101. );
  102. HRESULT ValidateGetArgs(
  103. LPCWSTR pszName,
  104. ULONG uFlags,
  105. UMI_PROPERTY_VALUES **ppProp
  106. );
  107. HRESULT GetInterfacePropNames(
  108. UMI_PROPERTY_VALUES **pProps
  109. );
  110. HRESULT GetObjectPropNames(
  111. UMI_PROPERTY_VALUES **pProps
  112. );
  113. void SetLastStatus(ULONG ulStatus);
  114. BOOL IsSchemaObject(
  115. BSTR bstrClass
  116. );
  117. HRESULT GetSchemaObject(
  118. LPWSTR pszName,
  119. UMI_PROPERTY_VALUES **ppProp
  120. );
  121. HRESULT GetClassInfo(
  122. UMI_PROPERTY_VALUES **pProps
  123. );
  124. BOOL IsNamespaceObj(
  125. BSTR bstrClass
  126. );
  127. BOOL IsClassObj(
  128. BSTR bstrClass
  129. );
  130. HRESULT GetPropertyOrigin(
  131. LPCWSTR pszName,
  132. UMI_PROPERTY_VALUES **ppProp
  133. );
  134. PPROPERTYINFO m_pSchema;
  135. DWORD m_dwSchemaSize;
  136. CPropertyCache FAR *m_pPropCache;
  137. BOOL m_fIsIntfPropObj;
  138. ULONG m_ulErrorStatus;
  139. LPWSTR m_pszSchema;
  140. CLASSINFO *m_pClassInfo;
  141. BOOL m_fIsNamespaceObj;
  142. BOOL m_fIsClassObj;
  143. BOOL m_fDisableWrites;
  144. LPWSTR *m_ppszUnImpl;
  145. };
  146. #endif // __CUMIPROP_H__