title: How do I implement sending a _Recordset ** parameter to a COM+ application
body: <p>I have a COM+ VB6 application, I generated a header file using the MIDL compiler.
  The header contains the following definition:</p>
  
  <pre><code>   virtual /* [id] */ HRESULT STDMETHODCALLTYPE Gett( 
      /* [in] */ BSTR sPostCode,
      /* [in] */ BSTR sSurname,
      /* [retval][out] */ _Recordset **__MIDL_0012) = 0;
  </code></pre>
  
  <p>In my c++ client call that calls this ive imported</p>
  
  <pre><code>    #import "C:\Program files\Common Files\System\Ado\msado15.dll" 
  rename("EOF", "ADOEOF")
  </code></pre>
  
  <p>The GetAddress function is then being called as follows:</p>
  
  <pre><code>void AddressLookup::GetAddress(_bstr_t postCode, _bstr_t address)
  {
     ADODB::_RecordsetPtr recordset;
     HRESULT hr = recordset.CreateInstance(__uuidof(ADODB::Recordset));
  
     m_pIAddressLookup-&gt;Gett(postCode, address, recordset);
  }
  </code></pre>
  
  <p>but i keep geting this compiler error:</p>
  
  <blockquote>
    <p>AddressLookup.cpp(20) : error C2664:
    '_AddressLookup::Gett' : cannot
    convert parameter 3 from
    'ADODB::_RecordsetPtr' to '_Recordset
    ** '
            No user-defined-conversion operator available that can perform
    this conversion, or the operator
    cannot be called</p>
  </blockquote>