home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / cluadmex.idl < prev    next >
Text File  |  1998-04-25  |  12KB  |  458 lines

  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.  
  49. #ifndef _CLUADMEX_IDL_
  50. #define _CLUADMEX_IDL_
  51.  
  52.     import "oaidl.idl";
  53.     import "clusapi.h";
  54.  
  55. // Define HPROPSHEETPAGE because we can't include prsht.h.
  56. #define HPROPSHEETPAGE LONG *
  57.  
  58. /////////////////////////////////////////////////////////////////////////////
  59. // Cluster Administrator Extensions type definitions
  60. /////////////////////////////////////////////////////////////////////////////
  61.  
  62.     /////////////////////////////////////////////////////////////////////////
  63.     //
  64.     // CLUADMEX_OBJECT_TYPE
  65.     //
  66.     // Enumeration of the types of objects that can be administered.
  67.     //
  68.     /////////////////////////////////////////////////////////////////////////
  69.  
  70.     typedef enum _CLUADMEX_OBJECT_TYPE
  71.     {
  72.         CLUADMEX_OT_NONE            = 0,
  73.         CLUADMEX_OT_CLUSTER,
  74.         CLUADMEX_OT_NODE,
  75.         CLUADMEX_OT_GROUP,
  76.         CLUADMEX_OT_RESOURCE,
  77.         CLUADMEX_OT_RESOURCETYPE,
  78.         CLUADMEX_OT_NETWORK,
  79.         CLUADMEX_OT_NETINTERFACE
  80.  
  81.     } CLUADMEX_OBJECT_TYPE;
  82.  
  83. /////////////////////////////////////////////////////////////////////////////
  84. // Cluster Administrator Extensions data interface definitions
  85. /////////////////////////////////////////////////////////////////////////////
  86.  
  87.     /////////////////////////////////////////////////////////////////////////
  88.     //
  89.     // IGetClusterUIInfo
  90.     //
  91.     /////////////////////////////////////////////////////////////////////////
  92.  
  93.     [
  94.         object,
  95.         uuid(97DEDE50-FC6B-11CF-B5F5-00A0C90AB505),
  96.         helpstring("IGetClusterUIInfo Interface"),
  97.         pointer_default(unique)
  98.     ]
  99.     interface IGetClusterUIInfo : IUnknown
  100.     {
  101.         import "oaidl.idl";
  102.  
  103.         [local] HRESULT GetClusterName(
  104.                     [out] BSTR lpszName,
  105.                     [in, out] LONG * pcchName
  106.                     );
  107.         [local] LCID GetLocale(void);
  108.         [local] HFONT GetFont(void);
  109.         [local] HICON GetIcon(void);
  110.  
  111.     };  //*** interface IGetClusterUIInfo
  112.  
  113.     /////////////////////////////////////////////////////////////////////////
  114.     //
  115.     // IGetClusterDataInfo
  116.     //
  117.     /////////////////////////////////////////////////////////////////////////
  118.  
  119.     [
  120.         object,
  121.         uuid(97DEDE51-FC6B-11CF-B5F5-00A0C90AB505),
  122.         helpstring("IGetClusterDataInfo Interface"),
  123.         pointer_default(unique)
  124.     ]
  125.     interface IGetClusterDataInfo : IUnknown
  126.     {
  127.         import "oaidl.idl";
  128.  
  129.         [local] HRESULT GetClusterName(
  130.                     [out] BSTR lpszName,
  131.                     [in, out] LONG * pcchName
  132.                     );
  133.         [local] HCLUSTER GetClusterHandle(void);
  134.         [local] LONG GetObjectCount(void);
  135.  
  136.     };  //*** interface IGetClusterDataInfo
  137.  
  138.     /////////////////////////////////////////////////////////////////////////
  139.     //
  140.     // IGetClusterObjectInfo
  141.     //
  142.     /////////////////////////////////////////////////////////////////////////
  143.  
  144.     [
  145.         object,
  146.         uuid(97DEDE52-FC6B-11CF-B5F5-00A0C90AB505),
  147.         helpstring("IGetClusterObjectInfo Interface"),
  148.         pointer_default(unique)
  149.     ]
  150.     interface IGetClusterObjectInfo : IUnknown
  151.     {
  152.         import "oaidl.idl";
  153.  
  154.         [local] HRESULT GetObjectName(
  155.                     [in] LONG lObjIndex,
  156.                     [out] BSTR    lpszName,
  157.                     [in, out] LONG * pcchName
  158.                     );
  159.         [local] CLUADMEX_OBJECT_TYPE GetObjectType(
  160.                     [in] LONG lObjIndex
  161.                     );
  162.  
  163.     };  //*** interface IGetClusterObjectInfo
  164.  
  165.     /////////////////////////////////////////////////////////////////////////
  166.     //
  167.     // IGetClusterNodeInfo
  168.     //
  169.     /////////////////////////////////////////////////////////////////////////
  170.  
  171.     [
  172.         object,
  173.         uuid(97DEDE53-FC6B-11CF-B5F5-00A0C90AB505),
  174.         helpstring("IGetClusterNodeInfo Interface"),
  175.         pointer_default(unique)
  176.     ]
  177.     interface IGetClusterNodeInfo : IUnknown
  178.     {
  179.         import "oaidl.idl";
  180.  
  181.         [local] HNODE GetNodeHandle(
  182.                     [in] LONG lObjIndex
  183.                     );
  184.  
  185.     };  //*** interface IGetClusterObjectInfo
  186.  
  187.     /////////////////////////////////////////////////////////////////////////
  188.     //
  189.     // IGetClusterGroupInfo
  190.     //
  191.     /////////////////////////////////////////////////////////////////////////
  192.  
  193.     [
  194.         object,
  195.         uuid(97DEDE54-FC6B-11CF-B5F5-00A0C90AB505),
  196.         helpstring("IGetClusterGroupInfo Interface"),
  197.         pointer_default(unique)
  198.     ]
  199.     interface IGetClusterGroupInfo : IUnknown
  200.     {
  201.         import "oaidl.idl";
  202.  
  203.         [local] HGROUP GetGroupHandle(
  204.                     [in] LONG lObjIndex
  205.                     );
  206.  
  207.     };  //*** interface IGetClusterGroupInfo
  208.  
  209.     /////////////////////////////////////////////////////////////////////////
  210.     //
  211.     // IGetClusterResourceInfo
  212.     //
  213.     /////////////////////////////////////////////////////////////////////////
  214.  
  215.     [
  216.         object,
  217.         uuid(97DEDE55-FC6B-11CF-B5F5-00A0C90AB505),
  218.         helpstring("IGetClusterResourceInfo Interface"),
  219.         pointer_default(unique)
  220.     ]
  221.     interface IGetClusterResourceInfo : IUnknown
  222.     {
  223.         import "oaidl.idl";
  224.  
  225.         [local] HRESOURCE GetResourceHandle(
  226.                     [in] LONG lObjIndex
  227.                     );
  228.         [local] HRESULT GetResourceTypeName(
  229.                     [in] LONG lObjIndex,
  230.                     [out] BSTR lpszResTypeName,
  231.                     [in, out] LONG * pcchResTypeName
  232.                     );
  233.         [local] BOOL GetResourceNetworkName(
  234.                     [in] LONG lObjIndex,
  235.                     [out] BSTR lpszNetName,
  236.                     [in, out] ULONG * pcchNetName
  237.                     );
  238.  
  239.     };  //*** interface IGetClusterResourceInfo
  240.  
  241.     /////////////////////////////////////////////////////////////////////////
  242.     //
  243.     // IGetClusterNetworkInfo
  244.     //
  245.     /////////////////////////////////////////////////////////////////////////
  246.  
  247.     [
  248.         object,
  249.         uuid(97DEDE56-FC6B-11CF-B5F5-00A0C90AB505),
  250.         helpstring("IGetClusterNetworkInfo Interface"),
  251.         pointer_default(unique)
  252.     ]
  253.     interface IGetClusterNetworkInfo : IUnknown
  254.     {
  255.         import "oaidl.idl";
  256.  
  257.         [local] HNETWORK GetNetworkHandle(
  258.                     [in] LONG lObjIndex
  259.                     );
  260.  
  261.     };  //*** interface IGetClusterNetworkInfo
  262.  
  263.     /////////////////////////////////////////////////////////////////////////
  264.     //
  265.     // IGetClusterNetInterfaceInfo
  266.     //
  267.     /////////////////////////////////////////////////////////////////////////
  268.  
  269.     [
  270.         object,
  271.         uuid(97DEDE57-FC6B-11CF-B5F5-00A0C90AB505),
  272.         helpstring("IGetClusterNetInterfaceInfo Interface"),
  273.         pointer_default(unique)
  274.     ]
  275.     interface IGetClusterNetInterfaceInfo : IUnknown
  276.     {
  277.         import "oaidl.idl";
  278.  
  279.         [local] HNETINTERFACE GetNetInterfaceHandle(
  280.                     [in] LONG lObjIndex
  281.                     );
  282.  
  283.     };  //*** interface IGetClusterNetInterfaceInfo
  284.  
  285. /////////////////////////////////////////////////////////////////////////////
  286. // Cluster Administrator Extensions interface definitions
  287. /////////////////////////////////////////////////////////////////////////////
  288.  
  289.     /////////////////////////////////////////////////////////////////////////
  290.     //
  291.     // IWCPropertySheetCallback
  292.     //
  293.     /////////////////////////////////////////////////////////////////////////
  294.  
  295.     [
  296.         object,
  297.         uuid(97DEDE60-FC6B-11CF-B5F5-00A0C90AB505),
  298.         helpstring("IWCPropertySheetCallback Interface"),
  299.         pointer_default(unique)
  300.     ]
  301.     interface IWCPropertySheetCallback : IUnknown
  302.     {
  303.         import "oaidl.idl";
  304.  
  305.         HRESULT AddPropertySheetPage(
  306.                     [in] HPROPSHEETPAGE hpage
  307.                     );
  308.  
  309.     };  //*** interface IWCPropertySheetCallback
  310.  
  311.     /////////////////////////////////////////////////////////////////////////
  312.     //
  313.     // IWEExtendPropertySheet
  314.     //
  315.     /////////////////////////////////////////////////////////////////////////
  316.  
  317.     [
  318.         object,
  319.         uuid(97DEDE61-FC6B-11CF-B5F5-00A0C90AB505),
  320.         helpstring("IWSExtendPropertySheet Interface"),
  321.         pointer_default(unique)
  322.     ]
  323.     interface IWEExtendPropertySheet : IUnknown
  324.     {
  325.         import "oaidl.idl";
  326.  
  327.         HRESULT CreatePropertySheetPages(
  328.                     [in] IUnknown * piData,
  329.                     [in] IWCPropertySheetCallback * piCallback
  330.                     );
  331.  
  332.     };  //*** interface IWEExtendPropertySheet
  333.  
  334.     /////////////////////////////////////////////////////////////////////////
  335.     //
  336.     // IWCWizardCallback
  337.     //
  338.     /////////////////////////////////////////////////////////////////////////
  339.  
  340.     [
  341.         object,
  342.         uuid(97DEDE62-FC6B-11CF-B5F5-00A0C90AB505),
  343.         helpstring("IWCWizardCallback Interface"),
  344.         pointer_default(unique)
  345.     ]
  346.     interface IWCWizardCallback : IUnknown
  347.     {
  348.         import "oaidl.idl";
  349.  
  350.         HRESULT AddWizardPage(
  351.                     [in] HPROPSHEETPAGE hpage
  352.                     );
  353.         HRESULT EnableNext(
  354.                     [in] HPROPSHEETPAGE hpage,
  355.                     [in] BOOL bEnable
  356.                     );
  357.  
  358.     };  //*** interface IWCWizardCallback
  359.  
  360.     /////////////////////////////////////////////////////////////////////////
  361.     //
  362.     // IWEExtendWizard
  363.     //
  364.     /////////////////////////////////////////////////////////////////////////
  365.  
  366.     [
  367.         object,
  368.         uuid(97DEDE63-FC6B-11CF-B5F5-00A0C90AB505),
  369.         helpstring("IWEExtendWizard Interface"),
  370.         pointer_default(unique)
  371.     ]
  372.     interface IWEExtendWizard : IUnknown
  373.     {
  374.         import "oaidl.idl";
  375.  
  376.         HRESULT CreateWizardPages(
  377.                     [in] IUnknown * piData,
  378.                     [in] IWCWizardCallback * piCallback
  379.                     );
  380.  
  381.     };  //*** interface IWEExtendWizard
  382.  
  383.     /////////////////////////////////////////////////////////////////////////
  384.     //
  385.     // IWCContextMenuCallback
  386.     //
  387.     /////////////////////////////////////////////////////////////////////////
  388.  
  389.     [
  390.         object,
  391.         uuid(97DEDE64-FC6B-11CF-B5F5-00A0C90AB505),
  392.         helpstring("IWCContextMenuCallback Interface"),
  393.         pointer_default(unique)
  394.     ]
  395.     interface IWCContextMenuCallback : IUnknown
  396.     {
  397.         import "oaidl.idl";
  398.  
  399.         HRESULT AddExtensionMenuItem(
  400.                     [in] BSTR lpszName,
  401.                     [in] BSTR lpszStatusBarText,
  402.                     [in] ULONG nCommandID,
  403.                     [in] ULONG nSubmenuCommandID,
  404.                     [in] ULONG uFlags
  405.                     );
  406.  
  407.     };  //*** interface IWCContextMenuCallback
  408.  
  409.     /////////////////////////////////////////////////////////////////////////
  410.     //
  411.     // IWEExtendContextMenu
  412.     //
  413.     /////////////////////////////////////////////////////////////////////////
  414.  
  415.     [
  416.         object,
  417.         uuid(97DEDE65-FC6B-11CF-B5F5-00A0C90AB505),
  418.         helpstring("IWEExtendContextMenu Interface"),
  419.         pointer_default(unique)
  420.     ]
  421.     interface IWEExtendContextMenu : IUnknown
  422.     {
  423.         import "oaidl.idl";
  424.  
  425.         HRESULT AddContextMenuItems(
  426.                     [in] IUnknown * piData,
  427.                     [in] IWCContextMenuCallback * piCallback
  428.                     );
  429.  
  430.     };  //*** interface IWEExtendContextMenu
  431.  
  432.     /////////////////////////////////////////////////////////////////////////
  433.     //
  434.     // IWEInvokeCommand
  435.     //
  436.     /////////////////////////////////////////////////////////////////////////
  437.  
  438.     [
  439.         object,
  440.         uuid(97DEDE66-FC6B-11CF-B5F5-00A0C90AB505),
  441.         helpstring("IWEInvokeCommand Interface"),
  442.         pointer_default(unique)
  443.     ]
  444.     interface IWEInvokeCommand : IUnknown
  445.     {
  446.         import "oaidl.idl";
  447.  
  448.         HRESULT InvokeCommand(
  449.                     [in] ULONG nCommandID,
  450.                     [in] IUnknown * piData
  451.                     );
  452.  
  453.     };  //*** interface IWEInvokeCommand
  454.  
  455. /////////////////////////////////////////////////////////////////////////////
  456.  
  457. #endif // _CLUADMEX_IDL_
  458.