Metode IStorage::CreateStorage (objidl.h)

Metode CreateStorage membuat dan membuka objek penyimpanan baru yang berlapis dalam objek penyimpanan ini dengan nama yang ditentukan dalam mode akses yang ditentukan.

Sintaks

HRESULT CreateStorage(
  [in]  const OLECHAR *pwcsName,
  [in]  DWORD         grfMode,
  [in]  DWORD         reserved1,
  [in]  DWORD         reserved2,
  [out] IStorage      **ppstg
);

Parameter

[in] pwcsName

Penunjuk ke string Unicode karakter lebar yang dihentikan null yang berisi nama objek penyimpanan yang baru dibuat. Nama dapat digunakan nanti untuk membuka kembali objek penyimpanan. 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

Nilai yang menentukan mode akses yang akan digunakan saat membuka objek penyimpanan 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] ppstg

Penunjuk, ketika berhasil, ke lokasi penunjuk IStorage ke objek penyimpanan yang baru dibuat. Parameter ini diatur ke NULL jika terjadi kesalahan.

Nilai kembali

Metode ini dapat mengembalikan salah satu nilai ini.

Menampilkan kode Deskripsi
S_OK Objek penyimpanan 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 objek penyimpanan.
STG_E_FILEALREADYEXISTS Nama yang ditentukan untuk objek penyimpanan sudah ada di objek penyimpanan dan parameter grfMode menyertakan bendera STGM_FAILIFTHERE.
STG_E_INSUFFICIENTMEMORY Objek penyimpanan tidak dibuat karena kurangnya memori.
STG_E_INVALIDFLAG Nilai yang ditentukan untuk parameter grfMode< bukan nilai konstanta STGM yang valid. nilai yang ditentukan untuk parameter grfMode tidak valid
STG_E_INVALIDFUNCTION Kombinasi bendera yang ditentukan dalam parameter grfMode tidak didukung.
STG_E_INVALIDNAME Bukan nilai yang valid untuk pwcsName.
STG_E_INVALIDPOINTER Penunjuk yang ditentukan untuk objek penyimpanan 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 Objek penyimpanan tidak dibuat karena terlalu banyak file yang terbuka.
STG_S_CONVERTED Aliran yang ada dengan nama yang ditentukan diganti dengan objek penyimpanan baru yang berisi satu aliran yang disebut CONTENTS. Objek penyimpanan baru akan ditambahkan.

Keterangan

Jika penyimpanan dengan nama yang ditentukan dalam parameter pwcsName sudah ada dalam objek penyimpanan induk, dan parameter grfMode menyertakan bendera STGM_CREATE, penyimpanan yang ada digantikan oleh yang baru. Jika parameter grfMode menyertakan bendera STGM_CONVERT, elemen yang ada dikonversi ke objek aliran bernama CONTENTS dan objek penyimpanan baru dibuat yang berisi objek aliran CONTENTS. Penghancuran elemen lama dan pembuatan objek penyimpanan baru keduanya tunduk pada mode transaksi pada objek penyimpanan induk. Ketahuilah bahwa Anda tidak dapat menggunakan STGM_CONVERT jika Anda juga menggunakan STGM_CREATE.

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

  • Bendera STGM_PRIORITY untuk penyimpanan nonroot.
  • Membuka objek penyimpanan yang sama lebih dari sekali dari penyimpanan induk yang sama. Bendera STGM_SHARE_EXCLUSIVE harus ditentukan.
  • Bendera STGM_DELETEONRELEASE. Jika bendera ini ditentukan, fungsi mengembalikan STG_E_INVALIDFLAG.
Jika objek penyimpanan dengan nama yang sama 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 Campuran

IStorage::OpenStorage