OLE DB Programmer's Reference | |
Creates a data source object; analogous to CoCreateInstanceEx.
HRESULT CreateDBInstanceEx( REFCLSID clsidProvider, IUnknown * pUnkOuter, DWORD dwClsCtx, LPOLESTR pwszReserved, COSERVERINFO * pServerInfo, ULONG cmq, MULTI_QI * rgmqResults);
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.
- pServerInfo [in]
- Machine on which the data source objects are to be instantiated.
- cmq [in]
- Number of MULTI_QI structures in rgmqResults.
- rgmqResults [in, out]
- Array of MULTI_QI structures.
Return Code
- S_OK
- The method succeeded.
- E_FAIL
- A provider-specific error occurred.
- CO_S_NOTALLINTERFACES
- At least one, but not all, of the interfaces requested in the rgmqResults array were successfully retrieved.
The hr field of each of the MULTI_QI structures in rgmqResults indicates with S_OK or E_NOINTERFACE whether the specific interface was returned.
- 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.
1998-2001 Microsoft Corporation. All rights reserved.