Bagikan melalui


Fungsi CoRegisterInitializeSpy (objbase.h)

Mendaftarkan implementasi antarmuka IInitializeSpy . Antarmuka IInitializeSpy ditolak untuk memungkinkan pengembang melakukan inisialisasi dan pembersihan di apartemen COM.

Sintaks

HRESULT CoRegisterInitializeSpy(
  [in]  IInitializeSpy *pSpy,
  [out] ULARGE_INTEGER *puliCookie
);

Parameter

[in] pSpy

Penunjuk ke instans implementasi IInitializeSpy .

[out] puliCookie

Alamat untuk menyimpan cookie yang mengidentifikasi pendaftaran ini.

Nilai kembali

Fungsi ini dapat mengembalikan nilai pengembalian standar E_INVALIDARG, serta nilai berikut.

Menampilkan kode Deskripsi
S_OK
Objek berhasil didaftarkan.
E_NOINTERFACE
Objek tidak mendukung IInitializeSpy.

Keterangan

Fungsi CoRegisterInitializeSpy mendaftarkan implementasi antarmuka IInitializeSpy , yang mendefinisikan 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 terjadi hanya setelah pendaftaran terjadi pada utas ini. Misalnya, jika CoInitializeEx dipanggil sebelum CoRegisterInitializeSpy, 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 saat ini (tidak berlapis) 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 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header objbase.h
Pustaka Ole32.lib
DLL Ole32.dll

Lihat juga

CoRevokeInitializeSpy

IInitializeSpy