vrdpapi.h revision e0ee84af189f897c63ed3a20a469cc73ab3444cd
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * VBox Remote Desktop Protocol:
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Public APIs.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Copyright (C) 2006-2007 innotek GmbH
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * available from http://www.virtualbox.org. This file is free software;
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * you can redistribute it and/or modify it under the terms of the GNU
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * General Public License as published by the Free Software Foundation,
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * distribution. VirtualBox OSE is distributed in the hope that it will
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * be useful, but WITHOUT ANY WARRANTY of any kind.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#endif /* VRDP_NO_COM */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync# error "There are no VRDP APIs available in Ring-0 Host Context!"
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync# error "There are no VRDP APIs available Guest Context!"
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** @defgroup grp_vrdp VRDP
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * VirtualBox Remote Desktop Protocol (VRDP) interface that lets to use
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * the VRDP server.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Default port that VRDP binds to. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/* Forward declaration of the VRDP server instance handle. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#endif /* __cplusplus */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/* New, callback based VRDP server interface declarations. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#endif /* IN_VRDP */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** The color mouse pointer information. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync /* The mask and the bitmap follow. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Audio format information packed in a 32 bit value. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Constructs 32 bit value for given frequency, number of channel and bits per sample. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define VRDP_AUDIO_FMT_MAKE(freq, c, bps, s) ((((s) & 0x1) << 28) + (((bps) & 0xFF) << 20) + (((c) & 0xF) << 16) + ((freq) & 0xFFFF))
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Decode frequency. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define VRDP_AUDIO_FMT_SAMPLE_FREQ(a) ((a) & 0xFFFF)
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Decode number of channels. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define VRDP_AUDIO_FMT_CHANNELS(a) (((a) >> 16) & 0xF)
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Decode number signess. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define VRDP_AUDIO_FMT_SIGNED(a) (((a) >> 28) & 0x1)
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Decode number of bits per sample. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define VRDP_AUDIO_FMT_BITS_PER_SAMPLE(a) (((a) >> 20) & 0xFF)
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Decode number of bytes per sample. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#define VRDP_AUDIO_FMT_BYTES_PER_SAMPLE(a) ((VRDP_AUDIO_FMT_BITS_PER_SAMPLE(a) + 7) / 8)
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Remote USB protocol.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/* The version of Remote USB Protocol. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** USB backend operations. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** USB service operations. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** An operation completion status is a byte. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** USB device identifier is an 32 bit value. */
typedef struct _VRDPUSBPKTHDR
typedef struct _VRDPUSBREQRETHDR
typedef struct _VRDP_USB_REQ_OPEN_PARM
typedef struct _VRDP_USB_REQ_OPEN_RET
typedef struct _VRDP_USB_REQ_CLOSE_PARM
typedef struct _VRDP_USB_REQ_RESET_PARM
typedef struct _VRDP_USB_REQ_RESET_RET
typedef struct _VRDP_USB_REQ_SET_CONFIG_PARM
typedef struct _VRDP_USB_REQ_SET_CONFIG_RET
typedef struct _VRDP_USB_REQ_CLAIM_INTERFACE_PARM
typedef struct _VRDP_USB_REQ_CLAIM_INTERFACE_RET
typedef struct _VRDP_USB_REQ_RELEASE_INTERFACE_PARM
typedef struct _VRDP_USB_REQ_RELEASE_INTERFACE_RET
typedef struct _VRDP_USB_REQ_INTERFACE_SETTING_PARM
typedef struct _VRDP_USB_REQ_INTERFACE_SETTING_RET
#define VRDP_USB_TRANSFER_TYPE_CTRL (0)
#define VRDP_USB_DIRECTION_SETUP (0)
typedef struct _VRDP_USB_REQ_QUEUE_URB_PARM
uint32_t handle; /* Distinguishes that particular URB. Later used in CancelURB and returned by ReapURB */
typedef struct _VRDP_USB_REQ_REAP_URB_PARM
#define VRDP_USB_XFER_OK (0)
typedef struct _VRDPUSBREQREAPURBBODY
typedef struct _VRDP_USB_REQ_REAP_URB_RET
typedef struct _VRDP_USB_REQ_CLEAR_HALTED_EP_PARM
typedef struct _VRDP_USB_REQ_CLEAR_HALTED_EP_RET
typedef struct _VRDP_USB_REQ_CANCEL_URB_PARM
typedef struct _VRDP_USB_REQ_DEVICE_LIST_PARM
typedef struct _VRDPUSBDEVICEDESC
typedef struct _VRDP_USB_REQ_DEVICE_LIST_RET
typedef struct _VRDPUSBREQNEGOTIATEPARM
typedef struct _VRDPUSBREQNEGOTIATERET
#pragma pack()
#define VRDP_CLIPBOARD_FUNCTION_FORMAT_ANNOUNCE (0)
#define VRDP_QI_ACTIVE (0)
typedef struct _VRDPINTERFACEHDR
typedef struct _VRDPENTRYPOINTS_1
bool fEnable));
bool fReconnect));
* @param pvUpdate Pointer to VBoxGuest.h::VRDPORDERHDR structure with extra data.
unsigned uScreenId,
void *pvUpdate,
const void *pvSamples,
void *pvParm,
void *pvData,
void *pvBuffer,
typedef struct _VRDPFRAMEBUFFERINFO
int xOrigin;
int yOrigin;
unsigned cWidth;
unsigned cHeight;
unsigned cBitsPerPixel;
unsigned cbLine;
#define VRDP_INPUT_SCANCODE 0
typedef struct _VRDPINPUTSCANCODE
unsigned uScancode;
typedef struct _VRDPINPUTPOINT
unsigned uButtons;
typedef struct _VRDPINPUTSYNCH
unsigned uLockStatus;
#pragma pack()
typedef struct _VRDPCALLBACKS_1
void *pvBuffer,
const char *pszUser,
const char *pszPassword,
const char *pszDomain));
void **ppvIntercept));
* @param ppvIntercept The value returned by VRDPCallbackIntercept for the VRDP_CLIENT_INTERCEPT_USB.
void *pvIntercept,
const void *pvRet,
* @param ppvIntercept The value returned by VRDPCallbackIntercept for the VRDP_CLIENT_INTERCEPT_CLIPBOARD.
void *pvIntercept,
const void *pvData,
unsigned uScreenId,
unsigned uScreenId));
unsigned uScreenId));
int type,
const void *pvInput,
unsigned cbInput));
unsigned cWidth,
unsigned cHeight,
unsigned cBitsPerPixel,
unsigned uScreenId));
void *pvCallback,
void *pvCallback,
VRDPR3DECL(int) VRDPStartServer (IConsole *pconsole, IVRDPServer *pvrdpserver, HVRDPSERVER *phserver);
VRDPR3DECL(void) VRDPSendUpdateBitmap (HVRDPSERVER hserver, unsigned uScreenId, unsigned x, unsigned y, unsigned w, unsigned h);
* @param pvUpdate The update information. Actually pointer to VBoxGuest.h::VBVACMDHDR structure with extra data.
VRDPR3DECL(void) VRDPSendUpdate (HVRDPSERVER hserver, unsigned uScreenId, void *pvUpdate, uint32_t cbUpdate);
typedef struct _VRDPCOLORPOINTER
#define VRDP_AUDIO_FMT_MAKE(freq, c, bps, s) ((((s) & 0x1) << 28) + (((bps) & 0xFF) << 20) + (((c) & 0xF) << 16) + ((freq) & 0xFFFF))
VRDPR3DECL(void) VRDPSendAudioSamples (HVRDPSERVER hserver, void *pvSamples, uint32_t cSamples, VRDPAUDIOFORMAT format);
#define VRDP_USB_REQ_OPEN (0)
typedef struct _VRDPUSBPKTHDR
typedef struct _VRDPUSBREQRETHDR
typedef struct _VRDP_USB_REQ_OPEN_PARM
typedef struct _VRDP_USB_REQ_OPEN_RET
typedef struct _VRDP_USB_REQ_CLOSE_PARM
typedef struct _VRDP_USB_REQ_RESET_PARM
typedef struct _VRDP_USB_REQ_RESET_RET
typedef struct _VRDP_USB_REQ_SET_CONFIG_PARM
typedef struct _VRDP_USB_REQ_SET_CONFIG_RET
typedef struct _VRDP_USB_REQ_CLAIM_INTERFACE_PARM
typedef struct _VRDP_USB_REQ_CLAIM_INTERFACE_RET
typedef struct _VRDP_USB_REQ_RELEASE_INTERFACE_PARM
typedef struct _VRDP_USB_REQ_RELEASE_INTERFACE_RET
typedef struct _VRDP_USB_REQ_INTERFACE_SETTING_PARM
typedef struct _VRDP_USB_REQ_INTERFACE_SETTING_RET
#define VRDP_USB_TRANSFER_TYPE_CTRL (0)
#define VRDP_USB_DIRECTION_SETUP (0)
typedef struct _VRDP_USB_REQ_QUEUE_URB_PARM
uint32_t handle; /* Distinguishes that particular URB. Later used in CancelURB and returned by ReapURB */
typedef struct _VRDP_USB_REQ_REAP_URB_PARM
#define VRDP_USB_XFER_OK (0)
typedef struct _VRDPUSBREQREAPURBBODY
typedef struct _VRDP_USB_REQ_REAP_URB_RET
typedef struct _VRDP_USB_REQ_CLEAR_HALTED_EP_PARM
typedef struct _VRDP_USB_REQ_CLEAR_HALTED_EP_RET
typedef struct _VRDP_USB_REQ_CANCEL_URB_PARM
typedef struct _VRDP_USB_REQ_DEVICE_LIST_PARM
typedef struct _VRDPUSBDEVICEDESC
typedef struct _VRDP_USB_REQ_DEVICE_LIST_RET
typedef struct _VRDPUSBREQNEGOTIATEPARM
typedef struct _VRDPUSBREQNEGOTIATERET
#pragma pack()
#define VRDP_CLIPBOARD_FUNCTION_FORMAT_ANNOUNCE (0)
void *pvData,
void *pvParm,
const void *pvRet,
const void *pvData,
typedef struct _VRDPSERVERCALLBACK
const char *pszUser,
const char *pszPassword,
const char *pszDomain));
void **ppv));
void **ppv));
VRDPR3DECL(void) VRDPSetCallback (HVRDPSERVER hserver, VRDPSERVERCALLBACK *pCallback, void *pvUser);
#define VRDP_QI_ACTIVE (0)
VRDPR3DECL(void) VRDPQueryInfo (HVRDPSERVER hserver, uint32_t index, void *pvBuffer, uint32_t cbBuffer, uint32_t *pcbOut);