IDiaDataSourceEx2::findNamedStreams
必要に応じて指定されたパターンに一致するデータソース内の名前付きストリームのすべての名前を取得します。
構文
HRESULT findNamedStreams (
[in, optional] LPCOLESTR name,
[in] DWORD compareFlags,
[out] IDiaEnumNamedStreams** ppResult
);
パラメーター
[in, optional] name
必要に応じて、取得するストリームの名前を指定します。 取得するすべてのストリームの NULL
に設定します。
[in] compareFlags
名前の照合に適用される比較オプションを指定します。
NameSearchOptions
列挙 列挙体の値は、単独で、または組み合わせて使用できます。
name
が NULL
の場合、このパラメーターは 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);