⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scemf2text.cpp

📁 Source code for EMFexplorer 1.0
💻 CPP
📖 第 1 页 / 共 4 页
字号:
			);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfRESTOREDC()
{
	// TRACE0("**EMR_RESTOREDC\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("iRelative(%d)"),
			((EMRRESTOREDC*)m_pRecord)->iRelative);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfSETWORLDTRANSFORM()
{
	// TRACE0("**EMR_SETWORLDTRANSFORM\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(SC_STRFMT_XFORM,
			SC_PARAM_XFORM(((EMRSETWORLDTRANSFORM*)m_pRecord)->xform));

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfMODIFYWORLDTRANSFORM()
{
	// TRACE0("**EMR_MODIFYWORLDTRANSFORM\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("%s, ") SC_STRFMT_XFORM,
			SCFormatModifyWorldTransformModeText(((EMRMODIFYWORLDTRANSFORM*)m_pRecord)->iMode),
			SC_PARAM_XFORM(((EMRMODIFYWORLDTRANSFORM*)m_pRecord)->xform));

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfSELECTOBJECT()
{
	// TRACE0("**EMR_SELECTOBJECT\n");
	if (m_bLogRecord)
	{
		EMRSELECTOBJECT *pRec = (EMRSELECTOBJECT*)m_pRecord;

		// Check stock objects
		HGDIOBJ hGdiObj;
		if (pRec->ihObject & 0x80000000) // this is a stock object
			hGdiObj = GetStockObject( pRec->ihObject & 0x7fffffff );
		else
			hGdiObj = (HGDIOBJ)m_lpEnumHandleTable->objectHandle[pRec->ihObject];

		CString sExtra;
		sExtra.Format(_T("%s=%s"),
			SCObjectIndexText(pRec->ihObject),
			SCGDIObjectTypeText(hGdiObj));


		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfCREATEPEN()
{
	// TRACE0("**EMR_CREATEPEN\n");
	if (m_bLogRecord)
	{
		EMRCREATEPEN *pRec = (EMRCREATEPEN*)m_pRecord;
		CString sExtra;
		sExtra.Format(_T("ihPen(%d), style(%d=%s), width(%d), color(0x%08X)"),
			pRec->ihPen,
			pRec->lopn.lopnStyle,
			SCPenStyleText(pRec->lopn.lopnStyle),
			pRec->lopn.lopnWidth.x,
			pRec->lopn.lopnColor);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfCREATEBRUSHINDIRECT()
{
	// TRACE0("**EMR_CREATEBRUSHINDIRECT\n");
	if (m_bLogRecord)
	{
#ifdef SC_LOG_RAWDATA_ONLY
// raw data
		EMRCREATEBRUSHINDIRECT *pRec = (EMRCREATEBRUSHINDIRECT*)m_pRecord;
		CString sExtra;
		sExtra.Format(_T("ihBrush(%d), style(%d = %s), color(0x%08X), hatch(0x%08X)"),
			pRec->ihBrush,
			pRec->lb.lbStyle,
			SCBrushStyleText(pRec->lb.lbStyle),
			pRec->lb.lbColor,
			pRec->lb.lbHatch);
#else
// interpreted data
		CString sExtra;
		sExtra.Format(_T("ihBrush(%d), %s"),
			((EMRCREATEBRUSHINDIRECT*)m_pRecord)->ihBrush,
			SCLogBrushStyleText(((EMRCREATEBRUSHINDIRECT*)m_pRecord)->lb));
#endif

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfDELETEOBJECT()
{
	// TRACE0("**EMR_DELETEOBJECT\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("ihObject(%d)"),
			((EMRDELETEOBJECT*)m_pRecord)->ihObject);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfANGLEARC()
{
	// TRACE0("**EMR_ANGLEARC\n");
	EMRANGLEARC *pRec = (EMRANGLEARC*)m_pRecord;
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("ptlCenter(%d,%d), Radius:%d, StartAngle:%.3f, SweepAngle:%.3f"),
			SC_PARAM_POINT(pRec->ptlCenter),
			pRec->nRadius,
			pRec->eStartAngle,
			pRec->eSweepAngle);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfELLIPSE()
{
	// TRACE0("**EMR_ELLIPSE\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("Box(%d,%d,%d,%d)"),
			SC_PARAM_RECT(((EMRELLIPSE*)m_pRecord)->rclBox));

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfRECTANGLE()
{
	// TRACE0("**EMR_RECTANGLE\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("Box(%d,%d,%d,%d)"),
			SC_PARAM_RECT(((EMRRECTANGLE*)m_pRecord)->rclBox));

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfROUNDRECT()
{
	// TRACE0("**EMR_ROUNDRECT\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("Box(%d,%d,%d,%d), Corner(%d,%d)"),
			SC_PARAM_RECT(((EMRROUNDRECT*)m_pRecord)->rclBox),
			SC_PARAM_SIZE(((EMRROUNDRECT*)m_pRecord)->szlCorner));

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfARC()
{
	// TRACE0("**EMR_ARC\n");
	EMRARC *pRec = (EMRARC*)m_pRecord;
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("Box(%d,%d,%d,%d), Start(%d,%d), End(%d,%d)"),
			SC_PARAM_RECT(pRec->rclBox),
			SC_PARAM_POINT(pRec->ptlStart),
			SC_PARAM_POINT(pRec->ptlEnd));

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfSELECTPALETTE()
{
	// TRACE0("**EMR_SELECTPALETTE\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("ihPal(%s)"),
			SCObjectIndexText(((EMRSELECTPALETTE*)m_pRecord)->ihPal));

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfCREATEPALETTE()
{
	// TRACE0("**EMR_CREATEPALETTE\n");
	if (m_bLogRecord)
	{
		EMRCREATEPALETTE *pRec = (EMRCREATEPALETTE*)m_pRecord;
		CString sExtra;
		sExtra.Format(_T("ihPal(%d) LOGPAL[ver:%d, entries:%d]"),
			pRec->ihPal, pRec->lgpl.palVersion, pRec->lgpl.palNumEntries);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfSETPALETTEENTRIES()
{
	// TRACE0("**EMR_SETPALETTEENTRIES\n");
	EMRSETPALETTEENTRIES *pRec = (EMRSETPALETTEENTRIES*)m_pRecord;
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("ihPal(%d) [iStart:%d, cEntries:%d]"),
			pRec->ihPal, pRec->iStart, pRec->cEntries);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfRESIZEPALETTE()
{
	// TRACE0("**EMR_RESIZEPALETTE\n");
	if (m_bLogRecord)
	{
		EMRRESIZEPALETTE *pRec = (EMRRESIZEPALETTE*)m_pRecord;
		CString sExtra;
		sExtra.Format(_T("ihPal(%d) [cEntries:%d]"),
			pRec->ihPal, pRec->cEntries);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfEXTFLOODFILL()
{
	// TRACE0("**EMR_EXTFLOODFILL\n");
	if (m_bLogRecord)
	{
		EMREXTFLOODFILL *pRec = (EMREXTFLOODFILL*)m_pRecord;
		CString sExtra;
		sExtra.Format(_T(" ptlStart(%d,%d), crColor(") SC_STRFMT_COLOR _T(") FillMode(%d=%s)"),
			SC_PARAM_POINT(pRec->ptlStart),
			pRec->crColor,
			pRec->iMode, SCFloodFillModeText(pRec->iMode));

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfLINETO()
{
	// TRACE0("**EMR_LINETO\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T(" ptl(%d,%d)"),
			SC_PARAM_POINT(((EMRLINETO*)m_pRecord)->ptl));

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfPOLYDRAW()
{
	// TRACE0("**EMR_POLYDRAW\n");
	if (m_bLogRecord)
	{
		EMRPOLYDRAW *pRec = (EMRPOLYDRAW*)m_pRecord;
		CString sExtra = SCPolygonText(pRec->rclBounds, pRec->aptl, pRec->cptl);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfSETARCDIRECTION()
{
	// TRACE0("**EMR_SETARCDIRECTION\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("Direction:%d"),
			((EMRSETARCDIRECTION*)m_pRecord)->iArcDirection);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfSETMITERLIMIT()
{
	// TRACE0("**EMR_SETMITERLIMIT\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		sExtra.Format(_T("Limit:%.3f"),
			((EMRSETMITERLIMIT*)m_pRecord)->eMiterLimit);

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfFILLPATH()
{
	// TRACE0("**EMR_FILLPATH\n");
	if (m_bLogRecord)
	{
		CString sExtra = SCBoundsText(((EMRFILLPATH*)m_pRecord)->rclBounds);		

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfSELECTCLIPPATH()
{
	// TRACE0("**EMR_SELECTCLIPPATH\n");
	if (m_bLogRecord)
	{
		CString sExtra = SCFormatRgnModeText(((EMRSELECTCLIPPATH*)m_pRecord)->iMode);
		
		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfGDICOMMENT()
{
	// TRACE0("**EMR_GDICOMMENT\n");
	if (m_bLogRecord)
	{
		CString sExtra;
		DWORD* pDW = (DWORD*)((EMRGDICOMMENT*)m_pRecord)->Data;
		if (GDICOMMENT_IDENTIFIER==*pDW)
		{
			pDW++;
			sExtra = SCGDICommentText(*pDW);
		} else
			sExtra = _T("Private");
		
		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfFILLRGN()
{
	// TRACE0("**EMR_FILLRGN\n");
	if (m_bLogRecord)
	{
		EMRFILLRGN *pRec = (EMRFILLRGN*)m_pRecord;
		CString sExtra;
		sExtra.Format(_T("%s, ihBrush(%d), %s"),
			SCBoundsText(pRec->rclBounds),
			pRec->ihBrush,
			SCRegionDataText((RGNDATA*)pRec->RgnData, pRec->cbRgnData));

		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfFRAMERGN()
{
	// TRACE0("**EMR_FRAMERGN\n");
	if (m_bLogRecord)
	{
		EMRFRAMERGN *pRec = (EMRFRAMERGN*)m_pRecord;
		CString sExtra;
		sExtra.Format(_T("%s, Strokes(h:%d, v:%d), ihBrush(%d), %s"),
			SCBoundsText(pRec->rclBounds),
			SC_PARAM_SIZE(pRec->szlStroke),
			pRec->ihBrush,
			SCRegionDataText((RGNDATA*)pRec->RgnData, pRec->cbRgnData));
		
		return SCExtraLog(sExtra);
	}
	SCPlayRecord();
	return SC_BRK_NOERROR;
}

SC_BRKRESULT CSCEMF2Text::OnEmfPAINTRGN()
{
	// TRACE0("**EMR_PAINTRGN\n");
	if (m_bLogRecord)
	{
		EMRPAINTRGN *pRec = (EMRPAINTRGN*)m_pRecord;
		CString sExtra;
		sExtra.Format(_T("%s, %s"),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -