Udostępnij za pośrednictwem


Obsługa komunikatów i obiekty docelowe poleceń

Interfejs wysyłania polecenia IOleCommandTarget definiuje mechanizm proste i rozszerzalny do wykonywania kwerend i wykonywanie poleceń.Mechanizm ten jest łatwiejsze niż w automatyzacji IDispatch ponieważ opiera się całkowicie na standardowy zestaw poleceń; polecenia rzadko mieć argumentów, a zaangażowane nie informacje o typie (bezpieczeństwo typów zmniejsza również argumenty polecenia).

W projektowaniu interfejsu wysyłania polecenia, każde polecenie należy do "grupy poleceń", która jest sama identyfikowana z identyfikatora GUID.W związku z tym każdy może zdefiniować nową grupę i zdefiniować wszystkie polecenia w tej grupie bez potrzebę koordynacji z firmy Microsoft lub innego dostawcy. (Jest to zasadniczo te same środki definicji jako dispinterface plus identyfikatory DISPID w automatyzacji.Istnieje w tym miejscu nakładania się mimo to polecenie mechanizm rozsyłania jest tylko dla polecenia routingu, a nie do skryptów/programowania na dużą skalę jako uchwyty automatyzacji.)

IOleCommandTargetobsługuje następujące scenariusze:

  • Kiedy obiekt jest aktywowany tylko paski narzędzi obiektu są zazwyczaj wyświetlane i paski narzędzi obiektu może mieć przyciski niektórych poleceń kontenera, podobnie jak w miejscu wydruku, wydrukuPodgląd, zapisać, New, Powiększeniei inne.  (Aktywacja w miejscu polecić normy że Usuń obiekty takie przyciski swoje paski narzędzi, albo w najmniej je wyłączyć.Ten projekt umożliwia tych poleceń, włączona i jeszcze kierowane do obsługi prawy). Obecnie nie istnieje żaden mechanizm dla obiektu do wysłania tych poleceń do kontenera.

  • Gdy aktywny dokument jest osadzony w innym kontenerem aktywnego dokumentu (na przykład spinacza pakietu Office), kontener może być konieczne do wysyłania poleceń takich wydruku, stronyinstalacji, Właściwościi innych do zamkniętego aktywnego dokumentu. 

Marszruty prostego polecenia może być obsługiwane za pośrednictwem istniejących norm automatyzacji i IDispatch.Jednakże, obciążenie związane z IDispatch jest więcej niż jest to konieczne, więc IOleCommandTarget zapewnia prostszy sposób aby osiągnąć te same cele:

interface IOleCommandTarget : IUnknown

{

HRESULT QueryStatus(

[in] GUID *pguidCmdGroup,

[in] ULONG cCmds,

[in,out][size_is(cCmds)] OLECMD *prgCmds,

[in,out] OLECMDTEXT *pCmdText);

HRESULT Exec(

[in] GUID *pguidCmdGroup,

[in] DWORD nCmdID,

[in] DWORD nCmdExecOpt,

[in] VARIANTARG *pvaIn,

[in,out] VARIANTARG *pvaOut);

}

QueryStatus Tu metoda sprawdza, czy określony zestaw poleceń, zestaw identyfikowane z identyfikatora GUID, jest obsługiwany.To wywołanie wypełnia tablicę OLECMD wartości (struktur) z listy obsługiwanych poleceń, a także zwraca tekst opisujący nazwę polecenia i/lub stanu informacji.Gdy proces wywołujący chce wywołać polecenie, można przekazać polecenie (i zestaw identyfikatora GUID) do Exec wraz z opcje i argumenty, wracając wartości zwracanej.

Zobacz też

Koncepcje

Kontenery dokumentów aktywnych