Bagikan melalui


Metode IMessageFilter::RetryRejectedCall (objidl.h)

Memberi aplikasi kesempatan untuk menampilkan kotak dialog yang menawarkan opsi coba lagi, batalkan, atau pengalihan tugas.

Sintaks

DWORD RetryRejectedCall(
  [in] HTASK htaskCallee,
  [in] DWORD dwTickCount,
  [in] DWORD dwRejectType
);

Parameter

[in] htaskCallee

Id utas dari aplikasi yang disebut.

[in] dwTickCount

Jumlah tanda centang yang berlalu sejak panggilan dilakukan.

[in] dwRejectType

Menentukan SERVERCALL_REJECTED atau SERVERCALL_RETRYLATER, seperti yang dikembalikan oleh aplikasi objek.

Menampilkan nilai

Metode ini dapat mengembalikan nilai berikut.

Mengembalikan nilai Deskripsi
-1
Panggilan harus dibatalkan. COM kemudian mengembalikan RPC_E_CALL_REJECTED dari panggilan metode asli.
0 nilai< ≤ 100
Panggilan akan segera dicoba kembali.
Nilai 100 ≤
COM akan menunggu sekian milidetik ini dan kemudian mencoba kembali panggilan.

Keterangan

COM memanggil RetryRejectedCall pada antarmuka IMessageFilter penelepon segera setelah menerima SERVERCALL_RETRYLATER atau SERVERCALL_REJECTED dari metode IMessageFilter::HandleInComingCall pada antarmuka IMessageFilter callee.

Jika tugas yang dipanggil menolak panggilan, aplikasi mungkin dalam keadaan di mana ia tidak dapat menangani panggilan tersebut, mungkin hanya untuk sementara. Ketika ini terjadi, COM kembali ke pemanggil dan mengeluarkan RetryRejectedCall untuk menentukan apakah com harus mencoba kembali panggilan yang ditolak.

Aplikasi harus secara diam-diam mencoba kembali panggilan yang telah kembali dengan SERVERCALL_RETRYLATER. Jika, setelah waktu yang wajar berlalu, katakanlah sekitar 30 detik, aplikasi harus menampilkan kotak dialog yang sibuk; implementasi standar kotak dialog ini tersedia di pustaka OLEDLG. Penerima panggilan mungkin sesaat berada dalam status di mana panggilan dapat ditangani. Opsi untuk menunggu dan mencoba kembali disediakan untuk jenis aplikasi panggilan khusus, seperti tugas latar belakang yang menjalankan makro atau skrip, sehingga mereka dapat mencoba kembali panggilan dengan cara yang tidak mengganggu.

Jika, setelah kotak dialog ditampilkan, pengguna memilih untuk membatalkan, RetryRejectedCall mengembalikan -1 dan panggilan akan tampak gagal dengan RPC_E_CALL_REJECTED.

Jika klien menerapkan IMessageFilter dan memanggil metode server pada komputer jarak jauh, RetryRejectedCall tidak akan dipanggil.

Catatan Meskipun parameter htaskCallee diketik sebagai HTASK, parameter tersebut berisi id utas dari utas yang disebut. Saat Anda menerapkan antarmuka IMessageFilter , Anda dapat memanggil fungsi OpenThread untuk mendapatkan handel utas dari parameter htaskCallee , 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