Fungsi MsiRecordReadStream (msiquery.h)
Fungsi MsiRecordReadStream membaca byte dari bidang aliran rekaman ke dalam buffer.
Sintaks
UINT MsiRecordReadStream(
[in] MSIHANDLE hRecord,
[in] UINT iField,
[out] char *szDataBuf,
[in, out] LPDWORD pcbDataBuf
);
Parameter
[in] hRecord
Tangani ke rekaman.
[in] iField
Menentukan bidang rekaman.
[out] szDataBuf
Buffer untuk menerima bidang stream. Anda harus memastikan buffer tujuan berukuran sama atau lebih besar dari buffer sumber. Lihat bagian Keterangan.
[in, out] pcbDataBuf
Menentukan jumlah buffer masuk dan keluar. Pada input, ini adalah ukuran penuh buffer. Pada output, ini adalah jumlah byte yang benar-benar ditulis ke buffer. Lihat bagian Keterangan.
Menampilkan nilai
Fungsi ini mengembalikan UINT.
Keterangan
Untuk membaca aliran, atur pcbDataBuf ke jumlah byte yang akan ditransfer dari aliran ke buffer setiap kali fungsi dipanggil. Saat kembali, MsiRecordReadStream mengatur ulang pcbDataBuf ke jumlah byte yang benar-benar ditransfer. Jika buffer lebih kecil dari aliran, aliran diposisikan ulang ketika buffer menjadi penuh sehingga data berikutnya dalam aliran ditransfer oleh panggilan berikutnya ke fungsi. Ketika tidak ada lagi byte yang tersedia, MsiRecordReadStream mengembalikan ERROR_SUCCESS.
Jika Anda meneruskan 0 untuk szDataBuf , maka pcbDataBuf diatur ulang ke jumlah byte di aliran yang tersisa untuk dibaca.
Sampel kode berikut membaca dari aliran yang berada di bidang 1 dari rekaman yang ditentukan oleh hRecord dan membaca seluruh aliran 8 byte sekaligus.
char szBuffer[8];
PMSIHANDLE hRecord;
DWORD cbBuf = sizeof(szBuffer);
do
{
if (MsiRecordReadStream(hRecord, 1, szBuffer,
&cbBuf) != ERROR_SUCCESS)
break; /* error */
}
while (cbBuf == 8); //continue reading the stream while you receive a full buffer
//cbBuf will be less once you reach the end of the stream and cannot fill your
//buffer with stream data
Lihat juga Batasan OLE pada Aliran.
Persyaratan
Klien minimum yang didukung | Windows Installer 5.0 di Windows Server 2012, Windows 8, Windows Server 2008 R2 atau Windows 7. Windows Installer 4.0 atau Windows Installer 4.5 di Windows Server 2008 atau Windows Vista. Pemasang Windows pada Windows Server 2003 atau Windows XP |
Target Platform | Windows |
Header | msiquery.h |
Pustaka | Msi.lib |
DLL | Msi.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk