Sometimes or allways using PUSH makes crashing the functions
So I replace the PUSH by setting the register into a local variable
or I use the xmm registers like this:
@WmGetMinMaxInfos :
mov [r9].MINMAXINFO.ptMinTrackSize.x,256 ; Take care that the window is too minimized
mov [r9].MINMAXINFO.ptMinTrackSize.y,256
mov [r9].MINMAXINFO.ptMaxPosition.x,0
mov [r9].MINMAXINFO.ptMaxPosition.y,0
movd xmm9,r9
mov ecx,SM_CXFULLSCREEN
call GetSystemMetrics
movd r9,xmm9
mov [r9].MINMAXINFO.ptMaxTrackSize.x,eax
mov [r9].MINMAXINFO.ptMaxSize.x,eax
movd xmm9,r9
mov ecx,SM_CYFULLSCREEN
call GetSystemMetrics
movd r9,xmm9
mov [r9].MINMAXINFO.ptMaxSize.y,eax
mov [r9].MINMAXINFO.ptMaxTrackSize.y,eax
jmp @Eoj