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.

429 lines
17 KiB

  1. //***************************************************************************
  2. //
  3. // File:
  4. //
  5. // Module: MS SNMP Provider
  6. //
  7. // Purpose:
  8. //
  9. // Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
  10. //
  11. //***************************************************************************
  12. #ifndef _SMIR_H_
  13. #define _SMIR_H_
  14. struct ISmirInterrogator ;
  15. struct ISmirAdministrator ;
  16. /***************************** handles *************************************/
  17. // {5009ab90-f9ee-11cf-aec1-00aa00bdd7d1}
  18. DEFINE_GUID(CLSID_SMIR_ModHandle,
  19. 0x5009ab90, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  20. // {5009ab91-f9ee-11cf-aec1-00aa00bdd7d1}
  21. DEFINE_GUID(IID_ISMIR_ModHandle,
  22. 0x5009ab91, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  23. DECLARE_INTERFACE_(ISmirModHandle,IUnknown)
  24. {
  25. //IUnknown members
  26. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  27. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  28. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  29. STDMETHOD_(SCODE, GetName)(THIS_ BSTR *)PURE;
  30. STDMETHOD_(SCODE, GetModuleOID)(THIS_ BSTR *)PURE;
  31. STDMETHOD_(SCODE, GetModuleIdentity)(THIS_ BSTR *)PURE;
  32. STDMETHOD_(SCODE, GetLastUpdate)(THIS_ BSTR *)PURE;
  33. STDMETHOD_(SCODE, GetOrganisation)(THIS_ BSTR *)PURE;
  34. STDMETHOD_(SCODE, GetContactInfo)(THIS_ BSTR *)PURE;
  35. STDMETHOD_(SCODE, GetDescription)(THIS_ BSTR *)PURE;
  36. STDMETHOD_(SCODE, GetRevision)(THIS_ BSTR *)PURE;
  37. STDMETHOD_(SCODE, GetSnmpVersion)(THIS_ ULONG *)PURE;
  38. STDMETHOD_(SCODE, GetModuleImports)(THIS_ BSTR*)PURE;
  39. STDMETHOD_(SCODE, SetName)(THIS_ BSTR)PURE;
  40. STDMETHOD_(SCODE, SetModuleOID)(THIS_ BSTR)PURE;
  41. STDMETHOD_(SCODE, SetModuleIdentity)(THIS_ BSTR)PURE;
  42. STDMETHOD_(SCODE, SetLastUpdate)(THIS_ BSTR)PURE;
  43. STDMETHOD_(SCODE, SetOrganisation)(THIS_ BSTR)PURE;
  44. STDMETHOD_(SCODE, SetContactInfo)(THIS_ BSTR)PURE;
  45. STDMETHOD_(SCODE, SetDescription)(THIS_ BSTR)PURE;
  46. STDMETHOD_(SCODE, SetRevision)(THIS_ BSTR)PURE;
  47. STDMETHOD_(SCODE, SetSnmpVersion)(THIS_ ULONG)PURE;
  48. STDMETHOD_(SCODE, SetModuleImports)(THIS_ BSTR)PURE;
  49. };
  50. // {5009ab92-f9ee-11cf-aec1-00aa00bdd7d1}
  51. DEFINE_GUID(CLSID_SMIR_GroupHandle,
  52. 0x5009ab92, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  53. // {5009ab93-f9ee-11cf-aec1-00aa00bdd7d1}
  54. DEFINE_GUID(IID_ISMIR_GroupHandle,
  55. 0x5009ab93, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  56. DECLARE_INTERFACE_(ISmirGroupHandle,IUnknown)
  57. {
  58. //IUnknown members
  59. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  60. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  61. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  62. //STDMETHOD_(HSMIRMODULE) GetParentHandle();
  63. STDMETHOD_(SCODE, GetModuleName)(THIS_ BSTR *)PURE;
  64. STDMETHOD_(SCODE, GetName)(THIS_ BSTR *)PURE;
  65. STDMETHOD_(SCODE, GetGroupOID)(THIS_ BSTR *)PURE;
  66. STDMETHOD_(SCODE, GetStatus)(THIS_ BSTR *)PURE;
  67. STDMETHOD_(SCODE, GetDescription)(THIS_ BSTR *)PURE;
  68. STDMETHOD_(SCODE, GetReference)(THIS_ BSTR *)PURE;
  69. STDMETHOD_(SCODE, SetModuleName)(THIS_ BSTR)PURE;
  70. STDMETHOD_(SCODE, SetName)(THIS_ BSTR)PURE;
  71. STDMETHOD_(SCODE, SetGroupOID)(THIS_ BSTR)PURE;
  72. STDMETHOD_(SCODE, SetStatus)(THIS_ BSTR)PURE;
  73. STDMETHOD_(SCODE, SetDescription)(THIS_ BSTR)PURE;
  74. STDMETHOD_(SCODE, SetReference)(THIS_ BSTR)PURE;
  75. };
  76. enum NotificationMapperType
  77. {
  78. SNMP_NOTIFICATION_CLASS = 0,
  79. SNMP_EXT_NOTIFICATION_CLASS
  80. };
  81. enum SmirBaseClass
  82. {
  83. SMIR_OBJECTTYPE_OBJECT ,
  84. SMIR_NOTIFICATIONTYPE_OBJECT
  85. } ;
  86. // {5009ab94-f9ee-11cf-aec1-00aa00bdd7d1}
  87. DEFINE_GUID(CLSID_SMIR_ClassHandle,
  88. 0x5009ab94, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  89. // {5009ab95-f9ee-11cf-aec1-00aa00bdd7d1}
  90. DEFINE_GUID(IID_ISMIR_ClassHandle,
  91. 0x5009ab50, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  92. DECLARE_INTERFACE_(ISmirClassHandle,IUnknown)
  93. {
  94. //IUnknown members
  95. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  96. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  97. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  98. STDMETHOD_(SCODE, GetModuleName)(THIS_ BSTR *)PURE;
  99. STDMETHOD_(SCODE, GetGroupName)(THIS_ BSTR *)PURE;
  100. STDMETHOD_(SCODE, GetWBEMClass)(IWbemClassObject **pObj)PURE;
  101. STDMETHOD_(SCODE, SetModuleName)(THIS_ BSTR)PURE;
  102. STDMETHOD_(SCODE, SetGroupName)(THIS_ BSTR)PURE;
  103. STDMETHOD_(SCODE, SetWBEMClass)(THIS_ IWbemClassObject *pObj)PURE;
  104. };
  105. /********************** Notification classes ***************************/
  106. // {b11b26ac-a791-11d0-aaea-00a024e8ad1c}
  107. DEFINE_GUID(CLSID_SMIR_NotificationClassHandle,
  108. 0xb11b26ac, 0xa791, 0x11d0, 0xaa, 0xea, 0x0, 0xa0, 0x24, 0xe8, 0xad, 0x1c);
  109. // {b11b26ad-a791-11d0-aaea-00a024e8ad1c}
  110. DEFINE_GUID(IID_ISMIR_NotificationClassHandle,
  111. 0xb11b26ad, 0xa791, 0x11d0, 0xaa, 0xea, 0x0, 0xa0, 0x24, 0xe8, 0xad, 0x1c);
  112. DECLARE_INTERFACE_(ISmirNotificationClassHandle,IUnknown)
  113. {
  114. //IUnknown members
  115. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID*)PURE;
  116. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  117. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  118. STDMETHOD_(SCODE, SetModule)(THIS_ BSTR)PURE;
  119. STDMETHOD_(SCODE, GetModule)(THIS_ BSTR*)PURE;
  120. STDMETHOD_(SCODE, GetWBEMNotificationClass)(IWbemClassObject **pObj)PURE;
  121. STDMETHOD_(SCODE, SetWBEMNotificationClass)(THIS_ IWbemClassObject *pObj)PURE;
  122. };
  123. // {b11b26ae-a791-11d0-aaea-00a024e8ad1c}
  124. DEFINE_GUID(CLSID_SMIR_ExtNotificationClassHandle,
  125. 0xb11b26ae, 0xa791, 0x11d0, 0xaa, 0xea, 0x0, 0xa0, 0x24, 0xe8, 0xad, 0x1c);
  126. // {b11b26af-a791-11d0-aaea-00a024e8ad1c}
  127. DEFINE_GUID(IID_ISMIR_ExtNotificationClassHandle,
  128. 0xb11b26af, 0xa791, 0x11d0, 0xaa, 0xea, 0x0, 0xa0, 0x24, 0xe8, 0xad, 0x1c);
  129. DECLARE_INTERFACE_(ISmirExtNotificationClassHandle,IUnknown)
  130. {
  131. //IUnknown members
  132. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID*)PURE;
  133. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  134. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  135. STDMETHOD_(SCODE, SetModule)(THIS_ BSTR)PURE;
  136. STDMETHOD_(SCODE, GetModule)(THIS_ BSTR*)PURE;
  137. STDMETHOD_(SCODE, GetWBEMExtNotificationClass)(IWbemClassObject **pObj)PURE;
  138. STDMETHOD_(SCODE, SetWBEMExtNotificationClass)(THIS_ IWbemClassObject *pObj)PURE;
  139. };
  140. /********************** Enumerator interfaces **************************/
  141. // {5009ab96-f9ee-11cf-aec1-00aa00bdd7d1}
  142. DEFINE_GUID(IID_ISMIR_ModuleEnumerator,
  143. 0x5009ab96, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  144. DECLARE_INTERFACE_(IEnumModule,IUnknown)
  145. {
  146. //IUnknown members
  147. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  148. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  149. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  150. //enum interface
  151. STDMETHOD_(SCODE, Next)(THIS_ ULONG celt, ISmirModHandle **phClass, ULONG * pceltFetched)PURE;
  152. STDMETHOD_(SCODE, Skip)(THIS_ ULONG celt)PURE;
  153. STDMETHOD_(SCODE, Reset)(THIS_)PURE;
  154. STDMETHOD_(SCODE, Clone)(THIS_ IEnumModule **ppenum)PURE;
  155. };
  156. // {5009ab97-f9ee-11cf-aec1-00aa00bdd7d1}
  157. DEFINE_GUID(IID_ISMIR_GroupEnumerator,
  158. 0x5009ab97, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  159. DECLARE_INTERFACE_(IEnumGroup,IUnknown)
  160. {
  161. //IUnknown members
  162. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  163. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  164. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  165. //enum interface
  166. STDMETHOD_(SCODE, Next)(THIS_ ULONG celt, ISmirGroupHandle **phClass, ULONG * pceltFetched)PURE;
  167. STDMETHOD_(SCODE, Skip)(THIS_ ULONG celt)PURE;
  168. STDMETHOD_(SCODE, Reset)(THIS_)PURE;
  169. STDMETHOD_(SCODE, Clone)(THIS_ IEnumGroup **ppenum)PURE;
  170. };
  171. // {5009ab98-f9ee-11cf-aec1-00aa00bdd7d1}
  172. DEFINE_GUID(IID_ISMIR_ClassEnumerator,
  173. 0x5009ab98, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  174. DECLARE_INTERFACE_(IEnumClass,IUnknown)
  175. {
  176. //IUnknown members
  177. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  178. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  179. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  180. //enum interface
  181. STDMETHOD_(SCODE, Next)(THIS_ ULONG celt, ISmirClassHandle **phClass, ULONG * pceltFetched)PURE;
  182. STDMETHOD_(SCODE, Skip)(THIS_ ULONG celt)PURE;
  183. STDMETHOD_(SCODE, Reset)(THIS_)PURE;
  184. STDMETHOD_(SCODE, Clone)(THIS_ IEnumClass **ppenum)PURE;
  185. };
  186. /************************* Notification class enumerators *****************/
  187. // {b11b26b0-a791-11d0-aaea-00a024e8ad1c}
  188. DEFINE_GUID(IID_ISMIR_EnumNotificationClass,
  189. 0xb11b26b0, 0xa791, 0x11d0, 0xaa, 0xea, 0x0, 0xa0, 0x24, 0xe8, 0xad, 0x1c);
  190. DECLARE_INTERFACE_(IEnumNotificationClass, IUnknown)
  191. {
  192. //IUnknown members
  193. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  194. STDMETHOD_(ULONG, AddRef)(THIS_)PURE;
  195. STDMETHOD_(ULONG, Release)(THIS_)PURE;
  196. // Enumerator interface
  197. STDMETHOD_(SCODE, Next)(THIS_ ULONG celt, ISmirNotificationClassHandle **phClass,
  198. ULONG * pceltFetched)PURE;
  199. STDMETHOD_(SCODE, Skip)(THIS_ ULONG celt)PURE;
  200. STDMETHOD_(SCODE, Reset)(THIS_)PURE;
  201. STDMETHOD_(SCODE, Clone)(THIS_ IEnumNotificationClass **ppenum)PURE;
  202. };
  203. // {b11b26b1-a791-11d0-aaea-00a024e8ad1c}
  204. DEFINE_GUID(IID_ISMIR_EnumExtNotificationClass,
  205. 0xb11b26b1, 0xa791, 0x11d0, 0xaa, 0xea, 0x0, 0xa0, 0x24, 0xe8, 0xad, 0x1c);
  206. DECLARE_INTERFACE_(IEnumExtNotificationClass, IUnknown)
  207. {
  208. //IUnknown members
  209. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  210. STDMETHOD_(ULONG, AddRef)(THIS_)PURE;
  211. STDMETHOD_(ULONG, Release)(THIS_)PURE;
  212. // Enumerator interface
  213. STDMETHOD_(SCODE, Next)(THIS_ ULONG celt, ISmirExtNotificationClassHandle **phClass,
  214. ULONG * pceltFetched)PURE;
  215. STDMETHOD_(SCODE, Skip)(THIS_ ULONG celt)PURE;
  216. STDMETHOD_(SCODE, Reset)(THIS_)PURE;
  217. STDMETHOD_(SCODE, Clone)(THIS_ IEnumExtNotificationClass **ppenum)PURE;
  218. };
  219. // {5009ab9e-f9ee-11cf-aec1-00aa00bdd7d1}
  220. DEFINE_GUID(IID_ISMIR_Notify,
  221. 0x5009ab9e, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  222. DECLARE_INTERFACE_(ISMIRNotify, IUnknown)
  223. {
  224. /* IUnknown methods */
  225. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  226. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  227. STDMETHOD_(ULONG, Release)(THIS) PURE;
  228. //ISMIRNotify members
  229. STDMETHOD(ChangeNotify)(THIS) PURE;
  230. };
  231. /************************ SMIR database class *****************************/
  232. // {5009ab9b-f9ee-11cf-aec1-00aa00bdd7d1}
  233. DEFINE_GUID(CLSID_SMIR_Database,
  234. 0x5009ab9b, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  235. /************************ SMIR interfaces *****************************/
  236. DEFINE_GUID(IID_ISMIR_Database,
  237. 0x5009ab9b, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  238. DECLARE_INTERFACE_(ISmirDatabase,IUnknown)
  239. {
  240. //IUnknown members
  241. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  242. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  243. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  244. STDMETHOD_(SCODE, AddNotify)(THIS_ ISMIRNotify *hNotify, DWORD *)PURE;
  245. STDMETHOD_(SCODE, DeleteNotify)(THIS_ DWORD)PURE;
  246. };
  247. // {5009ab9c-f9ee-11cf-aec1-00aa00bdd7d1}
  248. DEFINE_GUID(IID_ISMIR_Interrogative,
  249. 0x5009ab9c, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  250. DECLARE_INTERFACE_(ISmirInterrogator,IUnknown)
  251. {
  252. //IUnknown members
  253. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  254. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  255. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  256. // interrogative interface
  257. STDMETHOD_(SCODE, EnumModules) (THIS_ IEnumModule **ppEnumSmirMod) PURE;
  258. STDMETHOD_(SCODE, EnumGroups) (THIS_ IEnumGroup **ppEnumSmirGroup, ISmirModHandle *hMudule) PURE;
  259. STDMETHOD_(SCODE, EnumAllClasses) (THIS_ IEnumClass **ppEnumSmirclass) PURE;
  260. STDMETHOD_(SCODE, EnumClassesInGroup) (THIS_ IEnumClass **ppEnumSmirclass, ISmirGroupHandle *hGroup) PURE;
  261. STDMETHOD_(SCODE, EnumClassesInModule) (THIS_ IEnumClass **ppEnumSmirclass, ISmirModHandle *hModule) PURE;
  262. STDMETHOD_(SCODE, GetWBEMClass) (THIS_ OUT IWbemClassObject **pObj, IN BSTR pszClassName)PURE;
  263. STDMETHOD_(SCODE, EnumAllNotificationClasses)(THIS_ IEnumNotificationClass **ppEnumSmirclass) PURE;
  264. STDMETHOD_(SCODE, EnumAllExtNotificationClasses)(THIS_ IEnumExtNotificationClass **ppEnumSmirclass) PURE;
  265. STDMETHOD_(SCODE, EnumNotificationClassesInModule)(THIS_ IEnumNotificationClass **ppEnumSmirclass, ISmirModHandle *hModule) PURE;
  266. STDMETHOD_(SCODE, EnumExtNotificationClassesInModule)(THIS_ IEnumExtNotificationClass **ppEnumSmirclass, ISmirModHandle *hModule) PURE;
  267. };
  268. // {5009ab9e-f9ee-11cf-aec1-00aa00bdd7d1}
  269. DEFINE_GUID(IID_ISMIR_SerialiseHandle,
  270. 0x5009ab9e, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  271. DECLARE_INTERFACE_(ISmirSerialiseHandle,IUnknown)
  272. {
  273. //IUnknown members
  274. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  275. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  276. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  277. STDMETHOD_(SCODE, GetText)(THIS_ BSTR *)PURE;
  278. };
  279. // {5009ab9d-f9ee-11cf-aec1-00aa00bdd7d1}
  280. DEFINE_GUID(IID_ISMIR_Administrative,
  281. 0x5009ab9d, 0xf9ee, 0x11cf, 0xae, 0xc1, 0x0, 0xaa, 0x0, 0xbd, 0xd7, 0xd1);
  282. DECLARE_INTERFACE_(ISmirAdministrator,IUnknown)
  283. {
  284. //IUnknown members
  285. STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *)PURE;
  286. STDMETHOD_(ULONG,AddRef)(THIS_)PURE;
  287. STDMETHOD_(ULONG,Release)(THIS_)PURE;
  288. STDMETHOD_(SCODE, CreateWBEMClass)(THIS_ BSTR pszClassName, ISmirClassHandle **pHandle)PURE;
  289. STDMETHOD_(SCODE, CreateWBEMNotificationClass)(THIS_ BSTR pszClassName, ISmirNotificationClassHandle **pHandle)PURE;
  290. STDMETHOD_(SCODE, CreateWBEMExtNotificationClass)(THIS_ BSTR pszClassName, ISmirExtNotificationClassHandle **pHandle)PURE;
  291. STDMETHOD_(SCODE, AddModule)(THIS_ ISmirModHandle *hModule)PURE;
  292. STDMETHOD_(SCODE, DeleteModule)(THIS_ ISmirModHandle *hModule)PURE;
  293. STDMETHOD_(SCODE, DeleteAllModules)(THIS_)PURE;
  294. STDMETHOD_(SCODE, AddGroup)(THIS_ ISmirModHandle *hModule, ISmirGroupHandle *hGroup)PURE;
  295. STDMETHOD_(SCODE, DeleteGroup)(THIS_ ISmirGroupHandle *hGroup)PURE;
  296. STDMETHOD_(SCODE, AddClass)(THIS_ ISmirGroupHandle *hGroup, ISmirClassHandle *hClass)PURE;
  297. STDMETHOD_(SCODE, DeleteClass)(THIS_ ISmirClassHandle *hClass)PURE;
  298. STDMETHOD_(SCODE, GetSerialiseHandle)(THIS_ ISmirSerialiseHandle **hSerialise, BOOL bClassDefinitionsOnly)PURE;
  299. STDMETHOD_(SCODE, AddModuleToSerialise)(THIS_ ISmirModHandle *hModule,ISmirSerialiseHandle *hSerialise)PURE;
  300. STDMETHOD_(SCODE, AddGroupToSerialise)(THIS_ ISmirModHandle *hModule, ISmirGroupHandle *hGroup,ISmirSerialiseHandle *hSerialise)PURE;
  301. STDMETHOD_(SCODE, AddClassToSerialise)(THIS_ ISmirGroupHandle *hGroup, ISmirClassHandle *hClass,ISmirSerialiseHandle *hSerialise)PURE;
  302. STDMETHOD_(SCODE, AddNotificationClass)(THIS_ ISmirNotificationClassHandle *hClass)PURE;
  303. STDMETHOD_(SCODE, AddExtNotificationClass)(THIS_ ISmirExtNotificationClassHandle *hClass)PURE;
  304. STDMETHOD_(SCODE, DeleteNotificationClass)(THIS_ ISmirNotificationClassHandle *hClass)PURE;
  305. STDMETHOD_(SCODE, DeleteExtNotificationClass)(THIS_ ISmirExtNotificationClassHandle *hClass)PURE;
  306. STDMETHOD_(SCODE, AddNotificationClassToSerialise)(THIS_ ISmirNotificationClassHandle *hClass, ISmirSerialiseHandle *hSerialise)PURE;
  307. STDMETHOD_(SCODE, AddExtNotificationClassToSerialise)(THIS_ ISmirExtNotificationClassHandle *hClass, ISmirSerialiseHandle *hSerialise)PURE;
  308. };
  309. /***************************** handles *************************************/
  310. // {83D18EC0-F167-11d0-AB13-0000F81E8E2C}
  311. DEFINE_GUID(IID_ISMIR_WbemEventConsumer,
  312. 0x83d18ec0, 0xf167, 0x11d0, 0xab, 0x13, 0x0, 0x0, 0xf8, 0x1e, 0x8e, 0x2c);
  313. //supports IID_ISMIR_WbemEventConsumer, IID_IWbemObjectSink and IID_IUnknown
  314. DECLARE_INTERFACE_(ISMIRWbemEventConsumer, IWbemObjectSink)
  315. {
  316. //IUnknown members
  317. STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
  318. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  319. STDMETHOD_(ULONG,Release) (THIS) PURE;
  320. /* IMosNotify methods */
  321. STDMETHOD_(HRESULT, Indicate)(THIS_ long lObjectCount, IWbemClassObject **ppObjArray) PURE;
  322. STDMETHOD_(HRESULT, SetStatus)(THIS_ long lFlags, long lParam, BSTR strParam, IWbemClassObject *pObjParam) PURE;
  323. };
  324. // {63BA5C10-5A47-11d1-931B-00AA00A4086C}
  325. DEFINE_GUID(IID_ISMIRWbemConfiguration,
  326. 0x63ba5c10, 0x5a47, 0x11d1, 0x93, 0x1b, 0x0, 0xaa, 0x0, 0xa4, 0x8, 0x6c);
  327. DECLARE_INTERFACE_(ISMIRWbemConfiguration, IUnknown)
  328. {
  329. //IUnknown members
  330. STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
  331. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  332. STDMETHOD_(ULONG,Release) (THIS) PURE;
  333. STDMETHOD_(HRESULT, Authenticate)(THIS_
  334. BSTR Server,
  335. BSTR User,
  336. BSTR Password,
  337. BSTR Locale,
  338. long lSecurityFlags,
  339. BSTR Authority ,
  340. BOOL InProc
  341. ) PURE;
  342. STDMETHOD_(HRESULT, Impersonate)(THIS_ ISMIRWbemConfiguration *a_Configuration) PURE;
  343. STDMETHOD_(HRESULT, SetContext)(THIS_ IWbemContext *a_Context ) PURE;
  344. STDMETHOD_(HRESULT, GetContext)(THIS_ IWbemContext **a_Context ) PURE;
  345. STDMETHOD_(HRESULT, GetServices)(THIS_ IWbemServices **a_Services ) PURE;
  346. };
  347. #endif