COleServerDoc::OnExecOleCmd
Das Framework ruft diese Funktion auf, um eine angegebene Befehls- oder Zeigt die Hilfe an für den Befehl auszuführen.
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut
);
Parameter
pguidCmdGroup
Ein Zeiger auf ein GUID, der eine Reihe von Befehlen identifiziert. Kann NULL, um die standardmäßige Befehlsgruppe anzugeben.nCmdID
Der auszuführende Befehl. Muss in der Gruppe sein, die von pguidCmdGroup identifiziert wird.nCmdExecOut
Die Methode das Objekt sollte den Befehl ausführen, eine oder mehrere der folgenden Werte aus der Enumeration OLECMDEXECOPT:OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
Zeiger auf VARIANTARG, das Eingabeargumente für den Befehl enthält. Kann NULL.pvarargOut
Zeiger auf VARIANTARG, um die Ausgaberückgabewerte vom Befehl zu empfangen. Kann NULL.
Rückgabewert
Gibt zurück, wenn S_OK erfolgreich; andernfalls einer der folgenden Fehlercodes:
Wert |
Description |
---|---|
E_UNEXPECTED |
Unerwarteter Fehler beim |
E_FAIL |
Fehler beim |
E_NOTIMPL |
Gibt MFC selbst sollte versuchen, den Befehl zu übersetzen und Weiterleiten an |
OLECMDERR_E_UNKNOWNGROUP |
pguidCmdGroup ist, Nicht --NULL gibt jedoch keine bekannte Befehlsgruppe an |
OLECMDERR_E_NOTSUPPORTED |
nCmdID wird nicht als gültiger Befehl in der Gruppe pguidCmdGroup erkannt |
OLECMDERR_DISABLED |
Der Befehl, der von nCmdID identifiziert wird, wird deaktiviert und kann nicht ausgeführt werden |
OLECMDERR_NOHELP |
Der Aufrufer der, um Hilfe zum Befehl identifiziert wird durch nCmdID aber keine Hilfe angefordert wird, ist verfügbar |
OLECMDERR_CANCELED |
Benutzer hat die Ausführung ab |
Hinweise
COleCmdUI kann verwendet werden, um andere Eigenschaften von DocObject-Benutzeroberflächenbefehlen zu aktivieren, zu aktualisieren und festzulegen. Nachdem die Befehle initialisiert wurden, können Sie sie mit OnExecOleCmd ausführen.
Vor dem Versuch das Framework ruft die Funktion, einen OLE-Dokumentenbefehl zu übersetzen und Weiterleiten auf. Sie müssen nicht, um diese Funktion zu überschreiben, um Dokumentenbefehle des standardmäßigen OLE zu behandeln, doch Sie müssen eine Überschreibung auf diese Funktion bereitstellen, wenn Sie eigene benutzerdefinierte Befehle behandeln oder Befehle behandeln möchten, die Parameter akzeptieren oder Ergebnisse zurückgeben.
Die meisten Befehle erhalten keine Argumente oder Rückgabewerte. Ein Großteil Befehle kann der Aufrufer NULL s für pvarargIn und pvarargOut übergeben. Für Befehle, die Eingabewerte erwarten, kann der Aufrufer eine VARIANTARG-Variable deklarieren und initialisieren und einen Zeiger auf die Variable in pvarargIn übergeben. Für Befehle, die einen einzelnen Wert benötigen, kann das Argument direkt in VARIANTARG gespeichert werden und an die Funktion übergeben werden. Mehrere Argumente müssen innerhalb VARIANTARG mithilfe eines der unterstützten Typen gepackt werden (z IDispatch und SAFEARRAY ).
Auch wenn ein Befehl Argumente zurückgibt, wird der Aufrufer erwartet, VARIANTARG zu deklarieren, es VT_EMPTY zu initialisieren, und ihre Adresse in pvarargOut zu übergeben. Wenn ein Befehl einen einzelnen Wert zurückgibt, kann das Objekt speichern dass Wert direkt in pvarargOut. Mehrere Ausgabewerte müssen für VARIANTARG verpacktes geeignet auf irgendeine Weise sein.
Die Basisklassenimplementierung dieser Funktion durchläuft die OLE_COMMAND_MAP-Strukturen durch, die mit dem Befehlsziel und versuchen zugeordnet werden, um den Befehl an einem entsprechenden Handler zum. Die Basisklassenimplementierung funktioniert nur mit Befehlen, die keine Argumente oder Rückgabewerten akzeptieren. Wenn Sie Befehle behandeln müssen, die Argumente oder Rückgabewerten akzeptieren, müssen Sie diese Funktion und mit den pvarargIn und pvarargOut-Parametern überschreiben.
Anforderungen
Header: afxole.h