RCAHelper.h
上传用户:hyz2004817
上传日期:2022-03-30
资源大小:226k
文件大小:3k
- #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