API 的 BOOL返回值

本文探讨了WinCE5环境下GetExitCodeProcess函数的返回值问题,指出其返回值可能并非传统的1,而是较大且不固定的数值。尽管GetLastError返回0,但获取到的退出代码却是正确的。文章还讨论了该现象是否意味着应信任LastError,并引用MSDN文档进行解释。

今天注意到 

WinCE 5

中 GetExitCodeProcess函数 成功的返回值 不是 1。

它可以返回一个"很大"的数,还不是固定的。

但是GetLastError是0。

取得的退出编号也是对的。

 

这是应该相信LastError吗?

 

根据msdn

应该FALSE != GetExitCodeProcess(...)。

估计返回值是系统保留的。

包含一些内部信息。

 

 

#ifndef __TanhoCam_h__ #define __TanhoCam_h__ #include <iostream> #include <algorithm> #include <vector> #ifdef _WINDLL #define TANHOCAM_API extern _declspec(dllexport) #else #define TANHOCAM_API extern _declspec(dllimport) #endif #define THCAMTW640T2 0x00010002 #define THCAMTW64015 0x00020009 #define THCAMKM64015 0x00030003 #define THCAMKM640HS 0x00040001 #define THCAMSW1300 0x0005000A #define THCAMSW330 0x0006000A #define THCAMAS1450 0x0007000A #define TANHO_BINNING_1X1 0x00000001 #define TANHO_BINNING_1X2 0x00000002 #define TANHO_BINNING_1X4 0x00000004 #define TANHO_BINNING_2X1 0x00000008 #define TANHO_BINNING_2X2 0x00000010 #define TANHO_BINNING_2X4 0x00000020 #define TANHO_BINNING_4X1 0x00000040 #define TANHO_BINNING_4X2 0x00000080 #define TANHO_BINNING_4X4 0x00000100 #define TANHOCAM_DRIVER_MAXPATH 256 extern "C" { typedef struct { char driverName[256]; /* drivers name */ char driverId[256]; /* unique and opaque id of a connected camera, for Toupcam_Open */ } TanhoCamDriver; TANHOCAM_API int TanhoCam_EnumDrivers(TanhoCamDriver drvList[TANHOCAM_DRIVER_MAXPATH]); TANHOCAM_API void TanhoCam_OpenDriver(wchar_t *nID); TANHOCAM_API int TanhoCam_CloseDriver(); TANHOCAM_API int TanhoCam_DriverStart(); TANHOCAM_API int TanhoCam_DriverStop(); TANHOCAM_API bool TanhoCam_DriverInit(unsigned int CAMERA_TYPE); TANHOCAM_API bool TanhoCam_DriverUninit();//这个没做 TANHOCAM_API unsigned char * TanhoCam_GetFrameData(); TANHOCAM_API int TanhoCam_ExecuteCmd(DWORD cmd, char* buf_data = nullptr, DWORD size = 32, char*LoadDataBuf = nullptr, DWORD LoadDataSize = 512); TANHOCAM_API bool TanhoCam_ReturnFpsInf(float &fps); TANHOCAM_API bool TanhoCam_SendFps(float fps); TANHOCAM_API bool TanhoCam_ReturnMinFpsInf(float &minFps); TANHOCAM_API bool TanhoCam_ReturnMaxFpsInf(float &maxFps); TANHOCAM_API bool TanhoCam_ReturnExposureInf(float &expTimeUs); TANHOCAM_API bool TanhoCam_SendExposure(float expTimeUs); TANHOCAM_API bool TanhoCam_ReturnMinExposureInf(float &minExpTimeUs); TANHOCAM_API bool TanhoCam_ReturnMaxExposureInf(float &maxExpTimeUs); TANHOCAM_API bool TanhoCam_ReturnTriggerInf(bool &InTrgEnable); TANHOCAM_API bool TanhoCam_SendTrigger(bool InTrgEnable); TANHOCAM_API bool TanhoCam_ReturnWinWidthInf(unsigned int &winWidth); TANHOCAM_API bool TanhoCam_ReturnWinHeightInf(unsigned int &winHeight); TANHOCAM_API bool TanhoCam_ReturnGainInf(unsigned int &gain); TANHOCAM_API bool TanhoCam_SendGain(unsigned int gain); TANHOCAM_API bool TanhoCam_ReturnMinGainInf(unsigned int &minGain); TANHOCAM_API bool TanhoCam_ReturnMaxGainInf(unsigned int &maxGain); TANHOCAM_API bool TanhoCam_ReturnRoiInf(unsigned int &winLeft, unsigned int &winTop, unsigned int &winWidth, unsigned int &winHeight); TANHOCAM_API bool TanhoCam_SendRoi(unsigned int winLeft, unsigned int winTop, unsigned int winWidth, unsigned int winHeight); TANHOCAM_API bool TanhoCam_ReturnNucInf(bool &nucEnable); TANHOCAM_API bool TanhoCam_SendNuc(bool nucEnable); TANHOCAM_API bool TanhoCam_ReturnBinningSizeInf(unsigned int &binningSize); TANHOCAM_API bool TanhoCam_SendBinningSize(unsigned int binningSize); TANHOCAM_API bool TanhoCam_ReturnBinningModeInf(bool &binningAvg); TANHOCAM_API bool TanhoCam_SendBinningMode(bool binningAvg); TANHOCAM_API bool TanhoCam_ReturnCamSN(unsigned int &SN); }这是什么意思
03-28
#ifndef _PLAY_H #define _PLAY_H #define PLAY_API __declspec(dllexport) #define CALLMETHOD __stdcall #define CALLBACK __stdcall #ifdef __cplusplus extern "C" { #endif #define FUNC_MAX_PORT 101 //最大播放通道数 //Wave coef range; #define MIN_WAVE_COEF -100 #define MAX_WAVE_COEF 100 //Timer type #define TIMER_1 1 //Only 16 timers for every process.Default TIMER; #define TIMER_2 2 //Not limit;But the precision less than TIMER_1; //缓冲类型 #define BUF_VIDEO_SRC 1 //视频源缓冲 #define BUF_AUDIO_SRC 2 //音频源缓冲 #define BUF_VIDEO_RENDER 3 //解码后视频数据缓冲 #define BUF_AUDIO_RENDER 4 //解码后音频数据缓冲 //错误类型 #define PLAY_NOERROR 0 //没有错误; #define PLAY_PARA_OVER 1 //输入参数非法; #define PLAY_ORDER_ERROR 2 //调用顺序不对; #define PLAY_TIMER_ERROR 3 //多媒体时钟设置失败; #define PLAY_DEC_VIDEO_ERROR 4 //视频解码失败; #define PLAY_DEC_AUDIO_ERROR 5 //音频解码失败; #define PLAY_ALLOC_MEMORY_ERROR 6 //分配内存失败; #define PLAY_OPEN_FILE_ERROR 7 //文件操作失败; #define PLAY_CREATE_OBJ_ERROR 8 //创建线程事件等失败; #define PLAY_CREATE_DDRAW_ERROR 9 //创建directDraw失败; #define PLAY_CREATE_OFFSCREEN_ERROR 10 //创建后端缓存失败; #define PLAY_BUF_OVER 11 //缓冲区满,输入流失败; #define PLAY_CREATE_SOUND_ERROR 12 //创建音频设备失败; #define PLAY_SET_VOLUME_ERROR 13 //设置音量失败; #define PLAY_SUPPORT_FILE_ONLY 14 //只能在播放文件时才能使用此接口; #define PLAY_SUPPORT_STREAM_ONLY 15 //只能在播放流时才能使用此接口; #define PLAY_SYS_NOT_SUPPORT 16 //系统不支持,解码器只能工作在Pentium 3以上; #define PLAY_FILEHEADER_UNKNOWN 17 //没有文件头; #define PLAY_VERSION_INCORRECT 18 //解码器和编码器版本不对应; #define PLAY_INIT_DECODER_ERROR 19 //初始化解码器失败; #define PLAY_CHECK_FILE_ERROR 20 //文件太短或码流无法识别; #define PLAY_INIT_TIMER_ERROR 21 //初始化多媒体时钟失败; #define PLAY_BLT_ERROR 22 //位拷贝失败; #define PLAY_UPDATE_ERROR 23 //显示overlay失败; //Max display regions. #define MAX_DISPLAY_WND 4 //Display type #define DISPLAY_NORMAL 1 #define DISPLAY_QUARTER 2 //Display buffers #define MAX_DIS_FRAMES 50 #define MIN_DIS_FRAMES 6 //chenfeng20090512 -s #define MAX_PLAYING_BUF_NUM (50) #define MIN_PLAYING_BUF_NUM (1) #define DEF_PLAYING_BUF_NUM (3) //chenfeng20090512 -e //Locate by #define BY_FRAMENUM 1 #define BY_FRAMETIME 2 //Source buffer #define SOURCE_BUF_MAX 1024*100000 #define SOURCE_BUF_MIN 1024*50 //Stream type #define STREAME_REALTIME 0 #define STREAME_FILE 1 //frame type #define T_AUDIO16 101 #define T_AUDIO8 100 #define T_CH2_AUDIO16 201 //双声道16位 #define T_CH2_AUDIO8 200 //双声道8位 #define T_UYVY 1 #define T_YV12 3 #define T_RGB32 7 //系统支持的功能,用于按位表示系统功能 #define SUPPORT_DDRAW 1 //支持DIRECTDRAW;如果不支持,则播放器不能工作。 #define SUPPORT_BLT 2 //显卡支持BLT操作;如果不支持,则播放器不能工作 #define SUPPORT_BLTFOURCC 4 //显卡BLT支持颜色转换; #define SUPPORT_BLTSHRINKX 8 //显卡BLT支持X轴缩小; #define SUPPORT_BLTSHRINKY 16 //显卡BLT支持Y轴缩小; #define SUPPORT_BLTSTRETCHX 32 //显卡BLT支持X轴放大; #define SUPPORT_BLTSTRETCHY 64 //显卡BLT支持Y轴放大; #define SUPPORT_SSE 128 //CPU支持SSE指令,Intel Pentium3以上支持SSE指令; #define SUPPORT_MMX 256 //CPU支持MMX指令集。 //Frame position typedef struct{ long nFilePos; long nFrameNum; long nFrameTime; long nErrorFrameNum; SYSTEMTIME *pErrorTime; long nErrorLostFrameNum; long nErrorFrameSize; }FRAME_POS,*PFRAME_POS; //Frame Info typedef struct{ long nWidth; //画面宽,单位像素。如果是音频数据则为0; long nHeight; //画面高。如果是音频数据则为0; long nStamp; //时标信息,单位毫秒。 long nType; //数据类型,T_AUDIO16,T_RGB32, T_YV12,详见宏定义说明。 long nFrameRate; //编码时产生的图像帧率。 }FRAME_INFO; typedef struct { char *pDataBuf; long nSize; long nFrameNum; BOOL bIsAudio; long nReserved; }FRAME_TYPE; //字体类型,目前只支持这些 typedef enum { OSD_TXT_FONT_ARIAL = 1, OSD_TXT_FONT_SERIF, OSD_TXT_FONT_SANS, OSD_TXT_FONT_SIMSUN = 101, // 中文字体,宋体 OSD_TXT_FONT_SIMHEI } DEFAULT_OSD_TXT_FONT; typedef enum { VIDEO_RENDER_DDRAW_OFFSCREEN, VIDEO_RENDER_DDRAW_OVERLAY, VIDEO_RENDER_GDI, VIDEO_RENDER_D3D, VIDEO_RENDER_OPENGL } VIDEO_RENDER_MODE; typedef struct { int pos_x; //相对位置(百分比) int pos_y; COLORREF color; //字体颜色 char text[256]; DEFAULT_OSD_TXT_FONT font_type; int font_size; //以窗口的百分比来表示 HFONT out_ft[16]; //创建的字体对象 int isBold; //是否粗体 int isTransparent; //是否透明底色 COLORREF bkColor; //背景色 } OSD_INFO_TXT; typedef void (CALLBACK* FPDrawFun)(long nPort, HDC hDc, long long nUser, unsigned long seq);//以下为对外接口,供用户作二次开发调用 //以下为对外接口,供用户作二次开发调用 //以下两个是可以不需要调用的接口 PLAY_API BOOL CALLMETHOD VN_PLAY_InitDDraw(HWND hWnd); PLAY_API BOOL CALLMETHOD VN_PLAY_RealeseDDraw(); PLAY_API BOOL CALLMETHOD VN_PLAY_GetPort(LONG* nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_FreePort(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_OpenFile(LONG nPort,LPSTR sFileName); PLAY_API BOOL CALLMETHOD VN_PLAY_CloseFile(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_OpenFileEx(LONG nPort,void *handle); PLAY_API BOOL CALLMETHOD VN_PLAY_CloseFileEx(LONG nPort); //nDisW用于指定缩放后的图像宽度 //nDisH用于指定缩放后的图像高度 //PLAY_API BOOL CALLMETHOD VN_PLAY_Play(LONG nPort, HWND hWnd, int noDisplay=0); PLAY_API BOOL CALLMETHOD VN_PLAY_Play(LONG nPort, HWND hWnd, int noDisplay=0, int nDisW=0, int nDisH=0); PLAY_API BOOL CALLMETHOD VN_PLAY_Stop(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_Pause(LONG nPort,DWORD nPause); PLAY_API BOOL CALLMETHOD VN_PLAY_Fast(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_Slow(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_OneByOne(LONG nPort);//网络回放单帧 PLAY_API BOOL CALLMETHOD VN_PLAY_SetPlayPos(LONG nPort,float fRelativePos); PLAY_API float CALLMETHOD VN_PLAY_GetPlayPos(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_SetFileEndMsg(LONG nPort,HWND hWnd,UINT nMsg); PLAY_API BOOL CALLMETHOD VN_PLAY_SetVolume(LONG nPort,WORD nVolume); PLAY_API BOOL CALLMETHOD VN_PLAY_StopSound(); PLAY_API BOOL CALLMETHOD VN_PLAY_PlaySound(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_OpenStream(LONG nPort,PBYTE pFileHeadBuf,DWORD nSize,DWORD nBufPoolSize); PLAY_API BOOL CALLMETHOD VN_PLAY_InputData(LONG nPort,PBYTE pBuf,DWORD nSize); PLAY_API BOOL CALLMETHOD VN_PLAY_CloseStream(LONG nPort); PLAY_API int CALLMETHOD VN_PLAY_GetCaps(); PLAY_API DWORD CALLMETHOD VN_PLAY_GetFileTime(LONG nPort); PLAY_API DWORD CALLMETHOD VN_PLAY_GetPlayedTime(LONG nPort); PLAY_API DWORD CALLMETHOD VN_PLAY_GetPlayedFrames(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_Back(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_BackOne(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDecCallBack(LONG nPort,void (CALLBACK* DecCBFun)(long nPort,char * pBuf, long nSize,FRAME_INFO * pFrameInfo, long nReserved1,long long nReserved2)); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDisplayCallBack(LONG nPort,void (CALLBACK* DisplayCBFun)(long nPort,char * pBuf,long nSize,long nWidth,long nHeight,long nStamp,long nType,long long nReserved), long long nUser = 0); PLAY_API BOOL CALLMETHOD VN_PLAY_ConvertToBmpFile(char * pBuf,long nSize,long nWidth,long nHeight,long nType, char *sFileName); PLAY_API BOOL CALLMETHOD VN_PLAY_ConvertToBmpFileEx(char * pBuf,long nSize,long nWidth,long nHeight,long nType,void *fp); PLAY_API BOOL CALLMETHOD VN_PLAY_ConvertToJpgFile(char * pBuf,long nSize,long nWidth,long nHeight,long quality, char *fileName); PLAY_API BOOL CALLMETHOD VN_PLAY_ConvertToJpgFileEx(char * pBuf,long nSize,long nWidth,long nHeight,long quality, void *fp); PLAY_API DWORD CALLMETHOD VN_PLAY_GetFileTotalFrames(LONG nPort); PLAY_API DWORD CALLMETHOD VN_PLAY_GetCurrentFrameRate(LONG nPort); PLAY_API DWORD CALLMETHOD VN_PLAY_GetCurrentBitRate(LONG nPort); PLAY_API DWORD CALLMETHOD VN_PLAY_GetPlayedTimeEx(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_SetPlayedTimeEx(LONG nPort,DWORD nTime); PLAY_API DWORD CALLMETHOD VN_PLAY_GetCurrentFrameNum(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_SetStreamOpenMode(LONG nPort,DWORD nMode); PLAY_API DWORD CALLMETHOD VN_PLAY_GetFileHeadLength(); PLAY_API DWORD CALLMETHOD VN_PLAY_GetSdkVersion(); PLAY_API DWORD CALLMETHOD VN_PLAY_GetLastError(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_RefreshPlay(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_GetPictureSize(LONG nPort,LONG *pWidth,LONG *pHeight); PLAY_API BOOL CALLMETHOD VN_PLAY_SetPicQuality(LONG nPort,BOOL bHighQuality); PLAY_API BOOL CALLMETHOD VN_PLAY_PlaySoundShare(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_StopSoundShare(LONG nPort); PLAY_API LONG CALLMETHOD VN_PLAY_GetStreamOpenMode(LONG nPort); PLAY_API LONG CALLMETHOD VN_PLAY_GetOverlayMode(LONG nPort); PLAY_API COLORREF CALLMETHOD VN_PLAY_GetColorKey(LONG nPort); PLAY_API WORD CALLMETHOD VN_PLAY_GetVolume(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_GetPictureQuality(LONG nPort,BOOL *bHighQuality); PLAY_API DWORD CALLMETHOD VN_PLAY_GetSourceBufferRemain(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_ResetSourceBuffer(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_SetSourceBufCallBack(LONG nPort, DWORD nThreShold, void (CALLBACK *SourceBuf__stdcall)(long nPort, DWORD nBufSize, long long dwUser, void *pResvered), long long dwUser, void *pReserved); PLAY_API BOOL CALLMETHOD VN_PLAY_ResetSourceBufFlag(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDisplayBuf(LONG nPort,DWORD nNum); PLAY_API DWORD CALLMETHOD VN_PLAY_GetDisplayBuf(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_OneByOneBack(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_SetFileRefCallBack(LONG nPort, void (CALLBACK *pFileRefDone)(DWORD nPort,long long nUser), long long nUser); PLAY_API BOOL CALLMETHOD VN_PLAY_SetCurrentFrameNum(LONG nPort,DWORD nFrameNum); PLAY_API BOOL CALLMETHOD VN_PLAY_GetKeyFramePos(LONG nPort,DWORD nValue, DWORD nType, PFRAME_POS pFramePos); PLAY_API BOOL CALLMETHOD VN_PLAY_GetNextKeyFramePos(LONG nPort,DWORD nValue, DWORD nType, PFRAME_POS pFramePos); PLAY_API BOOL CALLMETHOD VN_PLAY_InitDDrawDevice(); PLAY_API void CALLMETHOD VN_PLAY_ReleaseDDrawDevice(); PLAY_API DWORD CALLMETHOD VN_PLAY_GetDDrawDeviceTotalNums(); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDDrawDevice(LONG nPort,DWORD nDeviceNum); PLAY_API BOOL CALLMETHOD VN_PLAY_GetDDrawDeviceInfo(DWORD nDeviceNum,LPSTR lpDriverDescription,DWORD nDespLen,LPSTR lpDriverName ,DWORD nNameLen,long *hhMonitor); PLAY_API int CALLMETHOD VN_PLAY_GetCapsEx(DWORD nDDrawDeviceNum); PLAY_API BOOL CALLMETHOD VN_PLAY_ThrowBFrameNum(LONG nPort,DWORD nNum); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDisplayType(LONG nPort,LONG nType); PLAY_API long CALLMETHOD VN_PLAY_GetDisplayType(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDecCBStream(LONG nPort,DWORD nStream); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDisplayRegion(LONG nPort,DWORD nRegionNum, RECT *pSrcRect, HWND hDestWnd, BOOL bEnable); PLAY_API BOOL CALLMETHOD VN_PLAY_RefreshPlayEx(LONG nPort,DWORD nRegionNum); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDDrawDeviceEx(LONG nPort,DWORD nRegionNum,DWORD nDeviceNum); PLAY_API BOOL CALLMETHOD VN_PLAY_GetRefValue(LONG nPort,BYTE *pBuffer, DWORD *pSize); PLAY_API BOOL CALLMETHOD VN_PLAY_SetRefValue(LONG nPort,BYTE *pBuffer, DWORD nSize); PLAY_API BOOL CALLMETHOD VN_PLAY_OpenStreamEx(LONG nPort,PBYTE pFileHeadBuf,DWORD nSize,DWORD nBufPoolSize); PLAY_API BOOL CALLMETHOD VN_PLAY_CloseStreamEx(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_InputVideoData(LONG nPort,PBYTE pBuf,DWORD nSize); PLAY_API BOOL CALLMETHOD VN_PLAY_InputAudioData(LONG nPort,PBYTE pBuf,DWORD nSize); PLAY_API BOOL CALLMETHOD VN_PLAY_RigisterDrawFun(LONG nPort, FPDrawFun cb, long long nUser); PLAY_API BOOL CALLMETHOD VN_PLAY_RigisterDrawFunEx(LONG nPort,void (CALLBACK* DrawFun)(long nPort,HDC hDc,HWND hWnd,int picW,int picH, long long nUser), long long nUser); PLAY_API BOOL CALLMETHOD VN_PLAY_SetTimerType(LONG nPort,DWORD nTimerType,DWORD nReserved); PLAY_API BOOL CALLMETHOD VN_PLAY_GetTimerType(LONG nPort,DWORD *pTimerType,DWORD *pReserved); PLAY_API BOOL CALLMETHOD VN_PLAY_ResetBuffer(LONG nPort,DWORD nBufType); PLAY_API DWORD CALLMETHOD VN_PLAY_GetBufferValue(LONG nPort,DWORD nBufType); PLAY_API BOOL CALLMETHOD VN_PLAY_AdjustWaveAudio(LONG nPort,LONG nCoefficient); PLAY_API BOOL CALLMETHOD VN_PLAY_SetVerifyCallBack(LONG nPort, DWORD nBeginTime, DWORD nEndTime, void (CALLBACK * funVerify)(long nPort, FRAME_POS * pFilePos, DWORD bIsVideo, long long nUser), long long nUser); PLAY_API BOOL CALLMETHOD VN_PLAY_SetAudioCallBack(LONG nPort, void (CALLBACK * funAudio)(long nPort, char * pAudioBuf, long nSize, long nStamp, long nType, long long nUser), long long nUser); PLAY_API BOOL CALLMETHOD VN_PLAY_SetEncTypeChangeCallBack(LONG nPort,void(CALLBACK *funEncChange)(long nPort, long long nUser),long long nUser); PLAY_API BOOL CALLMETHOD VN_PLAY_SetColor(LONG nPort, DWORD nRegionNum, int nBrightness, int nContrast, int nSaturation, int nHue); PLAY_API BOOL CALLMETHOD VN_PLAY_GetColor(LONG nPort, DWORD nRegionNum, int *pBrightness, int *pContrast, int *pSaturation, int *pHue); PLAY_API BOOL CALLMETHOD VN_PLAY_SetEncChangeMsg(LONG nPort,HWND hWnd,UINT nMsg); PLAY_API BOOL CALLMETHOD VN_PLAY_SetMDRange(LONG nPort,RECT* rc,DWORD nVauleBegin,DWORD nValueEnd,DWORD nType); PLAY_API BOOL CALLMETHOD VN_PLAY_SetMDThreShold(LONG nPort, DWORD ThreShold) ; PLAY_API DWORD CALLMETHOD VN_PLAY_GetMDPosition(LONG nPort, DWORD Direction, DWORD nFrame, DWORD* MDValue) ; PLAY_API BOOL CALLMETHOD VN_PLAY_CatchPic(LONG nPort,char* sFileName) ; PLAY_API BOOL CALLMETHOD VN_PLAY_CatchPicEx(LONG nPort,void* fp, int isJpeg) ; PLAY_API BOOL CALLMETHOD VN_PLAY_SetFileEndCallBack(LONG nPort, void (CALLBACK *pFileEnd)(DWORD nPort, long long nUser), long long nUser); //dataType 0 是原始码流, 1是AVI PLAY_API BOOL CALLMETHOD VN_PLAY_StartDataRecord(LONG nPort, char *sFileName, int idataType=0); PLAY_API BOOL CALLMETHOD VN_PLAY_StopDataRecord(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_StartDataRecordEx(LONG nPort, void *fp, int idataType=0); //return 8, change avi to dav outside of this api.It is for mjpeg recording PLAY_API BOOL CALLMETHOD VN_PLAY_StopDataRecordEx(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_AdjustFluency(LONG nPort, int level); PLAY_API BOOL CALLMETHOD VN_PLAY_ChangeRate(LONG nPort, int rate); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDemuxCallBack(LONG nPort, void (CALLBACK* DecCBFun)(long nPort,char * pBuf, long nSize,void * pParam, long nReserved,long long nUser), long long nUser); #define HIK_CMD_GetTime 1 #define HIK_CMD_GetFileRate 2 #define CMS_GetFileStartTime 5 #define CMS_GetFileEndTime 6 PLAY_API BOOL CALLMETHOD VN_PLAY_QueryInfo(LONG nPort , int cmdType, char* buf, int buflen, int* returnlen); typedef void (WINAPI *pCallFunction)(LPBYTE pDataBuffer, DWORD DataLength, long long nUser); PLAY_API BOOL CALLMETHOD VN_PLAY_OpenAudioRecord(pCallFunction pProc, long nBitsPerSample, long nSamplesPerSec, long nLength, long nReserved, long long nUser); PLAY_API BOOL CALLMETHOD VN_PLAY_CloseAudioRecord(); //reserved 0 表I帧帧数据水印信息 1 表帧水印 2 表水印校验 3表智能分析帧 typedef int (__stdcall* GetWaterMarkInfoCallbackFunc)(char* buf, long key, long len, long reallen, long reserved, long long nUser); //水印信息获取函数 typedef int (__stdcall* GetInfoFrmCallbackFunc)(int nPort, char* buf,long len, long reserved, long long nUser, unsigned char *tmp, long lenTemp, unsigned long seq); PLAY_API BOOL CALLMETHOD VN_PLAY_SetWaterMarkCallBack(LONG nPort, GetWaterMarkInfoCallbackFunc pFunc, long long nUser); PLAY_API BOOL CALLMETHOD VN_PLAY_SetInfoFrmCallBack(LONG nPort, GetInfoFrmCallbackFunc pFunc, long long nUser); PLAY_API DWORD CALLMETHOD VN_PLAY_CreateFile(LPSTR sFileName); PLAY_API BOOL CALLMETHOD VN_PLAY_DestroyFile(LONG nPort); PLAY_API DWORD CALLMETHOD VN_PLAY_CreateStream(DWORD nBufPoolSize); PLAY_API BOOL CALLMETHOD VN_PLAY_DestroyStream(LONG nPort); PLAY_API BOOL CALLMETHOD VN_PLAY_SetPlayingBufNum(LONG nPort, int iBufNum); //chenfeng20090513 - #define PLAYPARAM_SETSVC 10 #define PLAYPARAM_SETSVACKEY 11 #define PLAYPARAM_SETSVACKEY2 12 #define PLAYPARAM_PASSWORDERRORCB 13 #define PLAYPARAM_EXTINFOCB 14 typedef struct _VN_SVC_PARAM { LONG type; HWND hwnd; }VN_SVC_PARAM; typedef struct _VN_SVAC_KEY_PARAM { HWND hWnd; UINT nMsg; char key[1024]; }VN_SVAC_KEY_PARAM; typedef struct _VN_SVAC_KEY2_PARAM { char key[1024]; }VN_SVAC_KEY2_PARAM; typedef struct _VN_PASSWORDERRORCB_PARAM { void* pcb_passworderror; void* pUser; }VN_PASSWORDERRORCB_PARAM; typedef struct _VN_EXTINFOCB_PARAM { void* pcb_extinfo; void* pUser; }VN_EXTINFOCB_PARAM; PLAY_API BOOL CALLMETHOD VN_PLAY_SetParam(LONG nPort, LONG iType, VOID * pParam); //type: //0, 默认方式,有增强层显示增强层,没有则显示普通层 //1, 普通层叠加在增强层左上角 //2, 普通层和增加层单独显示,hwnd为增强层的显示窗口句柄 PLAY_API BOOL CALLMETHOD VN_PLAY_SetSvc(LONG nPort, LONG type, HWND hwnd); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDecCallBackEx(LONG nPort,void (CALLBACK* DecCBFun)(long nPort,char * pBuf, long nSize,FRAME_INFO * pFrameInfo, long nReserved, long long user), long long nUser); PLAY_API BOOL CALLMETHOD VN_PLAY_SetNeedDecodePasswordCallbackFun(long nPort, void(CALLBACK* pNeedDecodePasswordFun)(long nPort, long nErrorCode, void* pUser), void* pUser); PLAY_API BOOL CALLMETHOD VN_PLAY_SetDecodePassword(long nPort, char* sPassword); PLAY_API BOOL CALLMETHOD VN_PLAY_SetExtensionInfoCallbackFun(long nPort, void (CALLBACK* pExtensionInfoFun)(long nPort, LPCTSTR sExtensionInfo, void* pUser), void* pUser); PLAY_API BOOL CALLMETHOD VN_PLAY_InputDataEx(LONG nPort, PBYTE pBuffer, DWORD offset, DWORD nSize); PLAY_API VOID *CALLMETHOD VN_PLAY_GetFunAdress(char* funName); PLAY_API BOOL CALLMETHOD VN_PLAY_SetROI(LONG nPort, LONG type); PLAY_API BOOL CALLMETHOD VN_PLAY_GetBytesPS(LONG nPort, LONG* TotalBytesPS, LONG* BlBytesPS); PLAY_API BOOL CALLMETHOD VN_PLAY_SetVideoRenderMode(LONG nPort, VIDEO_RENDER_MODE mode, COLORREF color); //设置osd叠加信息,必须在openstream后,play之前设置,否则无效 PLAY_API int CALLMETHOD VN_PLAY_SetOsdTex(LONG nPort, OSD_INFO_TXT * txt); //删除osd叠加信息,nIndex是H264_PLAY_SetOsdTex的返回值 PLAY_API int CALLMETHOD VN_PLAY_DeleteOsdTex(LONG nPort, int nIndex); #ifdef __cplusplus } #endif #endif 看下这段代码
07-01
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值