// iisrsta.idl : IDL source for iisrsta.dll
//

// This file will be processed by the MIDL tool to
// produce the type library (iisrsta.tlb) and marshalling code.

cpp_quote("DEFINE_GUID(IID_IIisServiceControl, 0xE8FB8620, 0x588F, 0x11d2, 0x9d, 0x61, 0x0,0xc0, 0x4f, 0x79, 0xc5, 0xfe);")
cpp_quote("DEFINE_GUID(CLSID_IisServiceControl, 0xE8FB8621, 0x588F, 0x11d2, 0x9d, 0x61, 0x0,0xc0, 0x4f, 0x79, 0xc5, 0xfe);")
cpp_quote("DEFINE_GUID(LIBID_IISRSTALib, 0xE8FB8614, 0x588F, 0x11d2, 0x9d, 0x61, 0x0,0xc0, 0x4f, 0x79, 0xc5, 0xfe);")

import "oaidl.idl";
import "ocidl.idl";
	[
		object,
		uuid(E8FB8620-588F-11D2-9D61-00C04F79C5FE),
		dual,
		helpstring("IIisServiceControl Interface"),
		pointer_default(unique)
	]
	interface IIisServiceControl : IDispatch
	{
		[id(1), helpstring("method Stop")] HRESULT Stop(DWORD dwTimeoutMsecs, DWORD dwForce);
		[id(2), helpstring("method Start")] HRESULT Start(DWORD dwTimeoutMsecs);
		[id(3), helpstring("method Reboot")] HRESULT Reboot( DWORD dwTimeouMsecs, DWORD dwForceAppsClosed );
		[id(4), helpstring("method Status")] HRESULT Status([in] DWORD dwBufferSize, [out, size_is(dwBufferSize)] unsigned char *pbBuffer, [out] DWORD *pdwMDRequiredBufferSize, [out] DWORD *pdwNumServices);
		[id(5), helpstring("method Kill")] HRESULT Kill();
	};

[
	uuid(E8FB8614-588F-11D2-9D61-00C04F79C5FE),
	version(1.0),
	helpstring("iisrsta 1.0 Type Library")
]
library IISRSTALib
{
	importlib("stdole2.tlb");

	[
		uuid(E8FB8621-588F-11D2-9D61-00C04F79C5FE),
		helpstring("IisServiceControl Class")
	]
	coclass IisServiceControl
	{
		[default] interface IIisServiceControl;
	};
};

cpp_quote("typedef struct {")
cpp_quote("DWORD iServiceName;")
cpp_quote("DWORD iDisplayName;")
cpp_quote("SERVICE_STATUS ServiceStatus;")
cpp_quote("} SERIALIZED_ENUM_SERVICE_STATUS;")