VirtualBox

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

Last change on this file since 3251 was 2981, checked in by vboxsync, 17 years ago

InnoTek -> innotek: all the headers and comments.

File size: 3.6 KB
Line 
1/** @file
2 *
3 * Shared Clipboard:
4 * Common header for host service and guest clients.
5 */
6
7/*
8 * Copyright (C) 2006-2007 innotek GmbH
9 *
10 * This file is part of VirtualBox Open Source Edition (OSE), as
11 * available from http://www.virtualbox.org. This file is free software;
12 * you can redistribute it and/or modify it under the terms of the GNU
13 * General Public License as published by the Free Software Foundation,
14 * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
15 * distribution. VirtualBox OSE is distributed in the hope that it will
16 * be useful, but WITHOUT ANY WARRANTY of any kind.
17 *
18 * If you received this file as part of a commercial VirtualBox
19 * distribution, then only the terms of your commercial VirtualBox
20 * license agreement apply instead of the previous paragraph.
21 */
22
23#ifndef __VBOXCLIPBOARDSVC__H
24#define __VBOXCLIPBOARDSVC__H
25
26#include <VBox/types.h>
27#include <VBox/VBoxGuest.h>
28#include <VBox/hgcmsvc.h>
29
30/*
31 * The mode of operations.
32 */
33#define VBOX_SHARED_CLIPBOARD_MODE_OFF 0
34#define VBOX_SHARED_CLIPBOARD_MODE_HOST_TO_GUEST 1
35#define VBOX_SHARED_CLIPBOARD_MODE_GUEST_TO_HOST 2
36#define VBOX_SHARED_CLIPBOARD_MODE_BIDIRECTIONAL 3
37
38/*
39 * Supported data formats. Bit mask.
40 */
41#define VBOX_SHARED_CLIPBOARD_FMT_UNICODETEXT 0x01
42#define VBOX_SHARED_CLIPBOARD_FMT_BITMAP 0x02
43#define VBOX_SHARED_CLIPBOARD_FMT_HTML 0x04
44
45/*
46 * The service functions which are callable by host.
47 */
48#define VBOX_SHARED_CLIPBOARD_HOST_FN_SET_MODE 1
49
50/*
51 * The service functions which are called by guest.
52 */
53/* Call host and wait blocking for an host event VBOX_SHARED_CLIPBOARD_HOST_MSG_* */
54#define VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG 1
55/* Send list of available formats to host. */
56#define VBOX_SHARED_CLIPBOARD_FN_FORMATS 2
57/* Obtain data in specified format from host. */
58#define VBOX_SHARED_CLIPBOARD_FN_READ_DATA 3
59/* Send data in requested format to host. */
60#define VBOX_SHARED_CLIPBOARD_FN_WRITE_DATA 4
61
62/*
63 * The host messages for the guest.
64 */
65#define VBOX_SHARED_CLIPBOARD_HOST_MSG_QUIT 1
66#define VBOX_SHARED_CLIPBOARD_HOST_MSG_READ_DATA 2
67#define VBOX_SHARED_CLIPBOARD_HOST_MSG_FORMATS 3
68
69/*
70 * HGCM parameter structures.
71 */
72#pragma pack (1)
73typedef struct _VBoxClipboardGetHostMsg
74{
75 VBoxGuestHGCMCallInfo hdr;
76
77 /* VBOX_SHARED_CLIPBOARD_HOST_MSG_* */
78 HGCMFunctionParameter msg; /* OUT uint32_t */
79
80 /* VBOX_SHARED_CLIPBOARD_FMT_*, depends on the 'msg'. */
81 HGCMFunctionParameter formats; /* OUT uint32_t */
82} VBoxClipboardGetHostMsg;
83
84typedef struct _VBoxClipboardFormats
85{
86 VBoxGuestHGCMCallInfo hdr;
87
88 /* VBOX_SHARED_CLIPBOARD_FMT_* */
89 HGCMFunctionParameter formats; /* OUT uint32_t */
90} VBoxClipboardFormats;
91
92typedef struct _VBoxClipboardReadData
93{
94 VBoxGuestHGCMCallInfo hdr;
95
96 /* Requested format. */
97 HGCMFunctionParameter format; /* IN uint32_t */
98
99 /* The data buffer. */
100 HGCMFunctionParameter ptr; /* IN linear pointer. */
101
102 /* Size of returned data, if > ptr->cb, then no data was
103 * actually transferred and the guest must repeat the call.
104 */
105 HGCMFunctionParameter size; /* OUT uint32_t */
106
107} VBoxClipboardReadData;
108
109typedef struct _VBoxClipboardWriteData
110{
111 VBoxGuestHGCMCallInfo hdr;
112
113 /* Returned format as requested in the VBOX_SHARED_CLIPBOARD_HOST_MSG_READ_DATA message. */
114 HGCMFunctionParameter format; /* IN uint32_t */
115
116 /* Data. */
117 HGCMFunctionParameter ptr; /* IN linear pointer. */
118} VBoxClipboardWriteData;
119#pragma pack ()
120
121#endif /* __VBOXCLIPBOARDSVC__H */
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