Udostępnij za pośrednictwem


IAgentCharacter::Activate

[Program Microsoft Agent jest przestarzały w systemie Windows 7 i może być niedostępny w kolejnych wersjach systemu Windows.

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

Określa, czy klient jest aktywny, czy znak jest najbardziej górny.

  • Zwraca S_OK, aby wskazać, że operacja zakończyła się pomyślnie.
  • Zwraca S_FALSE, aby wskazać, że operacja nie powiodła się.

sState

Dla tego parametru można określić następujące wartości:

Wartość Opis
0 Ustaw jako nie aktywnego klienta.
1 Ustaw jako aktywny klient.
2 Ustaw najbardziej górny znak.

 

Gdy wiele znaków jest widocznych, tylko jeden z znaków otrzymuje dane wejściowe mowy naraz. Podobnie, gdy wiele aplikacji klienckich ma ten sam znak, tylko jeden z klientów otrzymuje dane wejściowe myszy (na przykład kliknięcie lub przeciągnięcie zdarzeń przez program Microsoft Agent). Zestaw znaków odbierający dane wejściowe myszy i mowy to najbardziej górny znak, a klient odbierający dane wejściowe jest aktywnym klientem znaku. (Okno najbardziej górnego znaku pojawia się również w górnej części okna znaków z-order). Zazwyczaj użytkownik określa, który znak jest najbardziej górny, jawnie wybierając go. Jednak najbardziej górna aktywacja również zmienia się, gdy znak jest wyświetlany lub ukryty (znak staje się lub nie jest już najbardziej górny, odpowiednio).

Można również użyć tej metody, aby jawnie zarządzać, gdy klient odbiera dane wejściowe kierowane do znaku, na przykład gdy sama aplikacja staje się aktywna. Na przykład ustawienie State na 2 powoduje, że znak jest najwyższy, a klient otrzymuje wszystkie zdarzenia wprowadzania myszy i mowy wygenerowane na podstawie interakcji użytkownika z znakiem. W związku z tym klient staje się również klientem wejściowym aktywnego znaku. Można jednak również ustawić aktywnego klienta dla znaku bez ustawiania najwyższego poziomu znaku, ustawiając stan na 1. Dzięki temu klient może odbierać dane wejściowe skierowane do tego znaku, gdy znak staje się najbardziej górny. Podobnie można ustawić klienta tak, aby nie był aktywnym klientem (aby nie odbierał danych wejściowych), gdy znak staje się najwyższy, ustawiając stan na 0. Można określić, czy znak ma innych bieżących klientów przy użyciu IAgentCharacter::HasOtherClients.

Unikaj wywoływania tej metody bezpośrednio po metodzie Show. Pokaż automatycznie ustawia klienta wejściowego aktywnego. Gdy znak jest ukryty, wywołanie Aktywuj może zakończyć się niepowodzeniem, jeśli zostanie przetworzone przed ukończeniem metody Show.

Próba wywołania tej metody z parametrem State ustawioną na 2 (gdy określony znak jest ukryty) zakończy się niepowodzeniem. Podobnie, jeśli ustawisz stan na 0, a aplikacja jest jedynym klientem, to wywołanie zakończy się niepowodzeniem. Znak musi zawsze mieć klienta najwyższego poziomu.

Nuta

Wywołanie tej metody przy użyciu state ustawione na 1 nie generuje zazwyczaj AgentNotifySink::ActivateInputState zdarzenie, chyba że nie ma żadnych innych znaków załadowanych lub aplikacja jest już aktywna.

 

Zobacz też

IAgentCharacter::HasOtherClients