a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync/** @file
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Drag and Drop service - Common header for host service and guest clients.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync/*
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * Copyright (C) 2011-2014 Oracle Corporation
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * available from http://www.virtualbox.org. This file is free software;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * you can redistribute it and/or modify it under the terms of the GNU
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * General Public License (GPL) as published by the Free Software
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * The contents of this file may alternatively be used under the terms
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * of the Common Development and Distribution License Version 1.0
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * VirtualBox OSE distribution, in which case the provisions of the
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * CDDL are applicable instead of those of the GPL.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * You may elect to license modified versions of this file under the
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * terms and conditions of either the GPL or the CDDL or both.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#ifndef ___VBox_HostService_DragAndDropSvc_h
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define ___VBox_HostService_DragAndDropSvc_h
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#include <VBox/VMMDev.h>
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#include <VBox/VBoxGuest2.h>
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync/*
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * The mode of operations.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define VBOX_DRAG_AND_DROP_MODE_OFF 0
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define VBOX_DRAG_AND_DROP_MODE_HOST_TO_GUEST 1
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define VBOX_DRAG_AND_DROP_MODE_GUEST_TO_HOST 2
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define VBOX_DRAG_AND_DROP_MODE_BIDIRECTIONAL 3
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define DND_IGNORE_ACTION UINT32_C(0)
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define DND_COPY_ACTION RT_BIT_32(0)
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define DND_MOVE_ACTION RT_BIT_32(1)
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define DND_LINK_ACTION RT_BIT_32(2)
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
1edca85ede2f5073e962bf32fa2abe26f128f11avboxsync#define hasDnDCopyAction(a) ((a) & DND_COPY_ACTION)
1edca85ede2f5073e962bf32fa2abe26f128f11avboxsync#define hasDnDMoveAction(a) ((a) & DND_MOVE_ACTION)
1edca85ede2f5073e962bf32fa2abe26f128f11avboxsync#define hasDnDLinkAction(a) ((a) & DND_LINK_ACTION)
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define isDnDIgnoreAction(a) ((a) == DND_IGNORE_ACTION)
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define isDnDCopyAction(a) ((a) == DND_COPY_ACTION)
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define isDnDMoveAction(a) ((a) == DND_MOVE_ACTION)
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#define isDnDLinkAction(a) ((a) == DND_LINK_ACTION)
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync/** @def VBOX_DND_FORMATS_DEFAULT
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync * Default drag'n drop formats.
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync * Note: If you add new entries here, make sure you test those
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync * with all supported guest OSes!
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync */
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync#define VBOX_DND_FORMATS_DEFAULT \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync "text/uri-list", \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync /* Text. */ \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync "text/html", \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync "text/plain;charset=utf-8", \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync "text/plain;charset=utf-16", \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync "text/plain", \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync "text/richtext", \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync "UTF8_STRING", \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync "TEXT", \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync "STRING", \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync /* OpenOffice formats. */ \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync /* See: https://wiki.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Common_Application_Features#OpenOffice.org_Clipboard_Data_Formats */ \
04f905599c3a63d4349a8584d7ca5b9e0a3c3b98vboxsync "application/x-openoffice-embed-source-xml;windows_formatname=\"Star Embed Source (XML)\"", \
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync "application/x-openoffice;windows_formatname=\"Bitmap\""
bf798cb79ac0bda723591893603554df2c16ddc5vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsyncnamespace DragAndDropSvc {
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync/******************************************************************************
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync* Typedefs, constants and inlines *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync******************************************************************************/
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync/**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * The service functions which are callable by host.
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * Note: When adding new functions to this table, make sure that the actual ID
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * does *not* overlap with the eGuestFn enumeration below!
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsyncenum eHostFn
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HOST_DND_SET_MODE = 100,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync /*
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync * Host -> Guest messages
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync */
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HOST_DND_HG_EVT_ENTER = 200,
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync HOST_DND_HG_EVT_MOVE = 201,
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync HOST_DND_HG_EVT_LEAVE = 202,
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync HOST_DND_HG_EVT_DROPPED = 203,
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync HOST_DND_HG_EVT_CANCEL = 204,
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync /** Gets the actual MIME data, based on
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync * the format(s) specified by HOST_DND_HG_EVT_ENTER. */
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync HOST_DND_HG_SND_DATA = 205,
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync /** Sent when the actual buffer for HOST_DND_HG_SND_DATA
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync * was too small, issued by the DnD host service. */
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync HOST_DND_HG_SND_MORE_DATA = 206,
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync /** Directory entry to be handled on the guest. */
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync HOST_DND_HG_SND_DIR = 207,
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync /** File entry to be handled on the guest. */
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync HOST_DND_HG_SND_FILE = 208,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync /*
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync * Guest -> Host messages
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync */
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync /** The host asks the guest whether a DnD operation
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * is in progress when the mouse leaves the guest window. */
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync HOST_DND_GH_REQ_PENDING = 600,
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync /** The host informs the guest that a DnD drop operation
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * has been started and that the host wants the data in
82391de567696f10b21a762fde6a06fe3c266d28vboxsync * a specific MIME type. */
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync HOST_DND_GH_EVT_DROPPED,
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync HOST_DND_GH_RECV_DIR = 650,
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync HOST_DND_GH_RECV_FILE = 670
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync};
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync/**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * The service functions which are called by guest.
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * Note: When adding new functions to this table, make sure that the actual ID
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * does *not* overlap with the eGuestFn enumeration above!
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsyncenum eGuestFn
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * Guest waits for a new message the host wants to process
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * on the guest side. This can be a blocking call.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync GUEST_DND_GET_NEXT_HOST_MSG = 300,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /* H->G */
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync /** The guest acknowledges that the pending DnD data from
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync * the host can be dropped on the currently selected source
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync * on the guest. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync GUEST_DND_HG_ACK_OP = 400,
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync /** The guest requests the actual DnD data to be sent
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync * from the host. */
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync GUEST_DND_HG_REQ_DATA = 401,
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync GUEST_DND_HG_EVT_PROGRESS = 402,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /* G->H */
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync /**
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * The guests acknowledges that it currently has a drag'n drop
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * operation in progress on the guest, which eventually could be
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync * dragged over to the host.
a3011b448b38c39a7222f2f1eb40c8349023f650vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync GUEST_DND_GH_ACK_PENDING = 500,
82391de567696f10b21a762fde6a06fe3c266d28vboxsync /**
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync * Sends data of the requested format to the host. There can
82391de567696f10b21a762fde6a06fe3c266d28vboxsync * be more than one message if the actual data does not fit
82391de567696f10b21a762fde6a06fe3c266d28vboxsync * into one.
82391de567696f10b21a762fde6a06fe3c266d28vboxsync */
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync GUEST_DND_GH_SND_DATA = 501,
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync GUEST_DND_GH_EVT_ERROR = 502,
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync
00331fbaff118e6a5077fe96327aca51a70459dbvboxsync GUEST_DND_GH_SND_DIR = 700,
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync GUEST_DND_GH_SND_FILE = 701
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync};
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync/**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * The possible states for the progress operations.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsyncenum
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync DND_PROGRESS_RUNNING = 1,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync DND_PROGRESS_COMPLETE,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync DND_PROGRESS_CANCELLED,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync DND_PROGRESS_ERROR
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync};
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#pragma pack (1)
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync/*
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Host events
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDHGACTIONMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HG Action event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_HG_EVT_ENTER
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_HG_EVT_MOVE
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_HG_EVT_DROPPED
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uScreenId; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uX; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uY; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uDefAction; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uAllActions; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter pvFormats; /* OUT ptr */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter cFormats; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDHGACTIONMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDHGLEAVEMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HG Leave event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_HG_EVT_LEAVE
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDHGLEAVEMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDHGCANCELMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HG Cancel return event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_HG_EVT_CANCEL
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDHGCANCELMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDHGSENDDATAMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HG Send Data event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_HG_SND_DATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uScreenId; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter pvFormat; /* OUT ptr */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter cFormat; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter pvData; /* OUT ptr */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter cbData; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDHGSENDDATAMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDHGSENDMOREDATAMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HG Send More Data event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_HG_SND_MORE_DATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter pvData; /* OUT ptr */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter cbData; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDHGSENDMOREDATAMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDHGSENDDIRMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HG Directory event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_HG_SND_DIR
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter pvName; /* OUT ptr */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter cbName; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter fMode; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDHGSENDDIRMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDHGSENDFILEMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HG File event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_HG_SND_FILE
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter pvName; /* OUT ptr */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter cbName; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter pvData; /* OUT ptr */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter cbData; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter fMode; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDHGSENDFILEMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDGHREQPENDINGMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * GH Request Pending event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_GH_REQ_PENDING
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uScreenId; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDGHREQPENDINGMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDGHDROPPEDMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * GH Dropped event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HOST_DND_GH_EVT_DROPPED
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter pvFormat; /* OUT ptr */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter cFormat; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uAction; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDGHDROPPEDMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync/*
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Guest events
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDNEXTMSGMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * The returned command the host wants to
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * run on the guest.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * GUEST_DND_GET_NEXT_HOST_MSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter msg; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /** Number of parameters the message needs. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter num_parms; /* OUT uint32_t */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync /** Whether or not to block (wait) for a
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync * new message to arrive. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter block; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDNEXTMSGMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDHGACKOPMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HG Acknowledge Operation event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * GUEST_DND_HG_ACK_OP
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uAction; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDHGACKOPMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDHGREQDATAMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * HG request for data event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * GUEST_DND_HG_REQ_DATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter pFormat; /* OUT ptr */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDHGREQDATAMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDGHACKPENDINGMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * GH Acknowledge Pending event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * GUEST_DND_GH_ACK_PENDING
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uDefAction; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uAllActions; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter pFormat; /* OUT ptr */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDGHACKPENDINGMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDGHSENDDATAMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * GH Send Data event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * GUEST_DND_GH_SND_DATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter pvData; /* OUT ptr */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync /** Total bytes to send. This can be more than
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync * the data block specified in pvData above, e.g.
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync * when sending over file objects afterwards. */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter cbTotalBytes; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDGHSENDDATAMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsynctypedef struct VBOXDNDGHSENDDIRMSG
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync{
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync VBoxGuestHGCMCallInfo hdr;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync /**
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync * GH Directory event.
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync *
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync * Used by:
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync * GUEST_DND_HG_SND_DIR
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter pvName; /* OUT ptr */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter cbName; /* OUT uint32_t */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter fMode; /* OUT uint32_t */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync} VBOXDNDGHSENDDIRMSG;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsynctypedef struct VBOXDNDGHSENDFILEMSG
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync{
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync VBoxGuestHGCMCallInfo hdr;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync /**
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync * GH File event.
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync *
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync * Used by:
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync * GUEST_DND_HG_SND_FILE
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter pvName; /* OUT ptr */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter cbName; /* OUT uint32_t */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter pvData; /* OUT ptr */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter cbData; /* OUT uint32_t */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync HGCMFunctionParameter fMode; /* OUT uint32_t */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync} VBOXDNDGHSENDFILEMSG;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDGHEVTERRORMSG
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBoxGuestHGCMCallInfo hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /**
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync * GH Error event.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync *
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync * Used by:
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsync * GUEST_DND_GH_EVT_ERROR
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync HGCMFunctionParameter uRC; /* OUT uint32_t */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDGHEVTERRORMSG;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#pragma pack()
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync/*
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync * Callback data magics.
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsyncenum
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync CB_MAGIC_DND_HG_ACK_OP = 0xe2100b93,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync CB_MAGIC_DND_HG_REQ_DATA = 0x5cb3faf9,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync CB_MAGIC_DND_HG_EVT_PROGRESS = 0x8c8a6956,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync CB_MAGIC_DND_GH_ACK_PENDING = 0xbe975a14,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync CB_MAGIC_DND_GH_SND_DATA = 0x4eb61bff,
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync CB_MAGIC_DND_GH_SND_DIR = 0x411ca754,
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync CB_MAGIC_DND_GH_SND_FILE = 0x65e35eaf,
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync CB_MAGIC_DND_GH_EVT_ERROR = 0x117a87c4
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync};
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDCBHEADERDATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /** Magic number to identify the structure. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync uint32_t u32Magic;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /** Context ID to identify callback data. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync uint32_t u32ContextID;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDCBHEADERDATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef VBOXDNDCBHEADERDATA *PVBOXDNDCBHEADERDATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDCBHGACKOPDATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /** Callback data header. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBOXDNDCBHEADERDATA hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync uint32_t uAction;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDCBHGACKOPDATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef VBOXDNDCBHGACKOPDATA *PVBOXDNDCBHGACKOPDATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDCBHGREQDATADATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /** Callback data header. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBOXDNDCBHEADERDATA hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync char *pszFormat;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDCBHGREQDATADATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef VBOXDNDCBHGREQDATADATA *PVBOXDNDCBHGREQDATADATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDCBHGEVTPROGRESSDATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /** Callback data header. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBOXDNDCBHEADERDATA hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync uint32_t uPercentage;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync uint32_t uState;
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync int rc;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDCBHGEVTPROGRESSDATA;
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsynctypedef VBOXDNDCBHGEVTPROGRESSDATA *PVBOXDNDCBHGEVTPROGRESSDATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDCBGHACKPENDINGDATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /** Callback data header. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBOXDNDCBHEADERDATA hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync uint32_t uDefAction;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync uint32_t uAllActions;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync char *pszFormat;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDCBGHACKPENDINGDATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef VBOXDNDCBGHACKPENDINGDATA *PVBOXDNDCBGHACKPENDINGDATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDCBSNDDATADATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /** Callback data header. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBOXDNDCBHEADERDATA hdr;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync void *pvData;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync uint32_t cbData;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync /** Total metadata size (in bytes). This is transmitted
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync * with every message because the size can change. */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync uint32_t cbTotalSize;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDCBSNDDATADATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef VBOXDNDCBSNDDATADATA *PVBOXDNDCBSNDDATADATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsynctypedef struct VBOXDNDCBSNDDIRDATA
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync{
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync /** Callback data header. */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync VBOXDNDCBHEADERDATA hdr;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync char *pszPath;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync uint32_t cbPath;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync uint32_t fMode;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync} VBOXDNDCBSNDDIRDATA;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsynctypedef VBOXDNDCBSNDDIRDATA *PVBOXDNDCBSNDDIRDATA;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsynctypedef struct VBOXDNDCBSNDFILEDATA
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync{
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync /** Callback data header. */
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync VBOXDNDCBHEADERDATA hdr;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync char *pszFilePath;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync uint32_t cbFilePath;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync uint32_t fMode;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync void *pvData;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync uint32_t cbData;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync} VBOXDNDCBSNDFILEDATA;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsynctypedef VBOXDNDCBSNDFILEDATA *PVBOXDNDCBSNDFILEDATA;
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef struct VBOXDNDCBEVTERRORDATA
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync{
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync /** Callback data header. */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync VBOXDNDCBHEADERDATA hdr;
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync int32_t rc;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} VBOXDNDCBEVTERRORDATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsynctypedef VBOXDNDCBEVTERRORDATA *PVBOXDNDCBEVTERRORDATA;
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync} /* namespace DragAndDropSvc */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync#endif /* !___VBox_HostService_DragAndDropSvc_h */
a1a825a2fcd6b32bd63d40a0705ef68fcbf1ed16vboxsync