私のプロバイダーにインターフェイスを追加する方法?

インターフェイス (ATL プロバイダー ウィザードによって作成される通常のデータ ソース、行セット、コマンド、またはセッション オブジェクト) を追加するオブジェクトを決定します。それをインターフェイスに追加する必要があるオブジェクトは、プロバイダーで現在サポートされていないものであることが可能です。その場合は、オブジェクトを作成するには、ATL オブジェクト ウィザードを実行 (、プロジェクト ワークスペースの ClassView ウィンドウで右クリックし、新しい ATL オブジェクトを選択)。

インターフェイスをサポートする新しいクラスを作成する場合は、そのクラスから継承するオブジェクトを確認します。たとえば、行セット オブジェクトをクラスIRowsetIndexImplを追加可能性があります。:

テンプレート lt; クラスの作成者 >CAgentRowset クラス: パブリック CRowsetImpl < CAgentRowset <Creator>、CAgentMan、作成者 >パブリック IRowsetIndexImpl <. & gt
 

COM_INTERFACE_ENTRYマクロを使用してオブジェクトのCOM_MAPにインターフェイスを追加します。マップがない場合は、1 つ作成します。たとえば:

BEGIN_COM_MAP(CAgentRowset)特価;COM_INTERFACE_ENTRY(IRowsetIndex)END_COM_MAP()(&N)

行セット オブジェクトのマップをチェインして、親のオブジェクト、オブジェクトが親クラスに委任できるようにします。この例では、 COM_INTERFACE_ENTRY_CHAINマクロをマップに追加します。:

BEGIN_COM_MAP(CAgentRowset)特価;COM_INTERFACE_ENTRY(IRowsetIndex)COM_INTERFACE_ENTRY_CHAIN(CRowsetImpl)END_COM_MAP()(&N)

Index