VirtualBox

source: vbox/trunk/include/VBox/HostServices/VBoxClipboardExt.h@ 80062

Last change on this file since 80062 was 79088, checked in by vboxsync, 5 years ago

Shared Clipboard/URI: Update.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.7 KB
Line 
1/** @file
2 * Shared Clipboard - Common header for the service extension.
3 */
4
5/*
6 * Copyright (C) 2006-2019 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_INCLUDED_HostServices_VBoxClipboardExt_h
27#define VBOX_INCLUDED_HostServices_VBoxClipboardExt_h
28#ifndef RT_WITHOUT_PRAGMA_ONCE
29# pragma once
30#endif
31
32#include <VBox/types.h>
33#ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST
34# include <VBox/GuestHost/SharedClipboard-uri.h>
35#endif
36
37#define VBOX_CLIPBOARD_EXT_FN_SET_CALLBACK (0)
38#define VBOX_CLIPBOARD_EXT_FN_FORMAT_ANNOUNCE (1)
39#define VBOX_CLIPBOARD_EXT_FN_DATA_READ (2)
40#define VBOX_CLIPBOARD_EXT_FN_DATA_WRITE (3)
41/** Registers a new clipboard area.
42 * Uses the VBOXCLIPBOARDEXTAREAPARMS struct. */
43#define VBOX_CLIPBOARD_EXT_FN_AREA_REGISTER (4)
44/** Unregisters an existing clipboard area.
45 * Uses the VBOXCLIPBOARDEXTAREAPARMS struct. */
46#define VBOX_CLIPBOARD_EXT_FN_AREA_UNREGISTER (5)
47/** Attaches to an existing clipboard area.
48 * Uses the VBOXCLIPBOARDEXTAREAPARMS struct. */
49#define VBOX_CLIPBOARD_EXT_FN_AREA_ATTACH (6)
50/** Detaches from an existing clipboard area.
51 * Uses the VBOXCLIPBOARDEXTAREAPARMS struct. */
52#define VBOX_CLIPBOARD_EXT_FN_AREA_DETACH (7)
53
54typedef DECLCALLBACK(int) VRDPCLIPBOARDEXTCALLBACK (uint32_t u32Function, uint32_t u32Format, void *pvData, uint32_t cbData);
55typedef VRDPCLIPBOARDEXTCALLBACK *PFNVRDPCLIPBOARDEXTCALLBACK;
56
57typedef struct _VBOXCLIPBOARDEXTPARMS
58{
59 uint32_t u32Format;
60 union
61 {
62 void *pvData;
63 PFNVRDPCLIPBOARDEXTCALLBACK pfnCallback;
64 } u;
65 uint32_t cbData;
66} VBOXCLIPBOARDEXTPARMS;
67
68#ifdef VBOX_WITH_SHARED_CLIPBOARD_URI_LIST
69typedef uint32_t VBOXCLIPBOARDEXTAREAREGISTETRFLAGS;
70/** No clipboard register area flags specified. */
71#define VBOXCLIPBOARDEXTAREA_REGISTER_FLAGS_NONE 0
72
73typedef uint32_t VBOXCLIPBOARDEXTAREAATTACHFLAGS;
74/** No clipboard attach area flags specified. */
75#define VBOXCLIPBOARDEXTAREA_ATTACH_FLAGS_NONE 0
76
77/**
78 * Structure for keeping clipboard area callback parameters.
79 */
80typedef struct _VBOXCLIPBOARDEXTAREAPARMS
81{
82 /** The clipboard area's ID the callback is for. */
83 SHAREDCLIPBOARDAREAID uID;
84 union
85 {
86 struct
87 {
88 void *pvData;
89 uint32_t cbData;
90 /** Area register flags; not used yet and must be set to 0. */
91 VBOXCLIPBOARDEXTAREAREGISTETRFLAGS fFlags;
92 } fn_register;
93 struct
94 {
95 /** Area attach flags; not used yet and must be set to 0. */
96 VBOXCLIPBOARDEXTAREAATTACHFLAGS fFlags;
97 } fn_attach;
98 } u;
99} VBOXCLIPBOARDEXTAREAPARMS, *PVBOXCLIPBOARDEXTAREAPARMS;
100#endif /* VBOX_WITH_SHARED_CLIPBOARD_URI_LIST */
101
102#endif /* !VBOX_INCLUDED_HostServices_VBoxClipboardExt_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