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.

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