我正在 ATL 中创建 Oracle 数据访问 com 库。存在一个名为 IConnection 的 COM 接口,它执行数据库连接。我想向 IConnection 添加名为 CreateCommand 的方法来创建 IOciCommand 类型的对象。IOciCommand 已经是同一个库中的一个接口。我需要 IDL 代码和 CreateCommand 的实现
问问题
350 次
1 回答
0
我无法为您提供 CreateCommand 的确切实现,因为我不知道您的库的内部结构,但基本步骤是:
(1)在IDL接口中添加方法:
interface IConnection : IUnknown
{
HRESULT CreateCommand([out] IOciCommand** ppCommand);
}
(2) 编译IDL文件。
(3)在实现接口的C++类中添加方法实现:
virtual HRESULT STDMETHODCALLTYPE CreateCommand(IOciCommand** ppCommand)
{
if (ppCommand == NULL)
return E_POINTER;
CComObject<COciCommand>* pCommand;
HRESULT hr = CComObject<COciCommand>::CreateInstance(&pCommand);
if (FAILED(hr))
return hr;
*ppCommand = pCommand;
(*ppCommand)->AddRef();
return S_OK;
}
这就是实现的基本外观,但显然过于简化了。
于 2013-01-16T12:37:18.683 回答