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