Aracılığıyla paylaş


IDiaDataSource::getStreamRawData

Adlandırılmış akışın ham baytlarını alır.

Sözdizimi

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

Parametreler

stream

[in] Hata ayıklama bilgileri içindeki akışın adı.

cbOffset

[in] Veri okumaya başlamak için akış içindeki uzaklık.

cbRead

[in] Alınacak bayt sayısı.

pcbRead

[out] Aslında akıştan okunan bayt sayısı.

pbData

[out] Okuma verilerini depolama konumu. Girişte boyutu en az cbRead bayt olmalıdır. Başarılı dönüş *pcbRead baytları geçerli olacaktır.

Dönüş Değeri

Başarılı olursa döndürür S_OK. Adlandırılmış akış PDB içinde yoksa, API başarısız olabilir veya 0 uzunluğu döndürebilir.

Açıklamalar

Program Veritabanları birden çok veri akışından oluşur. Bu akışlardan bazıları adlandırılmıştır. Bu adlandırılmış akışlar hakkında bilgi toplamak için bu yöntemi kullanabilirsiniz.

Akışın boyutunu almak için yöntemini kullanın IDiaDataSourceEx::getStreamSize .

Örnek

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)) {
      ...

Ayrıca bkz.