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 —