次の方法で共有


COleServerDoc::OnExecOleCmd

特定のコマンドを実行するため、またはコマンドのヘルプを表示するために、フレームワークによって呼び出されます。

virtual HRESULT OnExecOleCmd( 
   const GUID* pguidCmdGroup, 
   DWORD nCmdID, 
   DWORD nCmdExecOpt, 
   VARIANTARG* pvarargIn, 
   VARIANTARG* pvarargOut 
);

パラメーター

  • pguidCmdGroup
    コマンドのセットを指定する GUID へのポインター。 既定のコマンド グループを指定する場合は、NULL でもかまいません。

  • nCmdID
    実行するコマンド。 pguidCmdGroup で指定したグループのコマンドを指定します。

  • nCmdExecOut
    オブジェクトがコマンドを実行する方法。次に示す OLECMDEXECOPT 列挙型の 1 つ以上を指定します。

  •    OLECMDEXECOPT_DODEFAULT

  •    OLECMDEXECOPT_PROMPTUSER

  •    OLECMDEXECOPT_DONTPROMPTUSER

  •    OLECMDEXECOPT_SHOWHELP

  • pvarargIn
    コマンドの入力引数が入っている VARIANTARG へのポインター。 NULL の場合もあります。

  • pvarargOut
    コマンドから出力される戻り値を受け取る VARIANTARG へのポインター。 NULL の場合もあります。

戻り値

正常終了した場合は S_OK を返します。それ以外の場合は、以下のエラー コードのいずれかを返します。

説明

E_UNEXPECTED

予期しないエラーが発生しました。

E_FAIL

エラーが発生しました。

E_NOTIMPL

MFC 自身でコマンドを変換し、ディスパッチすることを示します。

OLECMDERR_E_UNKNOWNGROUP

pguidCmdGroup は NULL 以外ですが、正しいコマンド グループを示していません。

OLECMDERR_E_NOTSUPPORTED

nCmdID は pguidCmdGroup グループの有効なコマンドとして認識できません。

OLECMDERR_DISABLED

nCmdID で指定されたコマンドは無効であり、実行できません。

OLECMDERR_NOHELP

呼び出し元は nCmdID で指定されたコマンドのヘルプを要求しましたが、ヘルプが使用できません。

OLECMDERR_CANCELED

ユーザーが実行をキャンセルしました。

解説

COleCmdUI を使用すると、DocObject ユーザー インターフェイス コマンドのその他のプロパティの有効化、更新、および設定を行うことができます。 コマンドの初期化を行うと、OnExecOleCmd で実行できます。

フレームワークは、OLE ドキュメント コマンドの変換およびディスパッチを行う前に、この関数を呼び出します。 標準 OLE ドキュメント コマンドを処理するために、この関数をオーバーライドする必要はありませんが、独自のカスタム コマンド、あるいはパラメーターまたは戻り値を持つコマンドを処理する場合は、この関数をオーバーライドする必要があります。

ほとんどのコマンドには引数または戻り値がありません。 ほとんどのコマンドでは、呼び出し元は pvarargIn と pvarargOut に NULL を渡すことができます。 入力値を必要とするコマンドでは、呼び出し元は変数 VARIANTARG を宣言して初期化を行い、その変数へのポインターを pvarargIn に渡します。 1 つの値を必要とするコマンドの場合は、VARIANTARG に直接引数を格納して、関数に渡すこともできます。 複数の引数の場合は、IDispatchSAFEARRAY などのようなサポートされている型の 1 つを使用して、VARIANTARG に入れる必要があります。

同様に、コマンドが引数を返す場合、呼び出し元は VARIANTARG を宣言して、VT_EMPTY に初期化して、アドレスを pvarargOut で渡す必要があります。 コマンドが 1 つの値を返す場合、オブジェクトはその値を直接 pvarargOut に格納できます。 複数の出力値がある場合は、適切な方法で VARIANTARG に入れる必要があります。

この関数の基本クラスの実装では、コマンド ターゲットに対応する OLE_COMMAND_MAP 構造体を調べ、適切なハンドラーへコマンドをディスパッチします。 基本クラスの実装は、引数または戻り値がないコマンドに対してのみ機能します。 コマンドで引数を処理する場合、または戻り値を返す必要のある場合は、この関数をオーバーライドして pvarargIn パラメーターと pvarargOut パラメーターを独自に処理する必要があります。

必要条件

**ヘッダー:**afxole.h

参照

参照

COleServerDoc クラス

階層図

COleCmdUI クラス

その他の技術情報

COleServerDoc のメンバー