📄 debug.cpp
字号:
PWSTR psziDComplexity = L"Unknown iDComplexity.";
switch (pco->iDComplexity )
{
case DC_COMPLEX: psziDComplexity = L"DC_COMPLEX"; break;
case DC_RECT: psziDComplexity = L"DC_RECT"; break;
case DC_TRIVIAL: psziDComplexity = L"DC_TRIVIAL"; break;
}
OEMDebugMessage(TEXT("\tiDComplexity: %s\r\n"), psziDComplexity);
PWSTR psziFComplexity = L"0";
switch (pco->iFComplexity)
{
case FC_COMPLEX: psziFComplexity = L"FC_COMPLEX"; break;
case FC_RECT: psziFComplexity = L"FC_RECT"; break;
case FC_RECT4: psziFComplexity = L"FC_RECT4"; break;
}
OEMDebugMessage(TEXT("\tiFComplexity: %s\r\n"), psziFComplexity);
PWSTR psziMode = L"0";
switch (pco->iMode)
{
case TC_PATHOBJ: psziMode = L"TC_PATHOBJ"; break;
case TC_RECTANGLES: psziMode = L"TC_RECTANGLES"; break;
}
OEMDebugMessage(TEXT("\tiMode: %s\r\n"), psziMode);
PWSTR pszfjOptions = L"0";
switch (pco->fjOptions)
{
case OC_BANK_CLIP: pszfjOptions = L"TC_PATHOBJ"; break;
}
OEMDebugMessage(TEXT("\tfjOptions: %s\r\n"), pszfjOptions);
OEMDebugMessage(TEXT("\n"));
}
#if DBG
DBG_FLAGS gafdBRUSHOBJ_flColorType[] = {
{ L"BR_CMYKCOLOR", BR_CMYKCOLOR},
{ L"BR_DEVICE_ICM", BR_DEVICE_ICM},
{ L"BR_HOST_ICM", BR_HOST_ICM},
{NULL, 0} // The NULL entry is important
};
#else
DBG_FLAGS gafdBRUSHOBJ_flColorType[] = {
{NULL, 0}
};
#endif
void __stdcall
COemUniDbg::
vDumpBRUSHOBJ(
INT iDebugLevel,
PWSTR pszInLabel,
BRUSHOBJ *pbo
)
/*++
Routine Description:
Dumps the members of a BRUSHOBJ structure.
Arguments:
iDebugLevel - desired output debug level
pszInLabel - output label string
pbo - pointer to the BRUSHOBJ strct to be dumped
Return Value:
NONE
--*/
{
// Check if the debug level is appropriate
//
if (iDebugLevel < giDebugLevel)
{
// Nothing to output here
//
return;
}
// Prepare the label string
//
PCWSTR pszLabel = EnsureLabel(pszInLabel, L"pbo");
// Return if strct to be dumped is invalid
//
if (!pbo)
{
OEMDebugMessage(TEXT("\nBRUSHOBJ [%s]: NULL\r\n"), pszLabel);
// Nothing else to output
//
return;
}
// Format the data
//
OEMDebugMessage(TEXT("\nBRUSHOBJ [%s]: %#x\r\n"), pszLabel, pbo);
OEMDebugMessage(TEXT("\tiSolidColor: %#x\r\n"), pbo->iSolidColor);
OEMDebugMessage(TEXT("\tpvRbrush: %#x\r\n"), pbo->pvRbrush);
OEMDebugMessage(TEXT("\tflColorType: "));
vDumpFlags(pbo->flColorType, gafdBRUSHOBJ_flColorType);
OEMDebugMessage(TEXT("\n"));
}
#if DBG
DBG_FLAGS gafdGDIINFO_flHTFlags[] = {
{ L"HT_FLAG_8BPP_CMY332_MASK", HT_FLAG_8BPP_CMY332_MASK},
{ L"HT_FLAG_ADDITIVE_PRIMS", HT_FLAG_ADDITIVE_PRIMS},
{ L"HT_FLAG_DO_DEVCLR_XFORM", HT_FLAG_DO_DEVCLR_XFORM},
{ L"HT_FLAG_HAS_BLACK_DYE", HT_FLAG_HAS_BLACK_DYE},
{ L"HT_FLAG_HIGH_INK_ABSORPTION", HT_FLAG_HIGH_INK_ABSORPTION},
{ L"HT_FLAG_HIGHER_INK_ABSORPTION", HT_FLAG_HIGHER_INK_ABSORPTION},
{ L"HT_FLAG_HIGHEST_INK_ABSORPTION", HT_FLAG_HIGHEST_INK_ABSORPTION},
{ L"HT_FLAG_INK_ABSORPTION_IDX0", HT_FLAG_INK_ABSORPTION_IDX0},
{ L"HT_FLAG_INK_ABSORPTION_IDX1", HT_FLAG_INK_ABSORPTION_IDX1},
{ L"HT_FLAG_INK_ABSORPTION_IDX2", HT_FLAG_INK_ABSORPTION_IDX2},
{ L"HT_FLAG_INK_ABSORPTION_IDX3", HT_FLAG_INK_ABSORPTION_IDX3},
{ L"HT_FLAG_INK_HIGH_ABSORPTION", HT_FLAG_INK_HIGH_ABSORPTION},
{ L"HT_FLAG_LOW_INK_ABSORPTION", HT_FLAG_LOW_INK_ABSORPTION},
{ L"HT_FLAG_LOWER_INK_ABSORPTION", HT_FLAG_LOWER_INK_ABSORPTION},
{ L"HT_FLAG_LOWEST_INK_ABSORPTION", HT_FLAG_LOWEST_INK_ABSORPTION},
{ L"HT_FLAG_OUTPUT_CMY", HT_FLAG_OUTPUT_CMY},
{ L"HT_FLAG_PRINT_DRAFT_MODE", HT_FLAG_PRINT_DRAFT_MODE},
{ L"HT_FLAG_SQUARE_DEVICE_PEL", HT_FLAG_SQUARE_DEVICE_PEL},
{ L"HT_FLAG_USE_8BPP_BITMASK", HT_FLAG_USE_8BPP_BITMASK},
{ L"HT_FLAG_NORMAL_INK_ABSORPTION", HT_FLAG_NORMAL_INK_ABSORPTION},
// { L"HT_FLAG_INVERT_8BPP_BITMASK_IDX", HT_FLAG_INVERT_8BPP_BITMASK_IDX},
{NULL, 0} // The NULL entry is important
};
#else
DBG_FLAGS gafdGDIINFO_flHTFlags[] = {
{NULL, 0}
};
#endif
void __stdcall
COemUniDbg::
vDumpGDIINFO(
INT iDebugLevel,
PWSTR pszInLabel,
GDIINFO *pGdiInfo
)
/*++
Routine Description:
Dumps the members of a GDIINFO structure.
Arguments:
iDebugLevel - desired output debug level
pszInLabel - output label string
pGdiInfo - pointer to the GDIINFO strct to be dumped
Return Value:
NONE
--*/
{
// Check if the debug level is appropriate
//
if (iDebugLevel < giDebugLevel)
{
// Nothing to output here
//
return;
}
// Prepare the label string
//
PCWSTR pszLabel = EnsureLabel(pszInLabel, L"pGdiInfo");
// Return if strct to be dumped is invalid
//
if (!pGdiInfo)
{
OEMDebugMessage(TEXT("\nGDIINFO [%s]: NULL\r\n"), pszLabel);
// Nothing else to output
//
return;
}
// Format the data
//
OEMDebugMessage(TEXT("\nGDIINFO [%s]: %#x\r\n"), pszLabel, pGdiInfo);
OEMDebugMessage(TEXT("\tulVersion: %#x\r\n"), pGdiInfo->ulVersion);
PWSTR pszulTechnology = L"???";
switch (pGdiInfo->ulTechnology)
{
case DT_PLOTTER: pszulTechnology = L"DT_PLOTTER"; break;
case DT_RASDISPLAY: pszulTechnology = L"DT_RASDISPLAY"; break;
case DT_RASPRINTER: pszulTechnology = L"DT_RASPRINTER"; break;
case DT_RASCAMERA: pszulTechnology = L"DT_RASCAMERA"; break;
case DT_CHARSTREAM: pszulTechnology = L"DT_CHARSTREAM"; break;
}
OEMDebugMessage(TEXT("\tulTechnology: %ld [%s]\r\n"), pGdiInfo->ulTechnology, pszulTechnology);
OEMDebugMessage(TEXT("\tulHorzSize: %ld\r\n"), pGdiInfo->ulHorzSize);
OEMDebugMessage(TEXT("\tulVertSize: %ld\r\n"), pGdiInfo->ulVertSize);
OEMDebugMessage(TEXT("\tulHorzRes: %ld\r\n"), pGdiInfo->ulHorzRes);
OEMDebugMessage(TEXT("\tulVertRes: %ld\r\n"), pGdiInfo->ulVertRes);
OEMDebugMessage(TEXT("\tcBitsPixel: %ld\r\n"), pGdiInfo->cBitsPixel);
OEMDebugMessage(TEXT("\tcPlanes: %ld\r\n"), pGdiInfo->cPlanes);
OEMDebugMessage(TEXT("\tulNumColors: %ld\r\n"), pGdiInfo->ulNumColors);
OEMDebugMessage(TEXT("\tflRaster: %#x\r\n"), pGdiInfo->flRaster);
OEMDebugMessage(TEXT("\tulLogPixelsX: %ld\r\n"), pGdiInfo->ulLogPixelsX);
OEMDebugMessage(TEXT("\tulLogPixelsY: %ld\r\n"), pGdiInfo->ulLogPixelsY);
PWSTR pszTextCaps = L"Text scrolling through DrvBitBlt/DrvCopyBits";
if (TC_SCROLLBLT == (pGdiInfo->flTextCaps & TC_SCROLLBLT))
{
pszTextCaps = L"Text scrolling through DrvTextOut";
}
OEMDebugMessage(TEXT("\tflTextCaps: %s\n"), pszTextCaps);
OEMDebugMessage(TEXT("\tulDACRed: %#x\r\n"), pGdiInfo->ulDACRed);
OEMDebugMessage(TEXT("\tulDACGreen: %#x\r\n"), pGdiInfo->ulDACGreen);
OEMDebugMessage(TEXT("\tulDACBlue: %#x\r\n"), pGdiInfo->ulDACBlue);
OEMDebugMessage(TEXT("\tulAspectX: %ld\r\n"), pGdiInfo->ulAspectX);
OEMDebugMessage(TEXT("\tulAspectY: %ld\r\n"), pGdiInfo->ulAspectY);
OEMDebugMessage(TEXT("\tulAspectXY: %ld\r\n"), pGdiInfo->ulAspectXY);
OEMDebugMessage(TEXT("\txStyleStep: %ld\r\n"), pGdiInfo->xStyleStep);
OEMDebugMessage(TEXT("\tyStyleStep: %ld\r\n"), pGdiInfo->yStyleStep);
OEMDebugMessage(TEXT("\tdenStyleStep: %ld\r\n"), pGdiInfo->denStyleStep);
OEMDebugMessage(TEXT("\tptlPhysOffset: (%ld, %ld)\r\n"), pGdiInfo->ptlPhysOffset.x, pGdiInfo->ptlPhysOffset.y);
OEMDebugMessage(TEXT("\tszlPhysSize: (%ld, %ld)\r\n"), pGdiInfo->szlPhysSize.cx, pGdiInfo->szlPhysSize.cy);
OEMDebugMessage(TEXT("\tulNumPalReg: %ld\r\n"), pGdiInfo->ulNumPalReg);
OEMDebugMessage(TEXT("\tulDevicePelsDPI: %ld\r\n"), pGdiInfo->ulDevicePelsDPI);
PWSTR pszPrimaryOrder = L"???";
switch(pGdiInfo->ulPrimaryOrder)
{
case PRIMARY_ORDER_ABC: pszPrimaryOrder = L"PRIMARY_ORDER_ABC [RGB/CMY]"; break;
case PRIMARY_ORDER_ACB: pszPrimaryOrder = L"PRIMARY_ORDER_ACB [RBG/CYM]"; break;
case PRIMARY_ORDER_BAC: pszPrimaryOrder = L"PRIMARY_ORDER_BAC [GRB/MCY]"; break;
case PRIMARY_ORDER_BCA: pszPrimaryOrder = L"PRIMARY_ORDER_BCA [GBR/MYC]"; break;
case PRIMARY_ORDER_CBA: pszPrimaryOrder = L"PRIMARY_ORDER_CBA [BGR/YMC]"; break;
case PRIMARY_ORDER_CAB: pszPrimaryOrder = L"PRIMARY_ORDER_CAB [BRG/YCM]"; break;
}
OEMDebugMessage(TEXT("\tulPrimaryOrder: %s\n"), pszPrimaryOrder);
PWSTR pszHTPat = L"???";
switch(pGdiInfo->ulHTPatternSize)
{
case HT_PATSIZE_2x2 : pszHTPat = L"HT_PATSIZE_2x2 "; break;
case HT_PATSIZE_2x2_M : pszHTPat = L"HT_PATSIZE_2x2_M"; break;
case HT_PATSIZE_4x4 : pszHTPat = L"HT_PATSIZE_4x4"; break;
case HT_PATSIZE_4x4_M : pszHTPat = L"HT_PATSIZE_4x4_M"; break;
case HT_PATSIZE_6x6 : pszHTPat = L"HT_PATSIZE_6x6"; break;
case HT_PATSIZE_6x6_M : pszHTPat = L"HT_PATSIZE_6x6_M"; break;
case HT_PATSIZE_8x8 : pszHTPat = L"HT_PATSIZE_8x8"; break;
case HT_PATSIZE_8x8_M : pszHTPat = L"HT_PATSIZE_8x8_M"; break;
case HT_PATSIZE_10x10 : pszHTPat = L"HT_PATSIZE_10x10"; break;
case HT_PATSIZE_10x10_M : pszHTPat = L"HT_PATSIZE_10x10_M"; break;
case HT_PATSIZE_12x12 : pszHTPat = L"HT_PATSIZE_12x12"; break;
case HT_PATSIZE_12x12_M : pszHTPat = L"HT_PATSIZE_12x12_M"; break;
case HT_PATSIZE_14x14 : pszHTPat = L"HT_PATSIZE_14x14"; break;
case HT_PATSIZE_14x14_M : pszHTPat = L"HT_PATSIZE_14x14_M"; break;
case HT_PATSIZE_16x16 : pszHTPat = L"HT_PATSIZE_16x16"; break;
case HT_PATSIZE_16x16_M : pszHTPat = L"HT_PATSIZE_16x16_M"; break;
case HT_PATSIZE_SUPERCELL : pszHTPat = L"HT_PATSIZE_SUPERCELL"; break;
case HT_PATSIZE_SUPERCELL_M : pszHTPat = L"HT_PATSIZE_SUPERCELL_M"; break;
case HT_PATSIZE_USER : pszHTPat = L"HT_PATSIZE_USER"; break;
// case HT_PATSIZE_MAX_INDEX : pszHTPat = L"HT_PATSIZE_MAX_INDEX"; break;
// case HT_PATSIZE_DEFAULT : pszHTPat = L"HT_PATSIZE_DEFAULT"; break;
}
OEMDebugMessage(TEXT("\tulHTPatternSize: %s\n"), pszHTPat);
PWSTR pszHTOutputFormat = L"???";
switch(pGdiInfo->ulHTOutputFormat)
{
case HT_FORMAT_1BPP : pszHTOutputFormat = L"HT_FORMAT_1BPP"; break;
case HT_FORMAT_4BPP : pszHTOutputFormat = L"HT_FORMAT_4BPP"; break;
case HT_FORMAT_4BPP_IRGB : pszHTOutputFormat = L"HT_FORMAT_4BPP_IRGB"; break;
case HT_FORMAT_8BPP : pszHTOutputFormat = L"HT_FORMAT_8BPP"; break;
case HT_FORMAT_16BPP : pszHTOutputFormat = L"HT_FORMAT_16BPP"; break;
case HT_FORMAT_24BPP : pszHTOutputFormat = L"HT_FORMAT_24BPP"; break;
case HT_FORMAT_32BPP : pszHTOutputFormat = L"HT_FORMAT_32BPP"; break;
}
OEMDebugMessage(TEXT("\tulHTOutputFormat: %s\n"), pszHTOutputFormat);
OEMDebugMessage(TEXT("\tflHTFlags: "));
vDumpFlags(pGdiInfo->flHTFlags, gafdGDIINFO_flHTFlags);
OEMDebugMessage(TEXT("\tulVRefresh: %ld\r\n"), pGdiInfo->ulVRefresh);
OEMDebugMessage(TEXT("\tulBltAlignment: %ld\r\n"), pGdiInfo->ulBltAlignment);
OEMDebugMessage(TEXT("\tulPanningHorzRes: %ld\r\n"), pGdiInfo->ulPanningHorzRes);
OEMDebugMessage(TEXT("\tulPanningVertRes: %ld\r\n"), pGdiInfo->ulPanningVertRes);
OEMDebugMessage(TEXT("\txPanningAlignment: %ld\r\n"), pGdiInfo->xPanningAlignment);
OEMDebugMessage(TEXT("\tyPanningAlignment: %ld\r\n"), pGdiInfo->yPanningAlignment);
OEMDebugMessage(TEXT("\tcxHTPat: %ld\r\n"), pGdiInfo->cxHTPat);
OEMDebugMessage(TEXT("\tcyHTPat: %ld\r\n"), pGdiInfo->cyHTPat);
OEMDebugMessage(TEXT("\tpHTPatA: %#x\r\n"), pGdiInfo->pHTPatA);
OEMDebugMessage(TEXT("\tpHTPatB: %#x\r\n"), pGdiInfo->pHTPatB);
OEMDebugMessage(TEXT("\tpHTPatC: %#x\r\n"), pGdiInfo->pHTPatC);
OEMDebugMessage(TEXT("\tflShadeBlend: %#x\r\n"), pGdiInfo->flShadeBlend);
PWSTR pszPhysPixChars = L"???";
switch(pGdiInfo->ulPhysicalPixelCharacteristics)
{
case PPC_DEFAULT: pszPhysPixChars = L"PPC_DEFAULT"; break;
case PPC_BGR_ORDER_HORIZONTAL_STRIPES: pszPhysPixChars = L"PPC_BGR_ORDER_HORIZONTAL_STRIPES"; break;
case PPC_BGR_ORDER_VERTICAL_STRIPES: pszPhysPixChars = L"PPC_BGR_ORDER_VERTICAL_STRIPES"; break;
case PPC_RGB_ORDER_HORIZONTAL_STRIPES: pszPhysPixChars = L"PPC_RGB_ORDER_HORIZONTAL_STRIPES"; break;
case PPC_RGB_ORDER_VERTICAL_STRIPES: pszPhysPixChars = L"PPC_RGB_ORDER_VERTICAL_STRIPES"; break;
case PPC_UNDEFINED: pszPhysPixChars = L"PPC_UNDEFINED"; break;
}
OEMDebugMessage(TEXT("\tulPhysicalPixelCharacteristics: %s\n"), pszPhysPixChars);
PWSTR pszPhysPixGamma = L"???";
switch(pGdiInfo->ulPhysicalPixelGamma)
{
case PPG_DEFAULT: pszPhysPixGamma = L"PPG_DEFAULT"; break;
case PPG_SRGB : pszPhysPixGamma = L"PPG_SRGB"; break;
}
OEMDebugMessage(TEXT("\tulPhysicalPixelGamma: %s\n"), pszPhysPixGamma);
OEMDebugMessage(TEXT("\n"));
}
#if DBG
DBG_FLAGS gafdDEVINFO_flGraphicsCaps[] = {
{ L"GCAPS_BEZIERS", GCAPS_BEZIERS},
{ L"GCAPS_GEOMETRICWIDE", GCAPS_GEOMETRICWIDE},
{ L"GCAPS_ALTERNATEFILL", GCAPS_ALTERNATEFILL},
{ L"GCAPS_WINDINGFILL", GCAPS_WINDINGFILL},
{ L"GCAPS_HALFTONE", GCAPS_HALFTONE},
{ L"GCAPS_COLOR_DITHER", GCAPS_COLOR_DITHER},
{ L"GCAPS_HORIZSTRIKE", GCAPS_HORIZSTRIKE},
{ L"GCAPS_VERTSTRIKE", GCAPS_VERTSTRIKE},
{ L"GCAPS_OPAQUERECT", GCAPS_OPAQUERECT},
{ L"GCAPS_VECTORFONT", GCAPS_VECTORFONT},
{ L"GCAPS_MONO_DITHER", GCAPS_MONO_DITHER},
{ L"GCAPS_ASYNCCHANGE", GCAPS_ASYNCCHANGE},
{ L"GCAPS_ASYNCMOVE", GCAPS_ASYNCMOVE},
{ L"GCAPS_DONTJOURNAL", GCAPS_DONTJOURNAL},
{ L"GCAPS_DIRECTDRAW", GCAPS_DIRECTDRAW},
{ L"GCAPS_ARBRUSHOPAQUE", GCAPS_ARBRUSHOPAQUE},
{ L"GCAPS_PANNING", GCAPS_PANNING},
{ L"GCAPS_HIGHRESTEXT", GCAPS_HIGHRESTEXT},
{ L"GCAPS_PALMANAGED", GCAPS_PALMANAGED},
{ L"GCAPS_DITHERONREALIZE", GCAPS_DITHERONREALIZE},
{ L"GCAPS_NO64BITMEMACCESS", GCAPS_NO64BITMEMACCESS},
{ L"GCAPS_FORCEDITHER", GCAPS_FORCEDITHER},
{ L"GCAPS_GRAY16", GCAPS_GRAY16},
{ L"GCAPS_ICM", GCAPS_ICM},
{ L"GCAPS_CMYKCOLOR", GCAPS_CMYKCOLOR},
{ L"GCAPS_LAYERED", GCAPS_LAYERED},
{ L"GCAPS_ARBRUSHTEXT", GCAPS_ARBRUSHTEXT},
{ L"GCAPS_SCREENPRECISION", GCAPS_SCREENPRECISION},
{ L"GCAPS_FONT_RASTERIZER", GCAPS_FONT_RASTERIZER},
{ L"GCAPS_NUP", GCAPS_NUP},
{NULL, 0} // The NULL entry is important
};
DBG_FLAGS gafdDEVINFO_flGraphicsCaps2[] = {
{ L"GCAPS2_JPEGSRC", GCAPS2_JPEGSRC},
{ L"GCAPS2_xxxx", GCAPS2_xxxx},
{ L"GCAPS2_PNGSRC", GCAPS2_PNGSRC},
{ L"GCAPS2_CHANGEGAMMARAMP", GCAPS2_CHANGEGAMMARAMP},
{ L"GCAPS2_ALPHACURSOR", GCAPS2_ALPHACURSOR},
{ L"GCAPS2_SYNCFLUSH", GCAPS2_SYNCFLUSH},
{ L"GCAPS2_SYNCTIMER", GCAPS2_SYNCTIMER},
{ L"GCAPS2_ICD_MULTIMON", GCAPS2_ICD_MULTIMON},
{ L"GCAPS2_MOUSETRAILS", GCAPS2_MOUSETRAILS},
{ L"GCAPS2_RESERVED1", GCAPS2_RESERVED1},
{NULL, 0} // The NULL entry is important
};
#else
DBG_FLAGS gafdDEVINFO_flGraphicsCaps[] = {
{NULL, 0}
};
DBG_FLAGS gafdDEVINFO_flGraphicsCaps2[] = {
{NULL, 0}
};
#endif
void __stdcall
COemUniDbg::
vDumpDEVINFO(
INT iDebugLevel,
PWSTR pszInLabel,
DEVINFO *pDevInfo
)
/*++
Routine Description:
Dumps the members of a DEVINFO structure.
Arguments:
iDebugLevel - desired output debug level
pszInLabel - output label string
pDevInfo - pointer to the DEVINFO strct to be dumped
Return Value:
NONE
--*/
{
// Check if the debug level is appropriate
//
if (iDebugLevel < giDebugLevel)
{
// Nothing to output here
//
return;
}
// Prepare the label string
//
PCWSTR pszLabel = EnsureLabel(pszInLabel, L"pDevInfo");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -