私のプロバイダーのプロパティを参照する方法?

プロパティ グループとプロパティ ID は、目的のプロパティを見つけます。(を参照してください 、「 OLE DB programmer's ReferenceOLE DB プロパティ)。

次の例では、行セットからプロパティを取得しようとしています。セッションまたはコマンドを使用するコードは似ていますが、別のインターフェイスを使用して。

プロパティ グループをコンス トラクターにパラメーターとして使用して CDBPropsetオブジェクトを作成します。たとえば:

CDBPropSet propset(DBPROPSET_ROWSET)

AddPropertyプロパティ ID と値をプロパティに割り当てることに渡すを呼び出します。値の型を使用している、プロパティによって異なります。

CDBPropSet propset(DBPROPSET_ROWSET);propset。AddProperty(DBPROP_IRowsetChange, true);propset。AddProperty (DBPROP_UPDATABILITY、DBPROPVAL_UP_INSERT |DBPROPVAL_UP_CHANGE |DBPROPVAL_UP_DELETE)

データ メンバーを使用して m_spUnkSite オブジェクトを作成したオブジェクトにポインターを取得するには。

 CAgentRowsetlt;CMyProviderCommand > ※ pRowset = (CAgentRowset <CMyProviderCommand> ※) pThis;CComQIPtr < IRowsetInfo、& IID_IRowsetInfo > spRowsetProps pRowset =

IRowsetインターフェイスを使用してGetPropertiesをコールします。プロパティをパラメーターとして渡します。最終的なコードはここにあります。:

CAgentRowsetlt;CMyProviderCommand > ※ pRowset = (CAgentRowset <CMyProviderCommand> ※) pThis;CComQIPtr < IRowsetInfo、& IID_IRowsetInfo > spRowsetProps pRowset; =設定します。AddPropertyID(DBPROP_BOOKMARKS);DBPROPSET ※ pPropSet = NULL;ULONG ulPropSet = 0;HRESULT の時間;場合 (spRowsetProps)hr = spRowsetProps - > GetProperties (1、& セット、ulPropSet、& pPropSet);場合 (pPropSet){CComVariant var = pPropSet - > rgProperties [0] .vvalue;CoTaskMemFree (pPropSet - > rgProperties);CoTaskMemFree(pPropSet);場合 (SUCCEEDED(hr) & & (var.boolVal VARIANT_TRUE を = =)){…}}

Index