//------------------------------------------------------------------- // VOImage Header File //------------------------------------------------------------------- // // Copyright ©2000 Virtual Office Systems Incorporated // All Rights Reserved // // This code may be used in compiled form in any way you desire. This // file may be redistributed unmodified by any means PROVIDING it is // not sold for profit without the authors written consent, and // providing that this notice and the authors name is included. // // This code can be compiled, modified and distributed freely, providing // that this copyright information remains intact in the distribution. // // This code may be compiled in original or modified form in any private // or commercial application. // // This file is provided "as is" with no expressed or implied warranty. // The author accepts no liability for any damage, in any form, caused // by this code. Use it at your own risk. //------------------------------------------------------------------- #if !defined(AFX_VOIMAGE_H__B83C4202_DB1E_48BE_92A5_21019F9EE6FC__INCLUDED_) #define AFX_VOIMAGE_H__B83C4202_DB1E_48BE_92A5_21019F9EE6FC__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #ifdef _WIN32_WCE #include #endif #include "vostring.h" class CVOResource { public: CVOResource(HMODULE hModule, DWORD dwResourceID, LPCTSTR pcszClass); ~CVOResource(); BOOL IsLoaded(); DWORD GetSize() { return m_dwSize; } PBYTE GetData() { return m_pData; } void SetUserData(DWORD dwValue) { m_dwUser = dwValue; } DWORD GetUserData() { return m_dwUser; } protected: DWORD m_dwUser; DWORD m_dwSize; PBYTE m_pData; HGLOBAL m_hGlobal; HRSRC m_hrsrc; }; class CVOImage { public: BOOL SetCanvasSize(int x, int y, COLORREF rgbBackground = RGB(1, 1, 1), BOOL fHCenter = TRUE, BOOL fVCenter = TRUE); COLORREF GetPixel(int x, int y); BOOL DrawTransparent(HDC hdc, int x, int y, int cx = -1, int cy = -1, COLORREF TransparentColor = RGB(192, 192, 192)); HBITMAP Copy(int cx = -1, int cy = -1, int nCanvasWidth = -1, int nCanvasHeight = -1); static DWORD CALLBACK GetImageResourceData(LPSTR szBuffer, DWORD dwBufferMax, LPARAM lParam); BOOL IsLoaded(); #ifdef _WIN32_WCE static void CALLBACK ImageProgress( IImageRender *, BOOL, LPARAM); #endif static DWORD CALLBACK GetImageData( LPSTR, DWORD, LPARAM); BOOL SetBitmap(HDC hdc, DWORD dwResourceID, LPCTSTR pcszClass = TEXT("IMAGE"), HMODULE hModule = 0 ); DWORD GetWidth(); DWORD GetHeight(); BOOL Draw(HDC hdc, int x, int y, int cx = -1, int cy = -1); BOOL DrawTranslucent(HDC hdc, int x, int y, int nPercent, int cx = -1, int cy = -1, COLORREF TransparentColor = RGB(192, 192, 192)); BOOL Load(HDC hdc, LPCTSTR pcszFileName); CVOImage(); virtual ~CVOImage(); operator HBITMAP() { return m_hbitmap; } const CVOString& GetFileName() { return m_strFileName; } protected: CVOString m_strFileName; // Empty if loaded from resource HMODULE m_hmoduleResource; // 0 if loaded from file DWORD m_dwResourceID; // 0 if loaded from file DWORD m_dwHeight; DWORD m_dwWidth; HDC m_hdc; HBITMAP m_hbitmap; static BOOL g_bStretchBlt; static int g_iMaxHeight; static int g_iMaxWidth; static int g_iScale; }; #endif // !defined(AFX_VOIMAGE_H__B83C4202_DB1E_48BE_92A5_21019F9EE6FC__INCLUDED_)