Share via


IMessageFilter::HandleInComingCall 메서드(objidl.h)

들어오는 호출에 대한 단일 진입점을 제공합니다.

이 메서드는 현재 프로세스 외부에서 시작된 각 메서드 호출 전에 호출되며 들어오는 호출(또는 콜백)을 개체 또는 프로세스에 필터링하거나 거부하는 기능을 제공합니다.

구문

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

매개 변수

[in] dwCallType

수신된 수신 전화의 유형입니다. 가능한 값은 열거형 CALLTYPE에서 가져옵니다.

[in] htaskCaller

호출자의 스레드 ID입니다.

[in] dwTickCount

dwCallType이 CALLTYPE_TOPLEVEL 않은 경우 나가는 호출 이후 경과된 틱 수입니다. dwCallType이 CALLTYPE_TOPLEVEL 경우 dwTickCount를 무시해야 합니다.

[in] lpInterfaceInfo

호출되는 개체, 인터페이스 및 메서드를 식별하는 INTERFACEINFO 구조체에 대한 포인터입니다. DDE 호출의 경우 DDE 계층이 인터페이스 정보를 반환하지 않으므로 lpInterfaceInfoNULL 일 수 있습니다.

반환 값

이 메서드는 다음 값을 반환할 수 있습니다.

반환 코드 설명
SERVERCALL_ISHANDLED
애플리케이션이 호출을 처리할 수 있습니다.
SERVERCALL_REJECTED
애플리케이션은 네트워크 사용 불가와 같은 예기치 않은 문제 또는 종료 중인 경우 호출을 처리할 수 없습니다.
SERVERCALL_RETRYLATER
애플리케이션은 현재 호출을 처리할 수 없습니다. 애플리케이션은 사용자가 제어하는 모달 상태일 때 이 값을 반환할 수 있습니다.

설명

구현된 경우 들어오는 COM 메시지를 받으면 COM에서 HandleInComingCall 을 호출합니다.

애플리케이션의 현재 상태에 따라 호출이 수락되고 처리되거나 거부됩니다(영구적으로 또는 일시적으로). SERVERCALL_ISHANDLED 반환되는 경우 애플리케이션은 호출을 처리할 수 있지만 성공 여부는 호출을 대상으로 하는 인터페이스에 따라 달라집니다. 호출을 처리할 수 없는 경우 COM은 RPC_E_CALL_REJECTED 반환합니다.

애플리케이션이 SERVERCALL_REJECTED 반환하거나 SERVERCALL_RETRYLATER 경우에도 입력 동기화 및 비동기 호출이 디스패치됩니다.

HandleInComingCall 은 대역 인쇄와 같은 작업 중에 개체에 대한 업데이트를 보류하는 데 사용하면 안 됩니다. 이를 위해 IViewObject::Freeze를 사용합니다.

HandleInComingCall을 사용하여 나중에 호출을 처리할 수 있도록 애플리케이션 상태를 설정할 수도 있습니다.

참고htaskCaller 매개 변수는 HTASK로 형식화되지만 호출 스레드의 스레드 ID를 포함합니다. IMessageFilter 인터페이스를 구현할 때 OpenThread 함수를 호출하여 htaskCaller 매개 변수에서 스레드 핸들을 가져오고 GetProcessIdOfThread 함수를 호출하여 프로세스 ID를 가져올 수 있습니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 objidl.h

추가 정보

IMessageFilter