2

SafeArrayAccessData を使用して、マネージ コードによって渡される SAFEARRAY をロックする必要がある場合について質問があります。これが私たちのコードです。VARIANT は、マネージド コードによって文字列配列と共に渡されます。コード レビュー中に、SafeArrayAccessData/SafeArrayUnAccessData の使用を提案する人がいます。しかし、彼はその理由と利点について確信が持てません。あなたの経験のいくつかを共有できますか?ありがとう!

STDMETHODIMP Base::Method1(VARIANT values, VARIANT_BOOL result)
{
    CComSafeArray<BSTR> ids;
    ids.Attach(values.parray);

    unsigned int size = ids.GetCount();
    for(unsigned int i = 0; i < size; ++i)
    {
    // use ids[i] here
    }
    // ...
}
4

1 に答える 1