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 지정합니다.
반환 값
이 메서드는 다음 값을 반환할 수 있습니다.
반환 값 | Description |
---|---|
|
호출을 취소해야 합니다. 그런 다음 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 |