Для того, чтобы связаться с OLEDB провайдером нужно пройти несколько этапов и получить объект Session.

Для получения объекта данных необходимо вызвать функцию CoCreateInstance(). Эта функция вернет указатель на объект Data Source.
CoCreateInstance(CLSID_MailProvider, 0, CLSCTX_LOCAL_SERVER, IID_IDBInitialize, (void**) &pIDBInit);
Обратите внимание на то, что все объекты OLEDB провайдеров - это COM объекты и мы связываемся с OLEDB провайдером на основе его CLSID, который должен быть занесен в реестр. После создания объекта он находится в неинициалированном состоянии.
Пример.
// Step4OLEDB.cpp : Defines the entry point for the console application.
// Step by Step Site
// http://www.mysite.int
// Kaev Artem 2000
#define INITGUID
#define DBINITCONSTANTS
#include "stdafx.h"
#include "iostream.h"
#include "oledb.h" // OLE DB файлы
#include "oledberr.h"
const GUID CLSID_MSDASQL = {0xC8B522CBL,0x5CF3,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}};
void main()
{
// Инициализация COM
if (FAILED( CoInitialize(NULL) ))
{
cout << "Unable to initialize COM" << endl;
return;
}
IDBInitialize *pIDBInitialize = NULL;
HRESULT hr;
hr=CoCreateInstance(CLSID_MSDASQL,NULL,CLSCTX_INPROC_SERVER,
IID_IDBInitialize,(void**)&pIDBInitialize);
if (FAILED(hr))
{
cout << "CoCreateInstance Failed" << endl;
return;
}
pIDBInitialize->Release();
// Деинициализация COM
CoUninitialize();
};
Для того, чтобы создать OLEDB провайдера необходимо запустить VC++ и создать новый проект на основе Console application.
GUID провайдера я взял из заголовочного файла для доступа OLEDB ODBC.