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.

250 lines
5.4 KiB

  1. typedef struct _PropertyInfo
  2. {
  3. LPTSTR szPropertyName;
  4. BSTR bstrOID;
  5. BSTR bstrSyntax;
  6. long lMaxRange;
  7. long lMinRange;
  8. BOOL fMultiValued;
  9. DWORD dwFlags;
  10. DWORD dwInfoLevel;
  11. DWORD dwSyntaxId;
  12. }PROPERTYINFO, *PPROPERTYINFO, *LPPROPERTYINFO;
  13. typedef struct _ClassInfo
  14. {
  15. BSTR bstrName;
  16. const GUID *pCLSID;
  17. const GUID *pPrimaryInterfaceGUID;
  18. BSTR bstrOID;
  19. BOOL fAbstract;
  20. BSTR bstrMandatoryProperties;
  21. BSTR bstrOptionalProperties;
  22. BSTR bstrPossSuperiors;
  23. BSTR bstrContainment;
  24. BOOL fContainer;
  25. BSTR bstrHelpFileName;
  26. long lHelpFileContext;
  27. PROPERTYINFO *aPropertyInfo;
  28. DWORD cPropertyInfo;
  29. } CLASSINFO;
  30. typedef struct _SyntaxInfo
  31. {
  32. BSTR bstrName;
  33. long lOleAutoDataType;
  34. } SYNTAXINFO;
  35. extern DWORD g_cNWCOMPATClasses;
  36. extern CLASSINFO g_aNWCOMPATClasses[];
  37. extern DWORD g_cNWCOMPATSyntax;
  38. extern SYNTAXINFO g_aNWCOMPATSyntax[];
  39. HRESULT MakeVariantFromStringList(
  40. BSTR bstrList,
  41. VARIANT *pvVariant );
  42. class CNWCOMPATSchema;
  43. class CNWCOMPATSchema : INHERIT_TRACKING,
  44. public CCoreADsObject,
  45. public ISupportErrorInfo,
  46. public IADs,
  47. public IADsContainer
  48. {
  49. public:
  50. /* IUnknown methods */
  51. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  52. DECLARE_STD_REFCOUNTING
  53. /* Other methods */
  54. DECLARE_IDispatch_METHODS
  55. DECLARE_ISupportErrorInfo_METHODS
  56. DECLARE_IADs_METHODS
  57. DECLARE_IADsContainer_METHODS
  58. /* Constructors, Destructors .... */
  59. CNWCOMPATSchema::CNWCOMPATSchema();
  60. CNWCOMPATSchema::~CNWCOMPATSchema();
  61. static HRESULT CNWCOMPATSchema::CreateSchema(
  62. BSTR bstrParent,
  63. BSTR bstrName,
  64. DWORD dwObjectState,
  65. REFIID riid,
  66. void **ppvObj );
  67. static HRESULT CNWCOMPATSchema::AllocateSchemaObject(
  68. CNWCOMPATSchema **ppSchema );
  69. protected:
  70. CAggregatorDispMgr FAR * _pDispMgr;
  71. VARIANT _vFilter;
  72. };
  73. class CNWCOMPATClass : INHERIT_TRACKING,
  74. public CCoreADsObject,
  75. public ISupportErrorInfo,
  76. public IADsClass
  77. {
  78. public:
  79. /* IUnknown methods */
  80. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  81. DECLARE_STD_REFCOUNTING
  82. /* Other methods */
  83. DECLARE_IDispatch_METHODS
  84. DECLARE_ISupportErrorInfo_METHODS
  85. DECLARE_IADs_METHODS
  86. DECLARE_IADsClass_METHODS
  87. /* Constructors, Destructors, .... */
  88. CNWCOMPATClass::CNWCOMPATClass();
  89. CNWCOMPATClass::~CNWCOMPATClass();
  90. static HRESULT CNWCOMPATClass::CreateClass(
  91. BSTR bstrParent,
  92. CLASSINFO *pClassInfo,
  93. DWORD dwObjectState,
  94. REFIID riid,
  95. void **ppvObj );
  96. static HRESULT CNWCOMPATClass::AllocateClassObject(
  97. CNWCOMPATClass **ppClass );
  98. protected:
  99. CAggregatorDispMgr FAR * _pDispMgr;
  100. VARIANT _vFilter;
  101. DWORD _cPropertyInfo;
  102. PROPERTYINFO *_aPropertyInfo;
  103. /* Properties */
  104. BSTR _bstrCLSID;
  105. BSTR _bstrOID;
  106. BSTR _bstrPrimaryInterface;
  107. VARIANT_BOOL _fAbstract;
  108. VARIANT _vMandatoryProperties;
  109. VARIANT _vOptionalProperties;
  110. VARIANT _vPossSuperiors;
  111. VARIANT _vContainment;
  112. VARIANT_BOOL _fContainer;
  113. BSTR _bstrHelpFileName;
  114. long _lHelpFileContext;
  115. };
  116. class CNWCOMPATProperty : INHERIT_TRACKING,
  117. public CCoreADsObject,
  118. public ISupportErrorInfo,
  119. public IADsProperty
  120. {
  121. public:
  122. /* IUnknown methods */
  123. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  124. DECLARE_STD_REFCOUNTING
  125. /* Other methods */
  126. DECLARE_IDispatch_METHODS
  127. DECLARE_ISupportErrorInfo_METHODS
  128. DECLARE_IADs_METHODS
  129. DECLARE_IADsProperty_METHODS
  130. /* Constructors, Destructors, ... */
  131. CNWCOMPATProperty::CNWCOMPATProperty();
  132. CNWCOMPATProperty::~CNWCOMPATProperty();
  133. static HRESULT CNWCOMPATProperty::CreateProperty(
  134. BSTR bstrParent,
  135. PROPERTYINFO *pPropertyInfo,
  136. DWORD dwObjectState,
  137. REFIID riid,
  138. void **ppvObj );
  139. static HRESULT CNWCOMPATProperty::AllocatePropertyObject(
  140. CNWCOMPATProperty **ppProperty );
  141. protected:
  142. CAggregatorDispMgr FAR * _pDispMgr;
  143. /* Properties */
  144. BSTR _bstrOID;
  145. BSTR _bstrSyntax;
  146. long _lMaxRange;
  147. long _lMinRange;
  148. VARIANT_BOOL _fMultiValued;
  149. };
  150. class CNWCOMPATSyntax : INHERIT_TRACKING,
  151. public CCoreADsObject,
  152. public ISupportErrorInfo,
  153. public IADsSyntax
  154. {
  155. public:
  156. /* IUnknown methods */
  157. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  158. DECLARE_STD_REFCOUNTING
  159. /* Other methods */
  160. DECLARE_IDispatch_METHODS
  161. DECLARE_ISupportErrorInfo_METHODS
  162. DECLARE_IADs_METHODS
  163. DECLARE_IADsSyntax_METHODS
  164. /* Constructors, Destructors, ... */
  165. CNWCOMPATSyntax::CNWCOMPATSyntax();
  166. CNWCOMPATSyntax::~CNWCOMPATSyntax();
  167. static HRESULT CNWCOMPATSyntax::CreateSyntax(
  168. BSTR bstrParent,
  169. SYNTAXINFO *pSyntaxInfo,
  170. DWORD dwObjectState,
  171. REFIID riid,
  172. void **ppvObj );
  173. static HRESULT CNWCOMPATSyntax::AllocateSyntaxObject(
  174. CNWCOMPATSyntax **ppSyntax );
  175. protected:
  176. CAggregatorDispMgr FAR * _pDispMgr;
  177. /* Properties */
  178. long _lOleAutoDataType;
  179. };