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 に答える