Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mendaftarkan implementasi antarmuka IInitializeSpy . Antarmuka IInitializeSpy didefinisikan untuk memungkinkan pengembang melakukan inisialisasi dan pembersihan pada apartemen COM.
Syntax
HRESULT CoRegisterInitializeSpy(
[in] IInitializeSpy *pSpy,
[out] ULARGE_INTEGER *puliCookie
);
Parameter-parameternya
[in] pSpy
Penunjuk ke instans implementasi IInitializeSpy .
[out] puliCookie
Alamat untuk menyimpan cookie yang mengidentifikasi pendaftaran ini.
Mengembalikan nilai
Fungsi ini dapat mengembalikan nilai pengembalian standar E_INVALIDARG, serta nilai berikut.
| Mengembalikan kode | Description |
|---|---|
|
Objek berhasil didaftarkan. |
|
Objek tidak mendukung IInitializeSpy. |
Komentar
Fungsi CoRegisterInitializeSpy mendaftarkan implementasi antarmuka IInitializeSpy , yang menentukan metode yang akan dipanggil ketika CoInitializeEx (atau CoInitialize) atau CoUninitialize dipanggil.
CoRegisterInitializeSpy memanggil QueryInterface untuk IID_InitializeSpy di pSpy. Ini menyimpan alamat penunjuk antarmuka yang dikembalikan dalam penyimpanan khusus utas yang independen dari status inisialisasi COM untuk utas ini. Setelah berhasil, ia menyimpan di puliCookie cookie ULARGE_INTEGER yang mewakili pendaftaran ini. Teruskan cookie ini ke CoRevokeInitializeSpy untuk mencabut pendaftaran.
Implementasi IInitializeSpy harus menangani masalah berlapis yang disebabkan oleh panggilan CoInitializeEx atau CoUninitialize dari dalam metode pemberitahuan. Pemberitahuan hanya terjadi setelah pendaftaran terjadi pada utas ini. Misalnya, jika CoInitializeEx dipanggil sebelum CoRegisterInitializeSpy, maka metode pemberitahuan PreInitialize dan PostInitialize tidak akan dipanggil.
Metode pemberitahuan tidak boleh menyebabkan kegagalan CoInitializeEx atau CoUninitialize dengan melemparkan pengecualian. Implementasi IInitializeSpy tidak boleh menyebarluaskan pengecualian ke kode yang memanggil CoInitializeEx atau CoUninitialize.
Tidak dapat diprediksi apakah panggilan ke CoRegisterInitializeSpy dari dalam panggilan metode IInitializeSpy akan efektif selama panggilan tingkat atas (non-berlapis) saat ini ke CoInitializeEx atau CoUninitialize. Implementasi terdaftar IInitializeSpy akan selalu efektif untuk panggilan tingkat atas di masa mendatang ke CoInitializeEx atau CoUninitialize.
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows XP dengan SP1 [khusus aplikasi desktop] |
| Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
| Platform Target | Windows |
| Header | objbase.h |
| Library | Ole32.lib |
| DLL | Ole32.dll |