FreeRDP
client/cliprdr.h
1 
22 #ifndef FREERDP_CHANNEL_CLIPRDR_CLIENT_CLIPRDR_H
23 #define FREERDP_CHANNEL_CLIPRDR_CLIENT_CLIPRDR_H
24 
25 #include <freerdp/api.h>
26 #include <freerdp/types.h>
27 
28 #include <freerdp/message.h>
29 #include <freerdp/channels/cliprdr.h>
30 
31 #ifdef __cplusplus
32 extern "C"
33 {
34 #endif
35 
40  typedef struct s_cliprdr_client_context CliprdrClientContext;
41 
42  typedef UINT (*pcCliprdrServerCapabilities)(CliprdrClientContext* context,
43  const CLIPRDR_CAPABILITIES* capabilities);
44  typedef UINT (*pcCliprdrClientCapabilities)(CliprdrClientContext* context,
45  const CLIPRDR_CAPABILITIES* capabilities);
46  typedef UINT (*pcCliprdrMonitorReady)(CliprdrClientContext* context,
47  const CLIPRDR_MONITOR_READY* monitorReady);
48  typedef UINT (*pcCliprdrTempDirectory)(CliprdrClientContext* context,
49  const CLIPRDR_TEMP_DIRECTORY* tempDirectory);
50  typedef UINT (*pcCliprdrClientFormatList)(CliprdrClientContext* context,
51  const CLIPRDR_FORMAT_LIST* formatList);
52  typedef UINT (*pcCliprdrServerFormatList)(CliprdrClientContext* context,
53  const CLIPRDR_FORMAT_LIST* formatList);
54  typedef UINT (*pcCliprdrClientFormatListResponse)(
55  CliprdrClientContext* context, const CLIPRDR_FORMAT_LIST_RESPONSE* formatListResponse);
56  typedef UINT (*pcCliprdrServerFormatListResponse)(
57  CliprdrClientContext* context, const CLIPRDR_FORMAT_LIST_RESPONSE* formatListResponse);
58  typedef UINT (*pcCliprdrClientLockClipboardData)(
59  CliprdrClientContext* context, const CLIPRDR_LOCK_CLIPBOARD_DATA* lockClipboardData);
60  typedef UINT (*pcCliprdrServerLockClipboardData)(
61  CliprdrClientContext* context, const CLIPRDR_LOCK_CLIPBOARD_DATA* lockClipboardData);
62  typedef UINT (*pcCliprdrClientUnlockClipboardData)(
63  CliprdrClientContext* context, const CLIPRDR_UNLOCK_CLIPBOARD_DATA* unlockClipboardData);
64  typedef UINT (*pcCliprdrServerUnlockClipboardData)(
65  CliprdrClientContext* context, const CLIPRDR_UNLOCK_CLIPBOARD_DATA* unlockClipboardData);
66  typedef UINT (*pcCliprdrClientFormatDataRequest)(
67  CliprdrClientContext* context, const CLIPRDR_FORMAT_DATA_REQUEST* formatDataRequest);
68  typedef UINT (*pcCliprdrServerFormatDataRequest)(
69  CliprdrClientContext* context, const CLIPRDR_FORMAT_DATA_REQUEST* formatDataRequest);
70  typedef UINT (*pcCliprdrClientFormatDataResponse)(
71  CliprdrClientContext* context, const CLIPRDR_FORMAT_DATA_RESPONSE* formatDataResponse);
72  typedef UINT (*pcCliprdrServerFormatDataResponse)(
73  CliprdrClientContext* context, const CLIPRDR_FORMAT_DATA_RESPONSE* formatDataResponse);
74  typedef UINT (*pcCliprdrClientFileContentsRequest)(
75  CliprdrClientContext* context, const CLIPRDR_FILE_CONTENTS_REQUEST* fileContentsRequest);
76  typedef UINT (*pcCliprdrServerFileContentsRequest)(
77  CliprdrClientContext* context, const CLIPRDR_FILE_CONTENTS_REQUEST* fileContentsRequest);
78  typedef UINT (*pcCliprdrClientFileContentsResponse)(
79  CliprdrClientContext* context, const CLIPRDR_FILE_CONTENTS_RESPONSE* fileContentsResponse);
80  typedef UINT (*pcCliprdrServerFileContentsResponse)(
81  CliprdrClientContext* context, const CLIPRDR_FILE_CONTENTS_RESPONSE* fileContentsResponse);
82 
84  {
85  void* handle;
86  void* custom;
87 
88  pcCliprdrServerCapabilities ServerCapabilities;
89  pcCliprdrClientCapabilities ClientCapabilities;
90  pcCliprdrMonitorReady MonitorReady;
91  pcCliprdrTempDirectory TempDirectory;
92  pcCliprdrClientFormatList ClientFormatList;
93  pcCliprdrServerFormatList ServerFormatList;
94  pcCliprdrClientFormatListResponse ClientFormatListResponse;
95  pcCliprdrServerFormatListResponse ServerFormatListResponse;
96  pcCliprdrClientLockClipboardData ClientLockClipboardData;
97  pcCliprdrServerLockClipboardData ServerLockClipboardData;
98  pcCliprdrClientUnlockClipboardData ClientUnlockClipboardData;
99  pcCliprdrServerUnlockClipboardData ServerUnlockClipboardData;
100  pcCliprdrClientFormatDataRequest ClientFormatDataRequest;
101  pcCliprdrServerFormatDataRequest ServerFormatDataRequest;
102  pcCliprdrClientFormatDataResponse ClientFormatDataResponse;
103  pcCliprdrServerFormatDataResponse ServerFormatDataResponse;
104  pcCliprdrClientFileContentsRequest ClientFileContentsRequest;
105  pcCliprdrServerFileContentsRequest ServerFileContentsRequest;
106  pcCliprdrClientFileContentsResponse ClientFileContentsResponse;
107  pcCliprdrServerFileContentsResponse ServerFileContentsResponse;
108 
109  UINT32 lastRequestedFormatId;
110  rdpContext* rdpcontext;
111  };
112 
113  typedef struct
114  {
115  UINT32 id;
116  char* name;
117  int length;
119 
124  typedef struct
125  {
126  wMessage event;
127  UINT32 capabilities;
129 
130  typedef struct
131  {
132  wMessage event;
133  UINT32 capabilities;
135 
136  typedef struct
137  {
138  wMessage event;
139  UINT32* formats;
140  UINT16 num_formats;
141  BYTE* raw_format_data;
142  UINT32 raw_format_data_size;
143  BOOL raw_format_unicode;
145 
146  typedef struct
147  {
148  wMessage event;
149  UINT32 format;
151 
152  typedef struct
153  {
154  wMessage event;
155  BYTE* data;
156  UINT32 size;
158 
159  typedef struct
160  {
161  wMessage event;
162  UINT32 streamId;
163  UINT32 lindex;
164  UINT32 dwFlags;
165  UINT32 nPositionLow;
166  UINT32 nPositionHigh;
167  UINT32 cbRequested;
168  UINT32 clipDataId;
170 
171  typedef struct
172  {
173  wMessage event;
174  BYTE* data;
175  UINT32 size;
176  UINT32 streamId;
178 
179  typedef struct
180  {
181  wMessage event;
182  UINT32 clipDataId;
184 
185  typedef struct
186  {
187  wMessage event;
188  UINT32 clipDataId;
190 
191  typedef struct
192  {
193  wMessage event;
194  char dirname[520];
196 
197 #ifdef __cplusplus
198 }
199 #endif
200 
201 #endif /* FREERDP_CHANNEL_CLIPRDR_CLIENT_CLIPRDR_H */