mirror of
https://github.com/narzoul/DDrawCompat
synced 2024-12-30 08:55:36 +01:00
Renamed the namespace, functions and macros in CompatGdiDcFunctions
This commit is contained in:
parent
ffc74aeb26
commit
27eec14ee1
@ -284,7 +284,7 @@ namespace CompatGdi
|
||||
return;
|
||||
}
|
||||
|
||||
CompatGdiFunctions::installHooks();
|
||||
CompatGdiDcFunctions::installHooks();
|
||||
CompatGdiWinProc::installHooks();
|
||||
CompatGdiCaret::installHooks();
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ namespace
|
||||
}
|
||||
|
||||
template <typename OrigFuncPtr, OrigFuncPtr origFunc, typename Result, typename... Params>
|
||||
Result WINAPI compatGdiFunc(Params... params)
|
||||
Result WINAPI compatGdiDcFunc(Params... params)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
Compat::LogEnter(CompatGdi::g_funcNames[origFunc], params...);
|
||||
@ -97,9 +97,9 @@ namespace
|
||||
}
|
||||
|
||||
template <typename OrigFuncPtr, OrigFuncPtr origFunc, typename Result, typename... Params>
|
||||
OrigFuncPtr getCompatGdiFuncPtr(FuncPtr<Result, Params...>)
|
||||
OrigFuncPtr getCompatGdiDcFuncPtr(FuncPtr<Result, Params...>)
|
||||
{
|
||||
return &compatGdiFunc<OrigFuncPtr, origFunc, Result, Params...>;
|
||||
return &compatGdiDcFunc<OrigFuncPtr, origFunc, Result, Params...>;
|
||||
}
|
||||
|
||||
BOOL WINAPI scrollWindow(
|
||||
@ -128,110 +128,110 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
#define HOOK_GDI_FUNCTION_CUSTOM(module, func, newFunc) \
|
||||
#define HOOK_GDI_FUNCTION(module, func, newFunc) \
|
||||
CompatGdi::hookGdiFunction<decltype(&func), &func>( \
|
||||
#module, #func, &newFunc);
|
||||
|
||||
#define HOOK_GDI_FUNCTION(module, func) \
|
||||
#define HOOK_GDI_DC_FUNCTION(module, func) \
|
||||
CompatGdi::hookGdiFunction<decltype(&func), &func>( \
|
||||
#module, #func, getCompatGdiFuncPtr<decltype(&func), &func>(&func));
|
||||
#module, #func, getCompatGdiDcFuncPtr<decltype(&func), &func>(&func));
|
||||
|
||||
#define HOOK_GDI_TEXT_FUNCTION(module, func) \
|
||||
HOOK_GDI_FUNCTION(module, func##A); \
|
||||
HOOK_GDI_FUNCTION(module, func##W)
|
||||
#define HOOK_GDI_TEXT_DC_FUNCTION(module, func) \
|
||||
HOOK_GDI_DC_FUNCTION(module, func##A); \
|
||||
HOOK_GDI_DC_FUNCTION(module, func##W)
|
||||
|
||||
namespace CompatGdiFunctions
|
||||
namespace CompatGdiDcFunctions
|
||||
{
|
||||
void installHooks()
|
||||
{
|
||||
DetourTransactionBegin();
|
||||
|
||||
// Bitmap functions
|
||||
HOOK_GDI_FUNCTION(msimg32, AlphaBlend);
|
||||
HOOK_GDI_FUNCTION(gdi32, BitBlt);
|
||||
HOOK_GDI_FUNCTION(gdi32, CreateCompatibleBitmap);
|
||||
HOOK_GDI_FUNCTION(gdi32, CreateDIBitmap);
|
||||
HOOK_GDI_FUNCTION(gdi32, CreateDIBSection);
|
||||
HOOK_GDI_FUNCTION(gdi32, CreateDiscardableBitmap);
|
||||
HOOK_GDI_FUNCTION(gdi32, ExtFloodFill);
|
||||
HOOK_GDI_FUNCTION(gdi32, GdiAlphaBlend);
|
||||
HOOK_GDI_FUNCTION(gdi32, GdiGradientFill);
|
||||
HOOK_GDI_FUNCTION(gdi32, GdiTransparentBlt);
|
||||
HOOK_GDI_FUNCTION(gdi32, GetDIBits);
|
||||
HOOK_GDI_FUNCTION(gdi32, GetPixel);
|
||||
HOOK_GDI_FUNCTION(msimg32, GradientFill);
|
||||
HOOK_GDI_FUNCTION(gdi32, MaskBlt);
|
||||
HOOK_GDI_FUNCTION(gdi32, PlgBlt);
|
||||
HOOK_GDI_FUNCTION(gdi32, SetDIBits);
|
||||
HOOK_GDI_FUNCTION(gdi32, SetDIBitsToDevice);
|
||||
HOOK_GDI_FUNCTION(gdi32, SetPixel);
|
||||
HOOK_GDI_FUNCTION(gdi32, SetPixelV);
|
||||
HOOK_GDI_FUNCTION(gdi32, StretchBlt);
|
||||
HOOK_GDI_FUNCTION(gdi32, StretchDIBits);
|
||||
HOOK_GDI_FUNCTION(msimg32, TransparentBlt);
|
||||
HOOK_GDI_DC_FUNCTION(msimg32, AlphaBlend);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, BitBlt);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, CreateCompatibleBitmap);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, CreateDIBitmap);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, CreateDIBSection);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, CreateDiscardableBitmap);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, ExtFloodFill);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, GdiAlphaBlend);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, GdiGradientFill);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, GdiTransparentBlt);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, GetDIBits);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, GetPixel);
|
||||
HOOK_GDI_DC_FUNCTION(msimg32, GradientFill);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, MaskBlt);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, PlgBlt);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, SetDIBits);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, SetDIBitsToDevice);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, SetPixel);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, SetPixelV);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, StretchBlt);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, StretchDIBits);
|
||||
HOOK_GDI_DC_FUNCTION(msimg32, TransparentBlt);
|
||||
|
||||
// Brush functions
|
||||
HOOK_GDI_FUNCTION(gdi32, PatBlt);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, PatBlt);
|
||||
|
||||
// Device context functions
|
||||
HOOK_GDI_FUNCTION(gdi32, CreateCompatibleDC);
|
||||
HOOK_GDI_FUNCTION(gdi32, DrawEscape);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, CreateCompatibleDC);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, DrawEscape);
|
||||
|
||||
// Filled shape functions
|
||||
HOOK_GDI_FUNCTION(gdi32, Chord);
|
||||
HOOK_GDI_FUNCTION(gdi32, Ellipse);
|
||||
HOOK_GDI_FUNCTION(user32, FillRect);
|
||||
HOOK_GDI_FUNCTION(user32, FrameRect);
|
||||
HOOK_GDI_FUNCTION(user32, InvertRect);
|
||||
HOOK_GDI_FUNCTION(gdi32, Pie);
|
||||
HOOK_GDI_FUNCTION(gdi32, Polygon);
|
||||
HOOK_GDI_FUNCTION(gdi32, PolyPolygon);
|
||||
HOOK_GDI_FUNCTION(gdi32, Rectangle);
|
||||
HOOK_GDI_FUNCTION(gdi32, RoundRect);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, Chord);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, Ellipse);
|
||||
HOOK_GDI_DC_FUNCTION(user32, FillRect);
|
||||
HOOK_GDI_DC_FUNCTION(user32, FrameRect);
|
||||
HOOK_GDI_DC_FUNCTION(user32, InvertRect);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, Pie);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, Polygon);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, PolyPolygon);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, Rectangle);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, RoundRect);
|
||||
|
||||
// Font and text functions
|
||||
HOOK_GDI_TEXT_FUNCTION(user32, DrawText);
|
||||
HOOK_GDI_TEXT_FUNCTION(user32, DrawTextEx);
|
||||
HOOK_GDI_TEXT_FUNCTION(gdi32, ExtTextOut);
|
||||
HOOK_GDI_TEXT_FUNCTION(gdi32, PolyTextOut);
|
||||
HOOK_GDI_TEXT_FUNCTION(user32, TabbedTextOut);
|
||||
HOOK_GDI_TEXT_FUNCTION(gdi32, TextOut);
|
||||
HOOK_GDI_TEXT_DC_FUNCTION(user32, DrawText);
|
||||
HOOK_GDI_TEXT_DC_FUNCTION(user32, DrawTextEx);
|
||||
HOOK_GDI_TEXT_DC_FUNCTION(gdi32, ExtTextOut);
|
||||
HOOK_GDI_TEXT_DC_FUNCTION(gdi32, PolyTextOut);
|
||||
HOOK_GDI_TEXT_DC_FUNCTION(user32, TabbedTextOut);
|
||||
HOOK_GDI_TEXT_DC_FUNCTION(gdi32, TextOut);
|
||||
|
||||
// Icon functions
|
||||
HOOK_GDI_FUNCTION(user32, DrawIcon);
|
||||
HOOK_GDI_FUNCTION(user32, DrawIconEx);
|
||||
HOOK_GDI_DC_FUNCTION(user32, DrawIcon);
|
||||
HOOK_GDI_DC_FUNCTION(user32, DrawIconEx);
|
||||
|
||||
// Line and curve functions
|
||||
HOOK_GDI_FUNCTION(gdi32, AngleArc);
|
||||
HOOK_GDI_FUNCTION(gdi32, Arc);
|
||||
HOOK_GDI_FUNCTION(gdi32, ArcTo);
|
||||
HOOK_GDI_FUNCTION(gdi32, LineTo);
|
||||
HOOK_GDI_FUNCTION(gdi32, PolyBezier);
|
||||
HOOK_GDI_FUNCTION(gdi32, PolyBezierTo);
|
||||
HOOK_GDI_FUNCTION(gdi32, PolyDraw);
|
||||
HOOK_GDI_FUNCTION(gdi32, Polyline);
|
||||
HOOK_GDI_FUNCTION(gdi32, PolylineTo);
|
||||
HOOK_GDI_FUNCTION(gdi32, PolyPolyline);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, AngleArc);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, Arc);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, ArcTo);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, LineTo);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, PolyBezier);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, PolyBezierTo);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, PolyDraw);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, Polyline);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, PolylineTo);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, PolyPolyline);
|
||||
|
||||
// Painting and drawing functions
|
||||
HOOK_GDI_FUNCTION(user32, DrawCaption);
|
||||
HOOK_GDI_FUNCTION(user32, DrawEdge);
|
||||
HOOK_GDI_FUNCTION(user32, DrawFocusRect);
|
||||
HOOK_GDI_FUNCTION(user32, DrawFrameControl);
|
||||
HOOK_GDI_TEXT_FUNCTION(user32, DrawState);
|
||||
HOOK_GDI_TEXT_FUNCTION(user32, GrayString);
|
||||
HOOK_GDI_FUNCTION(user32, PaintDesktop);
|
||||
HOOK_GDI_DC_FUNCTION(user32, DrawCaption);
|
||||
HOOK_GDI_DC_FUNCTION(user32, DrawEdge);
|
||||
HOOK_GDI_DC_FUNCTION(user32, DrawFocusRect);
|
||||
HOOK_GDI_DC_FUNCTION(user32, DrawFrameControl);
|
||||
HOOK_GDI_TEXT_DC_FUNCTION(user32, DrawState);
|
||||
HOOK_GDI_TEXT_DC_FUNCTION(user32, GrayString);
|
||||
HOOK_GDI_DC_FUNCTION(user32, PaintDesktop);
|
||||
|
||||
// Region functions
|
||||
HOOK_GDI_FUNCTION(gdi32, FillRgn);
|
||||
HOOK_GDI_FUNCTION(gdi32, FrameRgn);
|
||||
HOOK_GDI_FUNCTION(gdi32, InvertRgn);
|
||||
HOOK_GDI_FUNCTION(gdi32, PaintRgn);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, FillRgn);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, FrameRgn);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, InvertRgn);
|
||||
HOOK_GDI_DC_FUNCTION(gdi32, PaintRgn);
|
||||
|
||||
// Scroll bar functions
|
||||
HOOK_GDI_FUNCTION(user32, ScrollDC);
|
||||
HOOK_GDI_FUNCTION_CUSTOM(user32, ScrollWindow, scrollWindow);
|
||||
HOOK_GDI_FUNCTION_CUSTOM(user32, ScrollWindowEx, scrollWindowEx);
|
||||
HOOK_GDI_DC_FUNCTION(user32, ScrollDC);
|
||||
HOOK_GDI_FUNCTION(user32, ScrollWindow, scrollWindow);
|
||||
HOOK_GDI_FUNCTION(user32, ScrollWindowEx, scrollWindowEx);
|
||||
|
||||
DetourTransactionCommit();
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
namespace CompatGdiFunctions
|
||||
namespace CompatGdiDcFunctions
|
||||
{
|
||||
void installHooks();
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user