invoke COM function
 
I have a COM interface with functions like the following, how to can
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;
        
        virtual /* [helpstring][id][propget] */ HRESULT
STDMETHODCALLTYPE get_ConnectionCommand( 
            /* [retval][out] */ IUnknown **ppICommand) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT
STDMETHODCALLTYPE put_ConnectionCommand( 
            /* [in] */ IUnknown *pICommand) = 0;
################################
typedef /* [wire_marshal] */ OLECHAR *BSTR;
#################################
typedef WCHAR OLECHAR;
################################