⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vncconndialog.cpp

📁 realvnc是一个非常流行的远程控制程序
💻 CPP
字号:
//  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.// vncConnDialog.cpp: implementation of the vncConnDialog class, used// to forge outgoing connections to VNC-viewer #include "stdhdrs.h"#include "vncConnDialog.h"#include "WinVNC.h"#include "resource.h"// ConstructorvncConnDialog::vncConnDialog(vncServer *server){	m_server = server;}// DestructorvncConnDialog::~vncConnDialog(){}// Routine called to activate the dialog and, once it's done, delete itvoid vncConnDialog::DoDialog(){	DialogBoxParam(hAppInstance, MAKEINTRESOURCE(IDD_OUTGOING_CONN), 		NULL, (DLGPROC) vncConnDlgProc, (LONG) this);	delete this;}// Callback function - handles messages sent to the dialog boxBOOL CALLBACK vncConnDialog::vncConnDlgProc(HWND hwnd,											UINT uMsg,											WPARAM wParam,											LPARAM lParam) {	// This is a static method, so we don't know which instantiation we're 	// dealing with. But we can get a pseudo-this from the parameter to 	// WM_INITDIALOG, which we therafter store with the window and retrieve	// as follows:	vncConnDialog *_this = (vncConnDialog *) GetWindowLong(hwnd, GWL_USERDATA);	switch (uMsg) {		// Dialog has just been created	case WM_INITDIALOG:		{			// Save the lParam into our user data so that subsequent calls have			// access to the parent C++ object      SetWindowLong(hwnd, GWL_USERDATA, lParam);      vncConnDialog *_this = (vncConnDialog *) lParam;                // Make the text entry box active      SetFocus(GetDlgItem(hwnd, IDC_HOSTNAME_EDIT));      // Return success!			return TRUE;		}		// Dialog has just received a command	case WM_COMMAND:		switch (LOWORD(wParam)) {			// User clicked OK or pressed return		case IDOK:      {        char viewer[256];			  char hostname[256];        VCard display_or_port;			  // Get the viewer to connect to			  GetDlgItemText(hwnd, IDC_HOSTNAME_EDIT, viewer, 256);        // Process the supplied viewer address        int result = sscanf(viewer, "%255[^:]:%u", hostname, &display_or_port);        if (result == 1) {          display_or_port = 0;          result = 2;        }        if (result == 2) {          // Correct a display number to a port number if required          if (display_or_port < 100) {            display_or_port += INCOMING_PORT_OFFSET;          }			    // Attempt to create a new socket			    VSocket *tmpsock;			    tmpsock = new VSocket;			    if (!tmpsock)				    return TRUE;			    // Connect out to the specified host on the VNCviewer listen port			    // To be really good, we should allow a display number here but			    // for now we'll just assume we're connecting to display zero			    tmpsock->Create();			    if (tmpsock->Connect(hostname, display_or_port)) {				    // Add the new client to this server				    _this->m_server->AddClient(tmpsock, TRUE, TRUE);				    // And close the dialog            EndDialog(hwnd, TRUE);			    } else {				    // Print up an error message				    MessageBox(NULL,                         "Failed to connect to listening VNC viewer",                        "Outgoing Connection",					    MB_OK | MB_ICONEXCLAMATION );				    delete tmpsock;			    }        } else {          // We couldn't process the machine specification          MessageBox(NULL, "Unable to process specified hostname and display/port",            "Outgoing Connection", MB_OK | MB_ICONEXCLAMATION);        }      }			return TRUE;			// Cancel the dialog		case IDCANCEL:			EndDialog(hwnd, FALSE);			return TRUE;		};		break;	case WM_DESTROY:		EndDialog(hwnd, FALSE);		return TRUE;	}	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -