21#ifndef FREERDP_SERVER_WIN_INTERFACE_H
22#define FREERDP_SERVER_WIN_INTERFACE_H
24#include <winpr/windows.h>
26#include <freerdp/api.h>
27#include <freerdp/freerdp.h>
28#include <freerdp/listener.h>
30#include <freerdp/freerdp.h>
31#include <freerdp/codec/rfx.h>
33#include <freerdp/server/rdpsnd.h>
35#if _WIN32_WINNT >= 0x0602
36#define WITH_DXGI_1_2 1
39#define FREERDP_SERVER_WIN_SRV_CALLBACK_EVENT_CONNECT 1
40#define FREERDP_SERVER_WIN_SRV_CALLBACK_EVENT_DISCONNECT 2
41#define FREERDP_SERVER_WIN_SRV_CALLBACK_EVENT_ACTIVATE 4
42#define FREERDP_SERVER_WIN_SRV_CALLBACK_EVENT_AUTH 8
54 int virtscreen_height;
56 int servscreen_height;
57 int servscreen_xoffset;
58 int servscreen_yoffset;
70 BOOL mirrorDriverActive;
82 HANDLE updateSemaphore;
83 RFX_CONTEXT* rfx_context;
84 unsigned long lastUpdate;
85 unsigned long nextUpdate;
89 BOOL force_all_disconnect;
102 HANDLE socketSemaphore;
105 RdpsndServerContext* rdpsnd;
112 freerdp_listener* instance;
116typedef void(__stdcall* cbCallback)(int, UINT32);
118FREERDP_API
int get_screen_info(
int id, _TCHAR* name,
size_t length,
int* w,
int* h,
int* b);
119FREERDP_API
void set_screen_id(
int id);
121FREERDP_API BOOL wfreerdp_server_start(wfServer* server);
122FREERDP_API BOOL wfreerdp_server_stop(wfServer* server);
124FREERDP_API wfServer* wfreerdp_server_new(
void);
125FREERDP_API
void wfreerdp_server_free(wfServer* server);
127FREERDP_API BOOL wfreerdp_server_is_running(wfServer* server);
129FREERDP_API UINT32 wfreerdp_server_num_peers(
void);
130FREERDP_API UINT32 wfreerdp_server_get_peer_hostname(
int pId,
wchar_t* dstStr);
131FREERDP_API BOOL wfreerdp_server_peer_is_local(
int pId);
132FREERDP_API BOOL wfreerdp_server_peer_is_connected(
int pId);
133FREERDP_API BOOL wfreerdp_server_peer_is_activated(
int pId);
134FREERDP_API BOOL wfreerdp_server_peer_is_authenticated(
int pId);
136FREERDP_API
void wfreerdp_server_register_callback_event(cbCallback cb);
138void wfreerdp_server_peer_callback_event(
int pId, UINT32 eType);