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.

510 lines
13 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1996-1997 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // CluAdmEx.idl
  7. //
  8. // Abstract:
  9. // Definition of COM interfaces for Cluster Administrator extensions.
  10. //
  11. // Author:
  12. // davidp August 22, 1996
  13. //
  14. // Revision History:
  15. // davidp June 23, 1998
  16. // Added IWCWizard97Callback and IWEExtendWizard97.
  17. //
  18. // Notes:
  19. // The following interfaces defined below are used to get information
  20. // about the object(s) for which a property page, wizard, or context
  21. // menu is being displayed. These interfaces may be queried for by
  22. // the extension using the piData IUnknown interface pointer.
  23. //
  24. // IGetClusterPropSheetInfo
  25. // IGetClusterDataInfo
  26. // IGetClusterObjectInfo
  27. // IGetClusterNodeInfo
  28. // IGetClusterGroupInfo
  29. // IGetClusterResourceInfo
  30. // IGetClusterNetworkInfo
  31. // IGetClusterNetInterfaceInfo
  32. //
  33. // The following interfaces defined below are implemented by extensions
  34. // are are used to extend property sheets, wizards, and context menus.
  35. //
  36. // IWEExtendPropertySheet
  37. // IWEExtendWizard
  38. // IWEExtendWizard97
  39. // IWEExtendContextMenu
  40. // IWEInvokeCommand
  41. //
  42. // The following interfaces defined below are implemented by CluAdmin
  43. // and are passed to the extension to allow it to add its extension
  44. // property pages, wizard pages, or context menu items.
  45. //
  46. // IWCPropertySheetCallback
  47. // IWCWizardCallback
  48. // IWCWizard97Callback
  49. // IWCContextMenuCallback
  50. //
  51. /////////////////////////////////////////////////////////////////////////////
  52. #ifndef _CLUADMEX_IDL_
  53. #define _CLUADMEX_IDL_
  54. import "oaidl.idl";
  55. import "clusapi.h";
  56. // Define HPROPSHEETPAGE because we can't include prsht.h.
  57. #define HPROPSHEETPAGE LONG *
  58. /////////////////////////////////////////////////////////////////////////////
  59. // Cluster Administrator Extensions type definitions
  60. /////////////////////////////////////////////////////////////////////////////
  61. /////////////////////////////////////////////////////////////////////////
  62. //
  63. // CLUADMEX_OBJECT_TYPE
  64. //
  65. // Enumeration of the types of objects that can be administered.
  66. //
  67. /////////////////////////////////////////////////////////////////////////
  68. typedef enum _CLUADMEX_OBJECT_TYPE
  69. {
  70. CLUADMEX_OT_NONE = 0,
  71. CLUADMEX_OT_CLUSTER,
  72. CLUADMEX_OT_NODE,
  73. CLUADMEX_OT_GROUP,
  74. CLUADMEX_OT_RESOURCE,
  75. CLUADMEX_OT_RESOURCETYPE,
  76. CLUADMEX_OT_NETWORK,
  77. CLUADMEX_OT_NETINTERFACE
  78. } CLUADMEX_OBJECT_TYPE;
  79. /////////////////////////////////////////////////////////////////////////////
  80. // Cluster Administrator Extensions data interface definitions
  81. /////////////////////////////////////////////////////////////////////////////
  82. /////////////////////////////////////////////////////////////////////////
  83. //
  84. // IGetClusterUIInfo
  85. //
  86. /////////////////////////////////////////////////////////////////////////
  87. [
  88. object,
  89. uuid(97DEDE50-FC6B-11CF-B5F5-00A0C90AB505),
  90. helpstring("IGetClusterUIInfo Interface"),
  91. pointer_default(unique)
  92. ]
  93. interface IGetClusterUIInfo : IUnknown
  94. {
  95. import "oaidl.idl";
  96. [local] HRESULT GetClusterName(
  97. [out] BSTR lpszName,
  98. [in, out] LONG * pcchName
  99. );
  100. [local] LCID GetLocale(void);
  101. [local] HFONT GetFont(void);
  102. [local] HICON GetIcon(void);
  103. }; //*** interface IGetClusterUIInfo
  104. /////////////////////////////////////////////////////////////////////////
  105. //
  106. // IGetClusterDataInfo
  107. //
  108. /////////////////////////////////////////////////////////////////////////
  109. [
  110. object,
  111. uuid(97DEDE51-FC6B-11CF-B5F5-00A0C90AB505),
  112. helpstring("IGetClusterDataInfo Interface"),
  113. pointer_default(unique)
  114. ]
  115. interface IGetClusterDataInfo : IUnknown
  116. {
  117. import "oaidl.idl";
  118. [local] HRESULT GetClusterName(
  119. [out] BSTR lpszName,
  120. [in, out] LONG * pcchName
  121. );
  122. [local] HCLUSTER GetClusterHandle(void);
  123. [local] LONG GetObjectCount(void);
  124. }; //*** interface IGetClusterDataInfo
  125. /////////////////////////////////////////////////////////////////////////
  126. //
  127. // IGetClusterObjectInfo
  128. //
  129. /////////////////////////////////////////////////////////////////////////
  130. [
  131. object,
  132. uuid(97DEDE52-FC6B-11CF-B5F5-00A0C90AB505),
  133. helpstring("IGetClusterObjectInfo Interface"),
  134. pointer_default(unique)
  135. ]
  136. interface IGetClusterObjectInfo : IUnknown
  137. {
  138. import "oaidl.idl";
  139. [local] HRESULT GetObjectName(
  140. [in] LONG lObjIndex,
  141. [out] BSTR lpszName,
  142. [in, out] LONG * pcchName
  143. );
  144. [local] CLUADMEX_OBJECT_TYPE GetObjectType(
  145. [in] LONG lObjIndex
  146. );
  147. }; //*** interface IGetClusterObjectInfo
  148. /////////////////////////////////////////////////////////////////////////
  149. //
  150. // IGetClusterNodeInfo
  151. //
  152. /////////////////////////////////////////////////////////////////////////
  153. [
  154. object,
  155. uuid(97DEDE53-FC6B-11CF-B5F5-00A0C90AB505),
  156. helpstring("IGetClusterNodeInfo Interface"),
  157. pointer_default(unique)
  158. ]
  159. interface IGetClusterNodeInfo : IUnknown
  160. {
  161. import "oaidl.idl";
  162. [local] HNODE GetNodeHandle(
  163. [in] LONG lObjIndex
  164. );
  165. }; //*** interface IGetClusterObjectInfo
  166. /////////////////////////////////////////////////////////////////////////
  167. //
  168. // IGetClusterGroupInfo
  169. //
  170. /////////////////////////////////////////////////////////////////////////
  171. [
  172. object,
  173. uuid(97DEDE54-FC6B-11CF-B5F5-00A0C90AB505),
  174. helpstring("IGetClusterGroupInfo Interface"),
  175. pointer_default(unique)
  176. ]
  177. interface IGetClusterGroupInfo : IUnknown
  178. {
  179. import "oaidl.idl";
  180. [local] HGROUP GetGroupHandle(
  181. [in] LONG lObjIndex
  182. );
  183. }; //*** interface IGetClusterGroupInfo
  184. /////////////////////////////////////////////////////////////////////////
  185. //
  186. // IGetClusterResourceInfo
  187. //
  188. /////////////////////////////////////////////////////////////////////////
  189. [
  190. object,
  191. uuid(97DEDE55-FC6B-11CF-B5F5-00A0C90AB505),
  192. helpstring("IGetClusterResourceInfo Interface"),
  193. pointer_default(unique)
  194. ]
  195. interface IGetClusterResourceInfo : IUnknown
  196. {
  197. import "oaidl.idl";
  198. [local] HRESOURCE GetResourceHandle(
  199. [in] LONG lObjIndex
  200. );
  201. [local] HRESULT GetResourceTypeName(
  202. [in] LONG lObjIndex,
  203. [out] BSTR lpszResTypeName,
  204. [in, out] LONG * pcchResTypeName
  205. );
  206. [local] BOOL GetResourceNetworkName(
  207. [in] LONG lObjIndex,
  208. [out] BSTR lpszNetName,
  209. [in, out] ULONG * pcchNetName
  210. );
  211. }; //*** interface IGetClusterResourceInfo
  212. /////////////////////////////////////////////////////////////////////////
  213. //
  214. // IGetClusterNetworkInfo
  215. //
  216. /////////////////////////////////////////////////////////////////////////
  217. [
  218. object,
  219. uuid(97DEDE56-FC6B-11CF-B5F5-00A0C90AB505),
  220. helpstring("IGetClusterNetworkInfo Interface"),
  221. pointer_default(unique)
  222. ]
  223. interface IGetClusterNetworkInfo : IUnknown
  224. {
  225. import "oaidl.idl";
  226. [local] HNETWORK GetNetworkHandle(
  227. [in] LONG lObjIndex
  228. );
  229. }; //*** interface IGetClusterNetworkInfo
  230. /////////////////////////////////////////////////////////////////////////
  231. //
  232. // IGetClusterNetInterfaceInfo
  233. //
  234. /////////////////////////////////////////////////////////////////////////
  235. [
  236. object,
  237. uuid(97DEDE57-FC6B-11CF-B5F5-00A0C90AB505),
  238. helpstring("IGetClusterNetInterfaceInfo Interface"),
  239. pointer_default(unique)
  240. ]
  241. interface IGetClusterNetInterfaceInfo : IUnknown
  242. {
  243. import "oaidl.idl";
  244. [local] HNETINTERFACE GetNetInterfaceHandle(
  245. [in] LONG lObjIndex
  246. );
  247. }; //*** interface IGetClusterNetInterfaceInfo
  248. /////////////////////////////////////////////////////////////////////////////
  249. // Cluster Administrator Extensions interface definitions
  250. /////////////////////////////////////////////////////////////////////////////
  251. /////////////////////////////////////////////////////////////////////////
  252. //
  253. // IWCPropertySheetCallback
  254. //
  255. /////////////////////////////////////////////////////////////////////////
  256. [
  257. object,
  258. uuid(97DEDE60-FC6B-11CF-B5F5-00A0C90AB505),
  259. helpstring("IWCPropertySheetCallback Interface"),
  260. pointer_default(unique)
  261. ]
  262. interface IWCPropertySheetCallback : IUnknown
  263. {
  264. import "oaidl.idl";
  265. HRESULT AddPropertySheetPage(
  266. [in] HPROPSHEETPAGE hpage
  267. );
  268. }; //*** interface IWCPropertySheetCallback
  269. /////////////////////////////////////////////////////////////////////////
  270. //
  271. // IWEExtendPropertySheet
  272. //
  273. /////////////////////////////////////////////////////////////////////////
  274. [
  275. object,
  276. uuid(97DEDE61-FC6B-11CF-B5F5-00A0C90AB505),
  277. helpstring("IWSExtendPropertySheet Interface"),
  278. pointer_default(unique)
  279. ]
  280. interface IWEExtendPropertySheet : IUnknown
  281. {
  282. import "oaidl.idl";
  283. HRESULT CreatePropertySheetPages(
  284. [in] IUnknown * piData,
  285. [in] IWCPropertySheetCallback * piCallback
  286. );
  287. }; //*** interface IWEExtendPropertySheet
  288. /////////////////////////////////////////////////////////////////////////
  289. //
  290. // IWCWizardCallback
  291. //
  292. /////////////////////////////////////////////////////////////////////////
  293. [
  294. object,
  295. uuid(97DEDE62-FC6B-11CF-B5F5-00A0C90AB505),
  296. helpstring("IWCWizardCallback Interface"),
  297. pointer_default(unique)
  298. ]
  299. interface IWCWizardCallback : IUnknown
  300. {
  301. import "oaidl.idl";
  302. HRESULT AddWizardPage(
  303. [in] HPROPSHEETPAGE hpage
  304. );
  305. HRESULT EnableNext(
  306. [in] HPROPSHEETPAGE hpage,
  307. [in] BOOL bEnable
  308. );
  309. }; //*** interface IWCWizardCallback
  310. /////////////////////////////////////////////////////////////////////////
  311. //
  312. // IWEExtendWizard
  313. //
  314. /////////////////////////////////////////////////////////////////////////
  315. [
  316. object,
  317. uuid(97DEDE63-FC6B-11CF-B5F5-00A0C90AB505),
  318. helpstring("IWEExtendWizard Interface"),
  319. pointer_default(unique)
  320. ]
  321. interface IWEExtendWizard : IUnknown
  322. {
  323. import "oaidl.idl";
  324. HRESULT CreateWizardPages(
  325. [in] IUnknown * piData,
  326. [in] IWCWizardCallback * piCallback
  327. );
  328. }; //*** interface IWEExtendWizard
  329. /////////////////////////////////////////////////////////////////////////
  330. //
  331. // IWCContextMenuCallback
  332. //
  333. /////////////////////////////////////////////////////////////////////////
  334. [
  335. object,
  336. uuid(97DEDE64-FC6B-11CF-B5F5-00A0C90AB505),
  337. helpstring("IWCContextMenuCallback Interface"),
  338. pointer_default(unique)
  339. ]
  340. interface IWCContextMenuCallback : IUnknown
  341. {
  342. import "oaidl.idl";
  343. HRESULT AddExtensionMenuItem(
  344. [in] BSTR lpszName,
  345. [in] BSTR lpszStatusBarText,
  346. [in] ULONG nCommandID,
  347. [in] ULONG nSubmenuCommandID,
  348. [in] ULONG uFlags
  349. );
  350. }; //*** interface IWCContextMenuCallback
  351. /////////////////////////////////////////////////////////////////////////
  352. //
  353. // IWEExtendContextMenu
  354. //
  355. /////////////////////////////////////////////////////////////////////////
  356. [
  357. object,
  358. uuid(97DEDE65-FC6B-11CF-B5F5-00A0C90AB505),
  359. helpstring("IWEExtendContextMenu Interface"),
  360. pointer_default(unique)
  361. ]
  362. interface IWEExtendContextMenu : IUnknown
  363. {
  364. import "oaidl.idl";
  365. HRESULT AddContextMenuItems(
  366. [in] IUnknown * piData,
  367. [in] IWCContextMenuCallback * piCallback
  368. );
  369. }; //*** interface IWEExtendContextMenu
  370. /////////////////////////////////////////////////////////////////////////
  371. //
  372. // IWEInvokeCommand
  373. //
  374. /////////////////////////////////////////////////////////////////////////
  375. [
  376. object,
  377. uuid(97DEDE66-FC6B-11CF-B5F5-00A0C90AB505),
  378. helpstring("IWEInvokeCommand Interface"),
  379. pointer_default(unique)
  380. ]
  381. interface IWEInvokeCommand : IUnknown
  382. {
  383. import "oaidl.idl";
  384. HRESULT InvokeCommand(
  385. [in] ULONG nCommandID,
  386. [in] IUnknown * piData
  387. );
  388. }; //*** interface IWEInvokeCommand
  389. /////////////////////////////////////////////////////////////////////////
  390. //
  391. // IWCWizard97Callback
  392. //
  393. /////////////////////////////////////////////////////////////////////////
  394. [
  395. object,
  396. uuid(97DEDE67-FC6B-11CF-B5F5-00A0C90AB505),
  397. helpstring("IWCWizard97Callback Interface"),
  398. pointer_default(unique)
  399. ]
  400. interface IWCWizard97Callback : IUnknown
  401. {
  402. import "oaidl.idl";
  403. HRESULT AddWizard97Page(
  404. [in] HPROPSHEETPAGE hpage
  405. );
  406. HRESULT EnableNext(
  407. [in] HPROPSHEETPAGE hpage,
  408. [in] BOOL bEnable
  409. );
  410. }; //*** interface IWCWizard97Callback
  411. /////////////////////////////////////////////////////////////////////////
  412. //
  413. // IWEExtendWizard97
  414. //
  415. /////////////////////////////////////////////////////////////////////////
  416. [
  417. object,
  418. uuid(97DEDE68-FC6B-11CF-B5F5-00A0C90AB505),
  419. helpstring("IWEExtendWizard97 Interface"),
  420. pointer_default(unique)
  421. ]
  422. interface IWEExtendWizard97 : IUnknown
  423. {
  424. import "oaidl.idl";
  425. HRESULT CreateWizard97Pages(
  426. [in] IUnknown * piData,
  427. [in] IWCWizard97Callback * piCallback
  428. );
  429. }; //*** interface IWEExtendWizard97
  430. /////////////////////////////////////////////////////////////////////////////
  431. #endif // _CLUADMEX_IDL_