I wrote a c++ console win32 application to automate the extension to my
second monitor (also second display adapter); however, i can't enable the
"extend this monitor...."; my program only works if the "Extend this
monitor" is already checked... see below :
....
DEVMODE DevMode;
//DWORD dwflags = CDS_GLOBAL | CDS_UPDATEREGISTRY;
DWORD dwflags = 0;
LONG ret;
memset((void*)&DevMode,0,sizeof(DevMode));
///// Get current Device Mode (Yes DisplayDevice is the name of my second
diplay device)
if (!EnumDisplaySettings(DisplayDevice.DeviceName,ENUM_REGISTRY_SETTINGS,
&DevMode))
{
printf("Incapable d'obtenir le mode actuel\n");
break;
}
DevMode.dmSize = sizeof(DEVMODE);
DevMode.dmDriverExtra = sizeof(DevMode.dmPosition);
DevMode.dmFields = DM_POSITION;
DevMode.dmPosition.x = 800;
DevMode.dmPosition.y = 0;
if ( (ret=ChangeDisplaySettingsEx(DisplayDevice.DeviceName, &DevMode, NULL,
dwflags, NULL)) != DISP_CHANGE_SUCCESSFUL )
{
printf("Changement de parametres d'ecran avec probleme ou demande reset
%0Xh\n",ret);
break;
}
....
ret always returns -1 (FAILED); but when the "Extend...." check box is
already enabled, no error is returned.
What happens ?