Sdílet prostřednictvím


Zpracování zpráv a cíle příkazu

Odeslání rozhraní příkazového IOleCommandTarget definuje jednoduchý a extensible mechanismus dotazování a příkazy.Tento mechanismus je jednodušší než automatizace a IDispatch protože spoléhá výhradně na standardní sadu příkazů; příkazy mají málo argumentů a zapojen žádné informace o typu (typ bezpečnosti je podstatně také argumenty příkazu).

V návrhu rozhraní odeslání příkazu patří každý příkaz "příkaz Skupina", který je sám označen GUID.Proto všem uživatelům definovat nové skupiny a definovat všechny příkazy v rámci skupiny bez nutnost koordinovat s Microsoft nebo jiného dodavatele.(Toto je v podstatě stejným způsobem jako definice omezené rozhraní IDispatch plus hodnoty dispID v automatizaci.Překrývajících se zde, přestože tento příkaz mechanismus směrování je pouze pro příkaz Směrování a ne pro skriptování/programování ve velkém rozsahu jako automatizace úchyty.)

IOleCommandTargetzpracovává následující scénáře:

  • Pokud je objekt aktivován pouze panely objektu jsou obvykle zobrazeny a panelů nástrojů na objekt může mít tlačítka pro některé příkazy jako kontejner v místě Tisk, TiskNáhled, Uložit, New, zvětšenía další.(Místní aktivace, doporučujeme norem, který odebrat objekty těchto tlačítek z jejich panelů nástrojů nebo na nejméně je zakázat.Tento návrh umožňuje těchto příkazů povolena a ještě směrovány obsluze vpravo). V současné době neexistuje žádný mechanismus pro objekt k odeslání těchto příkazů do kontejneru.

  • Při aktivní dokument je vložen v kontejneru aktivního dokumentu (například aplikace Office Binder), kontejner potřebovat odeslat příkazy takové Tisk, stránkyinstalace, Vlastnostia jiné uzavřené aktivního dokumentu.

Směrování jednoduchého příkazu nelze obsluhovat prostřednictvím stávajících norem pro automatizaci a IDispatch.Však režijní náklady související s IDispatch je více než je nezbytné, aby IOleCommandTarget jednodušší prostředkem k dosažení stejné zakončení:

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 Zde metodou testuje, zda určitou sadu příkazů sady jsou označeny GUID, je podporován.Toto volání vyplní pole OLECMD seznamu podporovaných příkazů jako text název příkazu nebo stav informace popisující vrácení hodnoty (struktury).Pokud volající chce vyvolat příkaz, projdou příkazu (a GUID) na Exec spolu s možnosti a argumenty získání zpět vrácenou hodnotu.

Viz také

Koncepty

Aktivní dokument kontejnery