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

Siehe auch

Referenz

COleServerDoc-Klasse

Hierarchien-Diagramm

COleCmdUI-Klasse