Listing 5: Definition of the CImageBitmap class
#ifndef IMAGE_H #define IMAGE_H class CIBHelper; class CImageBitmap : public CBitmap { public: CImageBitmap(); virtual ~CImageBitmap(); BOOL LoadBMPFile(const char *Filespec); BOOL CreateFromBMPFile(CDC *pDC); void LoadDataFromBMPFile(); BOOL CreationRequired() {return (m_Private == NULL);}; BOOL BMPLoaded() {return (m_Image != NULL);}; operator BITMAP *() {return m_Private ? &m_Bitmap : 0;}; operator CSize *() {return m_Image ? &m_Size : 0;}; operator CIBHelper *() {return m_Private;}; void *GetPixel(CPoint *Point); BOOL PutPixel(CPoint *Point, void *In); void Transform(CImageBitmap *In, CPoint *TopLeft, CPoint *BottomLeft, CPoint *TopRight, CPoint *BottomRight, CPoint *Offset); private: CIBHelper *m_Private; CSize m_Size; BITMAP m_Bitmap; BITMAPINFOHEADER m_Hdr; char *m_Image; CString m_Title; }; #endif End of Listing