次の方法で共有


IDiaDataSourceEx2::findNamedStreams

必要に応じて指定されたパターンに一致するデータソース内の名前付きストリームのすべての名前を取得します。

構文

HRESULT findNamedStreams ( 
   [in, optional] LPCOLESTR              name,
   [in]           DWORD                  compareFlags,
   [out]          IDiaEnumNamedStreams** ppResult
);

パラメーター

[in, optional] name

必要に応じて、取得するストリームの名前を指定します。 取得するすべてのストリームの NULL に設定します。

[in] compareFlags

名前の照合に適用される比較オプションを指定します。 NameSearchOptions 列挙 列挙体の値は、単独で、または組み合わせて使用できます。 nameNULLの場合、このパラメーターは nsNoneする必要があります。

[out] ppResult

取得した名前付きストリームの一覧を含む IDiaEnumNamedStreams オブジェクトを返します。

戻り値

成功した場合は、S_OKを返します。それ以外の場合は、エラー コードを返します。

次の例は、"sourcelink" で始まるすべての名前付きストリームを検索し、その長さをダンプする方法を示しています。

CComPtr<IDiaEnumNamedStreams> pEnum;
HRESULT hr = pDataSource->findNamedStreams( L"sourcelink*", nsCaseSensitive | nsRegularExpression, &pEnum );
do {
    CComBSTR name;
    hr = pEnum->Next(&name);
    if (FAILED(hr)) {
        // report the error
        return hr;
    }
    if (hr != S_OK) {
        // End of the matches
        return S_OK;
    }
    ULONGLONG cb = 0;
    hr = pDataSource->getStreamSize(name.m_str, &cb);
    if (FAILED(hr)) {
        // report the error
        return hr;
    }
    printf("Stream Name: \"%ls\", Stream Size: %llu byte(s)\n", name.m_str, cb);
} while (true);

関連項目