Bagikan melalui


Metode IMessageFilter::HandleInComingCall (objidl.h)

Menyediakan satu titik masuk untuk panggilan masuk.

Metode ini dipanggil sebelum setiap pemanggilan metode yang berasal dari luar proses saat ini dan menyediakan kemampuan untuk memfilter atau menolak panggilan masuk (atau panggilan balik) ke objek atau proses.

Sintaks

DWORD HandleInComingCall(
  [in] DWORD           dwCallType,
  [in] HTASK           htaskCaller,
  [in] DWORD           dwTickCount,
  [in] LPINTERFACEINFO lpInterfaceInfo
);

Parameter

[in] dwCallType

Jenis panggilan masuk yang telah diterima. Nilai yang mungkin berasal dari enumerasi CALLTYPE.

[in] htaskCaller

Id utas pemanggil.

[in] dwTickCount

Jumlah centang yang berlalu sejak panggilan keluar dilakukan, jika dwCallType tidak CALLTYPE_TOPLEVEL. Jika dwCallType CALLTYPE_TOPLEVEL, dwTickCount harus diabaikan.

[in] lpInterfaceInfo

Penunjuk ke struktur INTERFACEINFO yang mengidentifikasi objek, antarmuka, dan metode yang dipanggil. Dalam kasus panggilan DDE, lpInterfaceInfo bisa NULL karena lapisan DDE tidak mengembalikan informasi antarmuka.

Nilai kembali

Metode ini dapat mengembalikan nilai berikut.

Menampilkan kode Deskripsi
SERVERCALL_ISHANDLED
Aplikasi mungkin dapat memproses panggilan.
SERVERCALL_REJECTED
Aplikasi tidak dapat menangani panggilan karena masalah yang tidak terduga, seperti tidak tersedianya jaringan, atau jika sedang dalam proses penghentian.
SERVERCALL_RETRYLATER
Aplikasi tidak dapat menangani panggilan saat ini. Aplikasi mungkin mengembalikan nilai ini ketika berada dalam status modal yang dikontrol pengguna.

Keterangan

Jika diimplementasikan, HandleInComingCall dipanggil oleh COM saat pesan COM masuk diterima.

Tergantung pada status aplikasi saat ini, panggilan diterima dan diproses atau ditolak (secara permanen atau sementara). Jika SERVERCALL_ISHANDLED dikembalikan, aplikasi mungkin dapat memproses panggilan, meskipun keberhasilan tergantung pada antarmuka yang panggilannya ditujukan. Jika panggilan tidak dapat diproses, COM mengembalikan RPC_E_CALL_REJECTED.

Panggilan yang disinkronkan input dan asinkron dikirim meskipun aplikasi mengembalikan SERVERCALL_REJECTED atau SERVERCALL_RETRYLATER.

HandleInComingCall tidak boleh digunakan untuk menunda pembaruan pada objek selama operasi seperti pencetakan pita. Untuk tujuan tersebut, gunakan IViewObject::Freeze.

Anda juga dapat menggunakan HandleInComingCall untuk menyiapkan status aplikasi sehingga panggilan dapat diproses di masa mendatang.

Catatan Meskipun parameter htaskCaller diketik sebagai HTASK, parameter tersebut berisi id utas dari utas panggilan. Saat Anda menerapkan antarmuka IMessageFilter , Anda dapat memanggil fungsi OpenThread untuk mendapatkan handel utas dari parameter htaskCaller , dan Anda dapat memanggil fungsi GetProcessIdOfThread untuk mendapatkan id proses.
 

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 objidl.h

Lihat juga

IMessageFilter