VirtualBox

source: vbox/trunk/include/VBox/HostServices/VBoxClipboardSvc.h@ 67815

Last change on this file since 67815 was 62476, checked in by vboxsync, 8 years ago

(C) 2016

  • Property svn:eol-style set to native
File size: 4.2 KB
Line 
1/** @file
2 * Shared Clipboard - Common header for host service and guest clients.
3 */
4
5/*
6 * Copyright (C) 2006-2016 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 */
25
26#ifndef ___VBox_HostService_VBoxClipboardSvc_h
27#define ___VBox_HostService_VBoxClipboardSvc_h
28
29#include <VBox/types.h>
30#include <VBox/VMMDev.h>
31#include <VBox/VBoxGuest2.h>
32#include <VBox/hgcmsvc.h>
33
34/*
35 * The mode of operations.
36 */
37#define VBOX_SHARED_CLIPBOARD_MODE_OFF 0
38#define VBOX_SHARED_CLIPBOARD_MODE_HOST_TO_GUEST 1
39#define VBOX_SHARED_CLIPBOARD_MODE_GUEST_TO_HOST 2
40#define VBOX_SHARED_CLIPBOARD_MODE_BIDIRECTIONAL 3
41
42/*
43 * Supported data formats. Bit mask.
44 */
45#define VBOX_SHARED_CLIPBOARD_FMT_UNICODETEXT UINT32_C(0x01)
46#define VBOX_SHARED_CLIPBOARD_FMT_BITMAP UINT32_C(0x02)
47#define VBOX_SHARED_CLIPBOARD_FMT_HTML UINT32_C(0x04)
48
49/*
50 * The service functions which are callable by host.
51 */
52#define VBOX_SHARED_CLIPBOARD_HOST_FN_SET_MODE 1
53/** Run headless on the host, i.e. do not touch the host clipboard. */
54#define VBOX_SHARED_CLIPBOARD_HOST_FN_SET_HEADLESS 2
55
56/*
57 * The service functions which are called by guest.
58 */
59/* Call host and wait blocking for an host event VBOX_SHARED_CLIPBOARD_HOST_MSG_* */
60#define VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG 1
61/* Send list of available formats to host. */
62#define VBOX_SHARED_CLIPBOARD_FN_FORMATS 2
63/* Obtain data in specified format from host. */
64#define VBOX_SHARED_CLIPBOARD_FN_READ_DATA 3
65/* Send data in requested format to host. */
66#define VBOX_SHARED_CLIPBOARD_FN_WRITE_DATA 4
67
68/*
69 * The host messages for the guest.
70 */
71#define VBOX_SHARED_CLIPBOARD_HOST_MSG_QUIT 1
72#define VBOX_SHARED_CLIPBOARD_HOST_MSG_READ_DATA 2
73#define VBOX_SHARED_CLIPBOARD_HOST_MSG_FORMATS 3
74
75/*
76 * HGCM parameter structures.
77 */
78#pragma pack (1)
79typedef struct _VBoxClipboardGetHostMsg
80{
81 VBoxGuestHGCMCallInfo hdr;
82
83 /* VBOX_SHARED_CLIPBOARD_HOST_MSG_* */
84 HGCMFunctionParameter msg; /* OUT uint32_t */
85
86 /* VBOX_SHARED_CLIPBOARD_FMT_*, depends on the 'msg'. */
87 HGCMFunctionParameter formats; /* OUT uint32_t */
88} VBoxClipboardGetHostMsg;
89
90#define VBOX_SHARED_CLIPBOARD_CPARMS_GET_HOST_MSG 2
91
92typedef struct _VBoxClipboardFormats
93{
94 VBoxGuestHGCMCallInfo hdr;
95
96 /* VBOX_SHARED_CLIPBOARD_FMT_* */
97 HGCMFunctionParameter formats; /* OUT uint32_t */
98} VBoxClipboardFormats;
99
100#define VBOX_SHARED_CLIPBOARD_CPARMS_FORMATS 1
101
102typedef struct _VBoxClipboardReadData
103{
104 VBoxGuestHGCMCallInfo hdr;
105
106 /* Requested format. */
107 HGCMFunctionParameter format; /* IN uint32_t */
108
109 /* The data buffer. */
110 HGCMFunctionParameter ptr; /* IN linear pointer. */
111
112 /* Size of returned data, if > ptr->cb, then no data was
113 * actually transferred and the guest must repeat the call.
114 */
115 HGCMFunctionParameter size; /* OUT uint32_t */
116
117} VBoxClipboardReadData;
118
119#define VBOX_SHARED_CLIPBOARD_CPARMS_READ_DATA 3
120
121typedef struct _VBoxClipboardWriteData
122{
123 VBoxGuestHGCMCallInfo hdr;
124
125 /* Returned format as requested in the VBOX_SHARED_CLIPBOARD_HOST_MSG_READ_DATA message. */
126 HGCMFunctionParameter format; /* IN uint32_t */
127
128 /* Data. */
129 HGCMFunctionParameter ptr; /* IN linear pointer. */
130} VBoxClipboardWriteData;
131
132#define VBOX_SHARED_CLIPBOARD_CPARMS_WRITE_DATA 2
133
134#pragma pack ()
135
136#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette