Bagikan melalui


IDiaDataSource::getStreamRawData

Mengambil byte mentah dari aliran bernama.

Sintaks

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

Parameter

stream

[di] Nama aliran dalam informasi debug.

cbOffset

[di] Offset dalam aliran untuk mulai membaca data.

cbRead

[di] Jumlah byte yang akan diambil.

pcbRead

[out] Jumlah byte benar-benar dibaca dari aliran.

pbData

[out] Lokasi untuk menyimpan data baca. Pada input harus berukuran setidaknya cbRead byte. Setelah byte pengembalian *pcbRead berhasil akan valid.

Tampilkan Nilai

Jika berhasil, mengembalikan S_OK. Jika aliran bernama tidak ada dalam PDB, API mungkin gagal, atau mungkin mengembalikan panjang 0.

Keterangan

Database Program terdiri dari beberapa aliran data. Beberapa aliran tersebut diberi nama. Anda dapat menggunakan metode ini untuk mengumpulkan informasi tentang aliran bernama ini.

Untuk mendapatkan ukuran aliran, gunakan IDiaDataSourceEx::getStreamSize metode .

Contoh

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

Lihat juga