Creates a data source object; analogous to
IUnknown * pUnkOuter,
COSERVERINFO * pServerInfo,
MULTI_QI * rgmqResults);
The CLSID of the provider to instantiate.
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.
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.
Reserved for future use; must be NULL.
Machine on which the data source objects are to be instantiated.
Number of MULTI_QI structures in
rgmqResults [in, out]
Array of MULTI_QI structures.
The method succeeded.
A provider-specific error occurred.
At least one, but not all, of the interfaces requested in the
rgmqResults array were successfully retrieved.
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 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.
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.
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.