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.

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