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 |
---|---|
|
Pustaka COM sudah diinisialisasi di apartemen ini. |
|
Versi COMPOBJ.DLL dan OLE2.DLL pada komputer Anda tidak kompatibel satu sama lain. |
|
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
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) |