MDAC 2.5 SDK - OLE DB Programmer's Reference
OLE DB Core Components Interfaces


 

IDataInitialize::CreateDBInstance

Creates a data source object; analogous to CoCreateInstance.

HRESULT CreateDBInstance(
   REFCLSID         clsidProvider,
   IUnknown *       pUnkOuter,
   DWORD            dwClsCtx,
   LPOLESTR         pwszReserved,
   REFIID           riid,
   IUnknown **      ppDataSource);

Parameters

clsidProvider [in]

The CLSID of the provider to instantiate.

pUnkOuter [in]

A pointer to the controlling IUnknown interface if the data source object is being created as a part of an aggregate; otherwise, it is a null pointer.

dwClsCtx [in]

CLSCTX values. CLSCTX_ALL, CLSCTX_SERVER, and CLSCTX_INPROC_SERVER are acceptable values, but the service components will always attempt to load the provider in-process. Ignored if *ppDataSource is not NULL.

pwszReserved [in]

Reserved for future use; must be NULL.

riid [in]

Interface requested on the data source.

ppDataSource [out]

A pointer to memory in which to return the interface pointer on the newly created data source.

Return Code

S_OK

The method succeeded.

E_FAIL

A provider-specific error occurred.

E_NOINTERFACE

The data source did not support the interface specified in riid.

riid was IID_NULL.

The object indicated by clsidProvider was not an OLE DB provider.

E_UNEXPECTED

The data source object cannot return the requested interface because the data source object is not initialized.

DB_E_NOAGGREGATION

pUnkOuter was not a null pointer, and riid was something other than IID_IUnknown.

pUnkOuter was not a null pointer, and the provider does not support aggregation.

dwClsCtx required out-of-process operation, which is not supported.

The provider does not support in-process operation and cannot be aggregated.

E_INVALIDARG

dwClsCtx was not a valid value.

ppDataSource was a null pointer.

REGDB_E_CLASSNOTREG

The provider indicated by clsidProvider was not found.

dwClsCtx indicated a server type not supported by the provider.

Comments

None.