diff --git a/interface/wx/mstream.h b/interface/wx/mstream.h index eec704124a..86dbd37758 100644 --- a/interface/wx/mstream.h +++ b/interface/wx/mstream.h @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: mstream.h -// Purpose: interface of wxMemoryOutputStream +// Purpose: interface of wxMemoryOutputStream, wxMemoryInputStream // Author: wxWidgets team // RCS-ID: $Id$ // Licence: wxWindows license @@ -9,7 +9,26 @@ /** @class wxMemoryOutputStream - @todo describe me. + This class allows to use all methods taking a wxOutputStream reference to write + to in-memory data. + + Example: + @code + wxMemoryOutputStream stream; + if (!my_wxImage.SaveFile(stream)) + return; + + // now we can access the saved image bytes: + wxStreamBuffer* theBuffer = stream.GetOutputStreamBuffer(); + unsigned char byte; + if (theBuffer->Read(byte, 1) != 1) + return; + + // ... do something with 'byte'... + + // remember that ~wxMemoryOutputStream will destroy the internal + // buffer since we didn't provide our own when constructing it + @endcode @library{wxbase} @category{streams} @@ -24,12 +43,15 @@ public: grow if required. @warning - If the buffer is created, it will be destroyed at the destruction of the stream. + If the buffer is created by wxMemoryOutputStream, it will be destroyed + at the destruction of the stream. */ wxMemoryOutputStream(void* data = NULL, size_t length = 0); /** Destructor. + + If the buffer wasn't provided by the user, it will be deleted here. */ virtual ~wxMemoryOutputStream(); @@ -41,7 +63,7 @@ public: /** Returns the pointer to the stream object used as an internal buffer - for that stream. + for this stream. */ wxStreamBuffer* GetOutputStreamBuffer() const; }; @@ -51,7 +73,23 @@ public: /** @class wxMemoryInputStream - @todo describe me. + This class allows to use all methods taking a wxInputStream reference to read + in-memory data. + + Example: + @code + // we've got a block of memory containing a BMP image and we want + // to use wxImage to load it: + wxMemoryInputStream stream(my_memory_block, size); + + wxImage theBitmap; + if (!theBitmap.LoadFile(stream, wxBITMAP_TYPE_BMP)) + return; + + // we can now safely delete the original memory buffer as the data + // has been decoded by wxImage: + delete [] my_memory_block; + @endcode @library{wxbase} @category{streams} @@ -86,7 +124,7 @@ public: wxFileOffset len = wxInvalidOffset); /** - Destructor. + Destructor. Does NOT free the buffer provided in the ctor. */ virtual ~wxMemoryInputStream();