Bagikan melalui


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

Lihat juga

FORMATETC

IOleClientSite

IOleObject

OLERENDER