Fungsi OleInitialize (ole2.h)

Menginisialisasi pustaka COM di apartemen saat ini, mengidentifikasi model konkurensi sebagai apartemen utas tunggal (STA), dan memungkinkan fungsionalitas tambahan yang dijelaskan di bagian Keterangan di bawah ini. Aplikasi harus menginisialisasi pustaka COM sebelum dapat memanggil fungsi pustaka COM selain fungsi CoGetMalloc dan alokasi memori.

Sintaks

HRESULT OleInitialize(
  [in] LPVOID pvReserved
);

Parameter

[in] pvReserved

Parameter ini dicadangkan dan harus NULL.

Nilai kembali

Fungsi ini mengembalikan S_OK pada keberhasilan. Nilai lain yang mungkin termasuk yang berikut ini.

Menampilkan kode Deskripsi
S_FALSE
Pustaka COM sudah diinisialisasi di apartemen ini.
OLE_E_WRONGCOMPOBJ
Versi COMPOBJ.DLL dan OLE2.DLL pada komputer Anda tidak kompatibel satu sama lain.
RPC_E_CHANGED_MODE
Panggilan sebelumnya ke CoInitializeEx menentukan model konkurensi untuk apartemen ini sebagai apartemen multithread (MTA). Ini juga bisa berarti bahwa perubahan dari apartemen berulir netral ke apartemen berulir tunggal terjadi.

Keterangan

Aplikasi yang menggunakan fungsionalitas berikut harus memanggil OleInitialize sebelum memanggil fungsi lain di pustaka COM:

  • Clipboard
  • Seret dan Lepaskan
  • Penautan dan penyematan objek (OLE)
  • Aktivasi di tempat
OleInitialize memanggil CoInitializeEx secara internal untuk menginisialisasi pustaka COM di apartemen saat ini. Karena operasi OLE tidak aman untuk utas, OleInitialize menentukan model konkurensi sebagai apartemen utas tunggal.

Setelah model konkurensi untuk apartemen ditetapkan, model tersebut tidak dapat diubah. Panggilan ke OleInitialize di apartemen yang sebelumnya diinisialisasi sebagai multithreaded akan gagal dan kembali RPC_E_CHANGED_MODE.

Anda perlu menginisialisasi pustaka COM di apartemen sebelum Anda memanggil salah satu fungsi pustaka kecuali CoGetMalloc, untuk mendapatkan penunjuk ke alokator standar, dan fungsi alokasi memori.

Biasanya, pustaka COM diinisialisasi di apartemen hanya sekali. Panggilan berikutnya akan berhasil, selama mereka tidak mencoba mengubah model konkurensi apartemen, tetapi akan kembali S_FALSE. Untuk menutup pustaka COM dengan anggun, setiap panggilan yang berhasil ke OleInitialize, termasuk yang mengembalikan S_FALSE, harus diseimbangkan dengan panggilan yang sesuai ke OleUninitialize.

Karena tidak ada cara untuk mengontrol urutan di mana server dalam proses dimuat atau dibongkar, jangan panggil OleInitialize atau OleUninitialize dari fungsi DllMain .

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
Pustaka Ole32.lib
DLL Ole32.dll
Set API ext-ms-win-com-ole32-l1-1-0 (diperkenalkan dalam Windows 8)

Lihat juga

CoInitializeEx

OleInitialize

OleUninitialize