mirror of
https://github.com/apache/cloudstack.git
synced 2025-12-21 04:53:37 +01:00
678 lines
22 KiB
C++
678 lines
22 KiB
C++
// Copyright (C) 2002 Ultr@VNC Team Members. All Rights Reserved.
|
|
// Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved.
|
|
//
|
|
// This file is part of the VNC system.
|
|
//
|
|
// The VNC system is free software; you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation; either version 2 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program; if not, write to the Free Software
|
|
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
|
// USA.
|
|
//
|
|
// If the source code for the VNC system is not available from the place
|
|
// whence you received this file, check http://www.uk.research.att.com/vnc or contact
|
|
// the authors on vnc@uk.research.att.com for information on obtaining it.
|
|
|
|
|
|
#include "stdhdrs.h"
|
|
#include "vncviewer.h"
|
|
#include "Exception.h"
|
|
#ifdef UNDER_CE
|
|
#include "omnithreadce.h"
|
|
#else
|
|
#include "omnithread.h"
|
|
#include "VNCviewerApp32.h"
|
|
#endif
|
|
|
|
// All logging is done via the log object
|
|
Log vnclog;
|
|
char sz_A1[64];
|
|
char sz_A2[64];
|
|
char sz_A3[64];
|
|
char sz_A4[64];
|
|
char sz_A5[64];
|
|
char sz_B1[64];
|
|
char sz_B2[64];
|
|
char sz_B3[64];
|
|
char sz_C1[64];
|
|
char sz_C2[64];
|
|
char sz_C3[64];
|
|
char sz_D1[64];
|
|
char sz_D2[64];
|
|
char sz_D3[64];
|
|
char sz_D4[64];
|
|
char sz_D5[64];
|
|
char sz_D6[64];
|
|
char sz_D7[64];
|
|
char sz_D8[64];
|
|
char sz_D9[64];
|
|
char sz_D10[64];
|
|
char sz_D11[64];
|
|
char sz_D12[64];
|
|
char sz_D13[64];
|
|
char sz_D14[64];
|
|
char sz_D15[64];
|
|
char sz_D16[64];
|
|
char sz_D17[64];
|
|
char sz_D18[64];
|
|
char sz_D19[64];
|
|
char sz_D20[64];
|
|
char sz_D21[64];
|
|
char sz_D22[64];
|
|
char sz_D23[64];
|
|
char sz_D24[64];
|
|
char sz_D25[64];
|
|
char sz_D26[64];
|
|
char sz_D27[64];
|
|
char sz_D28[64];
|
|
char sz_E1[64];
|
|
char sz_E2[64];
|
|
char sz_F1[64];
|
|
char sz_F3[64];
|
|
char sz_F4[64];
|
|
char sz_F5[128];
|
|
char sz_F6[64];
|
|
char sz_F7[128];
|
|
char sz_F8[128];
|
|
char sz_F10[64];
|
|
char sz_F11[64];
|
|
char sz_G1[64];
|
|
char sz_G2[64];
|
|
char sz_G3[64];
|
|
char sz_H1[64];
|
|
char sz_H2[64];
|
|
char sz_H3[128];
|
|
char sz_H4[64];
|
|
char sz_H5[64];
|
|
char sz_H6[64];
|
|
char sz_H7[64];
|
|
char sz_H8[64];
|
|
char sz_H9[64];
|
|
char sz_H10[64];
|
|
char sz_H11[64];
|
|
char sz_H12[64];
|
|
char sz_H13[64];
|
|
char sz_H14[64];
|
|
char sz_H15[64];
|
|
char sz_H16[64];
|
|
char sz_H17[64];
|
|
char sz_H18[64];
|
|
char sz_H19[64];
|
|
char sz_H20[64];
|
|
char sz_H21[64];
|
|
char sz_H22[64];
|
|
char sz_H23[64];
|
|
char sz_H24[64];
|
|
char sz_H25[64];
|
|
char sz_H26[64];
|
|
char sz_H27[64];
|
|
char sz_H28[64];
|
|
char sz_H29[64];
|
|
char sz_H30[64];
|
|
char sz_H31[64];
|
|
char sz_H32[64];
|
|
char sz_H33[64];
|
|
char sz_H34[64];
|
|
char sz_H35[64];
|
|
char sz_H36[64];
|
|
char sz_H37[64];
|
|
char sz_H38[128];
|
|
char sz_H39[64];
|
|
char sz_H40[64];
|
|
char sz_H41[64];
|
|
char sz_H42[64];
|
|
char sz_H43[128];
|
|
char sz_H44[64];
|
|
char sz_H45[64];
|
|
char sz_H46[128];
|
|
char sz_H47[64];
|
|
char sz_H48[64];
|
|
char sz_H49[64];
|
|
char sz_H50[64];
|
|
char sz_H51[64];
|
|
char sz_H52[64];
|
|
char sz_H53[64];
|
|
char sz_H54[64];
|
|
char sz_H55[64];
|
|
char sz_H56[64];
|
|
char sz_H57[64];
|
|
|
|
char sz_H58[64];
|
|
char sz_H59[64];
|
|
char sz_H60[64];
|
|
char sz_H61[64];
|
|
char sz_H62[128];
|
|
char sz_H63[64];
|
|
char sz_H64[64];
|
|
char sz_H65[64];
|
|
char sz_H66[64];
|
|
char sz_H67[64];
|
|
char sz_H68[128];
|
|
char sz_H69[64];
|
|
char sz_H70[64];
|
|
char sz_H71[64];
|
|
char sz_H72[128];
|
|
char sz_H73[64];
|
|
|
|
char sz_I1[64];
|
|
char sz_I2[64];
|
|
char sz_I3[64];
|
|
char sz_J1[128];
|
|
char sz_J2[64];
|
|
char sz_K1[64];
|
|
char sz_K2[64];
|
|
char sz_K3[256];
|
|
char sz_K4[64];
|
|
char sz_K5[64];
|
|
char sz_K6[64];
|
|
char sz_K7[64];
|
|
char sz_L1[64];
|
|
char sz_L2[64];
|
|
char sz_L3[64];
|
|
char sz_L4[64];
|
|
char sz_L5[64];
|
|
char sz_L6[64];
|
|
char sz_L7[64];
|
|
char sz_L8[64];
|
|
char sz_L9[64];
|
|
char sz_L10[64];
|
|
char sz_L11[64];
|
|
char sz_L12[64];
|
|
char sz_L13[64];
|
|
char sz_L14[64];
|
|
char sz_L15[64];
|
|
char sz_L16[64];
|
|
char sz_L17[64];
|
|
char sz_L18[64];
|
|
char sz_L19[64];
|
|
char sz_L20[64];
|
|
char sz_L21[64];
|
|
char sz_L22[64];
|
|
char sz_L23[64];
|
|
char sz_L24[64];
|
|
char sz_L25[64];
|
|
char sz_L26[64];
|
|
char sz_L27[64];
|
|
char sz_L28[64];
|
|
char sz_L29[64];
|
|
char sz_L30[64];
|
|
char sz_L31[64];
|
|
char sz_L32[64];
|
|
char sz_L33[64];
|
|
char sz_L34[64];
|
|
char sz_L35[64];
|
|
char sz_L36[64];
|
|
char sz_L37[64];
|
|
char sz_L38[64];
|
|
char sz_L39[64];
|
|
char sz_L40[64];
|
|
char sz_L41[64];
|
|
char sz_L42[64];
|
|
char sz_L43[64];
|
|
char sz_L44[64];
|
|
char sz_L45[64];
|
|
char sz_L46[64];
|
|
char sz_L47[64];
|
|
char sz_L48[64];
|
|
char sz_L49[64];
|
|
char sz_L50[64];
|
|
char sz_L51[64];
|
|
char sz_L52[64];
|
|
char sz_L53[64];
|
|
char sz_L54[64];
|
|
char sz_L55[64];
|
|
char sz_L56[64];
|
|
char sz_L57[64];
|
|
char sz_L58[64];
|
|
char sz_L59[64];
|
|
char sz_L60[64];
|
|
char sz_L61[64];
|
|
char sz_L62[64];
|
|
char sz_L63[64];
|
|
char sz_L64[64];
|
|
char sz_L65[64];
|
|
char sz_L66[64];
|
|
char sz_L67[64];
|
|
char sz_L68[64];
|
|
char sz_L69[64];
|
|
char sz_L70[64];
|
|
char sz_L71[64];
|
|
char sz_L72[64];
|
|
char sz_L73[64];
|
|
char sz_L74[64];
|
|
char sz_L75[64];
|
|
char sz_L76[64];
|
|
char sz_L77[64];
|
|
char sz_L78[64];
|
|
char sz_L79[64];
|
|
char sz_L80[64];
|
|
char sz_L81[64];
|
|
char sz_L82[64];
|
|
char sz_L83[64];
|
|
char sz_L84[64];
|
|
char sz_L85[64];
|
|
char sz_L86[64];
|
|
char sz_L87[64];
|
|
char sz_L88[64];
|
|
char sz_L89[64];
|
|
char sz_L90[64];
|
|
char sz_L91[64];
|
|
char sz_L92[64];
|
|
|
|
// File/dir Rename messages
|
|
char sz_M1[64];
|
|
char sz_M2[64];
|
|
char sz_M3[64];
|
|
char sz_M4[64];
|
|
char sz_M5[64];
|
|
char sz_M6[64];
|
|
char sz_M7[64];
|
|
char sz_M8[64];
|
|
|
|
bool command_line=true;
|
|
bool g_passwordfailed=true;
|
|
|
|
|
|
// Accelerator Keys
|
|
AccelKeys TheAccelKeys;
|
|
HINSTANCE m_hInstResDLL;
|
|
|
|
#ifdef UNDER_CE
|
|
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR szCmdLine, int iCmdShow)
|
|
#else
|
|
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
|
|
#endif
|
|
{
|
|
setbuf(stderr, 0);
|
|
bool console = false;
|
|
m_hInstResDLL = NULL;
|
|
m_hInstResDLL = LoadLibrary("vnclang.dll");
|
|
if (m_hInstResDLL==NULL)
|
|
{
|
|
m_hInstResDLL = hInstance;
|
|
}
|
|
if (strcmp(szCmdLine,"")==0) command_line=false;
|
|
|
|
LoadString(m_hInstResDLL, IDS_A1, sz_A1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_A2, sz_A2, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_A3, sz_A3, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_A4, sz_A4, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_A5, sz_A5, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_B1, sz_B1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_B2, sz_B2, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_B3, sz_B3, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_C1, sz_C1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_C2, sz_C2, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_C3, sz_C3, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D1, sz_D1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D2, sz_D2, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D3, sz_D3, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D4, sz_D4, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D5, sz_D5, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D6, sz_D6, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D7, sz_D7, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D8, sz_D8, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D9, sz_D9, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D10, sz_D10, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D11, sz_D11, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D12, sz_D12, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D13, sz_D13, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D14, sz_D14, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D15, sz_D15, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D16, sz_D16, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D17, sz_D17, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D18, sz_D18, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D19, sz_D19, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D20, sz_D20, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D21, sz_D21, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D22, sz_D22, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D23, sz_D23, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D24, sz_D24, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D25, sz_D25, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D26, sz_D26, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D27, sz_D27, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_D28, sz_D28, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_E1, sz_E1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_E2, sz_E2, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_F1, sz_F1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_F3, sz_F3, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_F4, sz_F4, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_F5, sz_F5, 128 -1);
|
|
LoadString(m_hInstResDLL, IDS_F6, sz_F6, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_F7, sz_F7, 128 -1);
|
|
LoadString(m_hInstResDLL, IDS_F8, sz_F8, 128 -1);
|
|
LoadString(m_hInstResDLL, IDS_F10, sz_F10, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_F11, sz_F11, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_G1, sz_G1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_G1, sz_G2, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_G1, sz_G3, 64 -1);
|
|
|
|
LoadString(m_hInstResDLL, IDS_H1, sz_H1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H2, sz_H2, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H3, sz_H3, 128 -1);
|
|
LoadString(m_hInstResDLL, IDS_H4, sz_H4, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H5, sz_H5, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H6, sz_H6, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H7, sz_H7, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H8, sz_H8, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H9, sz_H9, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H10, sz_H10, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H11, sz_H11, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H12, sz_H12, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H13, sz_H13, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H14, sz_H14, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H15, sz_H15, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H16, sz_H16, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H17, sz_H17, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H18, sz_H18, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H19, sz_H19, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H20, sz_H20, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H21, sz_H21, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H22, sz_H22, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H23, sz_H23, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H24, sz_H24, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H25, sz_H25, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H26, sz_H26, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H27, sz_H27, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H28, sz_H28, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H29, sz_H29, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H30, sz_H30, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H31, sz_H31, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H32, sz_H32, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H33, sz_H33, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H34, sz_H34, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H35, sz_H35, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H36, sz_H36, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H37, sz_H37, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H38, sz_H38, 128 -1);
|
|
LoadString(m_hInstResDLL, IDS_H39, sz_H39, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H40, sz_H40, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H41, sz_H41, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H42, sz_H42, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H43, sz_H43, 128 -1);
|
|
LoadString(m_hInstResDLL, IDS_H44, sz_H44, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H45, sz_H45, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H46, sz_H46, 128 -1);
|
|
LoadString(m_hInstResDLL, IDS_H47, sz_H47, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H48, sz_H48, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H49, sz_H49, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H50, sz_H50, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H51, sz_H51, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H52, sz_H52, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H53, sz_H53, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H54, sz_H54, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H55, sz_H55, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H56, sz_H56, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H57, sz_H57, 64 -1);
|
|
|
|
LoadString(m_hInstResDLL, IDS_H58, sz_H58, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H59, sz_H59, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H60, sz_H60, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H61, sz_H61, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H62, sz_H62, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H63, sz_H63, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H64, sz_H64, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H65, sz_H65, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H66, sz_H66, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H67, sz_H67, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H68, sz_H68, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H69, sz_H69, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H70, sz_H70, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H71, sz_H71, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_H72, sz_H72, 128 -1);
|
|
LoadString(m_hInstResDLL, IDS_H73, sz_H73, 64 -1);
|
|
|
|
|
|
LoadString(m_hInstResDLL, IDS_I1, sz_I1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_I2, sz_I2, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_I3, sz_I3, 64 -1);
|
|
|
|
LoadString(m_hInstResDLL, IDS_J1, sz_J1, 128 -1);
|
|
LoadString(m_hInstResDLL, IDS_J2, sz_J2, 64 -1);
|
|
|
|
LoadString(m_hInstResDLL, IDS_K1, sz_K1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_K2, sz_K2, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_K3, sz_K3, 256 -1);
|
|
LoadString(m_hInstResDLL, IDS_K4, sz_K4, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_K5, sz_K5, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_K6, sz_K6, 64 -1);
|
|
|
|
LoadString(m_hInstResDLL, IDS_L1, sz_L1, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L2, sz_L2, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L3, sz_L3, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L4, sz_L4, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L5, sz_L5, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L6, sz_L6, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L7, sz_L7, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L8, sz_L8, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L9, sz_L9, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L10, sz_L10, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L11, sz_L11, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L12, sz_L12, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L13, sz_L13, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L14, sz_L14, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L15, sz_L15, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L16, sz_L16, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L17, sz_L17, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L18, sz_L18, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L19, sz_L19, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L20, sz_L20, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L21, sz_L21, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L22, sz_L22, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L23, sz_L23, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L24, sz_L24, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L25, sz_L25, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L26, sz_L26, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L27, sz_L27, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L28, sz_L28, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L29, sz_L29, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L30, sz_L30, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L31, sz_L31, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L32, sz_L32, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L33, sz_L33, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L34, sz_L34, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L35, sz_L35, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L36, sz_L36, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L37, sz_L37, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L38, sz_L38, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L39, sz_L39, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L40, sz_L40, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L41, sz_L41, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L42, sz_L42, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L43, sz_L43, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L44, sz_L44, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L45, sz_L45, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L46, sz_L46, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L47, sz_L47, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L48, sz_L48, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L49, sz_L49, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L50, sz_L50, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L51, sz_L51, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L52, sz_L52, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L53, sz_L53, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L54, sz_L54, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L55, sz_L55, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L56, sz_L56, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L57, sz_L57, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L58, sz_L58, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L59, sz_L59, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L60, sz_L60, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L61, sz_L61, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L62, sz_L62, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L63, sz_L63, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L64, sz_L64, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L65, sz_L65, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L66, sz_L66, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L67, sz_L67, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L68, sz_L68, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L69, sz_L69, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L70, sz_L70, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L71, sz_L71, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L72, sz_L72, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L73, sz_L73, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L74, sz_L74, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L75, sz_L75, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L76, sz_L76, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L77, sz_L77, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L78, sz_L78, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L79, sz_L79, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L80, sz_L80, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L81, sz_L81, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L82, sz_L82, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L83, sz_L83, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L84, sz_L84, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L85, sz_L85, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L86, sz_L86, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L87, sz_L87, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L88, sz_L88, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L89, sz_L89, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L90, sz_L90, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L91, sz_L91, 64 -1);
|
|
LoadString(m_hInstResDLL, IDS_L92, sz_L92, 64 -1);
|
|
|
|
#ifdef _ULTRAVNCAX_
|
|
// we need to return now, before the VNCviewerApp32 instance is created...
|
|
return 0;
|
|
#endif
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
// The state of the application as a whole is contained in the one app object
|
|
#ifdef _WIN32_WCE
|
|
VNCviewerApp app(hInstance, szCmdLine);
|
|
#else
|
|
VNCviewerApp32 app(hInstance, szCmdLine);
|
|
#endif
|
|
|
|
console = app.m_options.m_logToConsole;
|
|
|
|
// Start a new connection if specified on command line,
|
|
// or if not in listening mode
|
|
MSG msg;
|
|
while(g_passwordfailed==true)
|
|
{
|
|
g_passwordfailed=false;
|
|
if (app.m_options.m_connectionSpecified) {
|
|
app.NewConnection(app.m_options.m_host_options, app.m_options.m_port);
|
|
} else if (!app.m_options.m_listening) {
|
|
// This one will also read from config file if specified
|
|
app.NewConnection();
|
|
}
|
|
|
|
try
|
|
{
|
|
while ( GetMessage(&msg, NULL, 0,0) )
|
|
{
|
|
if (!TheAccelKeys.TranslateAccelKeys(&msg))
|
|
{
|
|
TranslateMessage(&msg);
|
|
DispatchMessage(&msg);
|
|
}
|
|
}
|
|
}
|
|
catch (WarningException &e)
|
|
{
|
|
e.Report();
|
|
}
|
|
catch (QuietException &e)
|
|
{
|
|
e.Report();
|
|
}
|
|
}
|
|
// Clean up winsock
|
|
WSACleanup();
|
|
|
|
vnclog.Print(3, _T("Exiting\n"));
|
|
|
|
if (console) Sleep(2000);
|
|
|
|
return msg.wParam;
|
|
}
|
|
|
|
|
|
// Move the given window to the centre of the screen
|
|
// and bring it to the top.
|
|
void CentreWindow(HWND hwnd)
|
|
{
|
|
RECT winrect, workrect;
|
|
|
|
// Find how large the desktop work area is
|
|
SystemParametersInfo(SPI_GETWORKAREA, 0, &workrect, 0);
|
|
int workwidth = workrect.right - workrect.left;
|
|
int workheight = workrect.bottom - workrect.top;
|
|
|
|
// And how big the window is
|
|
GetWindowRect(hwnd, &winrect);
|
|
int winwidth = winrect.right - winrect.left;
|
|
int winheight = winrect.bottom - winrect.top;
|
|
// Make sure it's not bigger than the work area
|
|
winwidth = min(winwidth, workwidth);
|
|
winheight = min(winheight, workheight);
|
|
|
|
// Now centre it
|
|
SetWindowPos(hwnd,
|
|
HWND_TOP,
|
|
workrect.left + (workwidth-winwidth) / 2,
|
|
workrect.top + (workheight-winheight) / 2,
|
|
winwidth, winheight,
|
|
SWP_SHOWWINDOW);
|
|
SetForegroundWindow(hwnd);
|
|
}
|
|
|
|
|
|
// sf@2002 - TightVNC method - RealVNC method
|
|
// Convert "host:display" or "host::port" or "host:port" if port > 100, into host and port
|
|
// Returns true if valid format, false if not.
|
|
// Takes initial string, addresses of results and size of host buffer in wchars.
|
|
// If the display info passed in is longer than the size of the host buffer, it
|
|
// is assumed to be invalid, so false is returned.
|
|
bool ParseDisplay(LPTSTR display, LPTSTR phost, int hostlen, int *pport)
|
|
{
|
|
if (hostlen < (int)_tcslen(display))
|
|
return false;
|
|
|
|
int tmp_port;
|
|
TCHAR *colonpos = _tcschr(display, L':');
|
|
if (colonpos == NULL)
|
|
{
|
|
// No colon -- use default port number
|
|
tmp_port = RFB_PORT_OFFSET;
|
|
_tcsncpy(phost, display, MAX_HOST_NAME_LEN);
|
|
}
|
|
else
|
|
{
|
|
_tcsncpy(phost, display, colonpos - display);
|
|
phost[colonpos - display] = L'\0';
|
|
if (colonpos[1] == L':') {
|
|
// Two colons -- interpret as a port number
|
|
if (_stscanf(colonpos + 2, TEXT("%d"), &tmp_port) != 1)
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
// One colon -- interpret as a display number or port number
|
|
if (_stscanf(colonpos + 1, TEXT("%d"), &tmp_port) != 1)
|
|
return false;
|
|
|
|
// RealVNC method - If port < 100 interpret as display number else as Port number
|
|
if (tmp_port < 100)
|
|
tmp_port += RFB_PORT_OFFSET;
|
|
}
|
|
}
|
|
*pport = tmp_port;
|
|
return true;
|
|
}
|
|
|
|
|