Source code of Windows XP (NT5)
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.

199 lines
6.0 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright(C) 1997-1998 Microsoft Corporation all rights reserved.
  4. //
  5. // Module: sdohelperfuncs.h
  6. //
  7. // Project: Everest
  8. //
  9. // Description: Helper Functions
  10. //
  11. // Log:
  12. //
  13. // When Who What
  14. // ---- --- ----
  15. // 6/08/98 TLP Initial Version
  16. //
  17. /////////////////////////////////////////////////////////////////////////////
  18. #ifndef __INC_IAS_SDO_HELPER_FUNCS_H
  19. #define __INC_IAS_SDO_HELPER_FUNCS_H
  20. #include <ias.h>
  21. #include <sdoiaspriv.h>
  22. #include <winsock2.h>
  23. //////////////////////////////////////////////////////////////////////////////
  24. // SDO HELPER FUNCTIONS
  25. //
  26. // TODO: Wrap these in a seperate name space
  27. //
  28. //////////////////////////////////////////////////////////////////////////////
  29. /////////////////////////////////////////////////////////////////////////////
  30. // SDO Collection Helpers
  31. /////////////////////////////////////////////////////////////////////////////
  32. ///////////////////////////////////////////////////////////////////
  33. HRESULT SDOGetCollectionEnumerator(
  34. /*[in]*/ ISdo* pSdo,
  35. /*[in]*/ LONG lPropertyId,
  36. /*[out]*/ IEnumVARIANT** ppEnum
  37. );
  38. ///////////////////////////////////////////////////////////////////
  39. HRESULT SDONextObjectFromCollection(
  40. /*[in]*/ IEnumVARIANT* pEnum,
  41. /*[out]*/ ISdo** ppSdo
  42. );
  43. ///////////////////////////////////////////////////////////////////
  44. HRESULT SDOGetComponentFromCollection(
  45. /*[in]*/ ISdo* pSdoService,
  46. /*[in]*/ LONG lCollectionPropertyId,
  47. /*[in]*/ LONG lComponentId,
  48. /*[out]*/ ISdo** ppSdo
  49. );
  50. /////////////////////////////////////////////////////////////////////////////
  51. // Core Helpers
  52. /////////////////////////////////////////////////////////////////////////////
  53. ///////////////////////////////////////////////////////////////////
  54. HRESULT SDOConfigureComponentFromObject(
  55. /*[in]*/ ISdo* pSdo,
  56. /*[in]*/ IIasComponent* pComponent
  57. );
  58. ///////////////////////////////////////////////////////////////////
  59. HRESULT SDOGetComponentIdFromObject(
  60. /*[in]*/ ISdo* pSdo,
  61. /*[out]*/ PLONG pComponentId
  62. );
  63. ///////////////////////////////////////////////////////////////////
  64. HRESULT SDOCreateComponentFromObject(
  65. /*[in]*/ ISdo* pSdo,
  66. /*[out]*/ IIasComponent** ppComponent
  67. );
  68. /////////////////////////////////////////////////////////////////////////////
  69. // Data Store Helpers
  70. /////////////////////////////////////////////////////////////////////////////
  71. //////////////////////////////////////////////////////////////////////////////
  72. HRESULT SDOGetContainedObject(
  73. /*[in]*/ BSTR bstrObjectName,
  74. /*[in]*/ IDataStoreObject* pDSObject,
  75. /*[out]*/ IDataStoreObject** ppDSObject
  76. );
  77. //////////////////////////////////////////////////////////////////////////////
  78. HRESULT SDOGetContainerEnumerator(
  79. /*[in]*/ IDataStoreObject* pDSObject,
  80. /*[out]*/ IEnumVARIANT** ppObjectEnumerator
  81. );
  82. //////////////////////////////////////////////////////////////////////////////
  83. HRESULT SDONextObjectFromContainer(
  84. /*[in]*/ IEnumVARIANT* pEnumVariant,
  85. /*[out]*/ IDataStoreObject** ppDSObject
  86. );
  87. //////////////////////////////////////////////////////////////////////////////
  88. HRESULT SDOGetObjectPropertyEnumerator(
  89. /*[in]*/ IDataStoreObject* pDSObject,
  90. /*[out]*/ IEnumVARIANT** ppPropertyEnumerator
  91. );
  92. //////////////////////////////////////////////////////////////////////////////
  93. HRESULT SDONextPropertyFromObject(
  94. /*[in]*/ IEnumVARIANT* pEnumVariant,
  95. /*[out]*/ IDataStoreProperty** ppDSProperty
  96. );
  97. /////////////////////////////////////////////////////////////////////////////
  98. // Schema Helpers
  99. /////////////////////////////////////////////////////////////////////////////
  100. typedef enum _CLASSPROPERTYSET
  101. {
  102. PROPERTY_SET_REQUIRED,
  103. PROPERTY_SET_OPTIONAL
  104. } CLASSPROPERTYSET;
  105. //////////////////////////////////////////////////////////////////////////////
  106. HRESULT SDOGetClassPropertyEnumerator(
  107. /*[in]*/ CLASSPROPERTYSET ePropertySet,
  108. /*[in]*/ ISdoClassInfo* pSdoClassInfo,
  109. /*[out]*/ IEnumVARIANT** ppPropertyEnumerator
  110. );
  111. //////////////////////////////////////////////////////////////////////////////
  112. HRESULT SDONextPropertyFromClass(
  113. /*[in]*/ IEnumVARIANT* pEnumVariant,
  114. /*[out]*/ ISdoPropertyInfo** ppSdoPropertyInfo
  115. );
  116. /////////////////////////////////////////////////////////////////////////////
  117. // Misc Helpers
  118. /////////////////////////////////////////////////////////////////////////////
  119. HRESULT SDOGetLogFileDirectory(
  120. /*[in]*/ LPCWSTR lpszComputerName,
  121. /*[in]*/ DWORD dwLogFileDirectorySize,
  122. /*[out*/ PWCHAR pLogFileDirectory
  123. );
  124. //////////////////////////////////////////////////////////////////////////////
  125. BOOL SDOIsNameUnique(
  126. /*[in]*/ ISdoCollection* pSdoCollection,
  127. /*[in]*/ VARIANT* pName
  128. );
  129. /////////////////////////////////////////////////////////////////////////////
  130. HRESULT ValidateDNSName(
  131. /*[in]*/ VARIANT* pAddressValue
  132. );
  133. ///////////////////////////////////////////////////////////////////////////////
  134. // Data Store Class to SDO Prog ID Map
  135. ///////////////////////////////////////////////////////////////////////////////
  136. typedef struct _CLASSTOPROGID
  137. {
  138. LPWSTR pDatastoreClass;
  139. LPWSTR pSdoProgId;
  140. } CLASSTOPROGID, *PCLASSTOPROGID;
  141. #define BEGIN_CLASSTOPROGID_MAP(x) \
  142. static CLASSTOPROGID x[] = {
  143. #define DEFINE_CLASSTOPROGID_ENTRY(x,y) \
  144. { \
  145. x, \
  146. y \
  147. },
  148. #define END_CLASSTOPROGID_MAP() \
  149. { \
  150. NULL, \
  151. NULL \
  152. } \
  153. };
  154. ///////////////////////////////////////////////////////////////////////////////
  155. LPWSTR GetDataStoreClass(
  156. /*[in]*/ LPCWSTR lpszSdoProgId
  157. );
  158. #endif // __INC_IAS_SDO_HELPER_FUNCS_H