IMessageFilter::RetryRejectedCall 方法 (objidl.h)
为应用程序提供显示提供重试、取消或任务切换选项的对话框的机会。
语法
DWORD RetryRejectedCall(
[in] HTASK htaskCallee,
[in] DWORD dwTickCount,
[in] DWORD dwRejectType
);
参数
[in] htaskCallee
被调用应用程序的线程 ID。
[in] dwTickCount
自调用以来经过的计时周期数。
[in] dwRejectType
指定对象应用程序返回的SERVERCALL_REJECTED或SERVERCALL_RETRYLATER。
返回值
此方法可以返回以下值。
返回值 | 说明 |
---|---|
|
应取消调用。 然后,COM 从原始方法调用返回RPC_E_CALL_REJECTED。 |
|
将立即重试该调用。 |
|
COM 将等待此毫秒,然后重试调用。 |
注解
COM 在从被调用方的 IMessageFilter 接口上的 IMessageFilter::HandleInComingCall 方法收到SERVERCALL_RETRYLATER或SERVERCALL_REJECTED后,立即在调用方的 IMessageFilter 接口上调用 RetryRejectedCall。
如果被调用的任务拒绝调用,则应用程序可能处于无法处理此类调用的状态,可能只是暂时的。 发生这种情况时,COM 将返回到调用方并发出 RetryRejectedCall ,以确定它是否应重试拒绝的呼叫。
应用程序应以无提示方式重试使用 SERVERCALL_RETRYLATER 返回的调用。 如果经过合理的时间后,例如大约 30 秒,应用程序应显示忙碌对话框;OLEDLG 库中提供了此对话框的标准实现。 被调用方可能暂时处于可以处理调用的状态。 为特殊类型的调用应用程序(例如执行宏或脚本的后台任务)提供了等待和重试选项,以便它们以非侵入性方式重试调用。
如果在显示对话框后,用户选择取消, RetryRejectedCall 将返回 -1,并且调用将显示为失败并RPC_E_CALL_REJECTED。
如果客户端实现 IMessageFilter 并在远程计算机上调用服务器方法,则不会调用 RetryRejectedCall 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | objidl.h |