FreeRDP
channels/cliprdr.h File Reference
#include <freerdp/api.h>
#include <freerdp/types.h>
#include <winpr/shell.h>
This graph shows which files directly or indirectly include this file:

Data Structures

struct  CLIPRDR_MFPICT
 
struct  CLIPRDR_HEADER
 
struct  CLIPRDR_CAPABILITY_SET
 
struct  CLIPRDR_GENERAL_CAPABILITY_SET
 
struct  CLIPRDR_CAPABILITIES
 
struct  CLIPRDR_MONITOR_READY
 
struct  CLIPRDR_TEMP_DIRECTORY
 
struct  CLIPRDR_FORMAT
 
struct  CLIPRDR_FORMAT_LIST
 
struct  CLIPRDR_FORMAT_LIST_RESPONSE
 
struct  CLIPRDR_LOCK_CLIPBOARD_DATA
 
struct  CLIPRDR_UNLOCK_CLIPBOARD_DATA
 
struct  CLIPRDR_FORMAT_DATA_REQUEST
 
struct  CLIPRDR_FORMAT_DATA_RESPONSE
 
struct  CLIPRDR_FILE_CONTENTS_REQUEST
 
struct  CLIPRDR_FILE_CONTENTS_RESPONSE
 

Macros

#define CLIPRDR_SVC_CHANNEL_NAME   "cliprdr"
 
#define CB_FORMAT_HTML   0xD010
 
#define CB_FORMAT_PNG   0xD011
 
#define CB_FORMAT_JPEG   0xD012
 
#define CB_FORMAT_GIF   0xD013
 
#define CB_FORMAT_TEXTURILIST   0xD014
 
#define CB_MONITOR_READY   0x0001
 
#define CB_FORMAT_LIST   0x0002
 
#define CB_FORMAT_LIST_RESPONSE   0x0003
 
#define CB_FORMAT_DATA_REQUEST   0x0004
 
#define CB_FORMAT_DATA_RESPONSE   0x0005
 
#define CB_TEMP_DIRECTORY   0x0006
 
#define CB_CLIP_CAPS   0x0007
 
#define CB_FILECONTENTS_REQUEST   0x0008
 
#define CB_FILECONTENTS_RESPONSE   0x0009
 
#define CB_LOCK_CLIPDATA   0x000A
 
#define CB_UNLOCK_CLIPDATA   0x000B
 
#define CB_RESPONSE_OK   0x0001
 
#define CB_RESPONSE_FAIL   0x0002
 
#define CB_ASCII_NAMES   0x0004
 
#define CB_CAPSTYPE_GENERAL   0x0001
 
#define CB_CAPSTYPE_GENERAL_LEN   12
 
#define CB_CAPS_VERSION_1   0x00000001
 
#define CB_CAPS_VERSION_2   0x00000002
 
#define CB_USE_LONG_FORMAT_NAMES   0x00000002
 
#define CB_STREAM_FILECLIP_ENABLED   0x00000004
 
#define CB_FILECLIP_NO_FILE_PATHS   0x00000008
 
#define CB_CAN_LOCK_CLIPDATA   0x00000010
 
#define FILECONTENTS_SIZE   0x00000001
 
#define FILECONTENTS_RANGE   0x00000002
 
#define DEFINE_CLIPRDR_HEADER_COMMON()
 

Functions

FREERDP_API UINT cliprdr_parse_file_list (const BYTE *format_data, UINT32 format_data_length, FILEDESCRIPTOR **file_descriptor_array, UINT32 *file_descriptor_count)
 
FREERDP_API UINT cliprdr_serialize_file_list (const FILEDESCRIPTOR *file_descriptor_array, UINT32 file_descriptor_count, BYTE **format_data, UINT32 *format_data_length)
 

Macro Definition Documentation

#define CB_ASCII_NAMES   0x0004
#define CB_CAN_LOCK_CLIPDATA   0x00000010
#define CB_CAPS_VERSION_1   0x00000001
#define CB_CAPS_VERSION_2   0x00000002
#define CB_CAPSTYPE_GENERAL   0x0001
#define CB_CAPSTYPE_GENERAL_LEN   12
#define CB_CLIP_CAPS   0x0007
#define CB_FILECLIP_NO_FILE_PATHS   0x00000008
#define CB_FILECONTENTS_REQUEST   0x0008
#define CB_FILECONTENTS_RESPONSE   0x0009
#define CB_FORMAT_DATA_REQUEST   0x0004
#define CB_FORMAT_DATA_RESPONSE   0x0005
#define CB_FORMAT_GIF   0xD013
#define CB_FORMAT_HTML   0xD010

Clipboard Formats

#define CB_FORMAT_JPEG   0xD012
#define CB_FORMAT_LIST   0x0002
#define CB_FORMAT_LIST_RESPONSE   0x0003
#define CB_FORMAT_PNG   0xD011
#define CB_FORMAT_TEXTURILIST   0xD014
#define CB_LOCK_CLIPDATA   0x000A
#define CB_MONITOR_READY   0x0001
#define CB_RESPONSE_FAIL   0x0002
#define CB_RESPONSE_OK   0x0001
#define CB_STREAM_FILECLIP_ENABLED   0x00000004
#define CB_TEMP_DIRECTORY   0x0006
#define CB_UNLOCK_CLIPDATA   0x000B
#define CB_USE_LONG_FORMAT_NAMES   0x00000002
#define CLIPRDR_SVC_CHANNEL_NAME   "cliprdr"

FreeRDP: A Remote Desktop Protocol Implementation Clipboard Virtual Channel Extension

Copyright 2013 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

#define DEFINE_CLIPRDR_HEADER_COMMON ( )
Value:
UINT16 msgType; \
UINT16 msgFlags; \
UINT32 dataLen
unsigned short UINT16
Definition: LECHash.c:2
typedef UINT32
Definition: wf_interface.h:116
#define FILECONTENTS_RANGE   0x00000002
#define FILECONTENTS_SIZE   0x00000001

Function Documentation

FREERDP_API UINT cliprdr_parse_file_list ( const BYTE format_data,
UINT32  format_data_length,
FILEDESCRIPTOR **  file_descriptor_array,
UINT32 file_descriptor_count 
)

Parse a packed file list.

The resulting array must be freed with the free() function.

Parameters
[in]format_datapacked CLIPRDR_FILELIST to parse.
[in]format_data_lengthlength of format_data in bytes.
[out]file_descriptor_arrayparsed array of FILEDESCRIPTOR structs.
[out]file_descriptor_countnumber of elements in file_descriptor_array.
Returns
0 on success, otherwise a Win32 error code.

Here is the call graph for this function:

FREERDP_API UINT cliprdr_serialize_file_list ( const FILEDESCRIPTOR *  file_descriptor_array,
UINT32  file_descriptor_count,
BYTE **  format_data,
UINT32 format_data_length 
)

Serialize a packed file list.

The resulting format data must be freed with the free() function.

Parameters
[in]file_descriptor_arrayarray of FILEDESCRIPTOR structs to serialize.
[in]file_descriptor_countnumber of elements in file_descriptor_array.
[out]format_dataserialized CLIPRDR_FILELIST.
[out]format_data_lengthlength of format_data in bytes.
Returns
0 on success, otherwise a Win32 error code.

Here is the call graph for this function:

Here is the caller graph for this function: