COleServerDoc::OnExecOleCmd
フレームワークは、コマンドの指定されたコマンドまたはヘルプの表示を実行するには、この関数を呼び出します。
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut
);
パラメーター
pguidCmdGroup
コマンドのセットを識別する GUID へのポインター。既定のコマンド グループを示す null になります。nCmdID
実行するコマンド。pguidCmdGroupによって識別されたグループに配置する必要があります。nCmdExecOut
方法は、コマンド オブジェクトを OLECMDEXECOPT の列挙型の次の値を一つ以上実行する必要があります:OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
コマンドの入力引数を含む VARIANTARG へのポインター。NULL の場合もあります。pvarargOut
コマンドの出力の戻り値を受け取る VARIANTARG へのポインター。NULL の場合もあります。
戻り値
正常終了した場合はを返します S_OK ; それ以外の場合は、次の 1 種類のエラー コード:
値 |
説明 |
---|---|
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の nulls を渡すことができます。値を入力すると想定するコマンドに呼び出し元は宣言し、VARIANTARG の変数を初期化し、pvarargIn変数へのポインターを渡すことができます。単一の値が必要なコマンドに対して、引数は VARIANTARG で直接格納され、関数に渡すことができます。複数の引数は、サポートされる型の 1 つを使用して VARIANTARG 内で包まれなければ必要があります ( IDispatch と SAFEARRAY など)。
同様に、コマンド引数がを返した場合、呼び出し元は VARIANTARGを宣言し、それを VT_EMPTYに初期化し、pvarargOutのアドレスを渡す必要があります。コマンドが単一の値を返す場合、オブジェクトは pvarargOut値に直接格納できます。複数の出力値は、VARIANTARGのなんらかの方法でパッケージ化された適切である必要があります。
この関数の基本クラスの実装は OLE_COMMAND_MAP 構造体の適切なハンドラーにコマンドをディスパッチするためのコマンド ターゲット、およびとに関連付けられた説明します。基本クラスの実装は、引数または戻り値を許可しないコマンドだけを使用します。引数または戻り値を受け取るコマンドを処理する必要がある場合は、独自 pvarargIn と pvarargOut のパラメーターをこの関数および使用をオーバーライドする必要があります。
必要条件
ヘッダー : afxole.h