I was looking at some of your postings recently and I thought that maybe you
have come across the situation where you have tried to send a
VT_STREAMED_OBJECT into (OleSaveToStream) a queue body and tried to retrieve
it at a later time (OleLoadFromStream).

I am struggling to work with this (I hope that the code is self
explanatory):

        pMsgProps->aPropID[iter] = PROPID_M_BODY_TYPE;
        pMsgProps->aPropVar[iter].vt = VT_UI4;
        pMsgProps->aPropVar[iter].ulVal = VT_STREAMED_OBJECT;
        iter++;


        pMsgProps->aPropID[iter] = PROPID_M_BODY;
        pMsgProps->aPropVar[iter].vt = VT_VECTOR|VT_UI1;
        STATSTG stat;
        hResult = ptrStream0->Stat(&stat,STATFLAG_NONAME);
        pMsgProps->aPropVar[iter].caub.cElems = stat.cbSize.LowPart;
        pMsgProps->aPropVar[iter].caub.pElems = (unsigned char *)static_cast<void
*>(ptrStream0);

The above part seems to go through fine.  But I cannot extract the
information from the receiving end:
                IStream* ptrStream0 =
reinterpret_cast<IStream*>(pMsgProps->aPropVar[3].caub.pElems);
// the subscript 3 is where the message body is being extracted, also memory
has been allocated as UCHAR in the ..pElems
                hResult = ptrStream0->Stat(&stat,STATFLAG_NONAME);
// the above line of code gives you garbage values for both
STATMSG.cbSize.(HighPart and LowPart)

Do you think that you could help?

Thanks.

Hans


Reply via email to