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;
116 typedef void(__stdcall* cbCallback)(int, UINT32);
118 FREERDP_API
int get_screen_info(
int id, _TCHAR* name,
size_t length,
int* w,
int* h,
int* b);
119 FREERDP_API
void set_screen_id(
int id);
121 FREERDP_API BOOL wfreerdp_server_start(wfServer* server);
122 FREERDP_API BOOL wfreerdp_server_stop(wfServer* server);
124 FREERDP_API wfServer* wfreerdp_server_new(
void);
125 FREERDP_API
void wfreerdp_server_free(wfServer* server);
127 FREERDP_API BOOL wfreerdp_server_is_running(wfServer* server);
129 FREERDP_API UINT32 wfreerdp_server_num_peers(
void);
130 FREERDP_API UINT32 wfreerdp_server_get_peer_hostname(
int pId,
wchar_t* dstStr);
131 FREERDP_API BOOL wfreerdp_server_peer_is_local(
int pId);
132 FREERDP_API BOOL wfreerdp_server_peer_is_connected(
int pId);
133 FREERDP_API BOOL wfreerdp_server_peer_is_activated(
int pId);
134 FREERDP_API BOOL wfreerdp_server_peer_is_authenticated(
int pId);
136 FREERDP_API
void wfreerdp_server_register_callback_event(cbCallback cb);
138 void wfreerdp_server_peer_callback_event(
int pId, UINT32 eType);