📄 id_handler.h
字号:
#include "stdafx.h"
#include "RCPServer.h"
#ifndef _ID_HANDLER_H_
#define _ID_HANDLER_H_
// these uses to the dwImageFormat member of RCAGETSCREENDATA struct
#define IMAGE_FORMAT_BMP 1
#define IMAGE_FORMAT_JPEG 2
#define IMAGE_FORMAT_JPE IMAGE_FORMAT_JPEG
#define IMAGE_FORMAT_JPG IMAGE_FORMAT_JPEG
#define IMAGE_FORMAT_GIF 3
///////////////////////////////////////
//
//
// 描述 : 请求服务器传送屏幕图像. 这个数据结构 大小为 40 字节.
// 0x20 子协议要求的附带数据为 40 字节, 接收完这 40 字节后
// 可以将这40 字节强制转换成 RCAGETSCREENDATA 结构
//
//
//
//
typedef struct _RCAGetImageData{
int x; // 截屏矩形的左上角的 x 座标
int y; // 截屏矩形的左上角的 y 座标
int w; // 截屏矩形的宽
int h; // 截屏矩形的高
int zw; // 返回图象的缩放, 若为0, 则不缩放.
int zh; // 返回图象的缩放, 若为0, 则不缩放.
int iBitCount; // 要求的位深, 可以是以下一个值 8, 16, 24, 32
DWORD dwImageFormat; // 图象格式标记
DWORD dwFlagEx1; // 保留给特定格式使用
DWORD dwFlagEx2; // 保留给特定格式使用
DWORD dwFlagEx3; // 保留给特定格式使用
DWORD dwFlagEx4; // 保留给特定格式使用
} RCAGETIMAGEDATA, *PRCAGETIMAGEDATA;
// 与 WINDOWS MOUSEINPUT 结构兼容
typedef struct RCAMouseInput {
LONG dx;
LONG dy;
DWORD mouseData;
DWORD dwFlags;
DWORD time;
ULONG_PTR dwExtraInfo;
} RCAMOUSEINPUT, *PRCAMOUSEINPUT;
// 与 WINDOWS KEYBDINPUT 结构兼容
typedef struct RCAKeybdInput{
WORD wVk;
WORD wScan;
DWORD dwFlags;
DWORD time;
ULONG_PTR dwExtraInfo;
} RCAKEYBDINPUT, *PRCAKEYBDINPUT;
// 定义一个信息结构. 在子协议 0x110 中使用
//
typedef struct RCAComputerInfo {
CHAR pszOS[6]; // WIN95 / WIN98 / WINNT / WIN2K / WINXP
MEMORYSTATUS memoryStatus; // 由 GlobalMemoryStatus 函数获得
DWORD dwScreenWidth; // 当前显示分辨率的宽
DWORD dwScreenHeight; // ................高
DWORD dwScreenBitCount; // ................位深
} RCACOMPUTERINFO, *PRCACOMPUTERINFO;
//////////////////////////////////////////////////////////////////
//////////////////// 函数 函数 函数 函数//////////////////////////
//////////////////////////////////////////////////////////////////
/////////////////////////////////
//
// ID 号: 0x10
//
// 描述 : 通过调用 ShellExecute 创建一个进程
//
// 实现文件: 0X10.cpp
//
extern "C"
BOOL WINAPI RCAID_0X10_HANDLER(
SOCKET s,
RCAREQUESTHANDLEDATA * pData,
RCAREQUESTHEADER * pRCAHead,
HANDLE hEventArray[2]
);
/////////////////////////////////////////////////////////////////////
//
// ID 号: 0x20
//
// 描述 : 请求服务器传送系统的屏幕图象, 传送完后, 服务器会释放所有资源,
// 而不保持连接, 以备接受下一次的请求. 若要保持连接, 用另一子协议
//
// 实现文件: 0X20.cpp
//
extern "C"
BOOL WINAPI RCAID_0X20_HANDLER(
SOCKET s,
RCAREQUESTHANDLEDATA * pData,
RCAREQUESTHEADER * pRCAHead,
HANDLE hEventArray[2]
);
///////////////////////////////////////////////////
//
//
// ID 号: 0x40
//
// 描述: 请求服务器执行指定的鼠标输入操作
//
// 实现文件: 0X40.cpp
//
extern "C"
BOOL WINAPI
RCAID_0X40_HANDLER(
SOCKET s,
RCAREQUESTHANDLEDATA * pData,
RCAREQUESTHEADER * pRCAHead,
HANDLE hEventArray[2]
);
///////////////////////////////////////////////////
//
// ID 号: 0x41
//
// 描述: 请求服务器执行指定的键盘输入操作
//
// 实现文件: 0x41.cpp
//
extern "C"
BOOL WINAPI
RCAID_0X41_HANDLER(
SOCKET s,
RCAREQUESTHANDLEDATA * pData,
RCAREQUESTHEADER * pRCAHead,
HANDLE hEventArray[2]
);
///////////////////////////////////////////////
//
// 获取远程计算机的信息
//
//
extern "C"
BOOL
WINAPI
RCAID_0X110_HANDLER(
SOCKET s,
RCAREQUESTHANDLEDATA * pData,
RCAREQUESTHEADER * pRCAHead,
HANDLE hEventArray[2]
);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -