掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
「複数のOptional引数」を持つCOMのメソッドをC++で実装するには? (ID:70016)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
C++でCOMを使用してExcel操作を実装しようとしています。 (http://support.microsoft.com/?scid=kb;ja;216686&spid=2512&sid=97) そこで、ファイルを開くOpenメソッドを実装する際にReadOnly引数の第3引数までを指定すると、Invokeでエラーになってしまいます。 (エラーコード:0x800a03ec) --------------------------------------------------------- VARIANT fileName, updateLinks, readOnly; VariantClear(&fileName); VariantClear(&updateLinks); VariantClear(&readOnly); fileName.vt = VT_BSTR; fileName.bstrVal = ::SysAllocString(mFilePath); updateLinks.vt = VT_BOOL; updateLinks.boolVal = false; readOnly.vt = VT_BOOL; readOnly.boolVal = true; AutoWrap(DISPATCH_METHOD, &result, pBooks, L"Open", 3, fileName, updateLinks, readOnly); ::SysFreeString(fileName.bstrVal); --------------------------------------------------------------- AutoWrap関数の第5引数を1にする(Openメソッドに渡す実引数の個数を1つだけにする)と正常にファイルを開けるのですが、これではreadOnlyで開くことはできません。 Openメソッドのように複数のOptional引数を持つCOMメソッドを特定の引数までを渡す場合、上記のコードでは問題があるのでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.