25#ifndef FREERDP_CHANNEL_RDPDR_CLIENT_MAIN_H
26#define FREERDP_CHANNEL_RDPDR_CLIENT_MAIN_H
29#include <winpr/synch.h>
30#include <winpr/thread.h>
31#include <winpr/stream.h>
32#include <winpr/collections.h>
34#include <freerdp/api.h>
35#include <freerdp/svc.h>
36#include <freerdp/addin.h>
38#include <freerdp/channels/rdpdr.h>
39#include <freerdp/client/rdpdr.h>
40#include <freerdp/channels/log.h>
43#include <CoreServices/CoreServices.h>
46enum RDPDR_CHANNEL_STATE
48 RDPDR_CHANNEL_STATE_INITIAL = 0,
49 RDPDR_CHANNEL_STATE_ANNOUNCE,
50 RDPDR_CHANNEL_STATE_ANNOUNCE_REPLY,
51 RDPDR_CHANNEL_STATE_NAME_REQUEST,
52 RDPDR_CHANNEL_STATE_SERVER_CAPS,
53 RDPDR_CHANNEL_STATE_CLIENT_CAPS,
54 RDPDR_CHANNEL_STATE_CLIENTID_CONFIRM,
55 RDPDR_CHANNEL_STATE_READY,
56 RDPDR_CHANNEL_STATE_USER_LOGGEDON
64 enum RDPDR_CHANNEL_STATE state;
72 BOOL ignoreInvalidDevices;
75 UINT32 serverOsVersion;
76 UINT16 serverVersionMajor;
77 UINT16 serverVersionMinor;
78 UINT32 serverExtendedPDU;
81 UINT32 serverExtraFlags1;
82 UINT32 serverExtraFlags2;
83 UINT32 serverSpecialTypeDeviceCap;
86 UINT32 clientOsVersion;
87 UINT16 clientVersionMajor;
88 UINT16 clientVersionMinor;
89 UINT32 clientExtendedPDU;
92 UINT32 clientExtraFlags1;
93 UINT32 clientExtraFlags2;
94 UINT32 clientSpecialTypeDeviceCap;
97 char computerName[256];
103 HANDLE hotplugThread;
110 rdpContext* rdpcontext;
114 BOOL capabilities[6];
118 RdpdrClientContext context;
122FREERDP_LOCAL BOOL rdpdr_state_advance(
rdpdrPlugin* rdpdr,
enum RDPDR_CHANNEL_STATE next);