📄 scemf2text.cpp
字号:
SCBoundsText(pRec->rclBounds),
SCRegionDataText((RGNDATA*)pRec->RgnData, pRec->cbRgnData));
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfEXTSELECTCLIPRGN()
{
// TRACE0("**EMR_EXTSELECTCLIPRGN\n");
if (m_bLogRecord)
{
EMREXTSELECTCLIPRGN *pRec = (EMREXTSELECTCLIPRGN*)m_pRecord;
CString sExtra;
sExtra.Format(_T("%s, %s"),
SCFormatRgnModeText(pRec->iMode),
SCRegionDataText((RGNDATA*)pRec->RgnData, pRec->cbRgnData));
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfBITBLT()
{
// TRACE0("**EMR_BITBLT\n");
if (m_bLogRecord)
{
EMRBITBLT *pRec = (EMRBITBLT*)m_pRecord;
CString sExtra;
sExtra.Format(SC_STRFMT_RCLBOUNDS _T(", ") SC_STRFMT_DEST_CXCY _T(", ") SC_STRFMT_ROP _T(", ") SC_STRFMT_BLTSRC,
SC_PARAM_RCLBOUNDS(pRec->rclBounds),
SC_PARAM_DEST_CXCY(pRec),
SC_PARAM_ROP(pRec->dwRop),
SC_PARAM_BLTSRC(pRec));
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfSTRETCHBLT()
{
// TRACE0("**EMR_STRETCHBLT\n");
if (m_bLogRecord)
{
EMRSTRETCHBLT *pRec = (EMRSTRETCHBLT*)m_pRecord;
CString sExtra;
sExtra.Format(SC_STRFMT_RCLBOUNDS _T(", ") SC_STRFMT_DEST_CXCY _T(", ") SC_STRFMT_ROP _T(", ") SC_STRFMT_SBLTSRC,
SC_PARAM_RCLBOUNDS(pRec->rclBounds),
SC_PARAM_DEST_CXCY(pRec),
SC_PARAM_ROP(pRec->dwRop),
SC_PARAM_SBLTSRC(pRec));
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfMASKBLT()
{
// TRACE0("**EMR_MASKBLT\n");
if (m_bLogRecord)
{
EMRMASKBLT *pRec = (EMRMASKBLT*)m_pRecord;
CString sExtra;
sExtra.Format(SC_STRFMT_RCLBOUNDS _T(", ") SC_STRFMT_DEST_CXCY _T(", ") SC_STRFMT_ROP _T(", ") SC_STRFMT_BLTSRC _T(", ") SC_STRFMT_BMPMASK,
SC_PARAM_RCLBOUNDS(pRec->rclBounds),
SC_PARAM_DEST_CXCY(pRec),
SC_PARAM_ROP(pRec->dwRop),
SC_PARAM_BLTSRC(pRec),
SC_PARAM_BMPMASK(pRec));
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfPLGBLT()
{
// TRACE0("**EMR_PLGBLT\n");
if (m_bLogRecord)
{
EMRPLGBLT *pRec = (EMRPLGBLT*)m_pRecord;
CString sExtra;
sExtra.Format(SC_STRFMT_RCLBOUNDS _T(", Dest[") SC_STRFMT_TRIPOINT _T("], ") SC_STRFMT_BLTSRC _T(", ") SC_STRFMT_BMPSRC _T(", ") SC_STRFMT_BMPMASK,
SC_PARAM_RCLBOUNDS(pRec->rclBounds),
SC_PARAM_TRIPOINT(pRec->aptlDest),
SC_PARAM_BLTSRC(pRec),
SC_PARAM_BMPSRC(pRec),
SC_PARAM_BMPMASK(pRec));
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfSETDIBITSTODEVICE()
{
// TRACE0("**EMR_SETDIBITSTODEVICE\n");
if (m_bLogRecord)
{
EMRSETDIBITSTODEVICE *pRec = (EMRSETDIBITSTODEVICE*)m_pRecord;
CString sBmiText = _T("");
if (pRec->offBmiSrc)
sBmiText = SCBmiText((BITMAPINFOHEADER *)((BYTE*)pRec + pRec->offBmiSrc));
CString sExtra;
sExtra.Format(SC_STRFMT_RCLBOUNDS _T(", Dest[x:%d, y:%d], Scans[start:%d, num:%d], ") SC_STRFMT_SETBITSSRC _T(" BmiHeader[%s]"),
SC_PARAM_RCLBOUNDS(pRec->rclBounds),
pRec->xDest,
pRec->yDest,
pRec->iStartScan,
pRec->cScans,
SC_PARAM_SETBITSSRC(pRec),
sBmiText
);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfSTRETCHDIBITS()
{
// TRACE0("**EMR_STRETCHDIBITS\n");
EMRSTRETCHDIBITS *pRec = (EMRSTRETCHDIBITS*)m_pRecord;
if (m_bLogRecord)
{
CString sBmiText = _T("");
if (pRec->offBmiSrc)
sBmiText = SCBmiText((BITMAPINFOHEADER *)((BYTE*)pRec + pRec->offBmiSrc));
CString sExtra;
sExtra.Format(SC_STRFMT_RCLBOUNDS _T(", ") SC_STRFMT_DEST_CXCY _T(", ") SC_STRFMT_ROP _T(", ") SC_STRFMT_SETBITSSRC _T(" BmiHeader[%s]"),
SC_PARAM_RCLBOUNDS(pRec->rclBounds),
SC_PARAM_DEST_CXCY(pRec),
SC_PARAM_ROP(pRec->dwRop),
SC_PARAM_SETBITSSRC(pRec),
sBmiText
);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfEXTCREATEFONTINDIRECTW()
{
// TRACE0("**EMR_EXTCREATEFONTINDIRECTW\n");
EMREXTCREATEFONTINDIRECTW *pRec = (EMREXTCREATEFONTINDIRECTW*)m_pRecord;
if (m_bLogRecord)
{
CString strVendor;
strVendor.Format(_T("0x%08X"), *(DWORD*)pRec->elfw.elfVendorId);
CString strLogStyle;
if (pRec->elfw.elfLogFont.lfWeight>=FW_BOLD)
strLogStyle += _T("Bold | ");
if (pRec->elfw.elfLogFont.lfItalic)
strLogStyle += _T("Italic | ");
if (pRec->elfw.elfLogFont.lfUnderline)
strLogStyle += _T("Underlined | ");
if (pRec->elfw.elfLogFont.lfStrikeOut)
strLogStyle += _T("StrikeOut | ");
if (!strLogStyle.IsEmpty())
strLogStyle = strLogStyle.Left(strLogStyle.GetLength()-3);
CString sExtra;
// extra info about height and width
sExtra.Format(_T("ihFont(%d) ELF[name(%ls) style(%ls) vendor(%s)] LOG[face(%ls), style(%s), charset(%d),family(%d),precision(%d), height(%d), width(%d)]"),
pRec->ihFont,
pRec->elfw.elfFullName,pRec->elfw.elfStyle, strVendor,
pRec->elfw.elfLogFont.lfFaceName,
strLogStyle,
pRec->elfw.elfLogFont.lfCharSet,
pRec->elfw.elfLogFont.lfPitchAndFamily,pRec->elfw.elfLogFont.lfOutPrecision,
pRec->elfw.elfLogFont.lfHeight,
pRec->elfw.elfLogFont.lfWidth);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfEXTTEXTOUTA()
{
// TRACE0("**EMR_EXTTEXTOUTA\n");
if (m_bLogRecord)
{
CString sExtra = STFormatEmrTextA(
((EMREXTTEXTOUTA*)m_pRecord)->emrtext,
(EMREXTTEXTOUTA*)m_pRecord);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfEXTTEXTOUTW()
{
// TRACE0("**EMR_EXTTEXTOUTW\n");
if (m_bLogRecord)
{
CString sExtra = STFormatEmrTextW((
(EMREXTTEXTOUTW*)m_pRecord)->emrtext,
(EMREXTTEXTOUTW*)m_pRecord);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfPOLYGON16()
{
// TRACE0("**EMR_POLYGON16\n");
if (m_bLogRecord)
{
CString sExtra = SCFormatEmrPolygonS((EMRPOLYGON16*)m_pRecord);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfPOLYPOLYGON16()
{
// TRACE0("**EMR_POLYPOLYGON16\n");
if (m_bLogRecord)
{
CString sExtra = SCFormatEmrPolyPolygonS((EMRPOLYPOLYGON16*)m_pRecord);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfPOLYDRAW16()
{
// TRACE0("**EMR_POLYDRAW16\n");
if (m_bLogRecord)
{
EMRPOLYDRAW16 *pRec = (EMRPOLYDRAW16*)m_pRecord;
CString sExtra = SCPolygonTextS(pRec->rclBounds, pRec->apts, pRec->cpts);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfCREATEMONOBRUSH()
{
// TRACE0("**EMR_CREATEMONOBRUSH\n");
if (m_bLogRecord)
{
EMRCREATEMONOBRUSH *pRec = (EMRCREATEMONOBRUSH*)m_pRecord;
CString sExtra;
sExtra.Format(_T("ihBrush(%d), ") SC_STRFMT_BMPDIB,
pRec->ihBrush,
SC_PARAM_BMPDIB(pRec));
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfCREATEDIBPATTERNBRUSHPT()
{
// TRACE0("**EMR_CREATEDIBPATTERNBRUSHPT\n");
if (m_bLogRecord)
{
EMRCREATEDIBPATTERNBRUSHPT *pRec = (EMRCREATEDIBPATTERNBRUSHPT*)m_pRecord;
CString sExtra;
sExtra.Format(_T("ihBrush(%d), ") SC_STRFMT_BMPDIB,
pRec->ihBrush,
SC_PARAM_BMPDIB(pRec));
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfEXTCREATEPEN()
{
// TRACE0("**EMR_EXTCREATEPEN\n");
SCPlayRecord();
if (m_bLogRecord)
{
EMREXTCREATEPEN *pRec = (EMREXTCREATEPEN*)m_pRecord;
CString sExtra;
#ifdef SC_LOG_RAWDATA_ONLY
// display raw data
sExtra.Format(_T(ihPen(%d), style(%d=%s), width(%d), color(0x%08X), brush[style:%d=%s, hatch:0x%08X, user_style_entries:%d], BMP[offBmi:%d, Bmi:%d, offBits:%d, Bits:%d]"),
pRec->ihPen,
pRec->elp.elpPenStyle, SCPenStyleText(pRec->elp.elpPenStyle),
pRec->elp.elpWidth,
pRec->elp.elpColor,
pRec->elp.elpBrushStyle, SCBrushStyleText(pRec->elp.elpBrushStyle),
pRec->elp.elpHatch,
pRec->elp.elpNumEntries,
pRec->offBmi, pRec->cbBmi, pRec->offBits, pRec->cbBits);
#else
// display interpreted data
// Pen style
CString strPenStyle;
strPenStyle.Format(_T("style(%d=%s"),
pRec->elp.elpPenStyle, SCPenStyleText(pRec->elp.elpPenStyle));
if (PS_USERSTYLE==pRec->elp.elpPenStyle)
{// custom dashes
CString strDashes;
strDashes.Format(_T(", Dashes[entries:%d])"), pRec->elp.elpNumEntries);
strPenStyle += strDashes;
} else
strPenStyle += _T(")");
sExtra.Format(_T("ihPen(%d), %s, width(%d), %s"),
pRec->ihPen,
strPenStyle,
pRec->elp.elpWidth,
SCExtLogpenBrushStyleText(pRec));
#endif
return SCExtraLog(sExtra);
}
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfPOLYTEXTOUTA()
{
// TRACE0("**EMR_POLYTEXTOUTA\n");
if (m_bLogRecord)
{
EMRPOLYTEXTOUTA *pRec = (EMRPOLYTEXTOUTA*)m_pRecord;
CString sExtra;
sExtra.Format(SC_STRFMT_RCLBOUNDS _T(", ") SC_STRFMT_TXTFORM _T(", nbStrings:%d"),
SC_PARAM_RCLBOUNDS(pRec->rclBounds),
SC_PARAM_TXTFORM(pRec),
pRec->cStrings);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfSETICMMODE()
{
// TRACE0("**EMR_SETICMMODE\n");
if (m_bLogRecord)
{
CString sExtra = SCFormatICMModeText(((EMRSETICMMODE*)m_pRecord)->iMode);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfCREATECOLORSPACE()
{
// TRACE0("**EMR_CREATECOLORSPACE\n");
if (m_bLogRecord)
{
CString sExtra;
sExtra.Format(_T("ihCS(%d), %s"),
((EMRCREATECOLORSPACE*)m_pRecord)->ihCS,
SCFormatLogColorSpaceAsTextA(((EMRCREATECOLORSPACE*)m_pRecord)->lcs));
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfCREATECOLORSPACEW()
{
// TRACE0("**EMR_CREATECOLORSPACEW\n");
if (m_bLogRecord)
{
CString sExtra;
sExtra.Format(_T("ihCS(%d), %s"),
((EMRCREATECOLORSPACEW*)m_pRecord)->ihCS,
SCFormatLogColorSpaceAsTextW(((EMRCREATECOLORSPACEW*)m_pRecord)->lcs));
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfSETCOLORSPACE()
{
// TRACE0("**EMR_SETCOLORSPACE\n");
if (m_bLogRecord)
{
CString sExtra;
sExtra.Format(_T("ihCS(%d)"),
((EMRSELECTCOLORSPACE*)m_pRecord)->ihCS);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfGLSRECORD()
{
// TRACE0("**EMR_GLSRECORD\n");
if (m_bLogRecord)
{
CString sExtra;
sExtra.Format(_T("cbData:%d, Data:0x%08x"),
((EMRGLSRECORD*)m_pRecord)->cbData,
((EMRGLSRECORD*)m_pRecord)->Data);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
SC_BRKRESULT CSCEMF2Text::OnEmfGLSBOUNDEDRECORD()
{
// TRACE0("**EMR_GLSBOUNDEDRECORD\n");
if (m_bLogRecord)
{
CString sExtra;
sExtra.Format(SC_STRFMT_RCLBOUNDS _T(", cbData:%d, Data:0x%08x"),
SC_PARAM_RCLBOUNDS(((EMRGLSBOUNDEDRECORD*)m_pRecord)->rclBounds),
((EMRGLSBOUNDEDRECORD*)m_pRecord)->cbData,
((EMRGLSBOUNDEDRECORD*)m_pRecord)->Data);
return SCExtraLog(sExtra);
}
SCPlayRecord();
return SC_BRK_NOERROR;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -