|  | // Copyright (c) Microsoft Corporation | 
|  |  | 
|  | #ifndef THIRD_PARTY_WIN_VIRTUAL_DISPLAY_CONTROLLER_DISPLAY_DRIVER_CONTROLLER_H_ | 
|  | #define THIRD_PARTY_WIN_VIRTUAL_DISPLAY_CONTROLLER_DISPLAY_DRIVER_CONTROLLER_H_ | 
|  |  | 
|  | #include "third_party/win_virtual_display/driver/public/properties.h" | 
|  |  | 
|  | #include <swdevice.h> | 
|  |  | 
|  | namespace display::test { | 
|  |  | 
|  | // Low level controls for communicating with the virtual display driver. | 
|  | class DisplayDriverController { | 
|  | public: | 
|  | ~DisplayDriverController(); | 
|  |  | 
|  | // Returns true if the driver is detected to be installed on the host machine. | 
|  | static bool IsDriverInstalled(); | 
|  |  | 
|  | // Sets the configuration of the virtual display driver. Overwrites any | 
|  | // previously set configuration. Returns true on success, or false on failure. | 
|  | bool SetDisplayConfig(DriverProperties config); | 
|  |  | 
|  | // Resets the virtual display configuration back to default. Removes all | 
|  | // configured virtual displays. | 
|  | void Reset(); | 
|  |  | 
|  | private: | 
|  | // Open the software device with the specified initial configuration. | 
|  | bool Initialize(DriverProperties config); | 
|  |  | 
|  | // Current handle for software device, or nullptr if none is opened. | 
|  | HSWDEVICE device_handle_ = nullptr; | 
|  | }; | 
|  |  | 
|  | }  // namespace display::test | 
|  |  | 
|  | #endif  // THIRD_PARTY_WIN_VIRTUAL_DISPLAY_CONTROLLER_DISPLAY_DRIVER_CONTROLLER_H_ |