-
Notifications
You must be signed in to change notification settings - Fork 151
cnc‐ddraw API
BOOL DDIsWindowed()
Returns TRUE if the application is currently running in windowed mode
Note: Borderless counts as fullscreen
Currently used in EV Nova CE and Icewind Dale 2 EE
FARPROC WINAPI DDGetProcAddress(HMODULE hModule, LPCSTR lpProcName)
Same as GetProcAddress @ Kernel32.dll but allows to bypass all cnc-ddraw hooks to obtain the pointer to the real function
Currently used in Warcraft II HardwareCursor plugin and Dune2000 1.06p patch
void DDEnableZoom()
Change application resolution without altering the window size.
Note: DDEnableZoom must be called before each SetDisplayMode call.
Currently used in Age of Empires II Widescreen patch
BOOL GameHandlesClose
If enabled, cnc-ddraw will not _exit(0)
on SC_CLOSE
(Same as game_handles_close=
in ddraw.ini)
void* pvBmpBits
Pointer to DIB bit values of the fake primary surface
Currently used for Warcraft II screen recorder "WarVideo"
#define WM_TOGGLE_FULLSCREEN WM_APP+117
#define CNC_DDRAW_SET_FULLSCREEN 1
#define CNC_DDRAW_SET_WINDOWED 2
PostMessageA(hwnd, WM_TOGGLE_FULLSCREEN, CNC_DDRAW_SET_WINDOWED, 0);
Switch between windowed and fullscreen modes (Similar to Alt+Enter)
Currently used in EV Nova CE and Icewind Dale 2 EE
#define WM_TOGGLE_MAXIMIZE WM_APP+118
PostMessageA(hwnd, WM_TOGGLE_MAXIMIZE , 0, 0);
Maximize window (Same as Alt+PageDown)