how can I call the put_ConnectionString correctly? when I do the following I got compile error BSTR bstr = "aaa"; hr.put_ConnectionString(bstr); ################################### HRESULT CEPGLibApp::LoadXMLData(LPCTSTR tszXMLFileName) { HRESULT hr = S_OK; CComPtr<ISQLXMLBulkLoad> pIXMLBulkLoad; hr = CoCreateInstance(CLSID_SQLXMLBulkLoad3, NULL, CLSCTX_INPROC_SERVER, IID_ISQLXMLBulkLoad, (void **)&pIXMLBulkLoad); if (SUCCEEDED(hr)) { BSTR bstr = "aaa"; hr.put_ConnectionString(bstr); } if (SUCCEEDED(hr)) { } if (SUCCEEDED(hr)) { } return hr; } ###################################### ISQLXMLBulkLoad : public IDispatch { public: virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ConnectionString( /* [retval][out] */ BSTR *pbstrConnectionString) = 0; virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ConnectionString( /* [in] */ BSTR bstrConnectionString) = 0; ################################ typedef /* [wire_marshal] */ OLECHAR *BSTR; ################################# typedef WCHAR OLECHAR; ################################