1

私は、文字列のコレクションに CStringArray を使用できる MFC について少し知っている初心者です。次の com コンポーネントのケースでは、com で文字列を使用する方法がわかりません。以下は、私がcomコンポーネントを開発しているだけでなく、それを使用している場合です.私のcomコンポーネントでは、次の機能が必要です.xmlファイルから2次元配列を読み取り、それを1つの共通配列にダンプします.

_bstr_t          bstrMember1Name,bstrMember2Name;
IEachData        portsDataNode;
while(portsDataNode = CollectionOfData->NextData())
{
    if (!GetStringAttribute(portsDataNode, _T("Member1"), bstrMember1Name))
    {
            hr = E_FAIL;
    }
    if (!GetStringAttribute(portsDataNode, _T("Member2"), bstrMember2Name))
    {
            hr = E_FAIL;
    }
 }

これは、One com companant 呼び出しからの戻り値の型として Member1 と Member2 を取得する関数の本体ですが、それぞれと値のコレクションが必要です。関数のパラメーターは何ですか?Member1 と Member2 を単一の変数に収集する方法は??

4

1 に答える 1

1

ごめん。私はあなたの質問をそのように理解していませんでした。データのコレクション (配列など) を返したい場合は、SAFEARRAY が必要です。したがって、SafeArrayCreate を使用します。COM のみではなく、自動化が必要な場合は、VARIANT セーフ配列を使用する必要があります。SAFEARRAY は、COM の境界を越えて渡すことができます。BSTR の SAFEARRAY が可能です。多次元配列も

于 2013-10-02T08:45:04.083 に答える