COMサーバの作成が完了したら、COMサーバを呼び出すCOMクライアントを作成してDLLサーバの動作を確認します。
はじめに、クライアント側にCLSIDを教えます。
// {227A0711-D089-42AA-8428-52DD48A14139}
const CLSID CLSID_Ichigo1 =
{ 0x227a0711, 0xd089, 0x42aa, { 0x84, 0x28, 0x52, 0xdd, 0x48, 0xa1, 0x41, 0x39 } };
ここでは定数を用いましたが、DEFINE_GUID等を用いてもかまいません。
あとは、COMを初期化してcoclassを作成し、メソッドを呼び出すだけです。
CIchigo1の場合であれば次のようになります。
ISequentialStream* pObj = NULL;
hr = CoCreateInstance(
CLSID_Ichigo1, NULL,
CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER |
CLSCTX_LOCAL_SERVER,
IID_ISequentialStream, (LPVOID*)&pObj);
if ( SUCCEEDED(hr) ) {
std::string str = "ichigopack COM sample 1\n";
ULONG cbWritten = 0;
pObj->Write( str.c_str(), str.length(), &cbWritten );
pObj->Release();
}
作成したクライアントをビルド、実行することで、c:\tmp\ichigo1.txtに次のテキストが書き出されます。
なお、予めc:\tmpというフォルダを作成しておいてください。
関連ページ
COM/ActiveXの解説ページ 目次
前の項目: DLLサーバのビルド