+#if wxUSE_UNICODE
+ wxDataInputStream(wxInputStream& s, wxMBConv& conv = wxConvUTF8);
+#else
+ wxDataInputStream(wxInputStream& s);
+#endif
+ ~wxDataInputStream();
+
+ bool IsOk() { return m_input->IsOk(); }
+
+ wxUint64 Read64();
+ wxUint32 Read32();
+ wxUint16 Read16();
+ wxUint8 Read8();
+ double ReadDouble();
+ wxString ReadString();
+
+ wxDataInputStream& operator>>(wxString& s);
+ wxDataInputStream& operator>>(wxInt8& c);
+ wxDataInputStream& operator>>(wxInt16& i);
+ wxDataInputStream& operator>>(wxInt32& i);
+ wxDataInputStream& operator>>(wxUint8& c);
+ wxDataInputStream& operator>>(wxUint16& i);
+ wxDataInputStream& operator>>(wxUint32& i);
+ wxDataInputStream& operator>>(wxUint64& i);
+ wxDataInputStream& operator>>(double& i);
+ wxDataInputStream& operator>>(float& f);
+
+ void BigEndianOrdered(bool be_order) { m_be_order = be_order; }
+
+protected:
+ wxInputStream *m_input;
+ bool m_be_order;
+#if wxUSE_UNICODE
+ wxMBConv& m_conv;
+#endif