Поделиться через


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);

См. также