VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
怎样在程序中调用建立连接字符串的对话框

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

在程序中有时候需要用到连接字符串,但是有可能在配置时要改变它,手工输入是容易错的,有了这个对话框,一切就简单了,但是这个对话框可不是一个api就能调出来的,偶查了查msdn再东抄抄西抄抄再自己发了一会儿呆些了下面的这个函数。里面的东西不用你看懂,把它copy下来用就行乐,当然能看懂最好了,找出错误来请发emailto:[email protected].

BOOL GetConnectString(TCHAR *lpszConnectString,HWND hWndParent)
{
 CComPtr<IDBPromptInitialize> pIDBPromptInitialize=NULL;
 CComPtr<IDBProperties > pIDBProperties = NULL;
 CComPtr<IDataInitialize> spDataInit=NULL;
 CComBSTR bstrConnectString;
 
 HRESULT hr;
 // Create an instance of the Data Links component.
 hr=CoCreateInstance(CLSID_DataLinks, NULL, CLSCTX_INPROC_SERVER,
  IID_IDBPromptInitialize, (void **)&pIDBPromptInitialize);
 if (FAILED(hr))
  return FALSE;
 

 // Prompt the user for the provider and initialization properties.
 hr=pIDBPromptInitialize->PromptDataSource(NULL, hWndParent,
    DBPROMPTOPTIONS_PROPERTYSHEET, 0, NULL, NULL, IID_IDBProperties,
  (IUnknown **)&pIDBProperties);
 if (FAILED(hr))
  return FALSE;
 hr = CoCreateInstance(CLSID_MSDAINITIALIZE, NULL, CLSCTX_INPROC_SERVER,
   IID_IDataInitialize, (void**)&spDataInit);
 if (FAILED(hr))
  return FALSE;
 
 hr=spDataInit->GetInitializationString(pIDBProperties,true,&bstrConnectString);
 if (FAILED(hr))
  return FALSE;
 
 lstrcpy(lpszConnectString,(char*)_bstr_t(bstrConnectString));
 return TRUE;
 

}

参数说明,返回值为false,用户取消

第二个为out,输入连接字符串

第三个位in,父窗口

记住先要初始化com哦




相关文章

相关软件