Metode IStorage::CreateStream (objidl.h)

Metode CreateStream membuat dan membuka objek stream dengan nama yang ditentukan yang terkandung dalam objek penyimpanan ini. Semua elemen dalam objek penyimpanan, baik aliran maupun objek penyimpanan lainnya, disimpan dalam ruang nama yang sama.

Sintaks

HRESULT CreateStream(
  [in]  const OLECHAR *pwcsName,
  [in]  DWORD         grfMode,
  [in]  DWORD         reserved1,
  [in]  DWORD         reserved2,
  [out] IStream       **ppstm
);

Parameter

[in] pwcsName

Penunjuk ke string Unicode karakter lebar yang dihentikan null yang berisi nama aliran yang baru dibuat. Nama dapat digunakan nanti untuk membuka atau membuka kembali aliran. Panjang nama tidak boleh melebihi 31 karakter, tidak termasuk terminator string. Karakter 000 hingga 01f, berfungsi sebagai karakter pertama dari nama aliran/penyimpanan, dicadangkan untuk digunakan oleh OLE. Ini adalah pembatasan file gabungan, bukan pembatasan penyimpanan terstruktur.

[in] grfMode

Menentukan mode akses yang akan digunakan saat membuka aliran yang baru dibuat. Untuk informasi selengkapnya dan deskripsi nilai yang mungkin, lihat Konstanta STGM.

[in] reserved1

Dicadangkan untuk digunakan di masa mendatang; harus nol.

[in] reserved2

Dicadangkan untuk digunakan di masa mendatang; harus nol.

[out] ppstm

Saat kembali, arahkan ke lokasi penunjuk antarmuka IStream baru. Ini hanya valid jika operasi berhasil. Ketika terjadi kesalahan, parameter ini diatur ke NULL.

Nilai kembali

Metode ini dapat mengembalikan salah satu nilai ini.

Menampilkan kode Deskripsi
S_OK Aliran baru berhasil dibuat.
E_PENDING Hanya Penyimpanan Asinkron: Sebagian atau semua data yang diperlukan saat ini tidak tersedia.
STG_E_ACCESSDENIED Tidak cukup izin untuk membuat aliran.
STG_E_FILEALREADYEXISTS Nama yang ditentukan untuk aliran sudah ada di objek penyimpanan dan parameter grfMode menyertakan nilai STGM_FAILIFTHERE.
STG_E_INSUFFICIENTMEMORY Aliran tidak dibuat karena kurangnya memori.
STG_E_INVALIDFLAG Nilai yang ditentukan untuk parameter grfMode bukan nilai konstanta STGM yang valid.
STG_E_INVALIDFUNCTION Kombinasi bendera yang ditentukan dalam parameter grfMode tidak didukung; misalnya, ketika metode ini dipanggil tanpa bendera STGM_SHARE_EXCLUSIVE.
STG_E_INVALIDNAME Nilai tidak valid untuk pwcsName.
STG_E_INVALIDPOINTER Penunjuk yang ditentukan untuk objek aliran tidak valid.
STG_E_INVALIDPARAMETER Salah satu parameter tidak valid.
STG_E_REVERTED Objek penyimpanan telah dibatalkan oleh operasi kembali di atasnya di pohon transaksi.
STG_E_TOOMANYOPENFILES Aliran tidak dibuat karena terlalu banyak file terbuka.

Keterangan

Jika aliran dengan nama yang ditentukan dalam parameter pwcsName sudah ada dan parameter grfMode menyertakan bendera STGM_CREATE, aliran yang ada digantikan oleh yang baru dibuat. Penghancuran aliran lama dan pembuatan objek stream baru tunduk pada mode transaksi pada objek penyimpanan induk.

Implementasi file campuran yang disediakan COM dari metode IStorage::CreateStream tidak mendukung perilaku berikut:

  • Bendera STGM_DELETEONRELEASE tidak didukung.
  • Mode yang ditransaksikan (STGM_TRANSACTED) tidak didukung untuk objek stream.
  • Membuka aliran yang sama lebih dari sekali dari penyimpanan yang sama tidak didukung. Bendera mode berbagi STGM_SHARE_EXCLUSIVE harus ditentukan dalam parameter grfMode .
Jika aliran sudah ada dan grfMode diatur ke STGM_FAILIFTHERE, metode ini gagal dengan nilai yang dikembalikan STG_E_FILEALREADYEXISTS.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows 2000 Server [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header objidl.h
Pustaka Uuid.lib
DLL Ole32.dll

Lihat juga

IStorage - Implementasi File Gabungan

IStorage::OpenStream

IStream