如何调用"数据链接属性"对话框?--代码调用

解决方案 »

  1.   

    一个例子:#import "C:\Program Files\Common Files\System\ole db\oledb32.dll"  raw_interfaces_only exclude("IDBPromptInitialize", "IDataInitialize") no_auto_exclude
    CString CmyDialog::ADOConnection()
    {
        CString m_strConnectString;
    HRESULT hr = S_OK; MSDASC::IDataSourceLocatorPtr ptrDataSourceWnd = NULL;
    hr = ptrDataSourceWnd.CreateInstance(__uuidof(MSDASC::DataLinks));
        if(FAILED(hr))
    _com_issue_error(hr);
        hr = ptrDataSourceWnd->put_hWnd((long)this->m_hWnd);
    if(FAILED(hr))
            _com_issue_error(hr);
                  
    IDispatchPtr ptrDispatch = NULL;
    hr = ptrDataSourceWnd->PromptNew(&ptrDispatch);
       if(FAILED(hr))
    _com_issue_error(hr);
        if(ptrDispatch != NULL)
    {
           _ConnectionPtr m_Conn=  ptrDispatch;
       BSTR bstrConnectString =m_Conn->ConnectionString;
       USES_CONVERSION;
       m_strConnectString = W2CT(bstrConnectString);
       TRACE(_T("Connect String: %s\n"), (LPCTSTR)m_strConnectString);
    }
       return m_strConnectString;
    }