Hi! Wow! Good job Sylvain!! It works! You don't need to clear out the size "dmDriverExtra" after reseting it from ChangeDisplaySettingsEx. It works now since we do not fully support it yet. I did add a test in our win32k code when building the pdevobj, it looks for it from the driver but does nothing.... Sorry for not pointing this out to you earlier.
This is from wine, it's good example:
/*********************************************************************** * ChangeDisplaySettingsW (USER32.@) */ LONG WINAPI ChangeDisplaySettingsW( LPDEVMODEW devmode, DWORD flags ) { if (devmode) devmode->dmDriverExtra = 0;
return ChangeDisplaySettingsExW(NULL,devmode,NULL,flags,NULL); }
You do not need dmDriverExtra, it will reset during the call..... Wine test must rely on this behavior to pass. If the call to ChangeDisplaySettingsEx fails and it must check to see if dmDriverExtra is zeroed. So ATM it must pass the way you have written it. It is zeroed regardless and we do not support it.
Thanks, James