-
Notifications
You must be signed in to change notification settings - Fork 2
/
FMXWinDisplayDev.h
38 lines (28 loc) · 1016 Bytes
/
FMXWinDisplayDev.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//---------------------------------------------------------------------------
#ifndef FMXWinDisplayDevH
#define FMXWinDisplayDevH
#include <windows.h>
#include <FMX.Forms.hpp>
#include <FMX.Types.hpp>
#include <tuple>
using FMXWinDisplayDev =
std::tuple<DISPLAY_DEVICE,DISPLAY_DEVICE,TDisplay> ;
enum class FMXWinDisplayDevField { Device, Display, FMXDisplay };
template<typename OutIt>
void EnumFMXDisplays( OutIt Out )
{
DISPLAY_DEVICE Device = { 0 };
Device.cb = sizeof Device;
DISPLAY_DEVICE Display = { 0 };
Display.cb = sizeof Display;
for ( int Idx = 0 ; Idx < Screen->DisplayCount ; ++Idx ) {
TDisplay Disp = Screen->Displays[Idx];
if ( ::EnumDisplayDevices( NULL, Disp.Index, &Device, 0 ) ) {
if ( ::EnumDisplayDevices( Device.DeviceName, 0, &Display, 0 ) ) {
*Out++ = std::make_tuple( Device, Display, Disp );
}
}
}
}
//---------------------------------------------------------------------------
#endif