mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
detect movie windows
This commit is contained in:
parent
ad8215eee8
commit
053206b414
13
src/utils.c
13
src/utils.c
@ -426,7 +426,18 @@ BOOL CALLBACK util_enum_child_proc(HWND hwnd, LPARAM lparam)
|
|||||||
pos.top);
|
pos.top);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (g_ddraw->fixchilds == FIX_CHILDS_DETECT_HIDE)
|
char title[MAX_PATH] = { 0 };
|
||||||
|
GetWindowTextA(hwnd, title, sizeof(title) - 1);
|
||||||
|
|
||||||
|
char class_name[MAX_PATH] = { 0 };
|
||||||
|
GetClassNameA(hwnd, class_name, sizeof(class_name) - 1);
|
||||||
|
|
||||||
|
//TRACE_EXT(" AVIWINDOW class=%s, name=%s\n", class_name, title);
|
||||||
|
|
||||||
|
if (g_ddraw->fixchilds == FIX_CHILDS_DETECT_HIDE ||
|
||||||
|
strcmp(title, "ActiveMovie Window") == 0 ||
|
||||||
|
strcmp(class_name, "AVIWnd32") == 0 ||
|
||||||
|
strcmp(class_name, "MCIWndClass") == 0)
|
||||||
{
|
{
|
||||||
LONG style = real_GetWindowLongA(hwnd, GWL_EXSTYLE);
|
LONG style = real_GetWindowLongA(hwnd, GWL_EXSTYLE);
|
||||||
|
|
||||||
|
@ -561,8 +561,19 @@ BOOL WINAPI fake_StretchBlt(
|
|||||||
{
|
{
|
||||||
HWND hwnd = WindowFromDC(hdcDest);
|
HWND hwnd = WindowFromDC(hdcDest);
|
||||||
|
|
||||||
|
char class_name[MAX_PATH] = { 0 };
|
||||||
|
|
||||||
|
if (g_ddraw && g_ddraw->hwnd && hwnd != g_ddraw->hwnd)
|
||||||
|
{
|
||||||
|
GetClassNameA(hwnd, class_name, sizeof(class_name) - 1);
|
||||||
|
}
|
||||||
|
|
||||||
if (g_ddraw && g_ddraw->hwnd &&
|
if (g_ddraw && g_ddraw->hwnd &&
|
||||||
(hwnd == g_ddraw->hwnd || (g_ddraw->fixchilds == FIX_CHILDS_DETECT_HIDE && IsChild(g_ddraw->hwnd, hwnd))))
|
(hwnd == g_ddraw->hwnd ||
|
||||||
|
(IsChild(g_ddraw->hwnd, hwnd) &&
|
||||||
|
(g_ddraw->fixchilds == FIX_CHILDS_DETECT_HIDE ||
|
||||||
|
strcmp(class_name, "AVIWnd32") == 0 ||
|
||||||
|
strcmp(class_name, "MCIWndClass") == 0))))
|
||||||
{
|
{
|
||||||
if (g_ddraw->primary && (g_ddraw->primary->bpp == 16 || g_ddraw->primary->bpp == 32 || g_ddraw->primary->palette))
|
if (g_ddraw->primary && (g_ddraw->primary->bpp == 16 || g_ddraw->primary->bpp == 32 || g_ddraw->primary->palette))
|
||||||
{
|
{
|
||||||
@ -571,7 +582,7 @@ BOOL WINAPI fake_StretchBlt(
|
|||||||
|
|
||||||
if (primary_dc)
|
if (primary_dc)
|
||||||
{
|
{
|
||||||
BOOL result =
|
BOOL result =
|
||||||
real_StretchBlt(primary_dc, xDest, yDest, wDest, hDest, hdcSrc, xSrc, ySrc, wSrc, hSrc, rop);
|
real_StretchBlt(primary_dc, xDest, yDest, wDest, hDest, hdcSrc, xSrc, ySrc, wSrc, hSrc, rop);
|
||||||
|
|
||||||
dds_ReleaseDC(g_ddraw->primary, primary_dc);
|
dds_ReleaseDC(g_ddraw->primary, primary_dc);
|
||||||
@ -579,19 +590,19 @@ BOOL WINAPI fake_StretchBlt(
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (g_ddraw->width > 0)
|
else if (g_ddraw->width > 0 && g_ddraw->render.hdc)
|
||||||
{
|
{
|
||||||
return real_StretchBlt(
|
return real_StretchBlt(
|
||||||
hdcDest,
|
g_ddraw->render.hdc,
|
||||||
xDest + g_ddraw->render.viewport.x,
|
xDest + g_ddraw->render.viewport.x,
|
||||||
yDest + g_ddraw->render.viewport.y,
|
yDest + g_ddraw->render.viewport.y,
|
||||||
(int)(wDest * g_ddraw->render.scale_w),
|
(int)(wDest * g_ddraw->render.scale_w),
|
||||||
(int)(hDest * g_ddraw->render.scale_h),
|
(int)(hDest * g_ddraw->render.scale_h),
|
||||||
hdcSrc,
|
hdcSrc,
|
||||||
xSrc,
|
xSrc,
|
||||||
ySrc,
|
ySrc,
|
||||||
wSrc,
|
wSrc,
|
||||||
hSrc,
|
hSrc,
|
||||||
rop);
|
rop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user