📄 testproviderds.h
字号:
// TestProviderDS.h : Declaration of the CTestProviderSource
#ifndef __CTestProviderSource_H_
#define __CTestProviderSource_H_
#include "resource.h" // main symbols
#include "TestProviderRS.h"
/////////////////////////////////////////////////////////////////////////////
// CDataSource
class ATL_NO_VTABLE CTestProviderSource :
public CComObjectRootEx<CComMultiThreadModel>,
public CComCoClass<CTestProviderSource, &CLSID_TestProvider>,
public IDBCreateSessionImpl<CTestProviderSource, CTestProviderSession>,
public IDBInitializeImpl<CTestProviderSource>,
public IDBPropertiesImpl<CTestProviderSource>,
public IPersistImpl<CTestProviderSource>,
public IInternalConnectionImpl<CTestProviderSource>
{
public:
CTestProviderSource()
{
CoInitialize(NULL);
CoUninitialize();
ATLTRACE2(atlTraceDBProvider, 0, "Now in the data source constructor\n");
}
~CTestProviderSource()
{
ATLTRACE2(atlTraceDBProvider, 0, "Now in the data source destructor\n");
}
HRESULT FinalConstruct()
{
return FInit();
}
HRESULT IsValidValue(ULONG iCurSet, DBPROP* pDBProp)
{
ATLASSERT(pDBProp != NULL);
CComVariant var = pDBProp->vValue;
switch (pDBProp->dwPropertyID)
{
case DBPROP_INIT_MODE:
{
LONG lAcceptable = ~(DB_MODE_READWRITE | DB_MODE_SHARE_EXCLUSIVE | DB_MODE_SHARE_DENY_NONE);
if ((var.lVal & lAcceptable))
return S_FALSE;
}
break;
case DBPROP_INIT_PROMPT:
if (var.iVal != DBPROMPT_NOPROMPT && var.iVal != DBPROMPT_PROMPT &&
var.iVal != DBPROMPT_COMPLETE && var.iVal != DBPROMPT_COMPLETEREQUIRED)
return S_FALSE;
case DBPROP_INIT_TIMEOUT:
if (var.lVal < 0)
return S_FALSE;
default:
break;
}
return IDBPropertiesImpl<CTestProviderSource>::IsValidValue(iCurSet, pDBProp);
}
DECLARE_REGISTRY_RESOURCEID(IDR_TESTPROVIDER)
BEGIN_PROPSET_MAP(CTestProviderSource)
BEGIN_PROPERTY_SET(DBPROPSET_DATASOURCEINFO)
PROPERTY_INFO_ENTRY(ACTIVESESSIONS)
PROPERTY_INFO_ENTRY(ASYNCTXNABORT)
PROPERTY_INFO_ENTRY(ASYNCTXNCOMMIT)
PROPERTY_INFO_ENTRY(BYREFACCESSORS)
PROPERTY_INFO_ENTRY_VALUE(CATALOGLOCATION, DBPROPVAL_CL_START)
PROPERTY_INFO_ENTRY(CATALOGTERM)
PROPERTY_INFO_ENTRY(CATALOGUSAGE)
PROPERTY_INFO_ENTRY(COLUMNDEFINITION)
PROPERTY_INFO_ENTRY(CONCATNULLBEHAVIOR)
PROPERTY_INFO_ENTRY(DATASOURCENAME)
PROPERTY_INFO_ENTRY(DATASOURCEREADONLY)
PROPERTY_INFO_ENTRY(DBMSNAME)
PROPERTY_INFO_ENTRY(DBMSVER)
PROPERTY_INFO_ENTRY_VALUE(DSOTHREADMODEL, DBPROPVAL_RT_FREETHREAD)
PROPERTY_INFO_ENTRY(GROUPBY)
PROPERTY_INFO_ENTRY(HETEROGENEOUSTABLES)
PROPERTY_INFO_ENTRY(IDENTIFIERCASE)
PROPERTY_INFO_ENTRY(MAXINDEXSIZE)
PROPERTY_INFO_ENTRY(MAXROWSIZE)
PROPERTY_INFO_ENTRY(MAXROWSIZEINCLUDESBLOB)
PROPERTY_INFO_ENTRY(MAXTABLESINSELECT)
PROPERTY_INFO_ENTRY(MULTIPLEPARAMSETS)
PROPERTY_INFO_ENTRY(MULTIPLERESULTS)
PROPERTY_INFO_ENTRY(MULTIPLESTORAGEOBJECTS)
PROPERTY_INFO_ENTRY(MULTITABLEUPDATE)
PROPERTY_INFO_ENTRY(NULLCOLLATION)
PROPERTY_INFO_ENTRY(OLEOBJECTS)
PROPERTY_INFO_ENTRY(ORDERBYCOLUMNSINSELECT)
PROPERTY_INFO_ENTRY(OUTPUTPARAMETERAVAILABILITY)
PROPERTY_INFO_ENTRY(PERSISTENTIDTYPE)
PROPERTY_INFO_ENTRY(PREPAREABORTBEHAVIOR)
PROPERTY_INFO_ENTRY(PREPARECOMMITBEHAVIOR)
PROPERTY_INFO_ENTRY(PROCEDURETERM)
PROPERTY_INFO_ENTRY(PROVIDERNAME)
PROPERTY_INFO_ENTRY(PROVIDEROLEDBVER)
PROPERTY_INFO_ENTRY(PROVIDERVER)
PROPERTY_INFO_ENTRY(QUOTEDIDENTIFIERCASE)
PROPERTY_INFO_ENTRY(ROWSETCONVERSIONSONCOMMAND)
PROPERTY_INFO_ENTRY(SCHEMATERM)
PROPERTY_INFO_ENTRY(SCHEMAUSAGE)
PROPERTY_INFO_ENTRY(STRUCTUREDSTORAGE)
PROPERTY_INFO_ENTRY(SUBQUERIES)
PROPERTY_INFO_ENTRY(TABLETERM)
PROPERTY_INFO_ENTRY(USERNAME)
END_PROPERTY_SET(DBPROPSET_DATASOURCEINFO)
BEGIN_PROPERTY_SET(DBPROPSET_DBINIT)
PROPERTY_INFO_ENTRY(AUTH_PASSWORD)
PROPERTY_INFO_ENTRY(AUTH_PERSIST_SENSITIVE_AUTHINFO)
PROPERTY_INFO_ENTRY(AUTH_USERID)
PROPERTY_INFO_ENTRY(INIT_DATASOURCE)
PROPERTY_INFO_ENTRY(INIT_HWND)
PROPERTY_INFO_ENTRY(INIT_LCID)
PROPERTY_INFO_ENTRY(INIT_LOCATION)
PROPERTY_INFO_ENTRY(INIT_PROVIDERSTRING)
END_PROPERTY_SET(DBPROPSET_DBINIT)
CHAIN_PROPERTY_SET(CTestProviderSession)
END_PROPSET_MAP()
typedef IDBCreateSessionImpl<CTestProviderSource,CTestProviderSession> DBCreateSessionClass;
BEGIN_COM_MAP(CTestProviderSource)
COM_INTERFACE_ENTRY_IID(IID_IDBCreateSession, DBCreateSessionClass)
COM_INTERFACE_ENTRY(IDBInitialize)
COM_INTERFACE_ENTRY(IDBProperties)
COM_INTERFACE_ENTRY(IPersist)
COM_INTERFACE_ENTRY(IInternalConnection)
END_COM_MAP()
public:
};
#endif //__CTestProviderSource_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -