IMessageFilter::RetryRejectedCall-Methode (objidl.h)
Bietet Anwendungen die Möglichkeit, ein Dialogfeld anzuzeigen, das Optionen für Wiederholungen, Abbrechen oder Aufgabenwechsel bietet.
Syntax
DWORD RetryRejectedCall(
[in] HTASK htaskCallee,
[in] DWORD dwTickCount,
[in] DWORD dwRejectType
);
Parameter
[in] htaskCallee
Die Thread-ID der aufgerufenen Anwendung.
[in] dwTickCount
Die Anzahl der verstrichenen Ticks seit dem Anruf.
[in] dwRejectType
Gibt entweder SERVERCALL_REJECTED oder SERVERCALL_RETRYLATER an, wie von der Objektanwendung zurückgegeben.
Rückgabewert
Diese Methode kann die folgenden Werte zurückgeben.
Rückgabewert | BESCHREIBUNG |
---|---|
|
Der Anruf sollte abgebrochen werden. COM gibt dann RPC_E_CALL_REJECTED aus dem ursprünglichen Methodenaufruf zurück. |
|
Der Aufruf soll sofort wiederholt werden. |
|
COM wartet auf diese Anzahl von Millisekunden und wiederholt den Aufruf. |
Hinweise
COM ruft RetryRejectedCall auf der IMessageFilter-Schnittstelle des Aufrufers auf, unmittelbar nachdem SERVERCALL_RETRYLATER oder SERVERCALL_REJECTED von der IMessageFilter::HandleInComingCall-Methode auf der IMessageFilter-Schnittstelle des Aufgerufenen empfangen wurde.
Wenn eine aufgerufene Aufgabe einen Aufruf ablehnt, befindet sich die Anwendung wahrscheinlich in einem Zustand, in dem sie solche Aufrufe nicht verarbeiten kann, möglicherweise nur vorübergehend. In diesem Fall kehrt COM zum Aufrufer zurück und gibt RetryRejectedCall aus, um zu bestimmen, ob der abgelehnte Aufruf wiederholt werden soll.
Anwendungen sollten Aufrufe, die mit SERVERCALL_RETRYLATER zurückgegeben wurden, automatisch wiederholen. Wenn nach einer angemessenen Zeitspanne etwa 30 Sekunden vergangen ist, sollte die Anwendung das ausgelastete Dialogfeld anzeigen. Eine Standardimplementierung dieses Dialogfelds ist in der OLEDLG-Bibliothek verfügbar. Der Aufgerufene kann sich vorübergehend in einem Zustand befinden, in dem Anrufe verarbeitet werden können. Die Option zum Warten und Wiederholen von Anwendungen wird für spezielle Arten von aufrufenden Anwendungen bereitgestellt, z. B. Hintergrundaufgaben, die Makros oder Skripts ausführen, sodass sie die Aufrufe auf nichtintrusive Weise wiederholen können.
Wenn der Benutzer nach dem Anzeigen eines Dialogfelds den Vorgang abbrechen möchte, gibt RetryRejectedCall -1 zurück, und der Aufruf scheint mit RPC_E_CALL_REJECTED fehlzuschlagen.
Wenn ein Client IMessageFilter implementiert und eine Servermethode auf einem Remotecomputer aufruft, wird RetryRejectedCall nicht aufgerufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | objidl.h |