Adapt MemoryOutStream for VC6 __int64 type
diff --git a/UnitTest++/MemoryOutStream.cpp b/UnitTest++/MemoryOutStream.cpp
index 3c112b6..319dfda 100644
--- a/UnitTest++/MemoryOutStream.cpp
+++ b/UnitTest++/MemoryOutStream.cpp
@@ -16,6 +16,33 @@
 	m_text = this->str();
 }
 
+#ifdef UNITTEST_COMPILER_IS_MSVC6
+
+#define snprintf _snprintf
+
+template<typename ValueType>
+std::ostream& FormatToStream(std::ostream& stream, char const* format, ValueType const& value)
+{
+   using namespace std;
+   
+   const size_t BUFFER_SIZE=32;
+   char txt[BUFFER_SIZE];
+   snprintf(txt, BUFFER_SIZE, format, value);
+   return stream << txt;
+}
+
+std::ostream& operator<<(std::ostream& stream, __int64 const n)
+{
+   return FormatToStream(stream, "%I64d", n);
+}
+
+std::ostream& operator<<(std::ostream& stream, unsigned __int64 const n)
+{
+   return FormatToStream(stream, "%I64u", n);
+}
+
+#endif
+
 }
 
 #else
@@ -108,7 +135,11 @@
     return *this;
 }
 
+#ifdef UNITTEST_COMPILER_IS_MSVC6
+MemoryOutStream& MemoryOutStream::operator <<(__int64 const n)
+#else
 MemoryOutStream& MemoryOutStream::operator <<(long long const n)
+#endif
 {
 #ifdef UNITTEST_WIN32
 	FormatToStream(*this, "%I64d", n);
@@ -119,7 +150,11 @@
 	return *this;
 }
 
+#ifdef UNITTEST_COMPILER_IS_MSVC6
+MemoryOutStream& MemoryOutStream::operator <<(unsigned __int64 const n)
+#else
 MemoryOutStream& MemoryOutStream::operator <<(unsigned long long const n)
+#endif
 {
 #ifdef UNITTEST_WIN32
 	FormatToStream(*this, "%I64u", n);
diff --git a/UnitTest++/MemoryOutStream.h b/UnitTest++/MemoryOutStream.h
index 0c46f53..b9cea19 100644
--- a/UnitTest++/MemoryOutStream.h
+++ b/UnitTest++/MemoryOutStream.h
@@ -26,12 +26,21 @@
     mutable std::string m_text;
 };
 
+#ifdef UNITTEST_COMPILER_IS_MSVC6
+std::ostream& operator<<(std::ostream& stream, __int64 const n);
+std::ostream& operator<<(std::ostream& stream, unsigned __int64 const n);
+#endif
+
 }
 
 #else
 
 #include <cstddef>
 
+#ifdef UNITTEST_COMPILER_IS_MSVC6
+namespace std {}
+#endif
+
 namespace UnitTest
 {
 
@@ -47,10 +56,15 @@
     MemoryOutStream& operator <<(char const* txt);
     MemoryOutStream& operator <<(int n);
     MemoryOutStream& operator <<(long n);
-	MemoryOutStream& operator <<(long long n);
     MemoryOutStream& operator <<(unsigned long n);
-	MemoryOutStream& operator <<(unsigned long long n);
-    MemoryOutStream& operator <<(float f);
+#ifdef UNITTEST_COMPILER_IS_MSVC6
+    MemoryOutStream& operator <<(__int64 n);
+    MemoryOutStream& operator <<(unsigned __int64 n);
+#else
+    MemoryOutStream& operator <<(long long n);
+    MemoryOutStream& operator <<(unsigned long long n);
+#endif
+   MemoryOutStream& operator <<(float f);
     MemoryOutStream& operator <<(double d);
     MemoryOutStream& operator <<(void const* p);
     MemoryOutStream& operator <<(unsigned int s);
diff --git a/tests/TestMemoryOutStream.cpp b/tests/TestMemoryOutStream.cpp
index 9b2aa1f..ff1e920 100644
--- a/tests/TestMemoryOutStream.cpp
+++ b/tests/TestMemoryOutStream.cpp
@@ -167,12 +167,15 @@
     CHECK_EQUAL("0", stream.GetText());
 }
 
-#ifndef UNITTEST_COMPILER_IS_MSVC6
 TEST(StreamingLongLongWritesCorrectCharacters)
 {
 	MemoryOutStream stream;
+#ifdef UNITTEST_COMPILER_IS_MSVC6
+   stream << (__int64)-12345i64;
+#else
 	stream << (long long)-12345ll;
-	CHECK_EQUAL("-12345", stream.GetText());
+#endif
+   CHECK_EQUAL("-12345", stream.GetText());
 }
 
 #ifdef LLONG_MAX
@@ -196,8 +199,12 @@
 TEST(StreamingUnsignedLongLongWritesCorrectCharacters)
 {
 	MemoryOutStream stream;
-	stream << (unsigned long long)85899ull;
-	CHECK_EQUAL("85899", stream.GetText());
+#ifdef UNITTEST_COMPILER_IS_MSVC6
+   stream << (unsigned __int64)85899ui64;
+#else
+   stream << (unsigned long long)85899ull;
+#endif
+   CHECK_EQUAL("85899", stream.GetText());
 }
 
 #ifdef ULLONG_MAX
@@ -212,10 +219,13 @@
 TEST(StreamingMinUnsignedLongLongWritesCorrectCharacters)
 {
     MemoryOutStream stream;
+#ifdef UNITTEST_COMPILER_IS_MSVC6
+    stream << (unsigned __int64)0ui64;
+#else
     stream << (unsigned long long)0ull;
+#endif
     CHECK_EQUAL("0", stream.GetText());
 }
-#endif
 
 TEST(StreamingFloatWritesCorrectCharacters)
 {