ConsoleVRDPServer.h revision cec4ff91f12d3094799d4cab7ef6cc39e47054fb
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync * VBox Console VRDE Server Helper class and implementation of IVRDEServerInfo
c58f1213e628a545081c70e26c6b67a841cff880vboxsync * Copyright (C) 2006-2010 Oracle Corporation
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync * available from http://www.virtualbox.org. This file is free software;
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync * you can redistribute it and/or modify it under the terms of the GNU
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync * General Public License (GPL) as published by the Free Software
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync// ConsoleVRDPServer
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync///////////////////////////////////////////////////////////////////////////////
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync/* Member of Console. Helper class for VRDP server management. Not a COM class. */
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync void NotifyAbsoluteMouse (bool fGuestWantsAbsolute)
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync void NotifyKeyboardLedsChange (BOOL fNumLock, BOOL fCapsLock, BOOL fScrollLock)
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync /* Might need to resync in case the guest itself changed the LED status. */
58f4b0cd54cbc01ccebf4b111db06e2e959180cavboxsync if (m_InputSynch.fClientCapsLock != fGuestCapsLock)
void EnableConnections (void);
int MousePointer(BOOL alpha, ULONG xHot, ULONG yHot, ULONG width, ULONG height, const uint8_t *pu8Shape);
void MousePointerHide (void);
void Stop (void);
bool isRemoteUSBThreadRunning (void);
void SendResize (void) const;
void *pvContext,
#ifdef VBOX_WITH_USB_VIDEO
static DECLCALLBACK(int) VRDPCallbackQueryProperty (void *pvCallback, uint32_t index, void *pvBuffer, uint32_t cbBuffer, uint32_t *pcbOut);
static DECLCALLBACK(int) VRDPCallbackClientLogon (void *pvCallback, uint32_t u32ClientId, const char *pszUser, const char *pszPassword, const char *pszDomain);
static DECLCALLBACK(void) VRDPCallbackClientDisconnect (void *pvCallback, uint32_t u32ClientId, uint32_t fu32Intercepted);
static DECLCALLBACK(int) VRDPCallbackIntercept (void *pvCallback, uint32_t u32ClientId, uint32_t fu32Intercept, void **ppvIntercept);
static DECLCALLBACK(int) VRDPCallbackUSB (void *pvCallback, void *pvIntercept, uint32_t u32ClientId, uint8_t u8Code, const void *pvRet, uint32_t cbRet);
static DECLCALLBACK(int) VRDPCallbackClipboard (void *pvCallback, void *pvIntercept, uint32_t u32ClientId, uint32_t u32Function, uint32_t u32Format, const void *pvData, uint32_t cbData);
static DECLCALLBACK(bool) VRDPCallbackFramebufferQuery (void *pvCallback, unsigned uScreenId, VRDEFRAMEBUFFERINFO *pInfo);
static DECLCALLBACK(void) VRDPCallbackInput (void *pvCallback, int type, const void *pvInput, unsigned cbInput);
static DECLCALLBACK(void) VRDPCallbackVideoModeHint (void *pvCallback, unsigned cWidth, unsigned cHeight, unsigned cBitsPerPixel, unsigned uScreenId);
static DECLCALLBACK(void) VRDECallbackAudioIn (void *pvCallback, void *pvCtx, uint32_t u32ClientId, uint32_t u32Event, const void *pvData, uint32_t cbData);
bool m_fGuestWantsAbsolute;
int m_mousex;
int m_mousey;
int lockConsoleVRDPServer (void);
void unlockConsoleVRDPServer (void);
int mcClipboardRefs;
static DECLCALLBACK(int) ClipboardCallback (void *pvCallback, uint32_t u32ClientId, uint32_t u32Function, uint32_t u32Format, const void *pvData, uint32_t cbData);
static DECLCALLBACK(int) ClipboardServiceExtension (void *pvExtension, uint32_t u32Function, void *pvParm, uint32_t cbParms);
#ifdef VBOX_WITH_USB
typedef struct _USBBackends
bool fThreadRunning;
} USBBackends;
void remoteUSBThreadStart (void);
void remoteUSBThreadStop (void);
const char *pszFormat);
void remote3DRedirect(void);
bool m_fInterfaceImage;
void *pvUser,
void *pvData,
void *pvData,
int rcRequest,
void *pvUser,
void *pvData,
void *pvChannel,
const void *pvParm,
void setupTSMF(void);
static DECLCALLBACK(int) tsmfHostChannelAttach(void *pvProvider, void **ppvInstance, uint32_t u32Flags,
static DECLCALLBACK(int) tsmfHostChannelSend(void *pvInstance, const void *pvData, uint32_t cbData);
void FinalRelease();
/* Public initializer/uninitializer for internal purposes only. */
void uninit();