ICommandImpl 类
提供 ICommand 接口的实现。
语法
template <class T, class CommandBase = ICommand>
class ATL_NO_VTABLE ICommandImpl : public CommandBase
参数
T
你的类,派生自 ICommandImpl
。
CommandBase
命令接口。 默认值为 ICommand
。
要求
标头: atldb.h
成员
方法
名称 | 说明 |
---|---|
取消 | 取消当前命令执行。 |
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
[in] 如果要将行集创建为聚合的一部分,则为指向控制 IUnknown
接口的指针;否则为 null。
riid
[in] 对应于 ICommand::Execute
中的 riid。
pParams
[in/out] 对应于 ICommand::Execute
中的 pParams。
pcRowsAffected
对应于 ICommand::Execute
中的 pcRowsAffected。
ppRowset
[in/out] 对应于 ICommand::Execute
中的 ppRowset。
pRowsetObj
[out] 指向行集对象的指针。 通常不使用此参数,但如果在将行集传递给 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
。