Méthode IMessageFilter ::HandleInComingCall (objidl.h)
Fournit un point d’entrée unique pour les appels entrants.
Cette méthode est appelée avant chaque appel de méthode provenant de l’extérieur du processus en cours et offre la possibilité de filtrer ou de rejeter les appels entrants (ou rappels) à un objet ou à un processus.
Syntaxe
DWORD HandleInComingCall(
[in] DWORD dwCallType,
[in] HTASK htaskCaller,
[in] DWORD dwTickCount,
[in] LPINTERFACEINFO lpInterfaceInfo
);
Paramètres
[in] dwCallType
Type d’appel entrant reçu. Les valeurs possibles proviennent de l’énumération CALLTYPE.
[in] htaskCaller
ID de thread de l’appelant.
[in] dwTickCount
Nombre de graduations écoulés depuis l’appel sortant, si dwCallType n’est pas CALLTYPE_TOPLEVEL. Si dwCallType est CALLTYPE_TOPLEVEL, dwTickCount doit être ignoré.
[in] lpInterfaceInfo
Pointeur vers une structure INTERFACEINFO qui identifie l’objet, l’interface et la méthode appelés. Dans le cas d’appels DDE, lpInterfaceInfo peut avoir la valeur NULL , car la couche DDE ne retourne pas d’informations d’interface.
Valeur retournée
Cette méthode peut retourner les valeurs suivantes.
Code de retour | Description |
---|---|
|
L’application peut être en mesure de traiter l’appel. |
|
L’application ne peut pas gérer l’appel en raison d’un problème imprévu, tel que l’indisponibilité du réseau, ou s’il est en cours de fin. |
|
L’application ne peut pas gérer l’appel pour le moment. Une application peut retourner cette valeur lorsqu’elle est dans un état modal contrôlé par l’utilisateur. |
Remarques
S’il est implémenté, HandleInComingCall est appelé par COM lorsqu’un message COM entrant est reçu.
Selon l’état actuel d’une application, un appel est accepté et traité ou rejeté (définitivement ou temporairement). Si SERVERCALL_ISHANDLED est retourné, l’application peut être en mesure de traiter l’appel, bien que la réussite dépend de l’interface pour laquelle l’appel est destiné. Si l’appel ne peut pas être traité, COM retourne RPC_E_CALL_REJECTED.
Les appels synchronisés en entrée et asynchrones sont distribués même si l’application retourne SERVERCALL_REJECTED ou SERVERCALL_RETRYLATER.
HandleInComingCall ne doit pas être utilisé pour bloquer les mises à jour des objets pendant des opérations telles que l’impression de bande. À cet effet, utilisez IViewObject ::Freeze.
Vous pouvez également utiliser HandleInComingCall pour configurer l’état de l’application afin que l’appel puisse être traité ultérieurement.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | objidl.h |