Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Befehlsdispatchschnittstelle IOleCommandTarget definiert einen einfachen und erweiterbaren Mechanismus, Befehle abzufragen und auszuführen.Dieser Mechanismus ist einfacher als IDispatch der Automatisierung, da er ausschließlich für einen Standardsatz von Befehlen erforderlich ist. Befehle sind selten Argumente und keine Typinformationen sind möglich (Typsicherheit wird für Befehlsargumente ebenfalls verringert).
Geben Sie im Feld Befehl dispatchschnittstellen entwurf gehört jeder Befehl eine "Befehlsgruppe" selbst mit GUID identifiziert wird.Daher kann jeder Benutzer eine neue Gruppe definieren und alle Befehle in der Gruppe ohne eine Anforderung definieren, mit Microsoft oder jedem anderen Anbietern zu koordinieren.(Dies entspricht weitgehend dieselbe bedeutet aus der Definition als dispinterface plus dispIDs in der Automatisierung.Es gibt Überlappung hier, obwohl dieser Befehl routing routing Mechanismus zur nur für Befehls und nicht für die Skripterstellung und Programmierung in Automatisierung als Rahmen, verarbeitet ist.)
IOleCommandTarget behandelt die folgenden Szenarien:
Wenn ein Objekt direkt aktiviert ist, werden nur die Symbolleisten des Objekts werden i. d. R. angezeigt, und die Symbolleisten eines Objekts als Container für mehrere Schaltflächen sind Befehle wie Drucken, DruckenVorschau, Speichern, New, Zoom und andere.(Der Standardwert der Symbolleiste Aktivierung wird empfohlen, dass Objekte, Remove- oder Symbolleisten diese Schaltflächen ihre mindestens deaktivieren.Dieser Entwurf ermöglicht diese Befehle aktiviert werden sollen und doch in den richtigen Handler weitergeleitet werden.) Derzeit gibt es keinen Mechanismus für das Objekt diese Befehle an den Container ausliefert.
Wenn ein aktives Dokument in einem Active Document-Container (z. B. Office-Sammelmappe) eingebettet ist, muss möglicherweise der Container Befehle solches Drucken, SeiteSetup, Eigenschaften und andere auf das enthaltende aktiven Dokument senden.
Dieses Routing des einfachen Befehl kann über vorhandene Automatisierung Standards und - IDispatch behandelt werden.Allerdings ist der Mehraufwand, der IDispatch beteiligt ist, mehr als erforderlich, hier ist. Dies stellt ein einfacheres IOleCommandTarget daher die gleichen Zwecken zu erreichen:
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);
}
Die hier QueryStatus-Methode prüft, ob eine bestimmte, die von den Befehlen, die Menge identifiziert wird, mit GUID festgelegt ist, unterstützt wird.Dieser Aufruf wird ein Array OLECMD-Werte (Strukturen) mit der unterstützten Liste von Befehlen aus und gibt den Text zurück, der den Namen eines Befehls und/oder der Statusinformationen beschreibt.Wenn der Aufrufer einen Befehl aufrufen will, kann er den Befehl (und Festlegen von GUID) Exec zusammen mit den Optionen und Argumenten übergeben und wieder abrufen. ein Rückgabewert