1 |
// |
2 |
// Copyright (C) 2004-2005 Martin Wickett |
3 |
// |
4 |
|
5 |
#define VER_FILETYPE VFT_DLL |
6 |
#define VER_FILESUBTYPE VFT2_UNKNOWN |
7 |
#define VER_FILEDESCRIPTION_STR "Virtual Channel sample DLL" |
8 |
#define VER_INTERNALNAME_STR "sysinf_c.dll" |
9 |
#define VER_ORIGINALFILENAME_STR "sysinf_c.dll" |
10 |
|
11 |
#define STRICT |
12 |
#define _ |
13 |
|
14 |
#include <windows.h> |
15 |
#include <ntverp.h> |
16 |
#include "common.ver" |
17 |
|
18 |
#include <windows.h> |
19 |
#include <stdio.h> |
20 |
#include <wtsapi32.h> |
21 |
#include <tchar.h> |
22 |
#include <lmcons.h> |
23 |
|
24 |
#ifdef TSDLL |
25 |
|
26 |
#include <pchannel.h> |
27 |
#include <cchannel.h> |
28 |
|
29 |
#include <windows.h> |
30 |
#include <winuser.h> |
31 |
|
32 |
#endif |
33 |
|
34 |
#include "hash.h" |
35 |
#include "tokenizer.h" |
36 |
#include "WindowData.h" |
37 |
|
38 |
// |
39 |
// definitions |
40 |
// |
41 |
#define CHANNELNAME "seamrdp" |
42 |
|
43 |
// |
44 |
// GLOBAL variables |
45 |
// |
46 |
|
47 |
LPHANDLE gphChannel; |
48 |
DWORD gdwOpenChannel; |
49 |
PCHANNEL_ENTRY_POINTS gpEntryPoints; |
50 |
|
51 |
hash_table m_ht; |
52 |
HRGN m_regionResult; |
53 |
HWND m_mainWindowHandle = NULL; |
54 |
int classAlreadyRegistered = 0; |
55 |
|
56 |
int const ALWAYS__CLIP = 0; //set this to 0 to turn off clipping when there are no windows |
57 |
int const HIDE_TSAC_WINDOW = 1; |
58 |
int const OUTPUT_DEBUG_INFO = 0; |
59 |
int const OUTPUT_WINDOW_TABLE_DEBUG_INFO = 0; |
60 |
|
61 |
// |
62 |
// declarations |
63 |
// |
64 |
void WINAPI VirtualChannelOpenEvent( DWORD openHandle, UINT event, |
65 |
LPVOID pdata, UINT32 dataLength, |
66 |
UINT32 totalLength, UINT32 dataFlags ); |
67 |
VOID VCAPITYPE VirtualChannelInitEventProc( LPVOID pInitHandle, UINT event, |
68 |
LPVOID pData, UINT dataLength ); |
69 |
BOOL VCAPITYPE VirtualChannelEntry( PCHANNEL_ENTRY_POINTS pEntryPoints ); |
70 |
|
71 |
void DoClipping( int forceRedraw ); |
72 |
void CreateRegionFromWindowData( char *, void * ); |
73 |
|
74 |
void CreateAndShowWindow( CWindowData * wd ); |
75 |
void DestroyTaskbarWindow( CWindowData * wd ); |