Listing 4: Data interface class

class DataInterface
{
  public:
                   DataInterface(void);
                  ~DataInterface(void);
   unsigned char * diGetData(const char *fileName, int res, 
                             const char * type, 
                             int &length);
   int             diGetFileInfo(const char *fileName,int &width, 
                                 int &height, int &length);
   unsigned long   diGetMsgSize(void);
   std::string     diGetContextKind(void);
   std::string     diGetContextID(void);
   std::string     diGetObjectKind(void);
   std::string     diGetObjectID(void);
   std::string     diGetFileExt(void);
   std::string     diGetPathDelimiter(void);
  private:
   unsigned char * diReadFileAsData(const char *fileName,  
                                    int res, int &length);
   unsigned char * diReadFileAsImage(const char *fileName, int res, 
                                     int &length);
   HINSTANCE       mLib;
};
— End of Listing —