/*++ * 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