Bagikan melalui


Fungsi CoRegisterInitializeSpy (objbase.h)

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
S_OK
Objek berhasil didaftarkan.
E_NOINTERFACE
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

Lihat juga

CoRevokeInitializeSpy

IInitializeSpy