Partager via


IDiaDataSource ::getStreamRawData

Récupère les octets bruts du flux nommé.

Syntaxe

HRESULT getStreamRawData (
   LPCOLESTR  stream,
   ULONGLONG  cbOffset,
   ULONGLONG  cbRead,
   ULONGLONG* pcbRead,
   BYTE*      pbData
);

Paramètres

stream

[in] Nom du flux dans les informations de débogage.

cbOffset

[in] Décalage dans le flux à partir duquel commencer la lecture des données.

cbRead

[in] Nombre d’octets à récupérer.

pcbRead

[out] Nombre d’octets réellement lus à partir du flux.

pbData

[out] Emplacement pour stocker les données de lecture. L’entrée doit comporter au moins cbRead des octets de taille. Une fois les octets retournés *pcbRead réussis, ils sont valides.

Valeur de retour

En cas de réussite, retourne S_OK. Si le flux nommé n’existe pas dans la base de données PDB, l’API peut échouer ou retourner une longueur de 0.

Notes

Les bases de données de programme sont constituées de plusieurs flux de données. Certains de ces flux sont nommés. Vous pouvez utiliser cette méthode pour collecter des informations sur ces flux nommés.

Pour obtenir la taille du flux, utilisez la IDiaDataSourceEx::getStreamSize méthode.

Exemple

ULONGLONG countBytes = 0;
LPCOLESTR stream = L"/names";
HRESULT hr = pSource->getStreamSize( stream, &countBytes );
if (SUCCEEDED(hr)) {
  for (ULONGLONG cbOffset = 0, cbRead = 0; cbOffset < countBytes; cbOffset += cbRead) {
    BYTE buffer[100];
    cbRead = 0;
    hr = pSource->getStreamRawBytes( stream, cbOffset, std::min(countBytes - cbOffset, sizeof(buffer)), &cbRead, buffer);
    if (SUCCEEDED(hr)) {
      ...

Voir aussi