📄 gwextdibsectionlite.cpp
字号:
// GWExtDIBSectionLite.cpp: implementation of the GWExtDIBSectionLite class.
//
//////////////////////////////////////////////////////////////////////
//*******************************************************************************
// 版权声明
// ------------------------------------------------------------------------------
// 此段代码是AppBuilder扩展类库GWC的一部分.
// 你可以使用、重新编译、或者编译成你的发行软件的一部分。
// 但是在没有经过我们书面同意的情况下,你不能直接发行此代码文件.
//-------------------------------------------------------------------------------
// 版权所有.
// 作者:张修勇
// 拷贝日期:2000年10月05日
//-------------------------------------------------------------------------------
// 主页: http://www.ucancode.com
// 技术支持E-Mail: AppBuilder@hotmail.com
//*******************************************************************************
#include "stdafx.h"
#include "GWExtDIBSectionLite.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
// Use C++ exception handling instead of structured on non-CE platforms.
#ifndef _WIN32_WCE
#undef TRY
#undef CATCH
#undef END_CATCH
#define TRY try
#define CATCH(ex_class, ex_object) catch(ex_class* ex_object)
#define END_CATCH
#endif // _WIN32_WCE
// Spit out some messages as a sanity check for programmers
#ifdef DIBSECTION_NO_DITHER
#pragma message(" - GWExtDIBSectionLite: No dithering")
#endif
#ifdef DIBSECTION_NO_MEMDC_REUSE
#pragma message(" - GWExtDIBSectionLite: No memory DC reuse")
#endif
#ifdef DIBSECTION_NO_PALETTE
#pragma message(" - GWExtDIBSectionLite: No palette support")
#endif
// Standard colors
RGBQUAD GWExtDIBSectionLite::ms_StdColors[] = {
{ 0x00, 0x00, 0x00, 0 }, // System palette - first 10 colors
{ 0x80, 0x00, 0x00, 0 },
{ 0x00, 0x80, 0x00, 0 },
{ 0x80, 0x80, 0x00, 0 },
{ 0x00, 0x00, 0x80, 0 },
{ 0x80, 0x00, 0x80, 0 },
{ 0x00, 0x80, 0x80, 0 },
{ 0xC0, 0xC0, 0xC0, 0 },
{ 0xC0, 0xDC, 0xC0, 0 },
{ 0xA6, 0xCA, 0xF0, 0 },
{ 0x2C, 0x00, 0x00, 0 },
{ 0x56, 0x00, 0x00, 0 },
{ 0x87, 0x00, 0x00, 0 },
{ 0xC0, 0x00, 0x00, 0 },
{ 0xFF, 0x00, 0x00, 0 },
{ 0x00, 0x2C, 0x00, 0 },
{ 0x2C, 0x2C, 0x00, 0 },
{ 0x56, 0x2C, 0x00, 0 },
{ 0x87, 0x2C, 0x00, 0 },
{ 0xC0, 0x2C, 0x00, 0 },
{ 0xFF, 0x2C, 0x00, 0 },
{ 0x00, 0x56, 0x00, 0 },
{ 0x2C, 0x56, 0x00, 0 },
{ 0x56, 0x56, 0x00, 0 },
{ 0x87, 0x56, 0x00, 0 },
{ 0xC0, 0x56, 0x00, 0 },
{ 0xFF, 0x56, 0x00, 0 },
{ 0x00, 0x87, 0x00, 0 },
{ 0x2C, 0x87, 0x00, 0 },
{ 0x56, 0x87, 0x00, 0 },
{ 0x87, 0x87, 0x00, 0 },
{ 0xC0, 0x87, 0x00, 0 },
{ 0xFF, 0x87, 0x00, 0 },
{ 0x00, 0xC0, 0x00, 0 },
{ 0x2C, 0xC0, 0x00, 0 },
{ 0x56, 0xC0, 0x00, 0 },
{ 0x87, 0xC0, 0x00, 0 },
{ 0xC0, 0xC0, 0x00, 0 },
{ 0xFF, 0xC0, 0x00, 0 },
{ 0x00, 0xFF, 0x00, 0 },
{ 0x2C, 0xFF, 0x00, 0 },
{ 0x56, 0xFF, 0x00, 0 },
{ 0x87, 0xFF, 0x00, 0 },
{ 0xC0, 0xFF, 0x00, 0 },
{ 0xFF, 0xFF, 0x00, 0 },
{ 0x00, 0x00, 0x2C, 0 },
{ 0x2C, 0x00, 0x2C, 0 },
{ 0x56, 0x00, 0x2C, 0 },
{ 0x87, 0x00, 0x2C, 0 },
{ 0xC0, 0x00, 0x2C, 0 },
{ 0xFF, 0x00, 0x2C, 0 },
{ 0x00, 0x2C, 0x2C, 0 },
{ 0x2C, 0x2C, 0x2C, 0 },
{ 0x56, 0x2C, 0x2C, 0 },
{ 0x87, 0x2C, 0x2C, 0 },
{ 0xC0, 0x2C, 0x2C, 0 },
{ 0xFF, 0x2C, 0x2C, 0 },
{ 0x00, 0x56, 0x2C, 0 },
{ 0x2C, 0x56, 0x2C, 0 },
{ 0x56, 0x56, 0x2C, 0 },
{ 0x87, 0x56, 0x2C, 0 },
{ 0xC0, 0x56, 0x2C, 0 },
{ 0xFF, 0x56, 0x2C, 0 },
{ 0x00, 0x87, 0x2C, 0 },
{ 0x2C, 0x87, 0x2C, 0 },
{ 0x56, 0x87, 0x2C, 0 },
{ 0x87, 0x87, 0x2C, 0 },
{ 0xC0, 0x87, 0x2C, 0 },
{ 0xFF, 0x87, 0x2C, 0 },
{ 0x00, 0xC0, 0x2C, 0 },
{ 0x2C, 0xC0, 0x2C, 0 },
{ 0x56, 0xC0, 0x2C, 0 },
{ 0x87, 0xC0, 0x2C, 0 },
{ 0xC0, 0xC0, 0x2C, 0 },
{ 0xFF, 0xC0, 0x2C, 0 },
{ 0x00, 0xFF, 0x2C, 0 },
{ 0x2C, 0xFF, 0x2C, 0 },
{ 0x56, 0xFF, 0x2C, 0 },
{ 0x87, 0xFF, 0x2C, 0 },
{ 0xC0, 0xFF, 0x2C, 0 },
{ 0xFF, 0xFF, 0x2C, 0 },
{ 0x00, 0x00, 0x56, 0 },
{ 0x2C, 0x00, 0x56, 0 },
{ 0x56, 0x00, 0x56, 0 },
{ 0x87, 0x00, 0x56, 0 },
{ 0xC0, 0x00, 0x56, 0 },
{ 0xFF, 0x00, 0x56, 0 },
{ 0x00, 0x2C, 0x56, 0 },
{ 0x2C, 0x2C, 0x56, 0 },
{ 0x56, 0x2C, 0x56, 0 },
{ 0x87, 0x2C, 0x56, 0 },
{ 0xC0, 0x2C, 0x56, 0 },
{ 0xFF, 0x2C, 0x56, 0 },
{ 0x00, 0x56, 0x56, 0 },
{ 0x2C, 0x56, 0x56, 0 },
{ 0x56, 0x56, 0x56, 0 },
{ 0x87, 0x56, 0x56, 0 },
{ 0xC0, 0x56, 0x56, 0 },
{ 0xFF, 0x56, 0x56, 0 },
{ 0x00, 0x87, 0x56, 0 },
{ 0x2C, 0x87, 0x56, 0 },
{ 0x56, 0x87, 0x56, 0 },
{ 0x87, 0x87, 0x56, 0 },
{ 0xC0, 0x87, 0x56, 0 },
{ 0xFF, 0x87, 0x56, 0 },
{ 0x00, 0xC0, 0x56, 0 },
{ 0x2C, 0xC0, 0x56, 0 },
{ 0x56, 0xC0, 0x56, 0 },
{ 0x87, 0xC0, 0x56, 0 },
{ 0xC0, 0xC0, 0x56, 0 },
{ 0xFF, 0xC0, 0x56, 0 },
{ 0x00, 0xFF, 0x56, 0 },
{ 0x2C, 0xFF, 0x56, 0 },
{ 0x56, 0xFF, 0x56, 0 },
{ 0x87, 0xFF, 0x56, 0 },
{ 0xC0, 0xFF, 0x56, 0 },
{ 0xFF, 0xFF, 0x56, 0 },
{ 0x00, 0x00, 0x87, 0 },
{ 0x2C, 0x00, 0x87, 0 },
{ 0x56, 0x00, 0x87, 0 },
{ 0x87, 0x00, 0x87, 0 },
{ 0xC0, 0x00, 0x87, 0 },
{ 0xFF, 0x00, 0x87, 0 },
{ 0x00, 0x2C, 0x87, 0 },
{ 0x2C, 0x2C, 0x87, 0 },
{ 0x56, 0x2C, 0x87, 0 },
{ 0x87, 0x2C, 0x87, 0 },
{ 0xC0, 0x2C, 0x87, 0 },
{ 0xFF, 0x2C, 0x87, 0 },
{ 0x00, 0x56, 0x87, 0 },
{ 0x2C, 0x56, 0x87, 0 },
{ 0x56, 0x56, 0x87, 0 },
{ 0x87, 0x56, 0x87, 0 },
{ 0xC0, 0x56, 0x87, 0 },
{ 0xFF, 0x56, 0x87, 0 },
{ 0x00, 0x87, 0x87, 0 },
{ 0x2C, 0x87, 0x87, 0 },
{ 0x56, 0x87, 0x87, 0 },
{ 0x87, 0x87, 0x87, 0 },
{ 0xC0, 0x87, 0x87, 0 },
{ 0xFF, 0x87, 0x87, 0 },
{ 0x00, 0xC0, 0x87, 0 },
{ 0x2C, 0xC0, 0x87, 0 },
{ 0x56, 0xC0, 0x87, 0 },
{ 0x87, 0xC0, 0x87, 0 },
{ 0xC0, 0xC0, 0x87, 0 },
{ 0xFF, 0xC0, 0x87, 0 },
{ 0x00, 0xFF, 0x87, 0 },
{ 0x2C, 0xFF, 0x87, 0 },
{ 0x56, 0xFF, 0x87, 0 },
{ 0x87, 0xFF, 0x87, 0 },
{ 0xC0, 0xFF, 0x87, 0 },
{ 0xFF, 0xFF, 0x87, 0 },
{ 0x00, 0x00, 0xC0, 0 },
{ 0x2C, 0x00, 0xC0, 0 },
{ 0x56, 0x00, 0xC0, 0 },
{ 0x87, 0x00, 0xC0, 0 },
{ 0xC0, 0x00, 0xC0, 0 },
{ 0xFF, 0x00, 0xC0, 0 },
{ 0x00, 0x2C, 0xC0, 0 },
{ 0x2C, 0x2C, 0xC0, 0 },
{ 0x56, 0x2C, 0xC0, 0 },
{ 0x87, 0x2C, 0xC0, 0 },
{ 0xC0, 0x2C, 0xC0, 0 },
{ 0xFF, 0x2C, 0xC0, 0 },
{ 0x00, 0x56, 0xC0, 0 },
{ 0x2C, 0x56, 0xC0, 0 },
{ 0x56, 0x56, 0xC0, 0 },
{ 0x87, 0x56, 0xC0, 0 },
{ 0xC0, 0x56, 0xC0, 0 },
{ 0xFF, 0x56, 0xC0, 0 },
{ 0x00, 0x87, 0xC0, 0 },
{ 0x2C, 0x87, 0xC0, 0 },
{ 0x56, 0x87, 0xC0, 0 },
{ 0x87, 0x87, 0xC0, 0 },
{ 0xC0, 0x87, 0xC0, 0 },
{ 0xFF, 0x87, 0xC0, 0 },
{ 0x00, 0xC0, 0xC0, 0 },
{ 0x2C, 0xC0, 0xC0, 0 },
{ 0x56, 0xC0, 0xC0, 0 },
{ 0x87, 0xC0, 0xC0, 0 },
{ 0xFF, 0xC0, 0xC0, 0 },
{ 0x00, 0xFF, 0xC0, 0 },
{ 0x2C, 0xFF, 0xC0, 0 },
{ 0x56, 0xFF, 0xC0, 0 },
{ 0x87, 0xFF, 0xC0, 0 },
{ 0xC0, 0xFF, 0xC0, 0 },
{ 0xFF, 0xFF, 0xC0, 0 },
{ 0x00, 0x00, 0xFF, 0 },
{ 0x2C, 0x00, 0xFF, 0 },
{ 0x56, 0x00, 0xFF, 0 },
{ 0x87, 0x00, 0xFF, 0 },
{ 0xC0, 0x00, 0xFF, 0 },
{ 0xFF, 0x00, 0xFF, 0 },
{ 0x00, 0x2C, 0xFF, 0 },
{ 0x2C, 0x2C, 0xFF, 0 },
{ 0x56, 0x2C, 0xFF, 0 },
{ 0x87, 0x2C, 0xFF, 0 },
{ 0xC0, 0x2C, 0xFF, 0 },
{ 0xFF, 0x2C, 0xFF, 0 },
{ 0x00, 0x56, 0xFF, 0 },
{ 0x2C, 0x56, 0xFF, 0 },
{ 0x56, 0x56, 0xFF, 0 },
{ 0x87, 0x56, 0xFF, 0 },
{ 0xC0, 0x56, 0xFF, 0 },
{ 0xFF, 0x56, 0xFF, 0 },
{ 0x00, 0x87, 0xFF, 0 },
{ 0x2C, 0x87, 0xFF, 0 },
{ 0x56, 0x87, 0xFF, 0 },
{ 0x87, 0x87, 0xFF, 0 },
{ 0xC0, 0x87, 0xFF, 0 },
{ 0xFF, 0x87, 0xFF, 0 },
{ 0x00, 0xC0, 0xFF, 0 },
{ 0x2C, 0xC0, 0xFF, 0 },
{ 0x56, 0xC0, 0xFF, 0 },
{ 0x87, 0xC0, 0xFF, 0 },
{ 0xC0, 0xC0, 0xFF, 0 },
{ 0xFF, 0xC0, 0xFF, 0 },
{ 0x2C, 0xFF, 0xFF, 0 },
{ 0x56, 0xFF, 0xFF, 0 },
{ 0x87, 0xFF, 0xFF, 0 },
{ 0xC0, 0xFF, 0xFF, 0 },
{ 0xFF, 0xFF, 0xFF, 0 },
{ 0x11, 0x11, 0x11, 0 },
{ 0x18, 0x18, 0x18, 0 },
{ 0x1E, 0x1E, 0x1E, 0 },
{ 0x25, 0x25, 0x25, 0 },
{ 0x2C, 0x2C, 0x2C, 0 },
{ 0x34, 0x34, 0x34, 0 },
{ 0x3C, 0x3C, 0x3C, 0 },
{ 0x44, 0x44, 0x44, 0 },
{ 0x4D, 0x4D, 0x4D, 0 },
{ 0x56, 0x56, 0x56, 0 },
{ 0x5F, 0x5F, 0x5F, 0 },
{ 0x69, 0x69, 0x69, 0 },
{ 0x72, 0x72, 0x72, 0 },
{ 0x7D, 0x7D, 0x7D, 0 },
{ 0x92, 0x92, 0x92, 0 },
{ 0x9D, 0x9D, 0x9D, 0 },
{ 0xA8, 0xA8, 0xA8, 0 },
{ 0xB4, 0xB4, 0xB4, 0 },
{ 0xCC, 0xCC, 0xCC, 0 },
{ 0xD8, 0xD8, 0xD8, 0 },
{ 0xE5, 0xE5, 0xE5, 0 },
{ 0xF2, 0xF2, 0xF2, 0 },
{ 0xFF, 0xFF, 0xFF, 0 },
{ 0xFF, 0xFB, 0xF0, 0 }, // System palette - last 10 colors
{ 0xA0, 0xA0, 0xA4, 0 },
{ 0x80, 0x80, 0x80, 0 },
{ 0xFF, 0x00, 0x00, 0 },
{ 0x00, 0xFF, 0x00, 0 },
{ 0xFF, 0xFF, 0x00, 0 },
{ 0x00, 0x00, 0xFF, 0 },
{ 0xFF, 0x00, 0xFF, 0 },
{ 0x00, 0xFF, 0xFF, 0 },
{ 0xFF, 0xFF, 0xFF, 0 },
};
/////////////////////////////////////////////////////////////////////////////
// CE DIBSection global functions
#ifdef _WIN32_WCE
UINT CEGetDIBColorTable(HDC hdc, UINT uStartIndex, UINT cEntries, RGBQUAD *pColors);
#endif
/////////////////////////////////////////////////////////////////////////////
// GWExtDIBSectionLite static functions
//
// --- In
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -