Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#ifndef __DIBCLASSES_H
#define __DIBCLASSES_H
//
// class CDibFile
//
class CDibFile { public: CDibFile(); ~CDibFile(); HRESULT GetFileHeader(IStream *); HRESULT GetInfoHeader(IStream *);
DWORD HeaderSize() { return(m_headerSize); } DWORD CalcImageSize();
operator BITMAPINFO * () { return(m_bmi.p); } operator BITMAPINFOHEADER * () { return(&m_bmi.p->bmiHeader); } private: DWORD m_headerSize; union { BITMAPINFO * p; unsigned char * bytes; } m_bmi; };
class CDibSection { public: CDibSection(); ~CDibSection(); HRESULT Create ( CDibFile& ); HRESULT Setup ( HDC basedOnThisDC); HRESULT ReadFrom( IStream * strm, DWORD amount ); HRESULT PaintTo ( HDC hdc, int x = 0, int y = 0 ); HRESULT GetSize ( SIZEL &sz);
DWORD ImageSize() { return(m_imageSize); } void ImageSize(DWORD dw) { m_imageSize = dw; }
operator HANDLE() { return m_handle; }
unsigned char * Base() { return(m_bitsBase); }
private: unsigned char * m_bitsBase; unsigned char * m_current; HDC m_memDC; HBITMAP m_handle; HBITMAP m_oldBitmap; LONG m_h; LONG m_w; DWORD m_imageSize; };
#endif __DIBCLASSES_H
|