IDiaDataSourceEx2 ::findNamedStreams
Récupère tous les noms de flux nommés dans la source de données qui correspondent au modèle éventuellement donné.
Syntaxe
HRESULT findNamedStreams (
[in, optional] LPCOLESTR name,
[in] DWORD compareFlags,
[out] IDiaEnumNamedStreams** ppResult
);
Paramètres
[in, optional] name
Spécifie éventuellement le nom des flux à récupérer. Définissez la valeur NULL
pour que tous les flux soient récupérés.
[in] compareFlags
Spécifie les options de comparaison appliquées à la correspondance de noms. Les valeurs de l’énumération NameSearchOptions
peuvent être utilisées seules ou combinées. Si name
est NULL
, ce paramètre doit être nsNone
.
[out] ppResult
Retourne un objet IDiaEnumNamedStreams
qui contient la liste des flux nommés récupérés.
Valeur de retour
Si elle réussit, retourne S_OK
; sinon, retourne un code d’erreur.
Exemple
L’exemple suivant montre comment rechercher tous les flux nommés commençant par "sourcelink"
et vider leur longueur.
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);