/** Writes data to a memory stream. @param buffer Pointer to data to be written @param size Item size in bytes @param count Maximum number of items to be written @param stream Pointer to FIMEMORY structure @return Returns the number of full items actually written, which may be less than count if an error occurs */ unsigned DLL_CALLCONV FreeImage_WriteMemory(const void *buffer, unsigned size, unsigned count, FIMEMORY *stream) { if (stream != NULL) { FreeImageIO io; SetMemoryIO(&io); FIMEMORYHEADER *mem_header = (FIMEMORYHEADER*)(((FIMEMORY*)stream)->data); if(mem_header->delete_me == TRUE) { return io.write_proc((void *)buffer, size, count, stream); } else { // do not write in a user buffer FreeImage_OutputMessageProc(FIF_UNKNOWN, "Memory buffer is read only"); } } return 0; }
void C_OStream::write (const char c[/*n*/], int n) { if((unsigned)n != _io->write_proc((void*)&c[0], 1, n, _handle)) { Iex::throwErrnoExc(); } }