Есть у меня старая игрушка и хочется заставить ее работать в окне. Опытным путем было установлено, что функцией SetWindowPos устанавливается размер 400 на 300 в точку (0,0). Проблема в том, что она находится где-то в дебрях ddraw. Как там пропатчить я не знаю при том, что после ее вызова SoftIce через раз перезагружает систему. На sysenter. Как можно это провернуть?
Хм, мне ведь никто не мешает сделать SetWindowProc еще раз, но тогда это будет просто область на экране... Надо попробовать. А можно создать окно и привязать к нему DirectDraw?
DirectDraw в любом случае "привязывается" к окну. Ищите вызов DirectDrawCreate(Ex), далее будут вызовы через COM VTable Что-то вроде: lpDD->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); lpDD->SetDisplayMode(400, 300, 8); В самом простом случае попробуйте поменять DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN на 0 и убрать SetDisplayMode. Хотя если , то наверняка используется палитра, и в случае с окном могут быть проблемы..