2010-12-20 4 views
1

COMインターフェイスの定義に構造体の配列を渡す際にいくつか問題があります。たとえば、私は1つの読み取り関数で一連の変数Idsを定義しようとしていますが、返信関数(同じ関数)が以前に定義された変数Idに対応する値の配列を返すことを期待しています:構造体の配列をCOMインターフェイス定義の[in、out]パラメータとして渡す方法

[helpstring( "メソッドReadVariables")] HRESULT ReadVariables([in] VARIANT varIds、[out] _valStruct * retVals); _valStructについては

、定義は次のとおりです。

struct _valStruct 
{ 
    int varId; 
    double varVal; 
    int timeStamp; 
    double funcId; 
.... 

} 

私はCOMに慣れていないだと私はちょうどダブルintなどのいくつかの基本的なタイプ、などを知っている...ここで私心から一部の専門家詳細なサンプルコードや関連情報を私に提供します。あなたの助けは大いに感謝されます...ありがとう!!!

答えて

0

男、それは私がそれのような何かをしたので、年をとりました! とにかく、私は2002年から掘ってきたコードに応じて、私はSAFEARRAYを使用..しかし、おそらく唯一のVBの相互運用性のために、そのような:

[id(9), helpstring("method Keys")] HRESULT Keys([out, retval] SAFEARRAY(ComInt128)* pKeys); 

あなたは、あなたの配列を作成するためにこのようなSafeArrayAllocDescriptorSafeArrayAllocDataとしてAPI関数を使用することができますコンテンツを管理するにはSafeArrayAccessData/SafeArrayUnAccessDataがあります。

これが役に立ちます。

+0

こんにちはジェスター、私はあなたの応答をとても素早く返すことができてうれしいです。サンプルコードをもう少し詳しく説明してください。私の質問については、私はCOMインターフェイスを介して構造体の配列を渡そうとしています。率直に言って、私はまだそれをする方法を得ていない... – newbieAZ

関連する問題