Variant Streaming Code



This code provides two global functions, WriteVariantToStream and ReadVariantFromStream,
that enable you to read and write a variant to a stream. In addition, there are two other
global functions, ReadVariantFromBlob and WriteVariantToBlob, for reading and writing
a variant to a BLOB.


Here are some of the main advantages of these functions:

  • Uses any given IStream to stream the Variant into and out of.
  • Data is streamed in efficient binary form.
  • Stream is versioned for backwards compatibility.
  • Supports arbitrary size and arbitrary dimension safe-arrays.
  • Object streaming is supported if the object in variant supports

  • All code is in one header file (VariantStream.h) and only two routines are
    exposed: WriteVariantToStream and ReadVariantFromStream.

  • Comes with supporting test code that tests the header file — in case code
    is modified

  • Does not use C++ exception handling.  Test project has EH flag

  • Doesn’t use the CRT.
  • Does not use any Direct-To-COM (VC++’s comdef.h, such as _variant_t, _bstr_t,
    _com_ptr, _com_error)

  • Works in both Unicode and ANSI


Download source – 37 Kb

More by Author

Must Read