次の方法で共有


ICommandImpl クラス

ICommand インターフェイスの実装を提供します。

構文

template <class T, class CommandBase = ICommand>
class ATL_NO_VTABLE ICommandImpl : public CommandBase

パラメーター

T
ICommandImpl から派生したクラス。

CommandBase
コマンド インターフェイス。 既定値は、ICommand です。

要件

ヘッダー: atldb.h

メンバー

メソッド

Name 説明
Cancel 現在のコマンドの実行を取り消します。
CancelExecution 現在のコマンドの実行を取り消します。
CreateRowset 行セット オブジェクトを作成します。
実行 コマンドを実行します。
GetDBSession コマンドを作成したセッションへのインターフェイス ポインターを返します。
ICommandImpl コンストラクター。

データ メンバー

名前 説明
m_bCancel コマンドが取り消されるかどうかを示します。
m_bCancelWhenExecuting コマンドが実行時に取り消されるかどうかを示します。
m_bIsExecuting コマンドが現在実行中であるかどうかを示します。

解説

コマンド オブジェクトの必須インターフェイス。

ICommandImpl::Cancel

現在のコマンドの実行を取り消します。

構文

STDMETHOD(Cancel)();

解説

"OLE DB プログラマーズ リファレンス" の「ICommand::Cancel」を参照してください。

ICommandImpl::CancelExecution

現在のコマンドの実行を取り消します。

構文

HRESULT CancelExecution();

ICommandImpl::CreateRowset

単一の行セットを作成するために、Execute によって呼び出されます。

構文

template template <class RowsetClass>
HRESULT CreateRowset(IUnknown* pUnkOuter,
   REFIID riid,
   DBPARAMS* pParams,
   DBROWCOUNT* pcRowsAffected,
   IUnknown** ppRowset,
   RowsetClass*& pRowsetObj);

パラメーター

RowsetClass
ユーザーの行セット クラスを表すテンプレート クラス メンバー。 通常はウィザードによって生成されます。

pUnkOuter
[入力] 行セットが集約の一部として作成されている場合は、管理 IUnknown インターフェイスへのポインター。それ以外の場合は null。

riid
[入力] ICommand::Executeriid に対応します。

pParams
[入力/出力] ICommand::ExecutepParams に対応します。

pcRowsAffected
ICommand::ExecutepcRowsAffected に対応します。

ppRowset
[入力/出力] ICommand::ExecuteppRowset に対応します。

pRowsetObj
[出力] 行セット オブジェクトへのポインター。 通常、このパラメーターは使用されませんが、行セットを COM オブジェクトに渡す前に、その行セットで多くの作業を実行する必要がある場合に使用できます。 pRowsetObj の有効期間は ppRowset によってバインドされます。

戻り値

標準の HRESULT 値。 一般的な値の一覧については、「ICommand::Execute」を参照してください。

解説

複数の行セットを作成する、または異なる行セットを作成するための独自の条件を指定するには、Execute 内から CreateRowset に対して異なる呼び出しを行います。

"OLE DB プログラマーズ リファレンス" の「ICommand::Execute」を参照してください。

ICommandImpl::Execute

コマンドを実行します。

構文

HRESULT Execute(IUnknown* pUnkOuter,
   REFIID riid,
   DBPARAMS* pParams,
   DBROWCOUNT* pcRowsAffected,
   IUnknown** ppRowset);

パラメーター

"OLE DB プログラマーズ リファレンス" の「ICommand::Execute」を参照してください。

解説

要求された発信インターフェイスは、この関数によって作成される行セット オブジェクトから取得されたインターフェイスになります。

Execute によって CreateRowset が呼び出されます。 既定の実装をオーバーライドして複数の行セットを作成するか、異なる行セットを作成するための独自の条件を指定します。

ICommandImpl::GetDBSession

コマンドを作成したセッションへのインターフェイス ポインターを返します。

構文

STDMETHOD (GetDBSession) (REFIID riid,
   IUnknown** ppSession);

パラメーター

"OLE DB プログラマーズ リファレンス" の「ICommand::GetDBSession」を参照してください。

解説

セッションからプロパティを取得する場合に便利です。

ICommandImpl::ICommandImpl

コンストラクター。

構文

ICommandImpl();

ICommandImpl::m_bCancel

コマンドが取り消されたかどうかを示します。

構文

unsigned m_bCancel:1;

解説

この変数は、コマンド クラスの Execute メソッドで取得し、必要に応じてキャンセルできます。

ICommandImpl::m_bCancelWhenExecuting

コマンドを実行時に取り消すことができるかどうかを示します。

構文

unsigned m_bCancelWhenExecuting:1;

解説

既定で true になります (取り消すことができます)。

ICommandImpl::m_bIsExecuting

コマンドが現在実行中であるかどうかを示します。

構文

unsigned m_bIsExecuting:1;

解説

コマンド クラスの Execute メソッドを指定して、この変数を true に設定できます。

関連項目

OLE DB プロバイダー テンプレートに関するページ
OLE DB プロバイダー テンプレートのアーキテクチャ