Freigeben über


IAgentCharacter::Activate

[Der Microsoft-Agent ist ab Windows 7 veraltet und kann in nachfolgenden Versionen von Windows nicht verfügbar sein.]

HRESULT Activate(
   short sState, // topmost character or client setting
);

Legt fest, ob ein Client aktiv ist oder ein Zeichen ganz oben ist.

  • Gibt S_OK zurück, um anzugeben, dass der Vorgang erfolgreich war.
  • Gibt S_FALSE zurück, um anzugeben, dass der Vorgang nicht erfolgreich war.

sState-

Sie können die folgenden Werte für diesen Parameter angeben:

Wert Beschreibung
0 Wird nicht als aktiver Client festgelegt.
1 Als aktiver Client festgelegt.
2 Erstellen Sie das oberste Zeichen.

 

Wenn mehrere Zeichen sichtbar sind, empfängt jeweils nur eines der Zeichen Spracheingaben. Wenn mehrere Clientanwendungen dasselbe Zeichen gemeinsam nutzen, empfängt nur einer der Clients gleichzeitig Mauseingaben (z. B. Klick- oder Ziehereignisse des Microsoft Agent-Steuerelements). Der Zeichensatz zum Empfangen von Maus- und Spracheingaben ist das oberste Zeichen, und der Client, der Eingaben empfängt, ist der aktive Client des Zeichens. (Das Fenster des obersten Zeichens wird auch oben im Z-Reihenfolge des Zeichenfensters angezeigt.) In der Regel bestimmt der Benutzer, welches Zeichen ganz oben ist, indem er es explizit auswählt. Die oberste Aktivierung ändert sich jedoch auch, wenn ein Zeichen angezeigt oder ausgeblendet wird (das Zeichen wird bzw. ist nicht mehr ganz oben).)

Sie können diese Methode auch verwenden, um explizit zu verwalten, wenn Ihr Client Eingaben empfängt, die an das Zeichen weitergeleitet werden, z. B. wenn die Anwendung selbst aktiv wird. Wenn Sie z. B. Status auf 2 festlegen, wird das Zeichen ganz oben angezeigt, und Ihr Client empfängt alle Maus- und Spracheingabeereignisse, die von der Benutzerinteraktion mit dem Zeichen generiert werden. Daher wird ihr Client auch zum eingabeaktiven Client des Zeichens. Sie können den aktiven Client jedoch auch für ein Zeichen festlegen, ohne das Zeichen ganz oben festzulegen, indem Sie Status auf 1 festlegen. Auf diese Weise kann Ihr Client Eingaben empfangen, die an dieses Zeichen weitergeleitet werden, wenn das Zeichen ganz oben wird. Ebenso können Sie festlegen, dass Ihr Client nicht der aktive Client ist (um keine Eingabe zu empfangen), wenn das Zeichen ganz oben angezeigt wird, indem Sie Status auf 0 festlegen. Sie können ermitteln, ob ein Zeichen andere aktuelle Clients mit IAgentCharacter::HasOtherClientshat.

Vermeiden Sie das direkte Aufrufen dieser Methode nach einer Show-Methode. " anzeigen" legt den eingabeaktiven Client automatisch fest. Wenn das Zeichen ausgeblendet ist, schlägt der aufruf Activate möglicherweise fehl, wenn es verarbeitet wird, bevor die Show-Methode abgeschlossen ist.

Wenn Sie versuchen, diese Methode mit dem Parameter State auf 2 (wenn das angegebene Zeichen ausgeblendet ist) aufzurufen, tritt ein Fehler auf. Wenn Sie Status auf 0 festlegen und Ihre Anwendung der einzige Client ist, schlägt dieser Aufruf fehl. Ein Zeichen muss immer über einen obersten Client verfügen.

Anmerkung

Wenn Sie diese Methode mit State auf 1 festlegen, wird in der Regel kein AgentNotifySink::ActivateInputState Ereignis generiert, es sei denn, es sind keine anderen Zeichen geladen, oder Ihre Anwendung ist bereits eingabeaktiv.

 

Siehe auch

IAgentCharacter::HasOtherClients