IMessageFilter::HandleInComingCall メソッド (objidl.h)

着信呼び出しの 1 つのエントリ ポイントを提供します。

このメソッドは、現在のプロセスの外部から発信される各メソッド呼び出しの前に呼び出され、オブジェクトまたはプロセスへの着信呼び出し (またはコールバック) をフィルター処理または拒否する機能を提供します。

構文

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
現時点では、アプリケーションは呼び出しを処理できません。 アプリケーションは、ユーザーが制御するモーダル状態の場合に、この値を返す場合があります。

注釈

実装されている場合、 HandleInComingCall は、受信 COM メッセージの受信時に COM によって呼び出されます。

アプリケーションの現在の状態に応じて、呼び出しは受け入れられ、処理されるか拒否されます (永続的または一時的)。 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