174 lines
4.7 KiB
C
174 lines
4.7 KiB
C
/*++
|
|
* File name:
|
|
* feedback.h
|
|
* Contents:
|
|
* Common definitions for tclient.dll and clxtshar.dll
|
|
*
|
|
* Copyright (C) 1998-1999 Microsoft Corp.
|
|
--*/
|
|
|
|
#ifndef _FEEDBACK_H
|
|
#define _FEEDBACK_H
|
|
|
|
#define _HWNDOPT "hSMC="
|
|
#define _RECONIDOPT "ReconID="
|
|
|
|
#define MAX_VCNAME_LEN 8
|
|
|
|
/*
|
|
* Definitions for local execution of smclient and RDP client
|
|
*/
|
|
|
|
#define _TSTNAMEOFCLAS "_SmClientClass"
|
|
|
|
#define WM_FB_TEXTOUT (WM_USER+0) // wPar = ProcId,
|
|
// lPar = Share mem handle
|
|
// to FEEDBACKINFO
|
|
#define WM_FB_DISCONNECT (WM_USER+1) // wPar = uResult, lPar = ProcId
|
|
#define WM_FB_ACCEPTME (WM_USER+2) // wPar = 0, lPar = ProcId
|
|
#define WM_FB_END (WM_USER+3) // tclient's internal
|
|
#define WM_FB_CONNECT (WM_USER+5) // wPar = hwndMain,
|
|
// lPar = ProcId
|
|
#define WM_FB_LOGON (WM_USER+6) // wPar = session ID
|
|
// lPar = ProcId
|
|
|
|
#ifdef OS_WIN32
|
|
|
|
#define WM_FB_BITMAP WM_FB_GLYPHOUT
|
|
#define WM_FB_GLYPHOUT (WM_USER+4) // wPar = ProcId,
|
|
// lPar = (HANDLE)BMPFEEDBACK
|
|
|
|
typedef struct _FEEDBACKINFO {
|
|
DWORD dwProcessId;
|
|
DWORD strsize;
|
|
WCHAR string[1024];
|
|
WCHAR align;
|
|
} FEEDBACKINFO, *PFEEDBACKINFO;
|
|
|
|
typedef struct _BMPFEEDBACK {
|
|
LONG_PTR lProcessId;
|
|
UINT bmpsize;
|
|
UINT bmiSize;
|
|
UINT xSize;
|
|
UINT ySize;
|
|
BITMAPINFO BitmapInfo;
|
|
} BMPFEEDBACK, *PBMPFEEDBACK;
|
|
#endif // OS_WIN32
|
|
|
|
/*
|
|
* Definitons for RCLX (remote execution of clx)
|
|
* both WIN32 and WIN16
|
|
*/
|
|
|
|
#define RCLX_DEFAULT_PORT 12344
|
|
|
|
#define WM_WSOCK (WM_USER + 0x20) // used for winsock
|
|
// notifications
|
|
|
|
#ifdef _WIN64
|
|
typedef unsigned short UINT16;
|
|
#else // !_WIN64
|
|
#ifdef OS_WIN32
|
|
typedef unsigned int UINT32;
|
|
typedef unsigned short UINT16;
|
|
#endif // OS_WIN32
|
|
#ifdef OS_WIN16
|
|
typedef unsigned long UINT32;
|
|
typedef unsigned int UINT16;
|
|
#endif
|
|
#endif // _WIN64
|
|
|
|
// Feedback types. Send from clxtshar.dll to tclient.dll
|
|
//
|
|
enum {FEED_BITMAP, // bitmap/glyph data
|
|
FEED_TEXTOUT, // unicode string
|
|
FEED_TEXTOUTA, // ansi string (unused)
|
|
FEED_CONNECT, // event connected
|
|
FEED_DISCONNECT, // event disconnected
|
|
FEED_CLIPBOARD, // clipboard data (RCLX)
|
|
FEED_LOGON, // logon event (+ session id)
|
|
FEED_CLIENTINFO, // client info (RCLX)
|
|
FEED_WILLCALLAGAIN, // rclx.exe will start a client, which will call
|
|
// us again
|
|
FEED_DATA // response to requested data (RCLX)
|
|
} FEEDBACK_TYPE;
|
|
|
|
typedef struct _RCLXFEEDPROLOG {
|
|
UINT32 FeedType;
|
|
UINT32 HeadSize;
|
|
UINT32 TailSize;
|
|
} RCLXFEEDPROLOG, *PRCLXFEEDPROLOG;
|
|
|
|
typedef struct _RCLXTEXTFEED {
|
|
UINT32 strsize;
|
|
} RCLXTEXTFEED, *PRCLXTEXTFEED;
|
|
|
|
typedef struct _RCLXBITMAPFEED {
|
|
UINT32 bmpsize;
|
|
UINT32 bmisize;
|
|
UINT32 xSize;
|
|
UINT32 ySize;
|
|
BITMAPINFO BitmapInfo;
|
|
} RCLXBITMAPFEED, *PRCLXBITMAPFEED;
|
|
|
|
typedef struct _RCLXCLIPBOARDFEED {
|
|
UINT32 uiFormat; // Clipboard is send from the client
|
|
UINT32 nClipBoardSize; // system to tclient.dll
|
|
} RCLXCLIPBOARDFEED, *PRCLXCLIPBOARDFEED;
|
|
|
|
typedef struct _RCLXCLIENTINFOFEED {
|
|
UINT32 nReconnectAct;
|
|
UINT32 ReconnectID;
|
|
CHAR szClientInfo[128];
|
|
} RCLXCLIENTINFOFEED, *PRCLXCLIENTINFOFEED;
|
|
|
|
//Requests. Send from tclient.dll to clxtshar.dll
|
|
enum {REQ_MESSAGE,
|
|
REQ_CONNECTINFO,
|
|
REQ_GETCLIPBOARD,
|
|
REQ_SETCLIPBOARD,
|
|
REQ_DATA
|
|
} REQUEST_TYPE;
|
|
|
|
typedef struct _RCLXREQPROLOG {
|
|
UINT32 ReqType;
|
|
UINT32 ReqSize;
|
|
} RCLXREQPROLOG, *PRCLXREQPROLOG;
|
|
|
|
typedef struct _RCLXMSG {
|
|
UINT32 message;
|
|
UINT32 wParam;
|
|
UINT32 lParam;
|
|
} RCLXMSG, *PRCLXMSG;
|
|
|
|
typedef struct _RCLXCONNECTINFO {
|
|
UINT32 YourID;
|
|
UINT32 xResolution;
|
|
UINT32 yResolution;
|
|
UINT32 bLowSpeed;
|
|
UINT32 bPersistentCache;
|
|
CHAR szHydraServer[32];
|
|
} RCLXCONNECTINFO, *PRCLXCONNECTINFO;
|
|
|
|
typedef struct _RCLXCLIPBOARD { // Request for retrieve/setting the clipboard
|
|
UINT32 uiFormat; // from the client system
|
|
BYTE pNewClipboard[0]; // used in REQ_SETCLIPBOARD, otherwise 0 len
|
|
} RCLXCLIPBOARD, *PRCLXCLIPBOARD;
|
|
|
|
typedef struct _RCLXDATA {
|
|
UINT32 uiType;
|
|
UINT32 uiSize;
|
|
BYTE Data[0];
|
|
} RCLXDATA, *PRCLXDATA;
|
|
|
|
enum { // these identify RCLX_DATA
|
|
DATA_BITMAP,
|
|
DATA_VC
|
|
};
|
|
|
|
typedef struct _REQBITMAP {
|
|
UINT32 left, top, right, bottom;
|
|
} REQBITMAP, *PREQBITMAP;
|
|
|
|
#endif // _FEEDBACK_H
|