署名を使用してCOMメソッドを計算することは可能ですか
HRESULT Foo(BSTR in, [out] BSTR * out1, [out] BSTR * out2)
VBScriptから?
以下:
Dim a;
Dim b;
component.Foo "something", a, b
互換性のないタイプについてエラーが発生します。
それでもメソッドのシグネチャを変更できます。
署名を使用してCOMメソッドを計算することは可能ですか
HRESULT Foo(BSTR in, [out] BSTR * out1, [out] BSTR * out2)
VBScriptから?
以下:
Dim a;
Dim b;
component.Foo "something", a, b
互換性のないタイプについてエラーが発生します。
それでもメソッドのシグネチャを変更できます。
出力パラメータはサポートされていないようです。ByRef
/パラメータはあり[in, out]
ますが、パラメータのみVARIANT
です。
次のKB記事から:
情報:ASPコンポーネントからVisual Basic Component@support.microsoft.comにパラメーターを渡すときにタイプの不一致エラーが発生します
「VBScriptはVARIANTByRefパラメータのみをサポートします。VBScriptを使用してByRef文字列を受け取るプロシージャを呼び出すことができますが、Visual Basicで構築されたコンポーネントのデフォルトの動作は、ByRefパラメータをこれらのコンポーネントに渡そうとするとタイプミスマッチエラーで失敗します。OLE ByRefバリアントを他のByRefタイプに変換するように要求されると、オートメーションのデフォルトのタイプ強制関数は失敗します。」
また、このトピックに関する他のリンクは次のとおりです。
In、Out、In-Out、Make your mind Already @ MSDN blogs
VBScript“ Type Mismatch” issue with“ [in、out] BSTR *”パラメーターSO質問