TeamTalk 4 .NET DLL
Version 4.6B
|
This section explains how to use the desktop sharing feature where users can share their desktop applications. More...
Classes | |
struct | BearWare.DesktopWindow |
A struct containing the properties of a shared desktop window. More... | |
struct | BearWare.DesktopInput |
A struct containing a mouse or keyboard event. More... | |
Enumerations | |
enum | BearWare.BitmapFormat : uint { BearWare.BMP_NONE = 0, BearWare.BMP_RGB8_PALETTE = 1, BearWare.BMP_RGB16_555 = 2, BearWare.BMP_RGB24 = 3, BearWare.BMP_RGB32 = 4 } |
The bitmap format used for a BearWare.DesktopWindow. More... | |
enum | BearWare.DesktopProtocol : uint { BearWare.DESKTOPPROTOCOL_ZLIB_1 = 1 } |
The protocols supported for transferring a BearWare.DesktopWindow. More... | |
enum | BearWare.DesktopKeyState : uint { BearWare.DESKTOPKEYSTATE_NONE = 0x00000000, BearWare.DESKTOPKEYSTATE_DOWN = 0x00000001, BearWare.DESKTOPKEYSTATE_UP = 0x00000002 } |
The state of a key (or mouse button), i.e. if it's pressed or released. More... | |
enum | BearWare.TTKeyTranslate : uint { BearWare.TTKEY_NO_TRANSLATE = 0, BearWare.TTKEY_WINKEYCODE_TO_TTKEYCODE = 1, BearWare.TTKEY_TTKEYCODE_TO_WINKEYCODE = 2, BearWare.TTKEY_MACKEYCODE_TO_TTKEYCODE = 3, BearWare.TTKEY_TTKEYCODE_TO_MACKEYCODE = 4 } |
Translate to and from TeamTalk's intermediate key-codes (TTKEYCODE). More... | |
Functions | |
int | BearWare.TeamTalk4.SendDesktopWindow (System.IntPtr lpBitmap, int nBitmapSize, DesktopWindow lpDesktopWindow, BitmapFormat nConvertBmpFormat) |
Transmit a desktop window (bitmap) to users in the same channel. More... | |
bool | BearWare.TeamTalk4.CloseDesktopWindow () |
Close the current desktop session. More... | |
static System.Drawing.Color | BearWare.TeamTalk4.Palette_GetColorTable (BitmapFormat nBmpPalette, int nIndex) |
Get RGB values of the palette for the bitmap format. More... | |
int | BearWare.TeamTalk4.SendDesktopWindowFromHWND (System.IntPtr hWnd, BitmapFormat nBitmapFormat, DesktopProtocol nDesktopProtocol) |
Transmit the specified window in a desktop session. More... | |
bool | BearWare.TeamTalk4.PaintDesktopWindow (int nUserID, System.IntPtr hDC, int XDest, int YDest, int nDestWidth, int nDestHeight) |
Paint user's desktop window using a Windows' DC (device context). More... | |
bool | BearWare.TeamTalk4.PaintDesktopWindowEx (int nUserID, System.IntPtr hDC, int XDest, int YDest, int nDestWidth, int nDestHeight, int XSrc, int YSrc, int nSrcWidth, int nSrcHeight) |
Paint user's desktop window using a Windows' DC (device context). More... | |
bool | BearWare.TeamTalk4.SendDesktopCursorPosition (int nUserID, int nPosX, int nPosY) |
Send the position of mouse cursor to users in the same channel. More... | |
bool | BearWare.TeamTalk4.SendDesktopInput (int nUserID, DesktopInput[] lpDesktopInputs) |
Send a mouse or keyboard event to a shared desktop window. More... | |
bool | BearWare.TeamTalk4.GetUserDesktopWindow (int nUserID, System.IntPtr lpBitmap, ref int lpnBitmapSize, ref DesktopWindow lpDesktopWindow) |
Get a user's desktop window (bitmap image). More... | |
bool | BearWare.TeamTalk4.GetUserDesktopCursor (int nSrcUserID, int nDestUserID, ref int lpnPosX, ref int lpnPosY) |
Get the mouse cursor position of a user. More... | |
bool | BearWare.TeamTalk4.GetUserDesktopInput (int nSrcUserID, out DesktopInput[] lpDesktopInputs) |
Get desktop (mouse or keyboard) input received from a user. More... | |
Variables | |
const int | BearWare.TeamTalk4.TT_DESKTOPINPUT_MAX = 16 |
const uint | BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_IGNORE = 0xFFFFFFFF |
const ushort | BearWare.TeamTalk4.TT_DESKTOPINPUT_MOUSEPOS_IGNORE = 0xFFFF |
const uint | BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_LMOUSEBTN = 0x1000 |
const uint | BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_RMOUSEBTN = 0x1001 |
const uint | BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_MMOUSEBTN = 0x1002 |
This section explains how to use the desktop sharing feature where users can share their desktop applications.
A user can transmit a desktop window to other users in a channel by passing the handle of a window to the TeamTalk client instance. The TeamTalk client then converts the window to a bitmap image which is transmitted to the server. The server then forwards the bitmap image to all other users in the channel.
Before sending a desktop window to a channel the handle (identifier) of the window to share must first be found. It is, however, possible to simply send a raw bitmap by calling TeamTalk4.SendDesktopWindow().
TeamTalk for Windows provides the following functions for obtaining different HWNDs:
HWND
of the window which has focus.HWND
of the Windows desktop.Once the HWND
of the window to share has been found use the following function for sending the window to the channel:
When a shared desktop window is received the event TeamTalk4.OnUserDesktopWindow() is posted to the local client instance. TeamTalk4.GetUserDesktopWindow() can then be called to obtain a bitmap image of the shared window.
It is also possible to share the position of the mouse cursor when sharing a desktop window. Use TeamTalk4.SendDesktopCursorPosition() to transmit the position of the mouse cursor. When the position is received the event BearWare.TeamTalk4.OnUserDesktopCursorPosition is posted to the local client instance. TeamTalk4.GetUserDesktopCursor() can then be used to obtain the cursor position.
If a user has shared a desktop window it's possible for other users in the same channel to take over control of mouse and keyboard on the computer sharing the desktop window.
In order for a client instance to allow remote desktop access it is required to first subscribe to desktop input from the user who wants access to the shared desktop window. This is done by calling TeamTalk4.DoSubscribe() along with the user-id and subscription SUBSCRIBE_DESKTOPINPUT. Once desktop input (mouse or keyboard input) is received from a remote user the TeamTalk4.OnUserDesktopInput() event will be posted to the client instance. The actual mouse or keyboard input can then be obtained by the client instance using TeamTalk4.GetUserDesktopInput() which returns a struct of type BearWare.DesktopInput. Afterwards WindowsHelper.Execute() can be used to execute the mouse or keyboard input.
The remote user who wants to transmit mouse or keyboard input to the user sharing a desktop window can use TeamTalk4.SendDesktopInput(). Remember that the user sharing the desktop window must have enabled the subscription SUBSCRIBE_DESKTOPINPUT.
It can be quite troublesome to handle keyboard input since each key-code depends on the OS and the regional settings on the OS. E.g. on a German keyboard the Z key is located where the Y key is on a US keyboard. The German keyboard also has letters which don't even appear on a US keyboard.
Because of the issues with keyboard layouts and regional settings the TeamTalk API provides BearWare.WindowsHelper.KeyTranslate which can be used to translate a keyboard's scan-code to an intermediate format. If e.g. a client instance is running Windows then BearWare.WindowsHelper.KeyTranslate can be called with TTKEY_WINKEYCODE_TO_TTKEYCODE which converts the scan-code on a Windows keyboard to TeamTalk's intermediate format (TTKEYCODE). To be able to execute the key-code once it's received it must be converted back again from TeamTalk's intermediate format to the platform where the application is running. I.e. if the TTKEYCODE is received on a Mac then BearWare.WindowsHelper.KeyTranslate must be called with TTKEY_TTKEYCODE_TO_MACKEYCODE.
When a key is pressed the OS generates a scan-code which denotes the location of the key on the keyboard. In order to generate the same key-press on a remote computer this scan-code must be converted to an intermediate format. The reason the scan-code cannot be sent directly is that the remote computer might use a different keyboard layout or run an operating system which has other values for the scan-codes.
The intermediate format for storing key-codes in TeamTalk is TTKEYCODE. Here's a table which shows how the keys on a US 104-keys keyboard are translated to TTKEYCODE.
Symbol | Shifted Symbol | Location | TTKEYCODE -------------------------------------------------- Esc | | | 0x0001 1 | ! | | 0x0002 2 | @ | | 0x0003 3 | # | | 0x0004 4 | $ | | 0x0005 5 | % | | 0x0006 6 | ^ | | 0x0007 7 | & | | 0x0008 8 | | | 0x0009 9 | ( | | 0x000a 0 | ) | | 0x000b - | _ | | 0x000c = | + | | 0x000d Backspace | | | 0x000e Tab | | | 0x000f Q | | | 0x0010 W | | | 0x0011 E | | | 0x0012 R | | | 0x0013 T | | | 0x0014 Y | | | 0x0015 U | | | 0x0016 I | | | 0x0017 O | | | 0x0018 P | | | 0x0019 [ | { | | 0x001a ] | } | | 0x001b Enter | | | 0x001c Ctrl | | Left | 0x001d A | | | 0x001e S | | | 0x001f D | | | 0x0020 F | | | 0x0021 G | | | 0x0022 H | | | 0x0023 J | | | 0x0024 K | | | 0x0025 L | | | 0x0026 ; | | | 0x0027 ' | | | 0x0028 ` | | | 0x0029 Shift | | Left | 0x002a \\ | | | | 0x002b Z | | | 0x002c X | | | 0x002d C | | | 0x002e V | | | 0x002f B | | | 0x0030 N | | | 0x0031 M | | | 0x0032 , | < | | 0x0033 . | > | | 0x0034 / | ? | | 0x0035 Shift | | Right | 0x0036 \* | | | 0x0037 Alt | | | 0x0038 Space bar | | | 0x0039 Caps Lock | | | 0x003a F1 | | | 0x003b F2 | | | 0x003c F3 | | | 0x003d F4 | | | 0x003e F5 | | | 0x003f F6 | | | 0x0040 F7 | | | 0x0041 F8 | | | 0x0042 F9 | | | 0x0043 Num Lock | | Numpad | 0x0044 Scroll Lock | | | 0x0046 Home | 7 | Numpad | 0x0047 Up arrow | 8 | Numpad | 0x0048 PgUp | 9 | Numpad | 0x0049 - | | Numpad | 0x004a Left arrow | 4 | Numpad | 0x004b 5 | | Numpad | 0x004c Right arrow | 6 | Numpad | 0x004d + | | Numpad | 0x004e End | 1 | Numpad | 0x004f Down arrow | 2 | Numpad | 0x0050 PgDn | 3 | Numpad | 0x0051 Insert | 0 | Numpad | 0x0052 Delete | | Numpad | 0x0053 F11 | | | 0x0057 F12 | | | 0x0058 Break | Pause | | 0x0100 Enter | | Numpad | 0x011c Ctrl | | Right | 0x011d / | | Numpad | 0x0135 SysRq | Print Scrn | | 0x0137 Alt | | Right | 0x0138 Home | | Funcpad | 0x0147 Up arrow | | Funcpad | 0x0148 Page Up | | Funcpad | 0x0149 Left arrow | | Funcpad | 0x014b Right arrow | | Funcpad | 0x014d End | | Funcpad | 0x014f Down arrow | | Funcpad | 0x0150 Page Down | | Funcpad | 0x0151 Insert | | Funcpad | 0x0152 Delete | | Funcpad | 0x0153 Windows | | Left | 0x015b Windows | | Right | 0x015c Menu | | | 0x015d | | | < | | Non-US | 0x0056 | | | Mouse btn | | Left | 0x1000 Mouse btn | | Right | 0x1001 Mouse btn | | Middle | 0x1002
enum BearWare.BitmapFormat : uint |
The bitmap format used for a BearWare.DesktopWindow.
Enumerator | |
---|---|
BMP_NONE |
Used to denote nothing selected. |
BMP_RGB8_PALETTE |
The bitmap is a 256-colored bitmap requiring a palette. The default 256 colored palette is the Netscape browser-safe palette. Use TeamTalk4.Palette_GetColorTable() to access or change the palette. The maximum size of a 8-bit bitmap is 4095 blocks of 120 by 34 pixels. |
BMP_RGB16_555 |
The bitmap is a 16-bit colored bitmap. The maximum pixels. |
BMP_RGB24 |
The bitmap is a 24-bit colored bitmap. The maximum size of a 24-bit bitmap is 4095 blocks of 85 by 16 pixels. |
BMP_RGB32 |
The bitmap is a 32-bit colored bitmap. The maximum size of a 32-bit bitmap is 4095 blocks of 51 by 20 pixels. |
enum BearWare.DesktopProtocol : uint |
The protocols supported for transferring a BearWare.DesktopWindow.
So far only one, UDP-based, protocol is supported.
Enumerator | |
---|---|
DESKTOPPROTOCOL_ZLIB_1 |
Desktop protocol based on ZLIB for image compression and UDP for data transmission. |
enum BearWare.DesktopKeyState : uint |
The state of a key (or mouse button), i.e. if it's pressed or released.
Enumerator | |
---|---|
DESKTOPKEYSTATE_NONE |
The key is ignored. |
DESKTOPKEYSTATE_DOWN |
The key is pressed. |
DESKTOPKEYSTATE_UP |
The key is released. |
enum BearWare.TTKeyTranslate : uint |
Translate to and from TeamTalk's intermediate key-codes (TTKEYCODE).
int BearWare.TeamTalk4.SendDesktopWindow | ( | System.IntPtr | lpBitmap, |
int | nBitmapSize, | ||
DesktopWindow | lpDesktopWindow, | ||
BitmapFormat | nConvertBmpFormat | ||
) |
Transmit a desktop window (bitmap) to users in the same channel.
When TeamTalk4.SendDesktopWindow() is called the first time a new desktop session will be started. To update the current desktop session call TeamTalk4.SendDesktopWindow() again once the previous desktop transmission has finished. Tracking progress of the current desktop transmission is done by checking for the TeamTalk4.OnDesktopTransferUpdate() event. While the desktop transmission is active the flag ClientFlag CLIENT_TX_DESKTOP will be set on the local client instance.
If the desktop window (bitmap) changes size (width/height) or format a new desktop session will be started. Also if the user changes channel a new desktop session will be started. Check nSessionID
of BearWare.DesktopWindow to see if a new desktop session is started or the TeamTalk4.OnUserDesktopWindow() event.
Remote users will get the TeamTalk4.OnUserDesktopWindow() event and can call TeamTalk4.GetUserDesktopWindow() to retrieve the desktop window.
lpBitmap | Pointer to bitmap buffer. |
nBitmapSize | Size of bitmap buffer lpBitmap in bytes. The size of the bitmap can be calculated using the BearWare.DesktopWindow-struct's nBytesPerLine multiplied by the nHeight . |
lpDesktopWindow | Properties of the bitmap. Set the nSessionID property to 0. |
nConvertBmpFormat | Before transmission convert the bitmap to this format. |
nBitmapSize
is invalid or if a desktop transmission is already active. bool BearWare.TeamTalk4.CloseDesktopWindow | ( | ) |
Close the current desktop session.
Closing the desktop session will cause the users receiving the current desktop session to see the desktop session ID change to 0 in the TeamTalk4.OnUserDesktopWindow() event.
|
static |
Get RGB values of the palette for the bitmap format.
This currently only applies to bitmaps of format BitmapFormat BMP_RGB8_PALETTE.
Note that the pointer returned is non-const which means the palette can be overwritten with a custom palette. The custom palette will then be used internally during bitmap conversion.
nBmpPalette | The bitmap format. Currently only BitmapFormat BMP_RGB8_PALETTE is supported. |
nIndex | The index in the color table of the RGB values to extract. |
int BearWare.TeamTalk4.SendDesktopWindowFromHWND | ( | System.IntPtr | hWnd, |
BitmapFormat | nBitmapFormat, | ||
DesktopProtocol | nDesktopProtocol | ||
) |
Transmit the specified window in a desktop session.
Same as TeamTalk4.SendDesktopWindow() except the properties for the BearWare.DesktopWindow are extracted automatically.
hWnd | Windows handle for the window to transmit. |
nBitmapFormat | Bitmap format to use for the transmitted image. |
nDesktopProtocol | The protocol to use for transmitting the image. |
bool BearWare.TeamTalk4.PaintDesktopWindow | ( | int | nUserID, |
System.IntPtr | hDC, | ||
int | XDest, | ||
int | YDest, | ||
int | nDestWidth, | ||
int | nDestHeight | ||
) |
Paint user's desktop window using a Windows' DC (device context).
Same as calling TT_PaintDesktopWindowEx() like this:
TT_PaintDesktopWindowEx(nUserID, hDC, XDest, YDest, nDestWidth, nDestHeight, 0, 0, 'src_bmp_width', 'src_bmp_height');
src_bmp_width
and src_bmp_height
are extracted internally from the source image.
bool BearWare.TeamTalk4.PaintDesktopWindowEx | ( | int | nUserID, |
System.IntPtr | hDC, | ||
int | XDest, | ||
int | YDest, | ||
int | nDestWidth, | ||
int | nDestHeight, | ||
int | XSrc, | ||
int | YSrc, | ||
int | nSrcWidth, | ||
int | nSrcHeight | ||
) |
Paint user's desktop window using a Windows' DC (device context).
An application can either paint a bitmap by using TeamTalk4.GetUserDesktopWindow() which provides a pointer to a bitmap or the application can ask the client instance to paint the image using this function.
Typically this paint operation will be called in the WM_PAINT message. Here is how the client instance paints internally:
StretchDIBits(hDC, nPosX, nPosY, nWidth, nHeight, XSrc, YSrc, nSrcWidth, nSrcHeight, frame_buf, &bmi, DIB_RGB_COLORS, SRCCOPY);
nUserID | The user's ID. |
hDC | The handle to the Windows device context. |
XDest | Coordinate of left corner where to start painting. |
YDest | Coordinate or top corner where to start painting. |
nDestWidth | The width of the image. |
nDestHeight | The height of the image. |
XSrc | The left coordinate in the source bitmap of where to start reading. |
YSrc | The top left coordinate in the source bitmap of where to start reading. |
nSrcWidth | The number of width pixels to read from source bitmap. |
nSrcHeight | The number of height pixels to read from source bitmap. |
bool BearWare.TeamTalk4.SendDesktopCursorPosition | ( | int | nUserID, |
int | nPosX, | ||
int | nPosY | ||
) |
Send the position of mouse cursor to users in the same channel.
It's only possible to send the mouse cursor position if there's a desktop session which is currently active.
nUserID | For now set to 0. |
nPosX | X coordinate of mouse cursor. Max is 65535. |
nPosY | Y coordinate of mouse cursor. Max is 65535. |
bool BearWare.TeamTalk4.SendDesktopInput | ( | int | nUserID, |
DesktopInput[] | lpDesktopInputs | ||
) |
Send a mouse or keyboard event to a shared desktop window.
If a user is sharing a desktop window it's possible for a remote user to take control of mouse and keyboard input on the remote computer. Read section Transmit Desktop Input on how to transmit desktop input to a shared window.
When the remote user receives the issued BearWare.DesktopInput the event BearWare.TeamTalk4.OnUserDesktopInput is posted to the client instance sharing the desktop window and BearWare.TeamTalk4.GetUserDesktopInput can be used to retrieve the transmitted BearWare.DesktopInput structs.
Requires TeamTalk v. 4.6+ client and server.
nUserID | The user's ID who owns the shared desktop window and should receive desktop input. |
lpDesktopInputs | An array of BearWare.DesktopInput structs which should be transmitted to the user. Internally in the client instance each user ID has an internal queue which can contain a maximum of 100 BearWare.DesktopInput structs. |
nUserID
doesn't subscribe to desktop input. bool BearWare.TeamTalk4.GetUserDesktopWindow | ( | int | nUserID, |
System.IntPtr | lpBitmap, | ||
ref int | lpnBitmapSize, | ||
ref DesktopWindow | lpDesktopWindow | ||
) |
Get a user's desktop window (bitmap image).
A user's desktop window can be extracted when the TeamTalk4.OnUserDesktopWindow() is received.
A desktop window is simply a bitmap image. This method is used for copying the user's bitmap image to a pre-allocated buffer.
To know the properties of the bitmap call this method with lpBitmap
set to NULL and extract the properties in lpDesktopWindow
. The size of the buffer to allocate will be nBytesPerLine
multiplied by nHeight
in the BearWare.DesktopWindow.
For BitmapFormat BMP_RGB8_PALETTE bitmaps check out TeamTalk4.Palette_GetColorTable().
nUserID | The user's ID. |
lpBitmap | Pointer to a pre-allocated buffer where the bitmap data will be copied to. Pass NULL to query the byte size of the bitmap, so it can be written to lpnBitmapSize and lpDesktopWindow . |
lpnBitmapSize | Size of the allocated bitmap buffer lpBitmap . If lpBitmap is NULL the size of the bitmap will be written to this parameter. |
lpDesktopWindow | The properties of the shared desktop window. Pass NULL to lpBitmap to query the properties of the desktop window. |
bool BearWare.TeamTalk4.GetUserDesktopCursor | ( | int | nSrcUserID, |
int | nDestUserID, | ||
ref int | lpnPosX, | ||
ref int | lpnPosY | ||
) |
Get the mouse cursor position of a user.
The mouse cursor position will be available when the TeamTalk4.OnUserDesktopCursorPosition() is received and there's an active desktop session.
A mouse cursor position is transmitted using TeamTalk4.SendDesktopCursorPosition().
nSrcUserID | The owner of the cursor. |
nDestUserID | The owner of the desktop session where the cursor is pointing to. |
lpnPosX | Output parameter for X coordinate. |
lpnPosY | Output parameter for Y coordinate. |
lpnPosX
and lpnPosY
. bool BearWare.TeamTalk4.GetUserDesktopInput | ( | int | nSrcUserID, |
out DesktopInput[] | lpDesktopInputs | ||
) |
Get desktop (mouse or keyboard) input received from a user.
Desktop input is used in combination with a shared desktop window, see Desktop Sharing.
If the local client instance is subscribing to desktop input (i.e. SUBSCRIBE_DESKTOPINPUT) then a remote user can send desktop input to the local client instance. Once the client instance receives desktop input it posts the message TeamTalk4.OnUserDesktopInput() BearWare.TeamTalk4.GetUserDesktopInput() can be used to obtain the BearWare.DesktopInput structs send by the remote user. See Receive Desktop Input for more information on receiving desktop input.
nSrcUserID | The user's ID who sent desktop input, see BearWare.TeamTalk4.OnUserDesktopInput(). |
lpDesktopInputs | A pre-allocated array which will receive the BearWare.DesktopInput stucts. |
const int BearWare.TeamTalk4.TT_DESKTOPINPUT_MAX = 16 |
The maximum number BearWare.DesktopInput instances which can be sent by BearWare.TeamTalk4.SendDesktopInput or received by BearWare.TeamTalk4.GetUserDesktopInput
const uint BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_IGNORE = 0xFFFFFFFF |
If uKeyCode
in BearWare.DesktopInput is set to BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_IGNORE it means no key (or mouse button) was pressed in the desktop input event and TT_DesktopInput_Execute() will ignore the value.
const ushort BearWare.TeamTalk4.TT_DESKTOPINPUT_MOUSEPOS_IGNORE = 0xFFFF |
If uMousePosX
or uMousePosY
in BearWare.DesktopInput are set to BearWare.TeamTalk4.TT_DESKTOPINPUT_MOUSEPOS_IGNORE it means the mouse position is ignored when calling WindowsHelper.Execute().
const uint BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_LMOUSEBTN = 0x1000 |
If uKeyCode
of BearWare.DesktopInput is set to BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_LMOUSEBTN then WindowsDesktopInput.Execute() will see the key-code as a left mouse button click.
const uint BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_RMOUSEBTN = 0x1001 |
If uKeyCode
of BearWare.DesktopInput is set to BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_RMOUSEBTN then WindowsDesktopInput.Execute() will see the key-code as a right mouse button click.
const uint BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_MMOUSEBTN = 0x1002 |
If uKeyCode
of BearWare.DesktopInput is set to BearWare.TeamTalk4.TT_DESKTOPINPUT_KEYCODE_MMOUSEBTN then WindowsDesktopInput.Execute() will see the key-code as a middle mouse button click.