次の方法で共有


COleServerDoc::OnExecOleCmd

更新 : 2007 年 11 月

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

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 のメンバ