// ResApi.idl : IDL source for Cluster Resource API // // This file will be processed by the MIDL tool to // produce the type library (resapi.tlb) and marshalling code. import "basetsd.h"; import "oaidl.idl"; import "wtypes.idl" ; /////////////////////////////////////// // definitions interface IClusterResControl ; interface IClusterResource ; interface IClusterQuorumResource ; // /////////////////////////////////////// ///////////////////////////////////////////////// // Cluster [ object, uuid(E2C31D50-BC17-11d0-A431-00C04FD735A9), dual, helpstring("Cluster Resource API Interface"), hidden, pointer_default(unique) ] interface IClusterResource : IDispatch { ///////////////////////////////// // Cluster Resource API typedef long * POLEQUORUM_RESOURCE_LOST ; typedef ULONG_PTR OLEHANDLE ; typedef OLEHANDLE * LPOLEHANDLE ; typedef ULONG_PTR OLERESOURCE_HANDLE ; typedef ULONG_PTR OLEHKEY ; typedef ULONG_PTR OLERESID ; HRESULT Open( [in] BSTR ResourceName, [in] OLEHKEY ResourceKey, [in] OLERESOURCE_HANDLE ResourceHandle, [out, retval] OLERESID *lpRet ) ; HRESULT Close( [in] OLERESID Resource) ; HRESULT Online( [in] OLERESID Resource, [in,out] LPOLEHANDLE EventHandle, [out, retval] long *lpRet ) ; HRESULT Offline( [in] OLERESID Resource, [out, retval] long *lpRet ) ; HRESULT IsAlive( [in] OLERESID Resource, [out, retval] long *lpRet ) ; HRESULT LooksAlive( [in] OLERESID Resource, [out, retval] long *lpRet ) ; HRESULT Terminate( [in] OLERESID Resource) ; } ; [ object, uuid(C56292B2-DD10-11D0-8490-00A0C90C13F8), dual, helpstring("Cluster Control Interface"), hidden, pointer_default(unique) ] interface IClusterResControl : IDispatch { HRESULT ResourceControl( [in] OLERESID Resource, [in] long ControlCode, [in] VARIANT *InBuffer, [in, out] VARIANT *OutBuffer, [in, out] long * BytesReturned, [out, retval] long *lpRet); HRESULT ResourceTypeControl( [in] BSTR ResourceTypeName, [in] long ControlCode, [in] VARIANT *InBuffer, [in, out] VARIANT *OutBuffer, [in, out] long * BytesReturned, [out, retval] long *lpRet); }; // Quorum Resource [ object, uuid(645B5A82-BC6E-11d0-8F45-000000000000), dual, helpstring("Cluster Resource Quorum Interface"), hidden, pointer_default(unique) ] interface IClusterQuorumResource : IDispatch { HRESULT QuorumArbitrate ( [in] OLERESID Resource, [in] POLEQUORUM_RESOURCE_LOST LostQuorumResource, [out, retval] long *lpRet ) ; HRESULT QuorumRelease ( [in] OLERESID Resource, [out, retval] long *lpRet ) ; }; ///////////////////////////////////////////////////////// // ResApi [ uuid(E2C31D51-BC17-11d0-A431-00C04FD735A9), version(1.0), helpstring("MS Cluster Resource API 1.0 Type Library") ] library ResApi { importlib("stdole2.tlb"); [ uuid(688D8212-DD11-11D0-8490-00A0C90C13F8), helpstring("Cluster Control interface") ] coclass ClusterResControl { [default] interface IClusterResControl ; } ; [ uuid(4B2E1D3C-DAC6-11D0-848C-00A0C90C13F8), helpstring("Cluster Quorum Resource API Class") ] coclass ClusterQuorumResource { [default] interface IClusterQuorumResource ; }; [ uuid(E2C31D52-BC17-11d0-A431-00C04FD735A9), helpstring("Cluster Resource API Class") ] coclass ClusterResource { [default] interface IClusterResource; }; };