USES_CONVERSION;
        CComPtr<IDispatch> cnn;
HRESULT hResult = E_FAIL;
CLSID clsid;
hResult=CLSIDFromProgID(A2W("ADODB.Connection"), &clsid);
    hResult=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER, IID_IDispatch, (void**)&cnn);
        DISPID dispid;
LPWSTR oopen=A2W("Open");
hResult=cnn->GetIDsOfNames(IID_NULL,&oopen,1,LOCALE_USER_DEFAULT,&dispid);
DISPPARAMS dispparams;
          memset(&dispparams, 0, sizeof(dispparams));
          dispparams.cArgs      = 4;
          dispparams.rgvarg     = new VARIANT[4];
  dispparams.cNamedArgs =0;
          dispparams.rgvarg[0].vt = VT_BSTR;
  dispparams.rgvarg[0].bstrVal =L"DRIVER={Microsoft Access Driver (*.mdb)};dbq=C:\\MYCAI\\DATA\\MYCAI.MDB";
         dispparams.rgvarg[1].vt = VT_BSTR;
 dispparams.rgvarg[1].bstrVal =L"";
        dispparams.rgvarg[2].vt = VT_BSTR;
  dispparams.rgvarg[2].bstrVal =L"ghhyEDTFT346Sbftr";
 dispparams.rgvarg[3].vt = VT_I4;
dispparams.rgvarg[3].lVal =-1;
 hResult = cnn->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT,
              DISPATCH_METHOD,
              &dispparams,NULL,NULL,NULL);
  delete[] dispparams.rgvarg;invoke的结果总是"发生意外"