FreeRDP
cliprdr_utils.c File Reference

Macros

#define TAG   FREERDP_TAG("utils." CLIPRDR_SVC_CHANNEL_NAME)
 
#define CLIPRDR_FILEDESCRIPTOR_SIZE   (4 + 32 + 4 + 16 + 8 + 8 + 520)
 
#define CLIPRDR_MAX_FILE_SIZE   (2U * 1024 * 1024 * 1024)
 

Functions

static UINT64 filetime_to_uint64 (FILETIME value)
 
static FILETIME uint64_to_filetime (UINT64 value)
 
UINT cliprdr_parse_file_list (const BYTE *format_data, UINT32 format_data_length, FILEDESCRIPTORW **file_descriptor_array, UINT32 *file_descriptor_count)
 
UINT cliprdr_serialize_file_list (const FILEDESCRIPTORW *file_descriptor_array, UINT32 file_descriptor_count, BYTE **format_data, UINT32 *format_data_length)
 
UINT cliprdr_serialize_file_list_ex (UINT32 flags, const FILEDESCRIPTORW *file_descriptor_array, UINT32 file_descriptor_count, BYTE **format_data, UINT32 *format_data_length)
 

Macro Definition Documentation

◆ CLIPRDR_FILEDESCRIPTOR_SIZE

#define CLIPRDR_FILEDESCRIPTOR_SIZE   (4 + 32 + 4 + 16 + 8 + 8 + 520)

◆ CLIPRDR_MAX_FILE_SIZE

#define CLIPRDR_MAX_FILE_SIZE   (2U * 1024 * 1024 * 1024)

◆ TAG

#define TAG   FREERDP_TAG("utils." CLIPRDR_SVC_CHANNEL_NAME)

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 Copyright 2022 Armin Novak <anova.nosp@m.k@th.nosp@m.incas.nosp@m.t.co.nosp@m.m Copyright 2022 Thincast Technologies GmbH

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.

Function Documentation

◆ cliprdr_parse_file_list()

UINT cliprdr_parse_file_list ( const BYTE format_data,
UINT32  format_data_length,
FILEDESCRIPTORW **  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:

◆ cliprdr_serialize_file_list()

UINT cliprdr_serialize_file_list ( const FILEDESCRIPTORW 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:

◆ cliprdr_serialize_file_list_ex()

UINT cliprdr_serialize_file_list_ex ( UINT32  flags,
const FILEDESCRIPTORW file_descriptor_array,
UINT32  file_descriptor_count,
BYTE **  format_data,
UINT32 *  format_data_length 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ filetime_to_uint64()

static UINT64 filetime_to_uint64 ( FILETIME  value)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ uint64_to_filetime()

static FILETIME uint64_to_filetime ( UINT64  value)
static
Here is the call graph for this function:
Here is the caller graph for this function: