.
Overview
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.
Highlights
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
IPersistStream[Init]. - 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
turned.. - 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