有人提供了一个函数,但编译时提示很多对象未定义。因为小弟对COM不是很明白,所以请大家帮忙看看还需要引用什么头文件,另外这个函数是否还需要改动
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;}