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