Udostępnij za pośrednictwem


Obsługa wiadomości i cele polecenia

Interfejs wysyłania polecenia IOleCommandTarget definiuje mechanizm proste i rozszerzonego wyszukiwania i wykonywania poleceń.Mechanizm ten jest łatwiejsze niż w automatyzacji IDispatch , ponieważ opiera się całkowicie na standardowy zestaw poleceń; polecenia rzadko mają argumenty i jest zaangażowane żadne informacje typu (typ bezpieczeństwa zmniejszył dla argumentów polecenia, jak również).

Przy projektowaniu interfejsu polecenia wysyłki każdego polecenia należy do "Grupa polecenia", która jest sama identyfikowane z identyfikatora GUID.W związku z tym każdy może zdefiniować nową grupę i zdefiniować wszystkie polecenia w 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 nakładanie się tutaj, chociaż to polecenie routing mechanizm jest tylko dla polecenia routingu, a nie dla skryptów/programowania na dużą skalę jak 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 dla niektórych poleceń kontenera, podobnie jak w miejsce wydruku, wydrukuPodgląd, zapisać, New, Powiększeniei inne.(W miejscu aktywacji zaleca standardy, Usuń obiekty takie przyciski z ich paski narzędzi lub na najmniej je wyłączyć.Ten projekt umożliwia tych poleceń może być włączony i jeszcze kierowane do prawej program obsługi). Obecnie nie istnieje mechanizm dla obiektu do wysłania tych poleceń do kontenera.

  • Aktywnego dokumentu osadzone w pojemniku aktywnego dokumentu (na przykład, Spinacz Office), kontener może być konieczne wysłanie polecenia takie wydruku, stronyinstalacji, Właściwości, a inne do zamkniętego aktywnego dokumentu.

Marszruty prostego polecenia może obsługiwane za pośrednictwem istniejących norm automatyzacji i IDispatch.Jednakże zaangażowanych obciążenie związane z IDispatch jest większa niż jest to konieczne, aby IOleCommandTarget zapewnia prostszy sposób do osiągnięcia tych samych celów:

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 Tutaj metody badania czy zestawu określonego zestawu poleceń, są identyfikowane z identyfikatora GUID, jest obsługiwany.To wywołanie wypełnia tablicę OLECMD wartości (struktury) z listy obsługiwanych poleceń, jak również zwraca tekst opisujący nazwę polecenia lub stan 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, pobieranie wstecz wartości zwracanej.

Zobacz też

Koncepcje

Aktywny dokument kontenerów