// 04WebServer.idl : 04WebServer の IDL ソース
//

// このファイルは、タイプ ライブラリ (04WebServer.tlb) およびマーシャリング コードを
// 作成するために MIDL ツールによって処理されます。

import "oaidl.idl";
import "ocidl.idl";

[
	object,
	uuid(9352667D-82A1-4A4B-83CB-E0B6C98B7976),
	dual,
	nonextensible,
	helpstring("IServerControl インターフェイス"),
	pointer_default(unique)
]
interface IServerControl : IDispatch{
	[id(1), helpstring("サーバを起動・再起動します")] HRESULT StartServer([out,retval] SHORT* status);
	[id(2), helpstring("サーバを停止します")] HRESULT StopServer(void);
	[id(3), helpstring("サーバのエラー情報を取得します")] HRESULT GetServerErrorString([out,retval] BSTR* str);
	[id(4), helpstring("サーバが実行中か取得する")] HRESULT IsRunning([out,retval] SHORT* retval);
	[id(5), helpstring("サーバがサービスとして実行されているか取得する")] HRESULT IsService([out,retval] SHORT* ret);
	[id(6), helpstring("サーバーの情報を取得します")] HRESULT GetServerInfo([out,retval] BSTR* ret);
	[id(7), helpstring("サーバーの設定を取得します")] HRESULT GetServerSetting([out,retval] BSTR* ret);
	[id(8), helpstring("サーバーの環境領域を取得します")] HRESULT GetServerContext([out,retval] BSTR* ret);
	[id(9), helpstring("サーバ・ルートを取得します")] HRESULT GetServerRoot([out,retval] BSTR* retpath);
	[id(10), helpstring("接続があるかどうか取得する")] HRESULT IsActive([out,retval] SHORT* ret);
};


[
	object,
	uuid(76C9B744-B51E-403B-B3BA-A14C840441A2),
	dual,
	nonextensible,
	helpstring("IServerSetting インターフェイス"),
	pointer_default(unique)
]
interface IServerSetting : IDispatch{
	[id(1), helpstring("サーバ設定を書き込みます")] HRESULT WriteServerSetting([in] BSTR setting);
	[id(2), helpstring("サーバ設定を読み込みます")] HRESULT ReadServerSetting([out,retval] BSTR* setting);
	[id(3), helpstring("設定ファイルのパスを取得します")] HRESULT GetSettingFilePath([out,retval] BSTR* path);
};


[
	uuid(D6D170EF-749D-494E-A6FA-056994024F32),
	version(1.0),
	helpstring("04WebServer 1.0 タイプ ライブラリ")
]
library My04WebServerLib
{
	importlib("stdole2.tlb");
	[
		uuid(67A61D5D-122D-43C3-8BED-CB80CCCEBBB5),
		helpstring("ServerControl Class")
	]
	coclass ServerControl
	{
		[default] interface IServerControl;
	};
	[
		uuid(9C09B57D-30EF-412E-8FFF-205214AB5B6D),
		helpstring("ServerSetting Class")
	]
	coclass ServerSetting
	{
		[default] interface IServerSetting;
	};
};
