Bagikan melalui


Fungsi SHCreateMemStream (shlwapi.h)

Membuat aliran memori menggunakan proses serupa dengan CreateStreamOnHGlobal.

Sintaks

IStream * SHCreateMemStream(
  [in, optional] const BYTE *pInit,
  [in]           UINT       cbInit
);

Parameter

[in, optional] pInit

Jenis: const BYTE*

Penunjuk ke buffer ukuran cbInit. Isi buffer ini digunakan untuk mengatur isi awal aliran memori. Jika parameter ini NULL, aliran memori yang dikembalikan tidak memiliki konten awal.

[in] cbInit

Jenis: UINT

Jumlah byte dalam buffer yang diacu oleh pInit. Jika pInit diatur ke NULL, cbInit harus nol.

Menampilkan nilai

Jenis: IStream*

Jika berhasil, mengembalikan penunjuk ke aliran memori yang dibuat. Mengembalikan NULL jika objek aliran tidak dapat dialokasikan.

Keterangan

Sebelum Windows Vista, fungsi ini tidak disertakan dalam file Shlwapi.h publik, juga tidak diekspor berdasarkan nama dari Shlwapi.dll. Untuk menggunakannya pada sistem sebelumnya, Anda harus memanggilnya langsung dari file Shlwapi.dll sebagai ordinal 12.

Fungsi ini membuat aliran memori. Ini adalah implementasi antarmuka IStream yang menyimpan kontennya dalam memori. SHCreateMemStream berbeda dari CreateStreamOnHGlobal dengan cara berikut.

  • Keamanan utas. Aliran yang dibuat oleh SHCreateMemStream aman untuk utas pada Windows 8. Pada sistem sebelumnya, aliran tidak aman untuk utas. Aliran yang dibuat oleh CreateStreamOnHGlobal aman untuk utas.
  • Konten awal. SHCreateMemStream menerima konten awal dalam bentuk buffer. CreateStreamOnHGlobal menerima konten awal dalam bentuk HGLOBAL.
  • Akses ke konten. SHCreateMemStream tidak mengizinkan akses langsung ke konten aliran. CreateStreamOnHGlobal mengizinkan akses melalui GetHGlobalFromStream.
  • Informasi kegagalan. Jika SHCreateMemStream mengembalikan NULL, SHCreateMemStream tidak dapat mengalokasikan memori yang diperlukan. Penelepon harus mengasumsikan penyebabnya adalah E_OUTOFMEMORY.
  • Dukungan untuk IStream::Clone. Sebelum Windows 8, aliran yang dibuat oleh SHCreateMemStream tidak mendukung IStream::Clone. Aliran yang dibuat oleh CreateStreamOnHGlobal . Pada Windows 8, aliran yang dibuat oleh SHCreateMemStream mendukung IStream::Clone.
  • Aliran yang dikembalikan oleh SHCreateMemStream mengembalikan S_FALSE dari IStream::Read jika Anda mencoba membaca melewati akhir buffer. Aliran yang dikembalikan oleh CreateStreamOnHGlobal mengembalikan S_OK dan mengatur *pcbRead ke 0 jika Anda mencoba membaca melewati akhir buffer.

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional, Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server, Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header shlwapi.h
Pustaka Shlwapi.lib
DLL Shlwapi.dll (versi 5.0 atau yang lebih baru)