14class CClipboardFreeRDP :
public QObject
19 virtual ~CClipboardFreeRDP();
21 int Init(CliprdrClientContext *context,
bool bEnable);
22 int UnInit(CliprdrClientContext* context,
bool bEnable);
24 static UINT cb_cliprdr_server_capabilities(CliprdrClientContext* context,
25 const CLIPRDR_CAPABILITIES* capabilities);
27 static UINT cb_cliprdr_server_format_list(CliprdrClientContext* context,
28 const CLIPRDR_FORMAT_LIST* formatList);
30 cb_cliprdr_server_format_list_response(CliprdrClientContext* context,
31 const CLIPRDR_FORMAT_LIST_RESPONSE* formatListResponse);
34 cb_cliprdr_server_format_data_response(CliprdrClientContext* context,
35 const CLIPRDR_FORMAT_DATA_RESPONSE* formatDataResponse);
37 cb_cliprdr_server_file_contents_request(CliprdrClientContext* context,
38 const CLIPRDR_FILE_CONTENTS_REQUEST* fileContentsRequest);
40 cb_cliprdr_server_file_contents_response(CliprdrClientContext* context,
41 const CLIPRDR_FILE_CONTENTS_RESPONSE* fileContentsResponse);
44 static UINT cb_cliprdr_monitor_ready(CliprdrClientContext* context,
45 const CLIPRDR_MONITOR_READY* monitorReady);
46 static UINT SendClientFormatList(CliprdrClientContext *context);
50 cb_cliprdr_server_format_data_request(CliprdrClientContext* context,
51 const CLIPRDR_FORMAT_DATA_REQUEST* formatDataRequest);
52 static UINT SendFormatDataResponse(CliprdrClientContext* context,
53 const BYTE* data,
size_t size);
55 static UINT slotSendFormatDataRequest(CliprdrClientContext* context,
60 static UINT SendFileContentsFailure(CliprdrClientContext* context,
61 const CLIPRDR_FILE_CONTENTS_REQUEST* fileContentsRequest);
62 UINT ServerFileSizeRequest(
63 const CLIPRDR_FILE_CONTENTS_REQUEST* fileContentsRequest);
64 UINT ServerFileRangeRequest(
65 const CLIPRDR_FILE_CONTENTS_REQUEST* fileContentsRequest);
66 static UINT cb_clipboard_file_size_success(wClipboardDelegate* delegate,
67 const wClipboardFileSizeRequest* request,
69 static UINT cb_clipboard_file_size_failure(
70 wClipboardDelegate* delegate,
71 const wClipboardFileSizeRequest* request,
73 static UINT cb_clipboard_file_range_success(
74 wClipboardDelegate* delegate,
75 const wClipboardFileRangeRequest* request,
76 const BYTE* data, UINT32 size);
77 static UINT cb_clipboard_file_range_failure(
78 wClipboardDelegate* delegate,
79 const wClipboardFileRangeRequest* request,
81 static BOOL cbIsFileNameComponentValid(LPCWSTR lpFileName);
84 virtual void slotClipBoardChanged();
95 void sigServerFileContentsRespose(UINT32 streamId, QByteArray& data);
99 CliprdrClientContext* m_pCliprdrClientContext;
100 friend CClipboardMimeData;
101 QList<qint32> m_lstClipboardMimeDataId;
102 wClipboard* m_pClipboard;
104 UINT32 m_RequestFormatId;
107 UINT32 m_FileCapabilityFlags;
108 bool m_bFileSupported;
109 BOOL m_bFileFormatsRegistered;