📄 bitmap.h
字号:
// Bitmap.h : Declaration of the CBitmap
#ifndef __BITMAP_H_
#define __BITMAP_H_
#include "resource.h" // main symbols
// The following macro calculates the number of bytes required to
// store a 16-col bitmap including the DWORD alignment bytes
#define CBROW(x) 4 * ( ( 4 * ( x ) + 31 ) / 32 )
/////////////////////////////////////////////////////////////////////////////
// CBitmap
class ATL_NO_VTABLE CBitmap :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CBitmap, &CLSID_Bitmap>,
public IDispatchImpl<IBitmap, &IID_IBitmap, &LIBID_PICTURELib>
{
public:
CBitmap()
{
// There is no bitmap until it is resized
m_bitmap = NULL;
m_bAutoSize = VARIANT_TRUE;
m_width = m_height = 0;
// Create the linked pixels object
CComObject<CPixels>::CreateInstance(&m_pPixels);
m_pPixels->m_pBitmap = this;
m_pPixels->AddRef();
}
~CBitmap()
{
// Release the pixels collection
if (m_pPixels) m_pPixels->Release();
}
DECLARE_REGISTRY_RESOURCEID(IDR_BITMAP)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CBitmap)
COM_INTERFACE_ENTRY(IBitmap)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
// Member variables
long m_width;
long m_height;
LPBYTE m_bitmap;
bool m_bRequiresSave;
VARIANT_BOOL m_bAutoSize;
CComObject<CPixels>* m_pPixels;
// Member functions
HRESULT UpdateSize(long lWidth, long lHeight);
HRESULT TestCoordinates(long x, long y);
public:
// IBitmap
STDMETHOD(get_Pixels)(/*[out, retval]*/ IPixels* *pVal);
STDMETHOD(get_AutoSize)(/*[out, retval]*/ VARIANT_BOOL *pVal);
STDMETHOD(put_AutoSize)(/*[in]*/ VARIANT_BOOL newVal);
STDMETHOD(SaveToFile)(/*[in, optional]*/ VARIANT vbstrFileName, /*[in, optional]*/ VARIANT vhWndParentWindow);
STDMETHOD(SetPoint)(IPixel* pPixel);
STDMETHOD(SetPoints)(VARIANT vPoints);
STDMETHOD(get_Height)(/*[out, retval]*/ long *pVal);
STDMETHOD(put_Height)(/*[in]*/ long newVal);
STDMETHOD(get_Width)(/*[out, retval]*/ long *pVal);
STDMETHOD(put_Width)(/*[in]*/ long newVal);
STDMETHOD(SaveToStream)(/*[in]*/ IStream* pStm);
STDMETHOD(SaveToIIS4Response)(/*[in]*/ VARIANT vResponse);
};
#endif //__BITMAP_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -