A VT_VARIANT must be combined with VT_BYREF

Frederic Lavigne <[email protected]> Wed, 1 Jun 2005 17:32:30 +0200
Newsgroups gmane.comp.windows.devel.jawin
Message-ID <[email protected]>
Hi there,
I'm trying to load an email message (.eml) into a CDO message.
First I need to get a ADO Stream on the message.
The C++ equivalent code I want to implement is:

_StreamPtr  pStm(__uuidof(Stream));
_variant_t varOptional(DISP_E_PARAMNOTFOUND,VT_ERROR);
   try {
            pStm->raw_Open(varOptional, adModeUnknown,
adOpenStreamUnspecified,NULL,NULL);
            pStm->LoadFromFile(path);
      }
      catch(_com_error e)
      {
            throw e;
      }
Written using jawin, it gives:

      _Stream stream = new _Stream(Stream.CLSID);
      Variant variant = new Variant();
      variant.vt = VarTypes.VT_ERROR;
      variant.scode = 0x80020004; // DISP_E_PARAMNOTFOUND
      stream.Open(
          variant,
          ConnectModeEnum.adModeUnknown,
          StreamOpenOptionsEnum.adOpenStreamUnspecified,
          null,
          null);
      stream.LoadFromFile(path);

However, whenever I run this, I get:

org.jawin.COMException: 8000ffff: A VT_VARIANT must be combined with
VT_BYREF (base vartype 12)
at org.jawin.marshal.GenericStub.dispatchInvoke0(Native Method)
at org.jawin.marshal.GenericStub.dispatchInvoke(GenericStub.java:201)
at org.jawin.DispatchPtr.invokeN(DispatchPtr.java:587)
at org.jawin.DispatchPtr.invokeN(DispatchPtr.java:555)
at ADODB._Stream.Open(_Stream.java:303):

I have generated the ADODB classes from msado15.dll using the
typebrowser from jawin 2.0-alpha1.

Has someone already experienced and solved such issue? I searched the
list for such problem but did not find a solution.

thanks,
-fred