Go to file
ilammy 33719d24ce wClipboard/posix: implement file size retrieval
This is an example of wClipboardDelegate method implementation. POSIX
subsystem uses synchronous methods, but the interface can be used for
asynchronous request processing as well. The client should call a
Client* callback to request some action and the wClipboard will process
the request and report the result by calling an approriate Clipboard*
callback. Usually there will be two callbacks: one for reporting success
and one to report errors.

All callbacks have at least two arguments: the wClipboardDelegate itself
to pass the system context, and the wClipboard*Request structure with
the arguments to pass the call context. The request context is also
passed to the result callbacks by wClipboard so that the client can
match up the result with its previous request.

The fields of wClipboard*Request structures are heavily influenced by
the MS-RDPECLIP spec and mirror the respective fields of
CLIPRDR_FILECONTENTS_REQUEST. wClipboard should not depend on
MS-RDPECLIP, that's the reason we don't use CLIPRDR_FILECONTENTS_REQUEST
directly. However, I believe that we should not have void* fields in the
request structs so that they can be easily copied around if needed.
This is why have the weird 'streamId' field there which has nothing to
do with wClipboard and will be used only by the clients when sending
replies to the server.

Return values of the callbacks are to be used for reporting errors with
processing the request or reply per se, not for errors encountered while
performing the action requested. Thus, for example, we return NO_ERROR
from posix_file_request_size() even when we fail to report the result to
the client, because we have successfully performed the request and do
not care if the client could not handle our reply for some reason.

Also note that setup_delegate() fills in dummy implementations of
Clipboard* reply callbacks so that we do not crash in case the client
does not fill them and do not have to perform paranoid NULL checks
before calling every single callback.
2017-04-09 03:15:49 +03:00
channels channels/cliprdr: CLIPRDR_FILELIST utilities 2017-04-09 03:15:48 +03:00
ci/cmake-preloads Rewrite drive channel using WinPR functions 2017-03-13 14:18:46 -07:00
client Fixed RPATH settings for OS X 2017-04-06 08:08:07 +02:00
cmake wClipboard: local file subsystem boilerplate 2017-04-09 03:15:48 +03:00
docs Added android release build configurations. 2017-01-16 15:25:20 +01:00
external cmake: added external directory 2012-11-01 13:50:49 -04:00
include channels/cliprdr: CLIPRDR_FILELIST utilities 2017-04-09 03:15:48 +03:00
libfreerdp Fixed NEON YUV to RGB conversion issues. 2017-04-05 12:20:29 +02:00
packaging Fix nightly packages 2017-01-23 16:43:00 +01:00
rdtk Fixed argument checks, formatting. 2017-03-03 14:11:28 +01:00
resources Recompressed images with FileOptimizer 6.8 (an open-source mass file recompression tool for Windows) 2014-08-08 20:12:25 -04:00
scripts Update for android scripts, per arch includes. 2017-03-09 11:32:34 +01:00
server Scanbuild warning, argument checks and leak fixes. 2017-03-02 18:13:43 +01:00
third-party cleanup cmake exports and pkg-config files 2016-01-12 17:32:33 +01:00
uwac trivial issue found by cppcheck: 2017-01-25 15:48:49 +05:00
winpr wClipboard/posix: implement file size retrieval 2017-04-09 03:15:49 +03:00
.gitignore Add an environment variables section to the man 2016-06-21 15:28:38 +02:00
buildflags.h.in add parameter buildconfig 2016-01-12 17:32:33 +01:00
ChangeLog changelog: update for 1.0.1 2012-02-09 21:01:42 -05:00
CMakeCPack.cmake Added pdb files to package target. 2015-12-15 12:07:21 +01:00
CMakeCPackOptions.cmake.in cmake: fix package generation on Mac OS X 2013-09-09 21:42:25 -04:00
CMakeLists.txt Fixed RPATH settings for OS X 2017-04-06 08:08:07 +02:00
config.h.in wClipboard: local file subsystem boilerplate 2017-04-09 03:15:48 +03:00
LICENSE FreeRDP 1.0: initial commit 2011-06-30 15:12:51 -04:00
README Updated links in README 2013-05-27 18:29:24 +02:00

FreeRDP: A Remote Desktop Protocol Implementation
=================================================

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license.
Enjoy the freedom of using your software wherever you want, the way you want it, in a world where
interoperability can finally liberate your computing experience.

Resources
---------

Project website: http://www.freerdp.com/
Issue tracker: https://github.com/FreeRDP/FreeRDP/issues
Sources: https://github.com/FreeRDP/FreeRDP/
Wiki: https://github.com/FreeRDP/FreeRDP/wiki
Downloads and other resources: http://pub.freerdp.com
API doc: http://pub.freerdp.com/api/

IRC channel: #freerdp @ irc.freenode.net
Mailing list: https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Microsoft Open Specifications
-----------------------------

Information regarding the Microsoft Open Specifications can be found at:
http://www.microsoft.com/openspecifications/

A list of reference documentation is maintained here:
https://github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation

Compilation
-----------

Instructions on how to get started compiling FreeRDP can be found on the wiki:
https://github.com/FreeRDP/FreeRDP/wiki/Compilation