1 | /** @file
|
---|
2 | * Definition of GuestDnD
|
---|
3 | */
|
---|
4 |
|
---|
5 | /*
|
---|
6 | * Copyright (C) 2011-2012 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 |
|
---|
17 | #ifndef ____H_GUESTDND
|
---|
18 | #define ____H_GUESTDND
|
---|
19 |
|
---|
20 | /* Forward declaration of the d-pointer. */
|
---|
21 | struct GuestDnDPrivate;
|
---|
22 |
|
---|
23 | class GuestDnD
|
---|
24 | {
|
---|
25 | public:
|
---|
26 | GuestDnD(const ComObjPtr<Guest>& pGuest);
|
---|
27 | ~GuestDnD();
|
---|
28 |
|
---|
29 | /* Host -> Guest */
|
---|
30 | HRESULT dragHGEnter(ULONG uScreenId, ULONG uX, ULONG uY, DragAndDropAction_T defaultAction, ComSafeArrayIn(DragAndDropAction_T, allowedActions), ComSafeArrayIn(IN_BSTR, formats), DragAndDropAction_T *pResultAction);
|
---|
31 | HRESULT dragHGMove(ULONG uScreenId, ULONG uX, ULONG uY, DragAndDropAction_T defaultAction, ComSafeArrayIn(DragAndDropAction_T, allowedActions), ComSafeArrayIn(IN_BSTR, formats), DragAndDropAction_T *pResultAction);
|
---|
32 | HRESULT dragHGLeave(ULONG uScreenId);
|
---|
33 | HRESULT dragHGDrop(ULONG uScreenId, ULONG uX, ULONG uY, DragAndDropAction_T defaultAction, ComSafeArrayIn(DragAndDropAction_T, allowedActions), ComSafeArrayIn(IN_BSTR, formats), BSTR *pstrFormat, DragAndDropAction_T *pResultAction);
|
---|
34 | HRESULT dragHGPutData(ULONG uScreenId, IN_BSTR wstrFormat, ComSafeArrayIn(BYTE, data), IProgress **ppProgress);
|
---|
35 |
|
---|
36 | /* Guest -> Host */
|
---|
37 | HRESULT dragGHPending(ULONG uScreenId, ComSafeArrayOut(BSTR, formats), ComSafeArrayOut(DragAndDropAction_T, allowedActions), DragAndDropAction_T *pDefaultAction);
|
---|
38 | HRESULT dragGHDropped(IN_BSTR bstrFormat, DragAndDropAction_T action, IProgress **ppProgress);
|
---|
39 | HRESULT dragGHGetData(ComSafeArrayOut(BYTE, data));
|
---|
40 |
|
---|
41 | /* Guest response */
|
---|
42 | static DECLCALLBACK(int) notifyGuestDragAndDropEvent(void *pvExtension, uint32_t u32Function, void *pvParms, uint32_t cbParms);
|
---|
43 |
|
---|
44 | private:
|
---|
45 |
|
---|
46 | /* d-pointer */
|
---|
47 | GuestDnDPrivate *d_ptr;
|
---|
48 |
|
---|
49 | friend struct GuestDnDPrivate;
|
---|
50 | };
|
---|
51 |
|
---|
52 | #endif /* ____H_GUESTDND */
|
---|
53 |
|
---|