C++

publicvoidmain(intargc,charconst*argv[]){// To identify the current configuration:UINT32PathArraySize=0;UINT32ModeArraySize=0;DISPLAYCONFIG_PATH_INFO*PathArray;DISPLAYCONFIG_MODE_INFO*ModeArray;DISPLAYCONFIG_TOPOLOGY_IDCurrentTopology;GetDisplayConfigBufferSizes(QDC_ALL_PATHS,&PathArraySize,&ModeArraySize);PathArray=(DISPLAYCONFIG_PATH_INFO*)malloc(PathArraySize*sizeof(DISPLAYCONFIG_PATH_INFO));memset(PathArray,0,PathArraySize*sizeof(DISPLAYCONFIG_PATH_INFO));ModeArray=(DISPLAYCONFIG_MODE_INFO*)malloc(ModeArraySize*sizeof(DISPLAYCONFIG_MODE_INFO));memset(ModeArray,0,ModeArraySize*sizeof(DISPLAYCONFIG_MODE_INFO));LONGret=QueryDisplayConfig(QDC_DATABASE_CURRENT,&PathArraySize,PathArray,&ModeArraySize,ModeArray,&CurrentTopology);// Above CurrentTopology variable will aquire the current display setting (ie Extend, Duplicate etc)free(PathArray);free(ModeArray);// To set the required display setting (Extend, Duplicate etc):SetDisplayConfig(0,NULL,0,NULL,SDC_TOPOLOGY_EXTEND|SDC_APPLY);// To set to Duplicate:// SetDisplayConfig(0,NULL,0,NULL,SDC_TOPOLOGY_CLONE|SDC_APPLY);return0;}