diff --git a/.gitignore b/.gitignore index 983faf6..58997ff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.idc *.ncb +*.aps Debug/ Release/ enc_temp_folder/ diff --git a/ClientConnection.cpp b/ClientConnection.cpp index ada855d..335e925 100755 --- a/ClientConnection.cpp +++ b/ClientConnection.cpp @@ -792,64 +792,36 @@ LRESULT CALLBACK ClientConnection::WndProc(HWND hwnd, UINT iMsg, } } -int ClientConnection::RealWndProc(HWND hwnd, UINT iMsg, - WPARAM wParam, LPARAM lParam) -{ - switch (iMsg) - { - - case WM_CREATE: - return 0; - - case WM_TIMER: - if (wParam == m_emulate3ButtonsTimer) - { - SubProcessPointerEvent(m_emulateButtonPressedX, - m_emulateButtonPressedY, - m_emulateKeyFlags); - KillTimer(m_hwnd, m_emulate3ButtonsTimer); - m_waitingOnEmulateTimer = false; - } - return 0; - - - case WM_LBUTTONDOWN: - case WM_LBUTTONUP: - case WM_MBUTTONDOWN: - case WM_MBUTTONUP: - case WM_RBUTTONDOWN: - case WM_RBUTTONUP: - case WM_MOUSEMOVE: - { +int ClientConnection::OnMouseEvent(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { #ifndef USE_SNOOPDLL - POINT pt; - if (GetFocus() != hwnd) return 0; - if (!m_running) return 0; + POINT pt; + if (GetFocus() != hwnd) return 0; + if (!m_running) return 0; - pt.x = GET_X_LPARAM(lParam); - pt.y = GET_Y_LPARAM(lParam); + pt.x = GET_X_LPARAM(lParam); + pt.y = GET_Y_LPARAM(lParam); - ClientToScreen(hwnd, &pt); - int x=pt.x; - int y=pt.y; + ClientToScreen(hwnd, &pt); + int x=pt.x; + int y=pt.y; - if(x<0 || x>32768) x=0; - if(y<0 || y>32768) y=0; - if(x>=m_screenwidth) x=m_screenwidth-1; - if(y>=m_screenheight) y=m_screenheight-1; + if(x<0 || x>32768) x=0; + if(y<0 || y>32768) y=0; + if(x>=m_screenwidth) x=m_screenwidth-1; + if(y>=m_screenheight) y=m_screenheight-1; - if(m_onedge) - { + if(m_onedge) + { if(hwnd == m_edgewindow) { log.Print(4,"Activated by action: %d\n",iMsg); Activate(x,y); } return 0; - } + } - if(hwnd == m_hwnd) - { + if(hwnd == m_hwnd) + { int back=0; switch(m_opts.m_edge) { @@ -864,13 +836,54 @@ int ClientConnection::RealWndProc(HWND hwnd, UINT iMsg, Deactivate(x,y); return 0; } - } + } - ProcessPointerEvent(x,y, wParam, iMsg); + ProcessPointerEvent(x,y, wParam, iMsg); #endif + return 0; +} + +#define MK_WHEELUP 0x4000 +#define MK_WHEELDOWN 0x8000 + +int ClientConnection::RealWndProc(HWND hwnd, UINT iMsg, + WPARAM wParam, LPARAM lParam) +{ + switch (iMsg) + { + + case WM_CREATE: + return 0; + + case WM_TIMER: + if (wParam == m_emulate3ButtonsTimer) + { + SubProcessPointerEvent(m_emulateButtonPressedX, + m_emulateButtonPressedY, + m_emulateKeyFlags); + KillTimer(m_hwnd, m_emulate3ButtonsTimer); + m_waitingOnEmulateTimer = false; + } return 0; + + + case 0x20A: + { + log.Print(0, "Wheel: %08X %08X\n", wParam, lParam); + int delta = ((short)HIWORD(wParam)); + wParam |= delta < 0 ? MK_WHEELDOWN : MK_WHEELUP; + return OnMouseEvent(hwnd, iMsg, wParam, lParam); } + case WM_LBUTTONDOWN: + case WM_LBUTTONUP: + case WM_MBUTTONDOWN: + case WM_MBUTTONUP: + case WM_RBUTTONDOWN: + case WM_RBUTTONUP: + case WM_MOUSEMOVE: + return OnMouseEvent(hwnd, iMsg, wParam, lParam); + #ifdef USE_SNOOPDLL case SNOOPDLL_MOUSE_UPDATE: { @@ -1209,16 +1222,29 @@ ClientConnection::SubProcessPointerEvent(int x, int y, DWORD keyflags) if (m_opts.m_SwapMouse) { mask = ( ((keyflags & MK_LBUTTON) ? rfbButton1Mask : 0) | ((keyflags & MK_MBUTTON) ? rfbButton3Mask : 0) | - ((keyflags & MK_RBUTTON) ? rfbButton2Mask : 0) ); + ((keyflags & MK_RBUTTON) ? rfbButton2Mask : 0) | + ((keyflags & MK_WHEELUP) ? rfbButtonWheelUpMask : 0) | + ((keyflags & MK_WHEELDOWN) ? rfbButtonWheelDownMask : 0) ); } else { mask = ( ((keyflags & MK_LBUTTON) ? rfbButton1Mask : 0) | ((keyflags & MK_MBUTTON) ? rfbButton2Mask : 0) | - ((keyflags & MK_RBUTTON) ? rfbButton3Mask : 0) ); + ((keyflags & MK_RBUTTON) ? rfbButton3Mask : 0) | + ((keyflags & MK_WHEELUP) ? rfbButtonWheelUpMask : 0) | + ((keyflags & MK_WHEELDOWN) ? rfbButtonWheelDownMask : 0) ); } - + + int count = 1; + if (keyflags & (MK_WHEELUP | MK_WHEELDOWN)) { + float delta = ((short)HIWORD(keyflags)); + delta = delta < 0 ? -delta : delta; + count = max(delta * m_opts.m_wheelMultiplier / 120, 1); + } + try { - SendPointerEvent((x), - (y), mask); + for (int i = 0; i < count; ++i) { + SendPointerEvent((x), + (y), mask); + } } catch (Exception &e) { e.Report(); PostMessage(m_hwnd, WM_CLOSE, 0, 0); diff --git a/ClientConnection.h b/ClientConnection.h index 81d2d88..2c01af3 100755 --- a/ClientConnection.h +++ b/ClientConnection.h @@ -81,6 +81,7 @@ class ClientConnection : public omni_thread void Deactivate(int,int); int RealWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); + int OnMouseEvent(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); void Init(VNCviewerApp *pApp); void Exit(); diff --git a/VNCOptions.cpp b/VNCOptions.cpp index 04bd028..2925095 100755 --- a/VNCOptions.cpp +++ b/VNCOptions.cpp @@ -41,6 +41,7 @@ VNCOptions::VNCOptions() m_Emul3Fuzz = 4; // pixels away before emulation is cancelled m_Shared = false; m_DisableClipboard = false; + m_wheelMultiplier = 3; m_host[0] = '\0'; m_port = -1; @@ -73,6 +74,7 @@ VNCOptions& VNCOptions::operator=(VNCOptions& s) m_Emul3Fuzz = s.m_Emul3Fuzz; // pixels away before emulation is cancelled m_Shared = s.m_Shared; m_DisableClipboard = s.m_DisableClipboard; + m_wheelMultiplier = s.m_wheelMultiplier; strcpy(m_host, s.m_host); m_port = s.m_port; @@ -216,6 +218,16 @@ void VNCOptions::SetFromCommandLine(LPTSTR szCmdLine) continue; } + } else if ( SwitchMatch(args[j], _T("wheelmultiplier") )) { + if (++j == i) { + ArgError(_T("No wheelmultiplier specified")); + continue; + } + if (_stscanf(args[j], _T("%d"), &m_wheelMultiplier) != 1) { + ArgError(_T("Invalid wheelmultiplier specified")); + continue; + } + } else if ( SwitchMatch(args[j], _T("loglevel") )) { if (++j == i) { ArgError(_T("No loglevel specified")); @@ -301,6 +313,7 @@ void VNCOptions::Save(char *fname) saveInt("emulate3timeout", m_Emul3Timeout, fname); saveInt("emulate3fuzz", m_Emul3Fuzz, fname); saveInt("disableclipboard", m_DisableClipboard, fname); + saveInt("wheelmultiplier", m_wheelMultiplier, fname); saveInt("edge", m_edge, fname); } @@ -319,6 +332,7 @@ void VNCOptions::Load(char *fname) m_Emul3Timeout = readInt("emulate3timeout",m_Emul3Timeout, fname); m_Emul3Fuzz = readInt("emulate3fuzz", m_Emul3Fuzz, fname); m_DisableClipboard = readInt("disableclipboard", m_DisableClipboard, fname) != 0; + m_wheelMultiplier = readInt("wheelmultiplier", m_wheelMultiplier, fname); m_edge = readInt("edge", m_edge, fname); } @@ -470,6 +484,11 @@ int CALLBACK VNCOptions::RealOptDlgProc( HWND hwnd, HWND hS = GetDlgItem(hwnd, IDC_EDGE_SOUTH); SendMessage(hW, BM_SETCHECK, m_edge == M_EDGE_SOUTH, 0); + char buffer[20]; + _snprintf(buffer, sizeof(buffer), "%d", m_wheelMultiplier); + HWND hWM = GetDlgItem(hwnd, IDC_WHEEL_MULTIPLIER); + SetWindowText(hWM, buffer); + CentreWindow(hwnd); return TRUE; @@ -527,6 +546,11 @@ int CALLBACK VNCOptions::RealOptDlgProc( HWND hwnd, if(SendMessage(hW, BM_GETCHECK, 0, 0) == BST_CHECKED) m_edge = M_EDGE_WEST; + HWND hWM = GetDlgItem(hwnd, IDC_WHEEL_MULTIPLIER); + char buffer[20]; + GetWindowText(hWM, buffer, 20); + m_wheelMultiplier = atoi(buffer); + EndDialog(hwnd, TRUE); return TRUE; diff --git a/VNCOptions.h b/VNCOptions.h index 652ef9c..cda1470 100755 --- a/VNCOptions.h +++ b/VNCOptions.h @@ -57,6 +57,7 @@ class VNCOptions int m_Emul3Fuzz; bool m_Shared; bool m_DisableClipboard; + int m_wheelMultiplier; #define M_EDGE_NORTH 0 #define M_EDGE_SOUTH 1 diff --git a/WIN2VNC.suo b/WIN2VNC.suo index 26bba34..c922c44 100755 Binary files a/WIN2VNC.suo and b/WIN2VNC.suo differ diff --git a/res/resource.h b/res/resource.h index 6df656a..a0ff470 100755 --- a/res/resource.h +++ b/res/resource.h @@ -1,5 +1,5 @@ //{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. +// Microsoft Visual C++ generated include file. // Used by vncviewer.rc // #define IDR_TRAY 101 @@ -51,6 +51,7 @@ #define IDC_EDGE_WEST 1035 #define IDC_EDGE_NORTH 1036 #define IDC_EDGE_SOUTH 1037 +#define IDC_WHEEL_MULTIPLIER 1039 #define ID_SESSION_SET_CRECT 32777 #define ID_SESSION_SWAPMOUSE 32785 #define ID_CLOSEDAEMON 40001 @@ -64,7 +65,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 154 #define _APS_NEXT_COMMAND_VALUE 40010 -#define _APS_NEXT_CONTROL_VALUE 1039 +#define _APS_NEXT_CONTROL_VALUE 1040 #define _APS_NEXT_SYMED_VALUE 154 #endif #endif diff --git a/res/vncviewer.rc b/res/vncviewer.rc index 0af7a16..9ceb342 100755 --- a/res/vncviewer.rc +++ b/res/vncviewer.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -21,7 +21,6 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 -#ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version @@ -44,18 +43,14 @@ BEGIN BEGIN BLOCK "040904b0" BEGIN - VALUE "Comments", "by Fredrik Hubinette\0" - VALUE "CompanyName", "\0" - VALUE "FileDescription", "win2vnc\0" - VALUE "FileVersion", "1, 0, 0, 0\0" - VALUE "InternalName", "win2vnc\0" - VALUE "LegalCopyright", "Written 2001\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "win2vnc.exe\0" - VALUE "PrivateBuild", "\0" - VALUE "ProductName", "win2vnc\0" - VALUE "ProductVersion", "1, 0, 0, 0\0" - VALUE "SpecialBuild", "\0" + VALUE "Comments", "by Fredrik Hubinette" + VALUE "FileDescription", "win2vnc" + VALUE "FileVersion", "1, 0, 0, 0" + VALUE "InternalName", "win2vnc" + VALUE "LegalCopyright", "Written 2001" + VALUE "OriginalFilename", "win2vnc.exe" + VALUE "ProductName", "win2vnc" + VALUE "ProductVersion", "1, 0, 0, 0" END END BLOCK "VarFileInfo" @@ -64,8 +59,6 @@ BEGIN END END -#endif // !_MAC - #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// @@ -73,18 +66,18 @@ END // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE DISCARDABLE +3 TEXTINCLUDE BEGIN "\r\n" "\0" @@ -100,14 +93,14 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDR_TRAY ICON DISCARDABLE "idr_tray.ico" +IDR_TRAY ICON "idr_tray.ico" ///////////////////////////////////////////////////////////////////////////// // // Menu // -IDR_TRAYMENU MENU DISCARDABLE +IDR_TRAYMENU MENU BEGIN POPUP "tray" BEGIN @@ -121,8 +114,6 @@ BEGIN MENUITEM " Alt UP", ID_CONN_ALTUP MENUITEM " Alt Down", ID_CONN_ALTDOWN MENUITEM SEPARATOR -; New connection doesn't work very well (yet) ... -; MENUITEM "Ne&w connection...", ID_NEWCONN MENUITEM "Save connection info &as...", ID_CONN_SAVE_AS MENUITEM SEPARATOR MENUITEM "About win2vnc", IDD_APP_ABOUT @@ -136,85 +127,68 @@ END // Dialog // -IDD_AUTH_DIALOG DIALOG DISCARDABLE 0, 0, 224, 47 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_AUTH_DIALOG DIALOG 0, 0, 224, 47 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "VNC Authentication" FONT 8, "MS Sans Serif" BEGIN - EDITTEXT IDC_PASSWD_EDIT,101,13,54,14,ES_PASSWORD | - ES_AUTOHSCROLL + EDITTEXT IDC_PASSWD_EDIT,101,13,54,14,ES_PASSWORD | ES_AUTOHSCROLL DEFPUSHBUTTON "&OK",IDOK,167,7,50,13 PUSHBUTTON "&Cancel",IDCANCEL,167,24,50,14 RTEXT "Win2VNC session password:",IDC_STATIC,7,16,93,8 END -IDD_OPTIONDIALOG DIALOG DISCARDABLE 0, 0, 293, 130 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_OPTIONDIALOG DIALOGEX 0, 0, 293, 130 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Connection Options..." -FONT 8, "MS Sans Serif" +FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - CONTROL "Hextile",IDC_HEXTILERADIO,"Button",BS_AUTORADIOBUTTON | - WS_GROUP,15,19,37,10 - CONTROL "CoRRE",IDC_CORRERADIO,"Button",BS_AUTORADIOBUTTON,15,31, - 40,10 - CONTROL "RRE",IDC_RRERADIO,"Button",BS_AUTORADIOBUTTON,15,43,31, - 10 - CONTROL "Raw",IDC_RAWRADIO,"Button",BS_AUTORADIOBUTTON,15,55,31, - 10 - CONTROL "Allow CopyRect encoding",ID_SESSION_SET_CRECT,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,15,65,97,10 - CONTROL "RBS",IDC_RBSRADIO,"Button",BS_AUTORADIOBUTTON | NOT - WS_VISIBLE,55,43,31,10 - CONTROL "CopyRect",IDC_CRECTRADIO,"Button",BS_AUTORADIOBUTTON | - NOT WS_VISIBLE,55,54,47,10 - CONTROL "Request shared session",IDC_SHARED,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,15,94,91,10 - CONTROL "Disable clipboard transfer",IDC_DISABLECLIPBOARD,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,15,106,95,10 - CONTROL "Emulate 3 Buttons (with 2-button click)", - IDC_EMULATECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 134,17,137,10 - CONTROL "Swap mouse buttons 2 and 3",ID_SESSION_SWAPMOUSE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,134,29,108,10 - CONTROL "East",IDC_EDGE_EAST,"Button",BS_AUTORADIOBUTTON | - BS_LEFT | WS_GROUP,134,60,30,10 - CONTROL "West",IDC_EDGE_WEST,"Button",BS_AUTORADIOBUTTON,134,76, - 33,10 - CONTROL "North",IDC_EDGE_NORTH,"Button",BS_AUTORADIOBUTTON,201, - 60,33,10 - CONTROL "South",IDC_EDGE_SOUTH,"Button",BS_AUTORADIOBUTTON,201, - 76,35,10 + CONTROL "Hextile",IDC_HEXTILERADIO,"Button",BS_AUTORADIOBUTTON | WS_GROUP,15,19,37,10 + CONTROL "CoRRE",IDC_CORRERADIO,"Button",BS_AUTORADIOBUTTON,15,31,40,10 + CONTROL "RRE",IDC_RRERADIO,"Button",BS_AUTORADIOBUTTON,15,43,31,10 + CONTROL "Raw",IDC_RAWRADIO,"Button",BS_AUTORADIOBUTTON,15,55,31,10 + CONTROL "Allow CopyRect encoding",ID_SESSION_SET_CRECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,65,97,10 + CONTROL "RBS",IDC_RBSRADIO,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,55,43,31,10 + CONTROL "CopyRect",IDC_CRECTRADIO,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,55,54,47,10 + CONTROL "Request shared session",IDC_SHARED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,94,91,10 + CONTROL "Disable clipboard transfer",IDC_DISABLECLIPBOARD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,106,95,10 + CONTROL "Emulate 3 Buttons (with 2-button click)",IDC_EMULATECHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,134,17,137,10 + CONTROL "Swap mouse buttons 2 and 3",ID_SESSION_SWAPMOUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,134,29,108,10 + CONTROL "East",IDC_EDGE_EAST,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP,134,71,30,10 + CONTROL "West",IDC_EDGE_WEST,"Button",BS_AUTORADIOBUTTON,134,87,33,10 + CONTROL "North",IDC_EDGE_NORTH,"Button",BS_AUTORADIOBUTTON,201,71,33,10 + CONTROL "South",IDC_EDGE_SOUTH,"Button",BS_AUTORADIOBUTTON,201,87,35,10 DEFPUSHBUTTON "OK",IDOK,180,109,50,14 PUSHBUTTON "Cancel",IDCANCEL,236,109,50,14 GROUPBOX "Preferred encoding",IDC_STATIC,7,7,110,74 GROUPBOX "Misc",IDC_STATIC,7,84,110,39 - GROUPBOX "Direction",IDC_STATIC,126,48,160,48 - GROUPBOX "Mouse",IDC_STATIC,126,7,160,37 + GROUPBOX "Direction",IDC_STATIC,126,62,160,38 + GROUPBOX "Mouse",IDC_STATIC,126,7,160,51 + EDITTEXT IDC_WHEEL_MULTIPLIER,134,41,21,12,ES_AUTOHSCROLL + LTEXT "Mouse Wheel Multiplier",IDC_STATIC,159,43,74,8 END -IDD_SESSION_DLG DIALOG DISCARDABLE 0, 0, 233, 63 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_SESSION_DLG DIALOG 0, 0, 233, 63 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Connection details" FONT 8, "MS Sans Serif" BEGIN - COMBOBOX IDC_HOSTNAME_EDIT,57,7,115,66,CBS_DROPDOWN | - CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_HOSTNAME_EDIT,57,7,115,66,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP DEFPUSHBUTTON "OK",IDOK,186,7,40,14 PUSHBUTTON "Cancel",IDCANCEL,186,24,40,14 PUSHBUTTON "Options...",IDC_OPTIONBUTTON,186,42,40,14 LTEXT "VNC server:",IDC_STATIC,13,9,39,8 - LTEXT "Use host:display\ne.g. snoopy:2\n(Display defaults to 0 if not given)", - IDC_STATIC,60,26,110,30 + LTEXT "Use host:display\ne.g. snoopy:2\n(Display defaults to 0 if not given)",IDC_STATIC,60,26,110,30 END -IDD_SERVINFO_DLG DIALOG DISCARDABLE 0, 0, 224, 170 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_SERVINFO_DLG DIALOG 0, 0, 224, 170 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "RFB Server information" FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDOK,167,149,50,14 - EDITTEXT IDC_SERVINFO_EDIT,7,7,210,134,ES_MULTILINE | - ES_AUTOHSCROLL | ES_READONLY + EDITTEXT IDC_SERVINFO_EDIT,7,7,210,134,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY END @@ -224,7 +198,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO BEGIN IDD_AUTH_DIALOG, DIALOG BEGIN @@ -288,19 +262,19 @@ END // String Table // -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN IDR_TRAY "win2vnc" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN ID_CLOSEDAEMON "Stop listening for incoming connections" ID_SHOWWINDOW "Display a connection window" ID_NEWCONN "Make a manual connection" END -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN IDC_OPTIONBUTTON "Set the options to be used for new connections" END @@ -325,21 +299,20 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDI_MAINICON ICON DISCARDABLE "idr_tray.ico" +IDI_MAINICON ICON "idr_tray.ico" ///////////////////////////////////////////////////////////////////////////// // // Dialog // -IDD_APP_ABOUT DIALOG DISCARDABLE 0, 0, 151, 98 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +IDD_APP_ABOUT DIALOG 0, 0, 151, 98 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "About win2vnc" FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDOK,50,77,50,14 - LTEXT "Written by Fredrik Hubinette 2001\n\nBased on VNCviewer version 3.3.3 R3\nCopyright AT&&T 1998\n\nFor more informatino, see:\nhttp://fredrik.hubbe.net/win2vnc.html", - IDC_STATIC,4,8,142,62 + LTEXT "Written by Fredrik Hubinette 2001\n\nBased on VNCviewer version 3.3.3 R3\nCopyright AT&&T 1998\n\nFor more informatino, see:\nhttp://fredrik.hubbe.net/win2vnc.html",IDC_STATIC,4,8,142,62 LTEXT "",IDC_STATIC,27,23,119,21 END @@ -350,7 +323,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO BEGIN IDD_APP_ABOUT, DIALOG BEGIN @@ -367,7 +340,7 @@ END // Cursor // -IDC_NOCURSOR CURSOR DISCARDABLE "nocursor.cur" +IDC_NOCURSOR CURSOR "nocursor.cur" #endif // English (U.K.) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/rfbproto.h b/rfbproto.h index 5105d04..8de49f0 100755 --- a/rfbproto.h +++ b/rfbproto.h @@ -678,6 +678,8 @@ typedef struct { #define rfbButton1Mask 1 #define rfbButton2Mask 2 #define rfbButton3Mask 4 +#define rfbButtonWheelUpMask 8 +#define rfbButtonWheelDownMask 16 #define sz_rfbPointerEventMsg 6 diff --git a/win2vnc.vcproj.CASHBACK.jlopez.user b/win2vnc.vcproj.CASHBACK.jlopez.user index e477405..938a515 100755 --- a/win2vnc.vcproj.CASHBACK.jlopez.user +++ b/win2vnc.vcproj.CASHBACK.jlopez.user @@ -11,7 +11,7 @@