dndmanager.h revision 2a171646d32f8a15e9820d6fb3bf3f9b9990ca3f
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * Drag and Drop manager.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * Copyright (C) 2011-2012 Oracle Corporation
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * available from http://www.virtualbox.org. This file is free software;
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * you can redistribute it and/or modify it under the terms of the GNU
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * General Public License (GPL) as published by the Free Software
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsynctypedef DECLCALLBACK(int) FNDNDPROGRESS(unsigned uPercentage, uint32_t uState, void *pvUser);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * DnD message class. This class forms the base of all other more specialized
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * message classes.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync virtual int currentMessageInfo(uint32_t *puMsg, uint32_t *pcParms)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync virtual int currentMessage(uint32_t uMsg, uint32_t cParms, VBOXHGCMSVCPARM paParms[])
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync int rc = m_pNextMsg->getData(uMsg, cParms, paParms);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync virtual bool isMessageWaiting() const { return m_pNextMsg != NULL; }
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * DnD message class for generic messages which didn't need any special
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * handling.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync DnDGenericMessage(uint32_t uMsg, uint32_t cParms, VBOXHGCMSVCPARM paParms[])
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync m_pNextMsg = new HGCM::Message(uMsg, cParms, paParms);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * DnD message class for informing the guest about a new drop data event.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync DnDHGSendDataMessage(uint32_t uMsg, uint32_t cParms, VBOXHGCMSVCPARM paParms[], PFNDNDPROGRESS pfnProgressCallback, void *pvProgressUser);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync int currentMessageInfo(uint32_t *puMsg, uint32_t *pcParms);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync int currentMessage(uint32_t uMsg, uint32_t cParms, VBOXHGCMSVCPARM paParms[]);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync bool isMessageWaiting() const { return m_pNextPathMsg; }
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync PathEntry(const RTCString &strHostPath, const RTCString &strGuestPath, uint32_t fMode, uint64_t cbSize)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync bool hasFileUrls(const char *pcszFormat, size_t cbMax) const;
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync int buildFileTree(const char *pcszPath, size_t cbBaseLen);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync static DECLCALLBACK(int) progressCallback(size_t cbDone, void *pvUser);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync /* Progress stuff */
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * DnD message class for informing the guest to cancel any currently and
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * pending activities.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync m_pNextMsg = new HGCM::Message(DragAndDropSvc::HOST_DND_HG_EVT_CANCEL, 0, 0);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * DnD manager. Manage creation and queuing of messages for the various DnD
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync * messages types.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync DnDManager(PFNDNDPROGRESS pfnProgressCallback, void *pvProgressUser)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync int addMessage(uint32_t uMsg, uint32_t cParms, VBOXHGCMSVCPARM paParms[]);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync int nextMessageInfo(uint32_t *puMsg, uint32_t *pcParms);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync int nextMessage(uint32_t uMsg, uint32_t cParms, VBOXHGCMSVCPARM paParms[]);
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync bool hasActiveOperation() const { return m_fOpInProcess; }
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync /* Progress stuff */
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync#endif /* ___VBox_HostService_DnD_dndmanager_h */