5 Replies Latest reply on Aug 31, 2016 11:48 AM by Carlos_A

    Intel HD Graphics, set Dual clone monitors via c++

    EVanAlstine Community Member

      I asked this over in the generic graphics forum, they redirected me here.


      I am trying to programmatically set a dual-clone configuration via SetDisplayConfig(), ChangeDisplaySettingsEx() or some other method and am unable to.  I know this config can be achieved via the Intel HD Graphics Control Panel.  How can I do this via C/C++ code?  Or some other programmatic way?


      We are running the following config in for an embedded product:

      - WES7 (though eventually Win10 and this behavior is also the same for standard Win7)

      - Intel Graphics driver v10.18.14.4414

      - Intel Celeron 2980u

      - Intel HD Graphics


      I can easily enable/disable one of our external monitors via SetDisplayConfig() or ChangeDisplaySettingsEx().  However, I am unable to "activate" the second monitor via my application.  I can, however, activate both external monitors via the Intel HD Graphics Control Panel.  Is there an interface that can be leveraged to enable dual external cloned monitors (cloning the internal primary display)?  All have the same resolution.


      I can see all the monitors enumerated via EnumDisplayMonitors(), but one of the two external devices' StateFlags does not have the "DISPLAY_DEVICE_ACTIVE" bit set.  Also, from QueryDisplayConfigDBCurrent(), I don't see the 2nd external monitor listed as a target in the VidPN.  But I can't find a way to select it and activate it.


      I need to activate the 2nd monitor to essentially have 3 cloned screens w/out the user going in through the intel graphics control panel.


      We are not using the IEGD as it isn't supported any more.


      Any insight is appreciated.