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

另请参阅