VirtualBox

root/trunk/include/VBox/HostServices/VBoxClipboardSvc.h

Revision 9435, 4.2 kB (checked in by vboxsync, 7 months ago)

Extend HGCM interface to support 64 bit pointers.

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

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy