Fungsi OleCreate (ole2.h)
Membuat objek tersemat yang diidentifikasi oleh CLSID. Anda biasanya menggunakannya untuk mengimplementasikan item menu yang memungkinkan pengguna akhir menyisipkan objek baru.
Sintaks
HRESULT OleCreate(
[in] REFCLSID rclsid,
[in] REFIID riid,
[in] DWORD renderopt,
[in] LPFORMATETC pFormatEtc,
[in] LPOLECLIENTSITE pClientSite,
[in] LPSTORAGE pStg,
[out] LPVOID *ppvObj
);
Parameter
[in] rclsid
CLSID dari objek yang disematkan yang akan dibuat.
[in] riid
Referensi ke pengidentifikasi antarmuka, biasanya IID_IOleObject (didefinisikan dalam header OLE sebagai pengidentifikasi antarmuka untuk IOleObject), di mana pemanggil akan berkomunikasi dengan objek baru.
[in] renderopt
Nilai dari enumerasi OLERENDER, menunjukkan kemampuan menggambar yang di-cache secara lokal yang harus dimiliki objek yang baru dibuat. Nilai OLERENDER yang dipilih memengaruhi nilai yang mungkin untuk parameter pFormatEtc .
[in] pFormatEtc
Bergantung pada bendera OLERENDER mana yang digunakan sebagai nilai renderopt, penunjuk ke salah satu nilai enumerasi FORMATETC . Lihat enumerasi OLERENDER untuk pembatasan. Parameter ini, bersama dengan parameter renderopt , menentukan apa yang awalnya dapat di-cache objek baru.
[in] pClientSite
Jika Anda ingin OleCreate memanggil IOleObject::SetClientSite, arahkan ke antarmuka IOleClientSite pada kontainer. Nilainya mungkin NULL, dalam hal ini Anda harus secara khusus memanggil IOleObject::SetClientSite sebelum mencoba operasi.
[in] pStg
Arahkan ke instans antarmuka IStorage pada objek penyimpanan. Parameter ini mungkin bukan NULL.
[out] ppvObj
Alamat variabel pointer yang menerima pointer antarmuka yang diminta dalam riid. Setelah berhasil kembali, *ppvObject berisi penunjuk antarmuka yang diminta.
Nilai kembali
Fungsi ini mengembalikan S_OK pada keberhasilan dan mendukung nilai pengembalian standar E_OUTOFMEMORY.
Menampilkan kode | Deskripsi |
---|---|
|
Memori untuk operasi tidak cukup. |
Keterangan
Fungsi OleCreate membuat objek tersemat baru, dan biasanya dipanggil untuk mengimplementasikan item menu Sisipkan Objek Baru. Saat OleCreate kembali, objek yang dibuatnya kosong (tidak berisi data), kecuali renderopt OLERENDER_DRAW atau OLERENDER_FORMAT, dan dimuat. Kontainer biasanya kemudian memanggil fungsi OleRun atau IOleObject::D oVerb untuk menampilkan objek untuk pengeditan awal.
Parameter rclsid menentukan CLSID dari objek yang diminta. CLS objek terdaftar disimpan dalam registri sistem. Saat pengguna aplikasi memilih Sisipkan Objek, kotak pilihan memungkinkan pengguna untuk memilih jenis objek yang diinginkan dari yang ada di registri. Saat OleCreate digunakan untuk mengimplementasikan item menu Sisipkan Objek, CLSID yang terkait dengan item yang dipilih ditetapkan ke parameter rclsid OleCreate.
Parameter riid menentukan antarmuka yang akan digunakan klien untuk berkomunikasi dengan objek baru. Setelah berhasil dikembalikan, parameter ppvObject memegang pointer ke antarmuka yang diminta.
Cache objek yang dibuat berisi informasi yang memungkinkan presentasi objek yang terkandung saat kontainer dibuka. Informasi tentang apa yang harus di-cache diteruskan dalam nilai renderopt dan pFormatetc . Saat OleCreate kembali, cache objek yang dibuat belum tentu diisi. Sebaliknya, cache diisi saat pertama kali objek memasuki status berjalan. Pemanggil dapat menambahkan kontrol cache tambahan dengan panggilan ke IOleCache::Cache setelah pengembalian OleCreate dan sebelum objek dijalankan. Jika renderopt OLERENDER_DRAW atau OLERENDER_FORMAT, OleCreate mengharuskan objek mendukung antarmuka IOleCache . Tidak ada persyaratan seperti itu untuk nilai renderopt lainnya.
Jika pClientSite bukan NULL, OleCreate memanggil IOleObject::SetClientSite melalui penunjuk pClientSite . IOleClientSite adalah antarmuka utama tempat objek meminta layanan dari kontainernya. Jika pClientSiteADALAH NULL, Anda harus melakukan panggilan tertentu ke IOleObject::SetClientSite sebelum mencoba operasi apa pun.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | ole2.h (termasuk Ole2.h) |
Pustaka | Ole32.lib |
DLL | Ole32.dll |