📄 rcahelper.h
字号:
#include "stdafx.h"
#ifndef _RCAHELPER_H_
#define _RCAHELPER_H_
//////////////////////////////////////////
//
// 发送数据帮助函数, IO 模型为 event select
//
// 在调用函数前 SOCKET s 必须被置为异步模式,
// 并且用带有 FD_WRITE 事件通知的标志对其调用了 WSAEventSelect 函数
//
BOOL
WINAPI RCASend_EventSelectIO(
SOCKET s,
HANDLE hEventArray[2],
char * buf,
int len
);
#define RCARECV_WAIT_TIMEOUT 1
#define RCARECV_WAIT_MSGRETURN 2
#define RCARECV_SOCKET_ERROR 3
#define RCARECV_SUCCEEDED 4
#define RCARECV_FAILED 5
#define RCARECV_REMOTECOSED 6
#define RCARECV_WAIT_FAILED 7
////////////////////////////////////////
//
// 接收数据帮助函数, IO 模型为 Async Event
//
// 在调用函数前 SOCKET s 必须被置为异步模式,
// 并且用带有 FD_READ 事件通知的标志对其调用了 WSAEventSelect 函数
//
extern "C"
BOOL
WINAPI RCARecv_EventSelectIO(
SOCKET s,
HANDLE hEventArray[2],
char * buf, // 接收缓冲区 . 若成功
int len //
);
///////////////////////////////////////////
//
// 获得整个屏幕的象素信息
//
// 参数:
//
// pbmi[in,out] -- BITMAPINFO 结构指针, 函数成功调用后会填充这个结构,这个结构反映了象素信息
//
// x, y, w, h; 矩形的左上角座标, 以及宽高. 如果这些参数不合法,将被修整为合法参数
//
// pBits[in,out] -- void 指针, 函数调用成功后,pBits 将被象素值填充. 如果 pBits 为NULL,
// 函数将修改 dwBufferSize 参数, 指明需要多少缓冲存放象素值
//
// dwBufferSize -- [in, out] 指明 pBits 的大小. 如果函数成功调用后, dwBufferSize 将会被修改,
// 指明实际拷贝的象素字节数
// 返回值:
// BOOL 类型, 函数调用成功后, 将返回 TRUE; 失败,将返回 FALSE;
//
extern "C"
HBITMAP
WINAPI GetDCPixel_BMP (
HDC hdc,
int x,
int y,
int w,
int h,
int zw, // 缩放控制, 0 为不缩放
int zh, // 缩放控制, 0 为不缩放
WORD wBitCount,
VOID ** pBits,
BITMAPINFOHEADER * pbmih, // 当色深为 8 时, 包含颜色表
DWORD * pdwBitmapInfoSize
);
////////////////////////////////////////////////
////
//
// 从一个 JPEG 格式的像素缓冲区解码,
// 解码后的像素格式为 WINDOWS DIB 格式
//
// 存放 WINDOWS DIB 格式的像素缓冲区由此函数分配,
// 释放交由调用者. 必须用 delete[] 释放
//
extern "C"
BOOL
WINAPI
DecodeFromJPEGBuffer(
BYTE * lpJpgBuffer,
DWORD dwJpgBufferSize,
BYTE** lppRgbBuffer,
DWORD* lpdwWidth,
DWORD* lpdwHeight,
DWORD* lpdwNumberOfChannels
);
////////////////////////////////////////////////
//
// 从一个 WINDOWS DIB 格式的像素缓冲区编码到一个 JPEG 格式的像素缓冲区
//
// 存放 JPEG 格式的像素缓冲区由此函数分配
// 释放交由调用者, 必须用 delete[] 释放
extern "C"
BOOL
WINAPI
EncodeToJPEGBuffer(
BYTE* lpRgbBuffer,
DWORD dwWidth,
DWORD dwHeight,
BYTE** lppJpgBuffer,
DWORD* lpdwJpgBufferSize,
int iQuality // JPEG 图象质量
);
/////////////////////////////////////////////////////
//
// 初始化一个应答头, dwTotalBytes 被初始化为 sizeof(RCARESPONSEHEADER)
//
extern "C"
VOID
WINAPI InitResponseHead(
PRCARESPONSEHEADER prresh,
DWORD dwStatusCode,
DWORD dwSize
);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -