diff -urN rcomp-7.0.1-orig/inc/resource.h rcomp-7.0.1/inc/resource.h
--- rcomp-7.0.1-orig/inc/resource.h	2003-12-27 23:42:20.000000000 +0100
+++ rcomp-7.0.1/inc/resource.h	2006-10-29 14:16:05.000000000 +0100
@@ -35,6 +35,8 @@
 	DataType iLenType;
 	};
 
+ostream & operator<< ( ostream & os, ResourceItemArray & o);
+
 // ResourceItemArrayIterator
 
 class ResourceItemArrayIterator : public ArrayIterator
@@ -56,6 +58,8 @@
 	void StreamOut(ResourceDataStream& aStream) const;
 	};
 
+ostream & operator<< ( ostream & os, ResourceItemArrayArray & o);
+
 // ResourceItemArrayArrayIterator
 
 class ResourceItemArrayArrayIterator : public ArrayIterator
@@ -89,6 +93,8 @@
 	bool iContainsCompressedUnicode;
 	};
 
+ostream & operator<< ( ostream & os, ResourceHeader & o);
+
 // ResourceItem
 
 class ResourceItem : public ArrayItem, public StackItem
@@ -135,6 +141,8 @@
 	unsigned char iValueSet;
 	};
 
+ostream& operator<<(ostream& os,SimpleResourceItem & o);
+
 // ArrayResourceItem
 
 class ArrayResourceItem : public ResourceItem
@@ -157,6 +165,8 @@
 	StringArray iValues;
 	};
 
+ostream& operator<<(ostream& os,ArrayResourceItem& aItem);
+
 // StructTypeResourceItem
 
 class StructTypeResourceItem : public ResourceItem
@@ -176,6 +186,8 @@
 	ResourceItemArray iResourceItems;
 	};
 
+ostream& operator<<(ostream& os,StructTypeResourceItem& o);
+
 // StructArrayResourceItem
 
 class StructArrayResourceItem : public ResourceItem
@@ -196,4 +208,6 @@
 	ResourceItemArray* iLastRIA;
 	};
 
+ostream& operator<<(ostream& os,StructArrayResourceItem& aItem);
+
 #endif
diff -urN rcomp-7.0.1-orig/inc/structst.h rcomp-7.0.1/inc/structst.h
--- rcomp-7.0.1-orig/inc/structst.h	2003-12-27 23:42:20.000000000 +0100
+++ rcomp-7.0.1/inc/structst.h	2006-10-29 14:14:51.000000000 +0100
@@ -46,6 +46,8 @@
 	String iLengthLimit;
 	};
 
+ostream& operator<< ( ostream & os, SimpleStructItem & o);
+
 // ArrayStructItem
 
 class ArrayStructItem : public StructItem	// e.g. WORD a[] = {1,2,3}
@@ -63,6 +65,8 @@
 	String iSize;
 	};
 
+ostream& operator<< ( ostream & os, ArrayStructItem & o);
+
 // StructTypeStructItem
 
 class StructTypeStructItem : public StructItem	// e.g. STRUCT a
@@ -74,6 +78,8 @@
 	ostream& StreamOut ( ostream & os);
 	};
 
+ostream& operator<< ( ostream & os, StructTypeStructItem & o);
+
 // StructArrayStructItem
 
 class StructArrayStructItem : public StructItem // e.g. STRUCT a[]
@@ -90,6 +96,8 @@
 	String iSize;
 	};
 
+ostream& operator<< ( ostream & os, StructArrayStructItem & o);
+
 // StructItemArray
 
 class StructItemArray : public Array
@@ -101,6 +109,8 @@
 	void Add( StructItem * pNewItem);
 	};
 
+ostream& operator<< ( ostream & os, StructItemArray & o);
+
 // StructItemArrayIterator
 
 class StructItemArrayIterator : public ArrayIterator
@@ -124,6 +134,8 @@
 	StructItemArray iSIA;
 	};
 
+ostream& operator<< ( ostream & os, StructHeader & o);
+
 // StructHeaderArray
 
 class StructHeaderArray : public Array
@@ -138,6 +150,8 @@
 	static int iInUse;	// Only one instance of this class may exist at a time.
 	};
 
+ostream& operator<< ( ostream & os, StructHeaderArray & o);
+
 // StructHeaderArrayIterator
 
 class StructHeaderArrayIterator : public ArrayIterator
