Partage via


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

Voir aussi