Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

173 lines
4.7 KiB

  1. /*++
  2. * File name:
  3. * feedback.h
  4. * Contents:
  5. * Common definitions for tclient.dll and clxtshar.dll
  6. *
  7. * Copyright (C) 1998-1999 Microsoft Corp.
  8. --*/
  9. #ifndef _FEEDBACK_H
  10. #define _FEEDBACK_H
  11. #define _HWNDOPT "hSMC="
  12. #define _RECONIDOPT "ReconID="
  13. #define MAX_VCNAME_LEN 8
  14. /*
  15. * Definitions for local execution of smclient and RDP client
  16. */
  17. #define _TSTNAMEOFCLAS "_SmClientClass"
  18. #define WM_FB_TEXTOUT (WM_USER+0) // wPar = ProcId,
  19. // lPar = Share mem handle
  20. // to FEEDBACKINFO
  21. #define WM_FB_DISCONNECT (WM_USER+1) // wPar = uResult, lPar = ProcId
  22. #define WM_FB_ACCEPTME (WM_USER+2) // wPar = 0, lPar = ProcId
  23. #define WM_FB_END (WM_USER+3) // tclient's internal
  24. #define WM_FB_CONNECT (WM_USER+5) // wPar = hwndMain,
  25. // lPar = ProcId
  26. #define WM_FB_LOGON (WM_USER+6) // wPar = session ID
  27. // lPar = ProcId
  28. #ifdef OS_WIN32
  29. #define WM_FB_BITMAP WM_FB_GLYPHOUT
  30. #define WM_FB_GLYPHOUT (WM_USER+4) // wPar = ProcId,
  31. // lPar = (HANDLE)BMPFEEDBACK
  32. typedef struct _FEEDBACKINFO {
  33. DWORD dwProcessId;
  34. DWORD strsize;
  35. WCHAR string[1024];
  36. WCHAR align;
  37. } FEEDBACKINFO, *PFEEDBACKINFO;
  38. typedef struct _BMPFEEDBACK {
  39. LONG_PTR lProcessId;
  40. UINT bmpsize;
  41. UINT bmiSize;
  42. UINT xSize;
  43. UINT ySize;
  44. BITMAPINFO BitmapInfo;
  45. } BMPFEEDBACK, *PBMPFEEDBACK;
  46. #endif // OS_WIN32
  47. /*
  48. * Definitons for RCLX (remote execution of clx)
  49. * both WIN32 and WIN16
  50. */
  51. #define RCLX_DEFAULT_PORT 12344
  52. #define WM_WSOCK (WM_USER + 0x20) // used for winsock
  53. // notifications
  54. #ifdef _WIN64
  55. typedef unsigned short UINT16;
  56. #else // !_WIN64
  57. #ifdef OS_WIN32
  58. typedef unsigned int UINT32;
  59. typedef unsigned short UINT16;
  60. #endif // OS_WIN32
  61. #ifdef OS_WIN16
  62. typedef unsigned long UINT32;
  63. typedef unsigned int UINT16;
  64. #endif
  65. #endif // _WIN64
  66. // Feedback types. Send from clxtshar.dll to tclient.dll
  67. //
  68. enum {FEED_BITMAP, // bitmap/glyph data
  69. FEED_TEXTOUT, // unicode string
  70. FEED_TEXTOUTA, // ansi string (unused)
  71. FEED_CONNECT, // event connected
  72. FEED_DISCONNECT, // event disconnected
  73. FEED_CLIPBOARD, // clipboard data (RCLX)
  74. FEED_LOGON, // logon event (+ session id)
  75. FEED_CLIENTINFO, // client info (RCLX)
  76. FEED_WILLCALLAGAIN, // rclx.exe will start a client, which will call
  77. // us again
  78. FEED_DATA // response to requested data (RCLX)
  79. } FEEDBACK_TYPE;
  80. typedef struct _RCLXFEEDPROLOG {
  81. UINT32 FeedType;
  82. UINT32 HeadSize;
  83. UINT32 TailSize;
  84. } RCLXFEEDPROLOG, *PRCLXFEEDPROLOG;
  85. typedef struct _RCLXTEXTFEED {
  86. UINT32 strsize;
  87. } RCLXTEXTFEED, *PRCLXTEXTFEED;
  88. typedef struct _RCLXBITMAPFEED {
  89. UINT32 bmpsize;
  90. UINT32 bmisize;
  91. UINT32 xSize;
  92. UINT32 ySize;
  93. BITMAPINFO BitmapInfo;
  94. } RCLXBITMAPFEED, *PRCLXBITMAPFEED;
  95. typedef struct _RCLXCLIPBOARDFEED {
  96. UINT32 uiFormat; // Clipboard is send from the client
  97. UINT32 nClipBoardSize; // system to tclient.dll
  98. } RCLXCLIPBOARDFEED, *PRCLXCLIPBOARDFEED;
  99. typedef struct _RCLXCLIENTINFOFEED {
  100. UINT32 nReconnectAct;
  101. UINT32 ReconnectID;
  102. CHAR szClientInfo[128];
  103. } RCLXCLIENTINFOFEED, *PRCLXCLIENTINFOFEED;
  104. //Requests. Send from tclient.dll to clxtshar.dll
  105. enum {REQ_MESSAGE,
  106. REQ_CONNECTINFO,
  107. REQ_GETCLIPBOARD,
  108. REQ_SETCLIPBOARD,
  109. REQ_DATA
  110. } REQUEST_TYPE;
  111. typedef struct _RCLXREQPROLOG {
  112. UINT32 ReqType;
  113. UINT32 ReqSize;
  114. } RCLXREQPROLOG, *PRCLXREQPROLOG;
  115. typedef struct _RCLXMSG {
  116. UINT32 message;
  117. UINT32 wParam;
  118. UINT32 lParam;
  119. } RCLXMSG, *PRCLXMSG;
  120. typedef struct _RCLXCONNECTINFO {
  121. UINT32 YourID;
  122. UINT32 xResolution;
  123. UINT32 yResolution;
  124. UINT32 bLowSpeed;
  125. UINT32 bPersistentCache;
  126. CHAR szHydraServer[32];
  127. } RCLXCONNECTINFO, *PRCLXCONNECTINFO;
  128. typedef struct _RCLXCLIPBOARD { // Request for retrieve/setting the clipboard
  129. UINT32 uiFormat; // from the client system
  130. BYTE pNewClipboard[0]; // used in REQ_SETCLIPBOARD, otherwise 0 len
  131. } RCLXCLIPBOARD, *PRCLXCLIPBOARD;
  132. typedef struct _RCLXDATA {
  133. UINT32 uiType;
  134. UINT32 uiSize;
  135. BYTE Data[0];
  136. } RCLXDATA, *PRCLXDATA;
  137. enum { // these identify RCLX_DATA
  138. DATA_BITMAP,
  139. DATA_VC
  140. };
  141. typedef struct _REQBITMAP {
  142. UINT32 left, top, right, bottom;
  143. } REQBITMAP, *PREQBITMAP;
  144. #endif // _FEEDBACK_H