📄 meta.hpp
字号:
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MREXTSELECTCLIPRGN *PMREXTSELECTCLIPRGN;
#define SIZEOF_MREXTSELECTCLIPRGN(cRgnData) \
(sizeof(MREXTSELECTCLIPRGN) + ((cRgnData) + 3) / 4 * 4)
/*********************************Class************************************\
* class MRMETAFILE : public MR
*
* METAFILE record. This is the first record in any metafile.
*
* History:
* Wed Jul 17 17:10:28 1991 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MRMETAFILE : public MR /* mrmf */
{
protected:
DWORD nBytes; // Size of the metafile in bytes
DWORD nRecords; // Number of records in the metafile
WORD nHandles; // Number of handles in the handle table
// Handle index zero is reserved.
public:
//
// Initializer -- Initialize the metafile record.
//
VOID
vInit(
HDC hdcRef
);
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MRMETAFILE *PMRMETAFILE;
/*********************************Class************************************\
* class MRSETPIXELV : public MR
*
* SETPIXELV record.
*
* History:
* Wed Jul 31 21:09:28 1991 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MRSETPIXELV : public MR /* mrspv */
{
protected:
EPOINTL eptl;
COLORREF crColor;
public:
//
// Initializer -- Initialize the metafile record.
//
VOID
vInit(
DWORD x1,
DWORD y1,
COLORREF crColor1
);
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MRSETPIXELV *PMRSETPIXELV;
#define SIZEOF_MRSETPIXELV (sizeof(MRSETPIXELV))
class MRFOCUSRECT : public MRE /* mre */
{
public:
// bPlay -- Play the record.
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MRFOCUSRECT *PMRFOCUSRECT;
class MRELLIPSE : public MRE /* mre */
{
public:
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MRELLIPSE *PMRELLIPSE;
class MRRECTANGLE : public MRE /* mrr */
{
public:
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MRRECTANGLE *PMRRECTANGLE;
/*********************************Class************************************\
* class MRRECTDWDW : public MRE
*
* Handles RoundRect and DrawEdge records.
*
* Nonstandard extension invented for MGDI.
\**************************************************************************/
class MRRECTDWDW : public MRE /* mrrr */
{
protected:
DWORD dw1;
DWORD dw2;
public:
//
// Initializer -- Initialize the metafile record.
// Returns MRI_OK if successful, MRI_ERROR if error and MRI_NULLBOX if
// the box is empty in device space. We don't record if there is an
// error or the box is empty in device space.
//
LONG iInit(DWORD iType, HDC hdc,
LONG x1, LONG y1,
LONG x2, LONG y2,
DWORD dw1_, DWORD dw2_)
{
dw1 = dw1_;
dw2 = dw2_;
return(MRE::iInit(iType, hdc, x1, y1, x2, y2));
}
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MRRECTDWDW *PMRRECTDWDW;
#define SIZEOF_MRRECTDWDW (sizeof(MRRECTDWDW))
/*********************************Class************************************\
* class MRCREATEPEN: public MR
*
* CREATEPEN record.
*
* History:
* Wed Jul 31 21:09:28 1991 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MRCREATEPEN : public MR /* mrcp */
{
protected:
DWORD imhe; // Pen index in Metafile Handle Table.
LOGPEN logpen; // Logical Pen.
public:
//
// Initializer -- Initialize the metafile record.
//
BOOL
bInit(
HANDLE hpen_,
ULONG imhe_
);
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MRCREATEPEN *PMRCREATEPEN;
#define SIZEOF_MRCREATEPEN (sizeof(MRCREATEPEN))
/*********************************Class************************************\
* class MRCREATEPALETTE: public MR
*
* CREATEPALETTE record.
*
* History:
* Sun Sep 22 14:40:40 1991 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MRCREATEPALETTE : public MR /* mrcp */
{
protected:
DWORD imhe; // LogPalette index in Metafile Handle Table.
LOGPALETTE logpal; // Logical Palette.
public:
//
// Initializer -- Initialize the metafile MRCREATEPALETTE record.
// It sets the peFlags in the palette entries to zeroes.
//
BOOL bInit(HPALETTE hpal_, ULONG imhe_, USHORT cEntries_); // MFREC.CPP
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MRCREATEPALETTE *PMRCREATEPALETTE;
#define SIZEOF_MRCREATEPALETTE(cEntries) \
(sizeof(MRCREATEPALETTE)-sizeof(PALETTEENTRY)+(cEntries)*sizeof(PALETTEENTRY))
/*********************************Class************************************\
* class MRCREATEBRUSHINDIRECT: public MR
*
* CREATEBRUSHINDIRECT record.
*
* History:
* Wed Jul 31 21:09:28 1991 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MRCREATEBRUSHINDIRECT : public MR /* mrcbi */
{
protected:
DWORD imhe; // Brush index in Metafile Handle Table.
LOGBRUSH lb; // Logical brush.
public:
//
// Initializer -- Initialize the metafile record.
//
VOID
vInit(
ULONG imhe_,
LOGBRUSH& lb_
);
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MRCREATEBRUSHINDIRECT *PMRCREATEBRUSHINDIRECT;
#define SIZEOF_MRCREATEBRUSHINDIRECT (sizeof(MRCREATEBRUSHINDIRECT))
/*********************************Class************************************\
* class MRBRUSH: public MR
*
* Metafile record for mono and dib pattern brushes.
*
* History:
* Thu Mar 12 16:20:15 1992 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MRBRUSH : public MR /* mrbr */
{
protected:
DWORD imhe; // Brush index in Metafile Handle Table
HBITMAP m_hbitmapPattern; // Bitmap for pattern brush
public:
//
// Initializer -- Initialize the metafile record.
//
BOOL bInit(
DWORD iType1,
DWORD imhe1,
HBITMAP hbitmap1 // Brush's pattern
);
void
Cleanup(
void
);
};
typedef MRBRUSH *PMRBRUSH;
#define SIZEOF_MRBRUSH sizeof(MRBRUSH)
class MRCREATEDIBPATTERNBRUSHPT : public MRBRUSH /* mrcdpb */
{
public:
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
void Cleanup() { MRBRUSH::Cleanup(); }
};
typedef MRCREATEDIBPATTERNBRUSHPT *PMRCREATEDIBPATTERNBRUSHPT;
/*********************************Class************************************\
* class MREXTCREATEFONTINDIRECTW: public MR
*
* EXTCREATEFONTINDIRECTW record.
*
* History:
* Tue Jan 14 13:52:35 1992 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MREXTCREATEFONTINDIRECTW : public MR /* mrecfiw */
{
protected:
DWORD imhe; // Font index in Metafile Handle Table.
LOGFONTW logfont; // Logical font. NT: was EXTLOGFONTW.
public:
//
// Initializer -- Initialize the metafile MREXTCREATEFONTINDIRECTW
// record.
//
BOOL
bInit(
HANDLE hfont_,
ULONG imhe_
);
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MREXTCREATEFONTINDIRECTW *PMREXTCREATEFONTINDIRECTW;
#define SIZEOF_MREXTCREATEFONTINDIRECTW (sizeof(MREXTCREATEFONTINDIRECTW))
/*********************************Class************************************\
* class MRSETPALETTEENTRIES: public MR
*
* SETPALETTEENTRIES record.
*
* History:
* Sun Sep 22 14:40:40 1991 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MRSETPALETTEENTRIES : public MR /* mrspe */
{
protected:
DWORD imhe; // LogPalette index in Metafile Handle Table.
DWORD iStart; // First entry to be set.
DWORD cEntries; // Number of entries to be set.
PALETTEENTRY aPalEntry[1]; // Palette entries.
public:
//
// Initializer -- Initialize the metafile MRSETPALETTEENTRIES record.
// It sets the peFlags in the palette entries to zeroes.
//
VOID vInit
(
ULONG imhe_,
UINT iStart_,
UINT cEntries_,
CONST PALETTEENTRY *pPalEntries_
); // MFREC.CPP
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MRSETPALETTEENTRIES *PMRSETPALETTEENTRIES;
#define SIZEOF_MRSETPALETTEENTRIES(cEntries) \
(sizeof(MRSETPALETTEENTRIES)-sizeof(PALETTEENTRY)+(cEntries)*sizeof(PALETTEENTRY))
/*********************************Class************************************\
* class MREOF: public MR
*
* EOF record.
*
* History:
* Fri Mar 20 09:37:47 1992 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MREOF : public MR /* mreof */
{
public:
//
// Initializer -- Initialize the metafile MREOF record.
//
VOID
vInit(
void
);
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
};
typedef MREOF *PMREOF;
#define SIZEOF_MREOF sizeof(MREOF)
/*********************************Class************************************\
* class MRBB : public MR
*
* Metafile record with BitBlts.
*
* History:
* Fri Nov 22 17:17:02 1991 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MRBB : public MR /* mrbb */
{
protected:
LONG xDst; // destination x origin
LONG yDst; // destination y origin
LONG cxDst; // width
LONG cyDst; // height
DWORD rop; // raster operation code (rop3 for MaskBlt)
COLORREF clrBkSrc; // source DC BkColor. Must be a RGB value.
HBITMAP m_hbitmap; // Recorded bitmap
public:
//
// Initializer -- Initialize the metafile record.
//
BOOL bInit
(
DWORD iType1,
PMDC pmdc1,
LONG xDst1,
LONG yDst1,
LONG cxDst1,
LONG cyDst1,
DWORD rop1,
COLORREF clrBkSrc1,
HBITMAP hbitmap1
);
void
Cleanup(
void
);
};
typedef MRBB *PMRBB;
#define SIZEOF_MRBB sizeof(MRBB)
class MRBITBLT : public MRBB /* mrbb */
{
public:
//
// bPlay -- Play the record.
//
BOOL bPlay(HDC hdc, PHANDLETABLE pht, UINT cht);
void Cleanup() { MRBB::Cleanup(); };
};
typedef MRBITBLT *PMRBITBLT;
/*********************************Class************************************\
* class MRSTRETCHBLT : public MRBB
*
* STRETCHBLT record.
*
* Also used for TRANSPARENTIMAGE. For this, we store a COLORREF (the
* transparent color) instead of a ROP.
*
* History:
* Wed Nov 27 12:00:33 1991 -by- Hock San Lee [hockl]
* Wrote it.
\**************************************************************************/
class MRSTRETCHBLT : public MRBB /* mrsb */
{
protected:
LONG cxSrc; // source width
LONG cySrc; // source height
public:
//
// Initializer -- Initialize the metafile record.
//
BOOL bInit
(
DWORD emr,
PMDC pmdc1,
LONG xDst1,
LONG yDst1,
LONG cxDst1,
LONG cyDst1,
DWORD rop1, // COLORREF if storing TRANSPARENTIMAGE record
LONG cxSrc1,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -