Metodo IMessageFilter::HandleInComingCall (objidl.h)
Fornisce un singolo punto di ingresso per le chiamate in ingresso.
Questo metodo viene chiamato prima di ogni chiamata al metodo proveniente dall'esterno del processo corrente e fornisce la possibilità di filtrare o rifiutare chiamate in ingresso (o callback) a un oggetto o a un processo.
Sintassi
DWORD HandleInComingCall(
[in] DWORD dwCallType,
[in] HTASK htaskCaller,
[in] DWORD dwTickCount,
[in] LPINTERFACEINFO lpInterfaceInfo
);
Parametri
[in] dwCallType
Tipo di chiamata in ingresso ricevuta. I valori possibili provengono dall'enumerazione CALLTYPE.
[in] htaskCaller
ID thread del chiamante.
[in] dwTickCount
Numero di tick trascorso dal momento che è stata effettuata la chiamata in uscita, se dwCallType non è CALLTYPE_TOPLEVEL. Se dwCallType è CALLTYPE_TOPLEVEL, dwTickCount deve essere ignorato.
[in] lpInterfaceInfo
Puntatore a una struttura INTERFACEINFO che identifica l'oggetto, l'interfaccia e il metodo da chiamare. Nel caso di chiamate DDE, lpInterfaceInfo può essere NULL perché il livello DDE non restituisce informazioni sull'interfaccia.
Valore restituito
Questo metodo può restituire i valori seguenti.
Codice restituito | Descrizione |
---|---|
|
L'applicazione potrebbe essere in grado di elaborare la chiamata. |
|
L'applicazione non può gestire la chiamata a causa di un problema imprevisto, ad esempio l'indisponibilità della rete o se si trova nel processo di terminazione. |
|
L'applicazione non può gestire la chiamata in questo momento. Un'applicazione potrebbe restituire questo valore quando si trova in uno stato modale controllato dall'utente. |
Commenti
Se implementato, HandleInComingCall viene chiamato da COM quando viene ricevuto un messaggio COM in ingresso.
A seconda dello stato corrente di un'applicazione, una chiamata viene accettata e elaborata o rifiutata (in modo permanente o temporaneo). Se SERVERCALL_ISHANDLED viene restituito, l'applicazione può essere in grado di elaborare la chiamata, anche se l'esito positivo dipende dall'interfaccia per cui viene destinata la chiamata. Se la chiamata non può essere elaborata, COM restituisce RPC_E_CALL_REJECTED.
Le chiamate sincronizzate e asincrone di input vengono inviate anche se l'applicazione restituisce SERVERCALL_REJECTED o SERVERCALL_RETRYLATER.
HandleInComingCall non deve essere usato per contenere gli aggiornamenti agli oggetti durante operazioni come la stampa a banda. A tale scopo, usare IViewObject::Freeze.
È anche possibile usare HandleInComingCall per configurare lo stato dell'applicazione in modo che la chiamata possa essere elaborata in futuro.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | objidl.h |