windows-nt/Source/XPSP1/NT/termsrv/reskit/smc/tclient/lib/feedback.h
2020-09-26 16:20:57 +08:00

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