Is it possible to persist a variant with vt = VT_RECORD into a block of
memory with a few simple calls?
and from memory to UDT back too?
Thanks for your time!
--
Egbert Nierop
unsigned long __RPC_USER VARIANT_UserSize( unsigned long __RPC_FAR *, unsigned long , VARIANT __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER VARIANT_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER VARIANT_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * );
void __RPC_USER VARIANT_UserFree( unsigned long __RPC_FAR *, VARIANT __RPC_FAR * );
Before you ask me, I don't know the parameters...
--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnic...@geocities.com
MVP VC FAQ: http://www.mvps.org/vcfaq
=====================================
"Egbert Nierop (MVP for IIS)" <egbert...@nospam.com> wrote in message news:OnCMietnBHA.980@tkmsftngp03...
unsigned long __RPC_USER VARIANT_UserSize( unsigned
long __RPC_FAR *, unsigned long , VARIANT __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER VARIANT_UserMarshal( unsigned
long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER VARIANT_UserUnmarshal(unsigned
long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * );
void __RPC_USER VARIANT_UserFree( unsigned
long __RPC_FAR *, VARIANT __RPC_FAR * );
exported from OLEAUT32.DLL, that are supposed to marshal any valid
variant into a memory buffer and back again. No documenation,
unfortunately. See the discussion starting at
http://discuss.microsoft.com/SCRIPTS/WA-MSD.EXE?A2=ind0102A&L=DCOM&P=R50
76
--
With best wishes,
Igor Tandetnik
"For every complex problem, there is a solution that is simple, neat,
and wrong." H.L. Mencken
"Egbert Nierop (MVP for IIS)" <egbert...@nospam.com> wrote in
message news:OnCMietnBHA.980@tkmsftngp03...
--
The scalable ASP Session replacement for webfarms
http://www.nieropwebconsult.nl/asp_session_manager.htm
"Alexander Nickolov" <agnic...@geocities.com> wrote in message
news:eZOEHrtnBHA.2536@tkmsftngp07...
I tested this with C++ and all simple types work including VT_ARRAY but
VT_RECORD does not work.
I found this code on the net written in pascal.
procedure RPC_OleVar2Stream(const V: OleVariant; S: TStream);
var
Flag: DWORD;
Size: DWORD;
Buffer: PChar;
begin
Flag:=0;
Size:=VARIANT_UserSize(Flag,0,V);
GetMem(Buffer,Size);
try
VARIANT_UserMarshal(Flag,Buffer,V);
S.WriteBuffer(Size,sizeof(Size));
S.WriteBuffer(Buffer^,Size);
finally
FreeMem(Buffer);
end;
end;
--
The scalable ASP Session replacement for webfarms
http://www.nieropwebconsult.nl/asp_session_manager.htm
"Igor Tandetnik" <itand...@whenu.com> wrote in message
news:O3eYe4tnBHA.1528@tkmsftngp03...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rpc/ov-
featr_5cj7.asp
--
With best wishes,
Igor Tandetnik
"For every complex problem, there is a solution that is simple, neat,
and wrong." H.L. Mencken
"Egbert Nierop (MVP for IIS)" <egbert...@nospam.com> wrote in
message news:OGLdJ#5nBHA.1644@tkmsftngp05...
--