vncservice.h
4.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// Copyright (C) 2002 RealVNC Ltd. 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.
// vncService
// SERVICE-MODE CODE
// This class provides access to service-oriented routines, under both
// Windows NT and Windows 95. Some routines only operate under one
// OS, others operate under any OS.
class vncService;
#if (!defined(_WINVNC_VNCSERVICE))
#define _WINVNC_VNCSERVICE
#include "stdhdrs.h"
BOOL PostToWinVNC(UINT message, WPARAM wParam, LPARAM lParam);
// The NT-specific code wrapper class
class vncService
{
public:
vncService();
// SERVICE INSTALL & START FUNCTIONS
// Routine called by WinMain to cause WinVNC to be installed
// as a service.
// static int WinVNCServiceMain();
// Routine to install the WinVNC service on the local machine
// static int InstallService(BOOL silent=0);
// static int ReinstallService();
// Routine to remove the WinVNC service from the local machine
// static int RemoveService(BOOL silent=0);
// SERVICE SUPPORT FUNCTIONS
// Routine to establish and return the currently logged in user name
static BOOL CurrentUser(char *buffer, UINT size);
// Routine to post a message to the currently running WinVNC server
// to pass it a handle to the current user
static BOOL PostUserHelperMessage();
// Routine to process a user helper message
static BOOL ProcessUserHelperMessage(WPARAM wParam, LPARAM lParam);
// Routines to establish which OS we're running on
static BOOL IsWin95();
static BOOL IsWinNT();
static DWORD VersionMajor();
static DWORD VersionMinor();
// Routine to establish whether the current instance is running
// as a service or not
static BOOL RunningAsService();
// Routine to kill any other running copy of WinVNC
static BOOL KillRunningCopy();
// Routine to set the current thread into the given desktop
static BOOL SelectHDESK(HDESK newdesktop);
// Routine to set the current thread into the named desktop,
// or the input desktop if no name is given
static BOOL SelectDesktop(char *name);
// Routine to switch the service process across to the currently
// visible Window Station and back to its home window station again
static BOOL SelectInputWinStation();
static void SelectHomeWinStation();
// Routine to establish whether the current thread desktop is the
// current user input one
static BOOL InputDesktopSelected();
// Routine to fake a CtrlAltDel to winlogon when required.
// *** This is a nasty little hack...
static BOOL SimulateCtrlAltDel();
// Routine to lock the workstation. Returns TRUE if successful.
// Main cause of failure will be when locking is not supported
static BOOL LockWorkstation();
// Routine to make any currently running version of WinVNC show its
// Properties dialog, to allow the user to make changes to their settings
static BOOL ShowProperties();
// Routine to make any currently running version of WinVNC show the
// Properties dialog for the default settings, so the user can make changes
static BOOL ShowDefaultProperties();
// Routine to make the an already running copy of WinVNC bring up its
// About box so you can check the version!
static BOOL ShowAboutBox();
// Routine to make an already running copy of WinVNC form an outgoing
// connection to a new VNC client
static BOOL PostAddNewClient(unsigned long ipaddress, unsigned short port);
//FAST USER SWITCH TEST
static void Set_SessionStatus(DWORD status);
static DWORD Get_SessionStatus();
static void Set_Fus(BOOL status);
static BOOL Get_Fus();
static void Start_new_instance();
};
#endif