続けるつもりは無かったのですが、VARIANT_BOOLの値の返し方を書いていなかったのでさらに続けます
と言っても非常に簡単な話しかしませんが…
こんなIDL定義をした場合
[id(1), helpstring("VARIANT_BOOLを返す")] HRESULT SampleMethod([out,retval] VARIANT_BOOL* result);
実装は次のように記述します。(今、私はラッパーとして作っているので、WrappedMethod() は bool を返す前提で話を進めます)
STDMETHODIMP CTest::SampleMethod([out,retval] VARIANT_BOOL* result)
{
result* = WrappedMethod() ? VARIANT_TRUE : VARIANT_FALSE;
return S_OK;
}
そう、当たり前と言えば当たり前ですが、boolとVARIANT_BOOLは異なるのでちゃんと変換しなきゃダメなんですね。
変換用の関数とか用意されてそうな気もしますが調べてません…
0 件のコメント:
コメントを投稿