Il problema è che dentro aaa ottengo solo una stringa vuota.
Credo ci sia qualcos'altro da fare. Ecco una funzione scritta in freepascal che dovrebbe funzionare:
http://www.swissdelphicenter.ch/en/showcode.php?id=2271
Con ciò che ho scritto, appare il wizard eseguendo
pIDBPromptInitialize->PromptDataSource()



codice:
IDBPromptInitialize
codice:
*pIDBPromptInitialize;
 IUnknown*pIUnknown;
CoCreateInstance(CLSID_DataLinks,NULL,CLSCTX_INPROC_SERVER,IID_IDBPromptInitialize,(LPVOID*)&pIDBPromptInitialize);
 if(pIDBPromptInitialize->PromptDataSource(NULL,(HWND)this->winId(),DBPROMPTOPTIONS_PROPERTYSHEET,0,NULL,NULL,IID_IUnknown,(IUnknown**)&pIUnknown)==S_OK) {
     LPOLESTR*aaa;

    La riga seguente credo sia errata.

    if(((IDataInitialize*)pIDBPromptInitialize)->GetInitializationString(pIUnknown,true,aaa)==S_OK) {
        qDebug()<<"ok3"<<aaa;
    } else qDebug()<<"false3";
pIUnknown->Release();
} elseqDebug()<<"false";


ma poi non riesco a catturare ciò che lo wizard ha prodotto.