www.pudn.com > vc5ͼÏñ²É¼¯ code.rar > dllentry.c
/*============================================================================== * * filename dllentry.c * purpose API for dynamic loading okapi32.dll (Ok series image cards) * language Microsoft Visual C 5.0 * author S. Yang * date mon-date-99 *----------------------- * modify by S. Yang * purpose * language Microsoft Visual C 5.0 * date 99 * *----------------------- * * Copyright (C). All Rights Reserved. * * *============================================================================== * language include files */ #include#include #include #include #include #include #include #include "okapi32.h" /*----------------------------------------------------------------------------- * Functions Pointors */ //1. section HANDLE (WINAPI *lpfnOpenBoard)(long *); BOOL (WINAPI *lpfnCloseBoard)(HANDLE); long (WINAPI *lpfnGetLastError)(void); long (WINAPI *lpfnGetBufferSize)(HANDLE hBoard, void **lpLinear, DWORD *dwSize); LPVOID (WINAPI *lpfnGetBufferAddr)(HANDLE hBoard, long iNoFrame); LPVOID (WINAPI *lpfnGetTargetInfo)(HANDLE hBoard, TARGET tgt, long lNoFrame, short * wid, short * ht, long *stride); short (WINAPI *lpfnGetTypeCode)(HANDLE hBoard,LPSTR lpBoardName); long (WINAPI *lpfnSetTargetRect)(HANDLE hBoard, TARGET target, LPRECT lpTgtRect); BOOL (WINAPI *lpfnSetToWndRect)(HANDLE hBoard, HWND hWnd); long (WINAPI *lpfnSetVideoParam)(HANDLE hBoard, WORD wParam, long lParam); long (WINAPI *lpfnSetCaptureParam)(HANDLE hBoard, WORD wParam, long lParam); BOOL (WINAPI *lpfnSetSeqCallback)(HANDLE hBoard, BOOL CALLBACK BeginProc(HANDLE hBoard), BOOL CALLBACK SeqProc(HANDLE hBoard, long No), BOOL CALLBACK EndProc(HANDLE hBoard)); BOOL (WINAPI *lpfnCaptureTo)(HANDLE hBoard, TARGET Dest, long start, LPARAM lParam); BOOL (WINAPI *lpfnCaptureSingle)(HANDLE hBoard, TARGET Dest, LONG lStart); BOOL (WINAPI *lpfnCaptureActive)(HANDLE hBoard, TARGET Dest, LONG lStart); BOOL (WINAPI *lpfnCaptureThread)(HANDLE hBoard, TARGET Dest, LONG lStart, LONG lNoFrame); BOOL (WINAPI *lpfnCaptureSequence)(HANDLE hBoard, LONG lStart, LONG lNoFrame); BOOL (WINAPI *lpfnCaptureToScreen)(HANDLE hBoard); BOOL (WINAPI *lpfnPlaybackFrom)(HANDLE hBoard, TARGET src, long start, LPARAM lParam); BOOL (WINAPI *lpfnPlaybackSequence)(HANDLE hBoard, LONG lStart, LONG lNoFrame); long (WINAPI *lpfnGetCaptureStatus)(HANDLE hBoard, BOOL bWait); BOOL (WINAPI *lpfnStopCapture)(HANDLE hBoard); long (WINAPI *lpfnGetSeqCapture)(HANDLE hApi, long start, long count); BOOL (WINAPI *lpfnCaptureByBuffer)(HANDLE hBoard, TARGET dest, long start, long num); BOOL (WINAPI *lpfnCaptureByBufferEx)(HANDLE hBoard, long fileset, TARGET dest, long start, long num); BOOL (WINAPI *lpfnPlaybackByBuffer)(HANDLE hBoard, TARGET src, long start, long num); long (WINAPI *lpfnReadPixel)(HANDLE hBoard, TARGET src, long start, short x, short y); long (WINAPI *lpfnWritePixel)(HANDLE hBoard, TARGET tgt, long start, short x, short y, long lValue); long (WINAPI *lpfnSetConvertParam)(HANDLE hBoard, WORD wParam, long lParam); long (WINAPI *lpfnReadRect)(HANDLE hBoard, TARGET src, long start, LPBYTE lpBuf); long (WINAPI *lpfnWriteRect)(HANDLE hBoard, TARGET dst, long start, LPBYTE lpBuf); long (WINAPI *lpfnTransferRect)(HANDLE hBoard, TARGET dest, long iFirst, TARGET src, long iStart, long lNum); long (WINAPI *lpfnConvertRect)(HANDLE hBoard, TARGET dst, long first, TARGET src, long start, LPARAM no); long (WINAPI *lpfnConvertRectEx)(HANDLE hDstBoard, TARGET dst, long first, HANDLE hSrcBoard,TARGET src, long start, LPARAM no); long (WINAPI *lpfnReadRectEx)(HANDLE hBoard, TARGET src, long start, LPBYTE lpBuf, LPARAM lParam); long (WINAPI *lpfnWriteRectEx)(HANDLE hBoard, TARGET dst, long start, LPBYTE lpBuf, LPARAM lParam); BOOL (WINAPI *lpfnSetTextTo)(HANDLE hBoard, TARGET target, LPRECT lpRect, LOGFONT *lfLogFont, SETTEXTMODE *textMode, LPSTR lpString, long lLength); long (WINAPI *lpfnDrawEllipsTo)(HANDLE hBoard, TARGET target, long lStart, LPRECT lpRect, long iForeColor); HDC (WINAPI *lpfnCreateDCBitmap)(HANDLE hBoard, TARGET target, HANDLE *hDCBitmap); BOOL (WINAPI *lpfnMapDCBitmapTo)(HANDLE hDCBitmap, long lStart); BOOL (WINAPI *lpfnFreeDCBitmap)(HANDLE hDCBitmap); long (WINAPI *lpfnGetSignalParam)(HANDLE hBoard, WPARAM wParam); long (WINAPI *lpfnWaitSignalEvent)(HANDLE hBoard, WPARAM wParam, LPARAM lMilliSecond); long (WINAPI *lpfnPutSignalParam)(HANDLE hBoard, WPARAM wParam, LPARAM lParam); BOOL (WINAPI *lpfnSetSeqProcWnd)(HANDLE hBoard, HWND hwndMain); long (WINAPI *lpfnEnableMask)(HANDLE hBoard, BOOL bMask); long (WINAPI *lpfnSetMaskRect)(HANDLE hBoard, LPRECT lpRect, LPSTR lpMask); long (WINAPI *lpfnFillOutLUT)(HANDLE hBoard, LPBYTE bLUT, short offset, short num); short (WINAPI *lpfnGetSlotBoard)(BOARDTYPE **lpOkInfo); short (WINAPI *lpfnGetBoardIndex)(char *szBoardName, short iNo); short (WINAPI *lpfnGetBoardName)(long lIndex, LPSTR szBoardName); long (WINAPI *lpfnGetAvailBuffer)(void **lpLinear, DWORD *dwSize); long (WINAPI *lpfnLockBuffer)(HANDLE hBoard, DWORD dwSizeByte, void **lpBasLinear); BOOL (WINAPI *lpfnUnlockAllBuffer)(void); long (WINAPI *lpfnApplyMemBlock)(DWORD dwBlockSize, DWORD dwBlockNo); long (WINAPI *lpfnFreeMemBlock)(void); long (WINAPI *lpfnGetMemBlock)(HANDLE hBoard, DWORD *dwEachSize, DWORD *dwBlockNo); long (WINAPI *lpfnLockMemBlock)(HANDLE hBoard, long dwBlockNo); long (WINAPI *lpfnUnlockMemBlock)(void); BOOL (WINAPI *lpfnMulCaptureTo)(HANDLE *lphBoard, TARGET Dest, long start, LPARAM lParam); BOOL (WINAPI *lpfnMulCaptureByBuffer)(HANDLE *lphBoard, TARGET dest, long start, long num); BOOL (WINAPI *lpfnSaveInitParam)(HANDLE hBoard, short iChannNo); BOOL (WINAPI *lpfnLoadInitParam)(HANDLE hBoard, short iChannNo); long (WINAPI *lpfnSetAllocBuffer)(long lSize); BOOL (WINAPI *lpfnSetStaticVxD)(long lMode); BOOL (WINAPI *lpfnSetNTDriver)(BOOL bCmd); BOOL (WINAPI *lpfnSetLangResource)(BOOL bCmd); BOOL (WINAPI *lpfnUnRegister)(DWORD dwCmd); long (WINAPI *lpfnGetProgramInfo)(int iItem, LPSTR lpString, int iSize); long (WINAPI *lpfnReadProtCode)(HANDLE hBoard, short iIndex); long (WINAPI *lpfnWriteProtCode)(HANDLE hBoard, short iIndex, long lCode); long (WINAPI *lpfnSaveImageFile)(HANDLE hBoard, LPSTR szFileName, long first, TARGET target, long start, long num); long (WINAPI *lpfnLoadImageFile)(HANDLE hBoard, LPSTR szFileName, long first, TARGET target, long start, long num); long (WINAPI *lpfnLoadConfigFile)(HANDLE hBoard, LPSTR szFileName); long (WINAPI *lpfnSaveConfigFile)(HANDLE hBoard, LPSTR szFileName); BOOL (WINAPI *lpfnOpenSetParamDlg)( HANDLE hBoard, HWND hParentWnd); BOOL (WINAPI *lpfnOpenSeqCaptureDlg)( HANDLE hBoard, HWND hParentWnd); LPDIBINFO (WINAPI *lpfnOpenReplayDlg)( HANDLE hBoard, HWND hWnd, TARGET src, long total); HWND (WINAPI *lpfnOpenReplayDlgEx)( HANDLE hBoard, HWND hWnd, TARGET src, long total, LPBITMAPINFOHEADER lpbi, LPBYTE lpdib); HANDLE (WINAPI *lpfnBeginEncode)(HANDLE hBoard, WORD wCodeWay, LPARAM lParam); long (WINAPI *lpfnEncodeImage)(HANDLE hCoder, TARGET target, long start, LPBYTE lpData, long maxlen); long (WINAPI *lpfnEndEncode)(HANDLE hCoder); HANDLE (WINAPI *lpfnBeginDecode)(HANDLE hBoard, WORD wCodeWay, LPBYTE lpData, LPIMAGESIZE lpImageInfo); long (WINAPI *lpfnDecodeImage)(HANDLE hCoder, LPBYTE lpData, long *length, TARGET target, long start); long (WINAPI *lpfnEndDecode)(HANDLE hCoder); BOOL (WINAPI *lpfnOutputByte)(WORD port, BYTE data); BYTE (WINAPI *lpfnInputByte)(WORD port); BOOL (WINAPI *lpfnOutputShort)(WORD port, short data); short (WINAPI *lpfnInputShort)(WORD port); BOOL (WINAPI *lpfnOutputLong)(WORD port, long data); long (WINAPI *lpfnInputLong)(WORD port); BOOL (WINAPI *lpfnSetPortBase)(WORD wPortBase, short iPortCount); short (WINAPI *lpfnGetGPIOPort)(short index, WORD *wPortBase); DWORD (WINAPI *lpfnGetAddrForVB)(void *); DWORD (WINAPI *lpfnGetTickCount)(void ); void (WINAPI *lpfnSleep)(DWORD); //------audio section HANDLE (WINAPI *lpfnOpenAudio)(HANDLE hBoard, LPARAM lParam); BOOL (WINAPI *lpfnCloseAudio)(HANDLE hAudio); long (WINAPI *lpfnCaptureAudio)(HANDLE hAudio, TARGET target, FARPROC WriteAudioProc, LPARAM lParam); BOOL (WINAPI *lpfnStopCaptureAudio)(HANDLE hAudio); long (WINAPI *lpfnSetAudioParam)(HANDLE hAudio, WORD wParam, LPARAM lParam); long (WINAPI *lpfnReadAudioData)(HANDLE hAudio, LPBYTE lpAudioBuf, long lSize); //------stream section HANDLE (WINAPI *lpfnOpenStream)(HANDLE hBoard, LPARAM lParam); BOOL (WINAPI *lpfnCloseStream)(HANDLE hStream); long (WINAPI *lpfnCaptureStream)(HANDLE hStream, TARGET target, FARPROC lpfnUserProc, long lMiliSeconds); BOOL (WINAPI *lpfnStopCaptureStream)(HANDLE hStream, DWORD dwPause); long (WINAPI *lpfnSetStreamParam)(HANDLE hStream, WORD wParam, LPARAM lParam); long (WINAPI *lpfnReadStreamData)(HANDLE hStream, LPBYTE lpStreamBuf, long lReadSize); /*----------------------------------------------------------------------------- * Functions Process */ //2. section static int iLoadNum=0; static HANDLE hDLLDrv; BOOL LoadOkApiDll() { if(!hDLLDrv) hDLLDrv=LoadLibrary("OKAPI32.DLL"); if(!hDLLDrv) //not found return FALSE; if(iLoadNum==0) { (FARPROC )lpfnOpenBoard=GetProcAddress(hDLLDrv,"okOpenBoard"); (FARPROC )lpfnCloseBoard=GetProcAddress(hDLLDrv,"okCloseBoard"); (FARPROC )lpfnGetLastError=GetProcAddress(hDLLDrv,"okGetLastError"); (FARPROC )lpfnGetBufferSize=GetProcAddress(hDLLDrv,"okGetBufferSize"); (FARPROC )lpfnGetBufferAddr=GetProcAddress(hDLLDrv,"okGetBufferAddr"); (FARPROC )lpfnGetTargetInfo=GetProcAddress(hDLLDrv,"okGetTargetInfo"); (FARPROC )lpfnGetTypeCode=GetProcAddress(hDLLDrv,"okGetTypeCode"); (FARPROC )lpfnSetTargetRect=GetProcAddress(hDLLDrv,"okSetTargetRect"); (FARPROC )lpfnSetToWndRect=GetProcAddress(hDLLDrv,"okSetToWndRect"); (FARPROC )lpfnSetVideoParam=GetProcAddress(hDLLDrv,"okSetVideoParam"); (FARPROC )lpfnSetCaptureParam=GetProcAddress(hDLLDrv,"okSetCaptureParam"); (FARPROC )lpfnCaptureTo=GetProcAddress(hDLLDrv,"okCaptureTo"); (FARPROC )lpfnCaptureSingle=GetProcAddress(hDLLDrv,"okCaptureSingle"); (FARPROC )lpfnCaptureActive=GetProcAddress(hDLLDrv,"okCaptureActive"); (FARPROC )lpfnCaptureThread=GetProcAddress(hDLLDrv,"okCaptureThread"); (FARPROC )lpfnCaptureSequence=GetProcAddress(hDLLDrv,"okCaptureSequence"); (FARPROC )lpfnCaptureToScreen=GetProcAddress(hDLLDrv,"okCaptureToScreen"); (FARPROC )lpfnPlaybackFrom=GetProcAddress(hDLLDrv,"okPlaybackFrom"); (FARPROC )lpfnPlaybackSequence=GetProcAddress(hDLLDrv,"okPlaybackSequence"); (FARPROC )lpfnGetCaptureStatus=GetProcAddress(hDLLDrv,"okGetCaptureStatus"); (FARPROC )lpfnStopCapture=GetProcAddress(hDLLDrv,"okStopCapture"); (FARPROC )lpfnGetSeqCapture=GetProcAddress(hDLLDrv,"okGetSeqCapture"); (FARPROC )lpfnCaptureByBuffer=GetProcAddress(hDLLDrv,"okCaptureByBuffer"); (FARPROC )lpfnCaptureByBufferEx=GetProcAddress(hDLLDrv,"okCaptureByBufferEx"); (FARPROC )lpfnPlaybackByBuffer=GetProcAddress(hDLLDrv,"okPlaybackByBuffer"); (FARPROC )lpfnReadPixel=GetProcAddress(hDLLDrv,"okReadPixel"); (FARPROC )lpfnWritePixel=GetProcAddress(hDLLDrv,"okWritePixel"); (FARPROC )lpfnSetConvertParam=GetProcAddress(hDLLDrv,"okSetConvertParam"); (FARPROC )lpfnReadRect=GetProcAddress(hDLLDrv,"okReadRect"); (FARPROC )lpfnWriteRect=GetProcAddress(hDLLDrv,"okWriteRect"); (FARPROC )lpfnTransferRect=GetProcAddress(hDLLDrv,"okTransferRect"); (FARPROC )lpfnConvertRect=GetProcAddress(hDLLDrv,"okConvertRect"); (FARPROC )lpfnConvertRectEx=GetProcAddress(hDLLDrv,"okConvertRectEx"); (FARPROC )lpfnReadRectEx=GetProcAddress(hDLLDrv,"okReadRectEx"); (FARPROC )lpfnWriteRectEx=GetProcAddress(hDLLDrv,"okWriteRectEx"); (FARPROC )lpfnSetTextTo=GetProcAddress(hDLLDrv,"okSetTextTo"); (FARPROC )lpfnDrawEllipsTo=GetProcAddress(hDLLDrv,"okDrawEllipsTo"); (FARPROC )lpfnCreateDCBitmap=GetProcAddress(hDLLDrv,"okCreateDCBitmap"); (FARPROC )lpfnMapDCBitmapTo=GetProcAddress(hDLLDrv,"okMapDCBitmapTo"); (FARPROC )lpfnFreeDCBitmap=GetProcAddress(hDLLDrv,"okFreeDCBitmap"); (FARPROC )lpfnGetSignalParam=GetProcAddress(hDLLDrv,"okGetSignalParam"); (FARPROC )lpfnWaitSignalEvent=GetProcAddress(hDLLDrv,"okWaitSignalEvent"); (FARPROC )lpfnPutSignalParam=GetProcAddress(hDLLDrv,"okPutSignalParam"); (FARPROC )lpfnSetSeqProcWnd=GetProcAddress(hDLLDrv,"okSetSeqProcWnd"); (FARPROC )lpfnSetSeqCallback=GetProcAddress(hDLLDrv,"okSetSeqCallback"); (FARPROC )lpfnEnableMask=GetProcAddress(hDLLDrv,"okEnableMask"); (FARPROC )lpfnSetMaskRect=GetProcAddress(hDLLDrv,"okSetMaskRect"); (FARPROC )lpfnFillOutLUT=GetProcAddress(hDLLDrv,"okFillOutLUT"); (FARPROC )lpfnGetSlotBoard=GetProcAddress(hDLLDrv,"okGetSlotBoard"); (FARPROC )lpfnGetBoardIndex=GetProcAddress(hDLLDrv,"okGetBoardIndex"); (FARPROC )lpfnGetBoardIndex=GetProcAddress(hDLLDrv,"okGetBoardName"); (FARPROC )lpfnGetAvailBuffer=GetProcAddress(hDLLDrv,"okGetAvailBuffer"); (FARPROC )lpfnLockBuffer=GetProcAddress(hDLLDrv,"okLockBuffer"); (FARPROC )lpfnUnlockAllBuffer=GetProcAddress(hDLLDrv,"okUnlockAllBuffer"); (FARPROC )lpfnApplyMemBlock=GetProcAddress(hDLLDrv,"okApplyMemBlock"); (FARPROC )lpfnFreeMemBlock=GetProcAddress(hDLLDrv,"okFreeMemBlock"); (FARPROC )lpfnGetMemBlock=GetProcAddress(hDLLDrv,"okGetMemBlock"); (FARPROC )lpfnLockMemBlock=GetProcAddress(hDLLDrv,"okLockMemBlock"); (FARPROC )lpfnUnlockMemBlock=GetProcAddress(hDLLDrv,"UnlockMemBlock"); (FARPROC )lpfnMulCaptureTo=GetProcAddress(hDLLDrv,"okMulCaptureTo"); (FARPROC )lpfnMulCaptureByBuffer=GetProcAddress(hDLLDrv,"okMulCaptureByBuffer"); (FARPROC )lpfnSaveInitParam=GetProcAddress(hDLLDrv,"okSaveInitParam"); (FARPROC )lpfnLoadInitParam=GetProcAddress(hDLLDrv,"okLoadInitParam"); (FARPROC )lpfnSetAllocBuffer=GetProcAddress(hDLLDrv,"okSetAllocBuffer"); (FARPROC )lpfnSetStaticVxD=GetProcAddress(hDLLDrv,"okSetStaticVxD"); (FARPROC )lpfnSetNTDriver=GetProcAddress(hDLLDrv,"okSetNTDriver"); (FARPROC )lpfnSetNTDriver=GetProcAddress(hDLLDrv,"okSetLangResource"); (FARPROC )lpfnUnRegister=GetProcAddress(hDLLDrv,"okUnRegister"); (FARPROC )lpfnGetProgramInfo=GetProcAddress(hDLLDrv,"okGetProgramInfo"); (FARPROC )lpfnReadProtCode=GetProcAddress(hDLLDrv,"okReadProtCode"); (FARPROC )lpfnWriteProtCode=GetProcAddress(hDLLDrv,"okWriteProtCode"); (FARPROC )lpfnSaveImageFile=GetProcAddress(hDLLDrv,"okSaveImageFile"); (FARPROC )lpfnLoadImageFile=GetProcAddress(hDLLDrv,"okLoadImageFile"); (FARPROC )lpfnLoadConfigFile=GetProcAddress(hDLLDrv,"okLoadConfigFile"); (FARPROC )lpfnSaveConfigFile=GetProcAddress(hDLLDrv,"okSaveConfigFile"); (FARPROC )lpfnOpenSetParamDlg=GetProcAddress(hDLLDrv,"okOpenSetParamDlg"); (FARPROC )lpfnOpenSeqCaptureDlg=GetProcAddress(hDLLDrv,"okOpenSeqCaptureDlg"); (FARPROC )lpfnOpenReplayDlg=GetProcAddress(hDLLDrv,"okOpenReplayDlg"); (FARPROC )lpfnOpenReplayDlgEx=GetProcAddress(hDLLDrv,"okOpenReplayDlgEx"); (FARPROC )lpfnBeginEncode=GetProcAddress(hDLLDrv,"okBeginEncode"); (FARPROC )lpfnEncodeImage=GetProcAddress(hDLLDrv,"okEncodeImage"); (FARPROC )lpfnEndEncode=GetProcAddress(hDLLDrv,"okEndEncode"); (FARPROC )lpfnBeginDecode=GetProcAddress(hDLLDrv,"okBeginDecode"); (FARPROC )lpfnDecodeImage=GetProcAddress(hDLLDrv,"okDecodeImage"); (FARPROC )lpfnEndEncode=GetProcAddress(hDLLDrv,"okEndEncode"); (FARPROC )lpfnOutputByte=GetProcAddress(hDLLDrv,"okOutputByte"); (FARPROC )lpfnInputByte=GetProcAddress(hDLLDrv,"okInputByte"); (FARPROC )lpfnOutputShort=GetProcAddress(hDLLDrv,"okOutputShort"); (FARPROC )lpfnInputShort=GetProcAddress(hDLLDrv,"okInputShort"); (FARPROC )lpfnOutputLong=GetProcAddress(hDLLDrv,"okOutputLong"); (FARPROC )lpfnInputLong=GetProcAddress(hDLLDrv,"okInputLong"); (FARPROC )lpfnSetPortBase=GetProcAddress(hDLLDrv,"okSetPortBase"); (FARPROC )lpfnGetGPIOPort=GetProcAddress(hDLLDrv,"okGetGPIOPort"); (FARPROC )lpfnGetAddrForVB=GetProcAddress(hDLLDrv,"okGetAddrForVB"); (FARPROC )lpfnGetTickCount=GetProcAddress(hDLLDrv,"okGetTickCount"); (FARPROC )lpfnSleep=GetProcAddress(hDLLDrv,"okSleep"); //---audio (FARPROC )lpfnOpenAudio=GetProcAddress(hDLLDrv,"okOpenAudio"); (FARPROC )lpfnCloseAudio=GetProcAddress(hDLLDrv,"okCloseAudio"); (FARPROC )lpfnCaptureAudio=GetProcAddress(hDLLDrv,"okCaptureAudio"); (FARPROC )lpfnStopCaptureAudio=GetProcAddress(hDLLDrv,"okStopCaptureAudio"); (FARPROC )lpfnSetAudioParam=GetProcAddress(hDLLDrv,"okSetAudioParam"); (FARPROC )lpfnReadAudioData=GetProcAddress(hDLLDrv,"okReadAudioData"); //---stream (FARPROC )lpfnOpenStream = GetProcAddress(hDLLDrv, "okOpenStream"); (FARPROC )lpfnCloseStream = GetProcAddress(hDLLDrv, "okCloseStream"); (FARPROC )lpfnCaptureStream = GetProcAddress(hDLLDrv, "okCaptureStream"); (FARPROC )lpfnStopCaptureStream = GetProcAddress(hDLLDrv, "okStopCaptureStream"); (FARPROC )lpfnSetStreamParam = GetProcAddress(hDLLDrv, "okSetStreamParam"); (FARPROC )lpfnReadStreamData = GetProcAddress(hDLLDrv, "okReadStreamData"); } iLoadNum++; return TRUE; } FreeOkApiDll() { iLoadNum--; if(iLoadNum<=0) { FreeLibrary(hDLLDrv); hDLLDrv=0; } return 1; } FARPROC GetProcPointer(LPSTR lpszName) { if(!hDLLDrv) hDLLDrv=LoadLibrary("OKAPI32.DLL"); return GetProcAddress(hDLLDrv,lpszName); } HANDLE WINAPI okOpenBoard(long *iIndex) { LoadOkApiDll(); return lpfnOpenBoard(iIndex); } BOOL WINAPI okCloseBoard(HANDLE hBoard) { BOOL ret=0; if(hDLLDrv) ret=lpfnCloseBoard(hBoard); FreeOkApiDll(); return ret; } //3. sections long WINAPI okGetLastError(void ) { (FARPROC )lpfnGetLastError=GetProcPointer("okGetLastError"); return lpfnGetLastError(); } long WINAPI okGetBufferSize(HANDLE hBoard, void **lpLinear, DWORD *dwSize) { (FARPROC )lpfnGetBufferSize=GetProcPointer("okGetBufferSize"); return lpfnGetBufferSize(hBoard, lpLinear, dwSize); } LPVOID WINAPI okGetBufferAddr(HANDLE hBoard, long iNoFrame) { return lpfnGetBufferAddr(hBoard, iNoFrame); } LPVOID WINAPI okGetTargetInfo(HANDLE hBoard, TARGET tgt, long lNoFrame, short * wid, short * ht, long *stride) { return lpfnGetTargetInfo(hBoard, tgt, lNoFrame, wid, ht, stride); } short WINAPI okGetTypeCode(HANDLE hBoard,LPSTR lpBoardName) { return lpfnGetTypeCode(hBoard,lpBoardName); } long WINAPI okSetTargetRect(HANDLE hBoard, TARGET target, LPRECT lpTgtRect) { return lpfnSetTargetRect(hBoard, target, lpTgtRect); } BOOL WINAPI okSetToWndRect(HANDLE hBoard, HWND hWnd) { return lpfnSetToWndRect(hBoard, hWnd); } BOOL WINAPI okCaptureTo(HANDLE hBoard, TARGET Dest, long start, LPARAM lParam) { return lpfnCaptureTo(hBoard, Dest, start, lParam); } BOOL WINAPI okCaptureSingle(HANDLE hBoard, TARGET Dest, LONG wParam) { return lpfnCaptureSingle(hBoard, Dest, wParam); } BOOL WINAPI okCaptureActive(HANDLE hBoard, TARGET Dest, LONG wParam) { return lpfnCaptureActive(hBoard, Dest, wParam); } BOOL WINAPI okCaptureThread(HANDLE hBoard, TARGET Dest, LONG wParam, LPARAM lParam) { return lpfnCaptureThread(hBoard, Dest, wParam, lParam); } BOOL WINAPI okCaptureSequence(HANDLE hBoard, LONG wParam, LPARAM lParam) { return lpfnCaptureSequence(hBoard, wParam, lParam); } BOOL WINAPI okCaptureToScreen(HANDLE hBoard) { return lpfnCaptureToScreen(hBoard); } BOOL WINAPI okPlaybackFrom(HANDLE hBoard, TARGET src, long start, LPARAM lParam) { return lpfnPlaybackFrom(hBoard, src, start, lParam); } BOOL WINAPI okPlaybackSequence(HANDLE hBoard, long start, LPARAM lParam) { return lpfnPlaybackSequence(hBoard, start, lParam); } long WINAPI okGetCaptureStatus(HANDLE hBoard, BOOL bWait) { return lpfnGetCaptureStatus(hBoard, bWait); } BOOL WINAPI okStopCapture(HANDLE hBoard) { return lpfnStopCapture(hBoard); } BOOL WINAPI okCaptureByBuffer(HANDLE hBoard, TARGET dest, long start, long num) { return lpfnCaptureByBuffer(hBoard, dest, start, num); } long WINAPI okGetSeqCapture(HANDLE hBoard, long start, long count) { return lpfnGetSeqCapture(hBoard, start, count); } BOOL WINAPI okCaptureByBufferEx(HANDLE hBoard, long fileset, TARGET dest, long start, long num) { return lpfnCaptureByBufferEx(hBoard, fileset, dest, start, num); } BOOL WINAPI okPlaybackByBuffer(HANDLE hBoard, TARGET src, long start, long num) { return lpfnPlaybackByBuffer(hBoard, src, start, num); } long WINAPI okSetVideoParam(HANDLE hBoard, WORD wParam, long lParam) { return lpfnSetVideoParam(hBoard, wParam, lParam); } long WINAPI okSetCaptureParam(HANDLE hBoard, WORD wParam, long lParam) { return lpfnSetCaptureParam(hBoard, wParam, lParam); } long WINAPI okReadPixel(HANDLE hBoard, TARGET src, long start, short x, short y) { return lpfnReadPixel(hBoard, src, start, x, y); } long WINAPI okWritePixel(HANDLE hBoard, TARGET src, long start, short x, short y, long value) { return lpfnWritePixel(hBoard, src, start, x, y, value); } long WINAPI okSetConvertParam(HANDLE hBoard, WORD wParam, long lParam) { return lpfnSetConvertParam(hBoard, wParam, lParam); } long WINAPI okReadRect(HANDLE hBoard, TARGET src, long start, LPBYTE lpBuf) { return lpfnReadRect(hBoard, src, start, lpBuf); } long WINAPI okWriteRect(HANDLE hBoard, TARGET dst, long start, LPBYTE lpBuf) { return lpfnWriteRect(hBoard, dst, start, lpBuf); } long WINAPI okTransferRect(HANDLE hBoard, TARGET dest, long iFirst, TARGET src, long iStart, long lNum) { return lpfnTransferRect(hBoard, dest, iFirst, src, iStart, lNum); } long WINAPI okConvertRect(HANDLE hBoard, TARGET dst, long first, TARGET src, long start, LPARAM no) { return lpfnConvertRect(hBoard, dst, first, src, start, no); } long WINAPI okConvertRectEx(HANDLE hDstBoard, TARGET dst, long first, HANDLE hSrcBoard, TARGET src, long start, LPARAM no) { return lpfnConvertRectEx(hDstBoard, dst, first, hSrcBoard, src, start, no); } long WINAPI okReadRectEx(HANDLE hBoard, TARGET src, long start, LPBYTE lpBuf, LPARAM lParam) { return lpfnReadRectEx(hBoard, src, start, lpBuf, lParam); } long WINAPI okWriteRectEx(HANDLE hBoard, TARGET dst, long start, LPBYTE lpBuf, LPARAM lParam) { return lpfnWriteRectEx(hBoard, dst, start, lpBuf, lParam); } BOOL WINAPI okSetTextTo(HANDLE hBoard, TARGET target, LPRECT lpRect, LOGFONT *lfLogFont, SETTEXTMODE *textMode, LPSTR lpString, long lLength) { return lpfnSetTextTo( hBoard, target, lpRect, lfLogFont, textMode, lpString, lLength); } long WINAPI okDrawEllipsTo(HANDLE hBoard, TARGET target, long lStart, LPRECT lpRect, long iForeColor) { return lpfnDrawEllipsTo(hBoard, target, lStart, lpRect, iForeColor); } HDC WINAPI okCreateDCBitmap(HANDLE hBoard, TARGET target, HANDLE *hDCBitmap) { return lpfnCreateDCBitmap(hBoard, target, hDCBitmap); } BOOL WINAPI okMapDCBitmapTo(HANDLE hDCBitmap, long lStart) { return lpfnMapDCBitmapTo(hDCBitmap, lStart); } BOOL WINAPI okFreeDCBitmap(HANDLE hDCBitmap) { return lpfnFreeDCBitmap(hDCBitmap); } long WINAPI okGetSignalParam(HANDLE hBoard, WPARAM wParam) { return lpfnGetSignalParam(hBoard, wParam); } long WINAPI okWaitSignalEvent(HANDLE hBoard, WPARAM wParam, LPARAM lMilliSecond) { return lpfnWaitSignalEvent(hBoard, wParam, lMilliSecond); } long WINAPI okPutSignalParam(HANDLE hBoard, WPARAM wParam, LPARAM lParam) { return lpfnPutSignalParam(hBoard, wParam, lParam); } BOOL WINAPI okSetSeqProcWnd(HANDLE hBoard, HWND hwndMain) { return lpfnSetSeqProcWnd(hBoard, hwndMain); } BOOL WINAPI okSetSeqCallback(HANDLE hBoard, BOOL CALLBACK BeginProc(HANDLE hBoard), BOOL CALLBACK SeqProc(HANDLE hBoard, long No), BOOL CALLBACK EndProc(HANDLE hBoard)) { return lpfnSetSeqCallback(hBoard, BeginProc, SeqProc, EndProc); } long WINAPI okEnableMask(HANDLE hBoard, BOOL bMask) { return lpfnEnableMask(hBoard, bMask); } long WINAPI okSetMaskRect(HANDLE hBoard, LPRECT lpRect, LPBYTE lpMask) { return lpfnSetMaskRect(hBoard, lpRect, lpMask); } long WINAPI okFillOutLUT(HANDLE hBoard, LPBYTE bLUT, short start, short num) { return lpfnFillOutLUT(hBoard, bLUT, start, num); } short WINAPI okGetSlotBoard(BOARDTYPE **lpOkInfo) { (FARPROC )lpfnGetSlotBoard=GetProcPointer("okGetSlotBoard"); return lpfnGetSlotBoard(lpOkInfo); } short WINAPI okGetBoardIndex(char *szBoardName, short iNo) { (FARPROC )lpfnGetBoardIndex=GetProcPointer("okGetBoardIndex"); return lpfnGetBoardIndex(szBoardName, iNo); } short WINAPI okGetBoardName(long lIndex, LPSTR szBoardName) { (FARPROC )lpfnGetBoardName=GetProcPointer("okGetBoardName"); return lpfnGetBoardName(lIndex, szBoardName); } long WINAPI okGetAvailBuffer(void **lpLinear, DWORD *dwSize) { (FARPROC )lpfnGetAvailBuffer=GetProcPointer("okGetAvailBuffer"); return lpfnGetAvailBuffer(lpLinear, dwSize); } long WINAPI okLockBuffer(HANDLE hBoard, DWORD dwSizeByte, void **lpBasLinear) { return lpfnLockBuffer(hBoard, dwSizeByte, lpBasLinear); } BOOL WINAPI okUnlockAllBuffer(void) { return lpfnUnlockAllBuffer(); } long WINAPI okApplyMemBlock(DWORD dwBlockSize, DWORD dwBlockNo) { (FARPROC )lpfnApplyMemBlock=GetProcPointer("okApplyMemBlock"); return lpfnApplyMemBlock(dwBlockSize, dwBlockNo); } BOOL WINAPI okFreeMemBlock(void) { return lpfnFreeMemBlock(); } long WINAPI okGetMemBlock(HANDLE hBoard, DWORD *dwEachSize, DWORD *dwBlockNo) { return lpfnGetMemBlock(hBoard, dwEachSize, dwBlockNo); } long WINAPI okLockMemBlock(HANDLE hBoard, long lBlockNo) { return lpfnLockMemBlock(hBoard, lBlockNo); } BOOL WINAPI okUnlockMemBlock(void) { return lpfnUnlockMemBlock(); } BOOL WINAPI okMulCaptureTo(HANDLE *lphBoard, TARGET Dest, long start, LPARAM lParam) { return lpfnMulCaptureTo(lphBoard, Dest, start, lParam); } BOOL WINAPI okMulCaptureByBuffer(HANDLE *lphBoard, TARGET Dest, long start, LPARAM lParam) { return lpfnCaptureByBuffer(lphBoard, Dest, start, lParam); } long WINAPI okSetAllocBuffer(long lSize) { (FARPROC )lpfnSetAllocBuffer=GetProcPointer("okSetAllocBuffer"); return lpfnSetAllocBuffer(lSize); } BOOL WINAPI okSetStaticVxD(long lMode) { (FARPROC )lpfnSetStaticVxD=GetProcPointer("okSetStaticVxD"); return lpfnSetStaticVxD(lMode); } BOOL WINAPI okSetNTDriver(BOOL lMode) { (FARPROC )lpfnSetNTDriver=GetProcPointer("okSetNTDriver"); return lpfnSetNTDriver(lMode); } long WINAPI okSetLangResource(long lMode) { (FARPROC )lpfnSetLangResource=GetProcPointer("okSetLangResource"); return lpfnSetLangResource(lMode); } BOOL WINAPI okUnRegister(DWORD dwCmd) { (FARPROC )lpfnUnRegister=GetProcPointer("okUnRegister"); return lpfnUnRegister(dwCmd); } long WINAPI okGetProgramInfo(int iItem, LPSTR lpString, int iSize) { (FARPROC )lpfnGetProgramInfo=GetProcPointer("okGetProgramInfo"); return lpfnGetProgramInfo(iItem, lpString, iSize); } BOOL WINAPI okSaveInitParam(HANDLE hBoard, short iChanNo) { return lpfnSaveInitParam(hBoard, iChanNo); } BOOL WINAPI okLoadInitParam(HANDLE hBoard, short iChanNo) { return lpfnLoadInitParam(hBoard, iChanNo); } long WINAPI okReadProtCode(HANDLE hApi, short iIndex) { return lpfnReadProtCode(hApi, iIndex); } long WINAPI okWriteProtCode(HANDLE hApi, short iIndex, long lCode) { return lpfnWriteProtCode(hApi, iIndex, lCode); } long WINAPI okSaveImageFile(HANDLE hBoard, LPSTR szFileName, long first, TARGET target, long start, long num) { return lpfnSaveImageFile(hBoard, szFileName, first, target, start, num); } long WINAPI okLoadImageFile(HANDLE hBoard, LPSTR szFileName, long first, TARGET target, long start, long num) { return lpfnLoadImageFile(hBoard, szFileName, first, target, start, num); } BOOL WINAPI okLoadConfigFile(HANDLE hBoard, LPSTR szFileName) { return lpfnLoadConfigFile(hBoard, szFileName); } BOOL WINAPI okSaveConfigFile(HANDLE hBoard, LPSTR szFileName) { return lpfnSaveConfigFile(hBoard, szFileName); } BOOL WINAPI okOpenSetParamDlg( HANDLE hBoard, HWND hParentWnd) { return lpfnOpenSetParamDlg(hBoard, hParentWnd); } BOOL WINAPI okOpenSeqCaptureDlg( HANDLE hBoard, HWND hParentWnd) { return lpfnOpenSeqCaptureDlg(hBoard, hParentWnd); } LPDIBINFO WINAPI okOpenReplayDlg( HANDLE hBoard, HWND hWnd, TARGET src, long total) { return lpfnOpenReplayDlg(hBoard, hWnd, src, total); } HWND WINAPI okOpenReplayDlgEx( HANDLE hBoard, HWND hWnd, TARGET src, long total, LPBITMAPINFOHEADER lpbi, LPBYTE lpdib) { return lpfnOpenReplayDlgEx(hBoard, hWnd, src, total, lpbi, lpdib); } HANDLE WINAPI okBeginEncode(HANDLE hBoard, WORD wCodeWay, LPARAM lParam) { return lpfnBeginEncode(hBoard, wCodeWay, lParam); } long WINAPI okEncodeImage(HANDLE hCoder, TARGET target, long start, LPBYTE lpData, long maxlen) { return lpfnEncodeImage(hCoder, target, start, lpData, maxlen); } long WINAPI okEndEncode(HANDLE hCoder) { return lpfnEndEncode(hCoder); } HANDLE WINAPI okBeginDecode(HANDLE hBoard, WORD wCodeWay, LPBYTE lpData, LPIMAGESIZE lpImageInfo) { return lpfnBeginDecode(hBoard, wCodeWay, lpData, lpImageInfo); } long WINAPI okDecodeImage(HANDLE hCoder, LPBYTE lpData, long *length, TARGET target, long start) { return lpfnDecodeImage(hCoder, lpData, length, target, start); } long WINAPI okEndDecode(HANDLE hCoder) { return lpfnEndDecode(hCoder); } BOOL WINAPI okOutputByte(WORD port, BYTE data) { return lpfnOutputByte(port, data); } BYTE WINAPI okInputByte(WORD port) { return lpfnInputByte(port); } BOOL WINAPI okOutputShort(WORD port, short data) { return lpfnOutputShort(port, data); } short WINAPI okInputShort(WORD port) { return lpfnInputShort(port); } BOOL WINAPI okOutputLong(WORD port, long data) { return lpfnOutputLong(port, data); } long WINAPI okInputLong(WORD port) { return lpfnInputLong(port); } BOOL WINAPI okSetPortBase(WORD wPortBase, short iPortCount) { return lpfnSetPortBase(wPortBase, iPortCount); } short WINAPI okGetGPIOPort(short index, WORD *wPortBase) { return lpfnGetGPIOPort(index, wPortBase); } DWORD WINAPI okGetAddrForVB(void *lpArry) { return lpfnGetAddrForVB(lpArry); } DWORD WINAPI okGetTickCount(void) { return lpfnGetTickCount(); } void WINAPI okSleep(DWORD dwMillSeconds) { lpfnSleep(dwMillSeconds); } //--------audio----------- HANDLE WINAPI okOpenAudio(HANDLE hBoard, LPARAM lParam) { LoadOkApiDll(); return lpfnOpenAudio(hBoard, lParam); } BOOL WINAPI okCloseAudio(HANDLE hAudio) { BOOL ret; ret=lpfnCloseAudio(hAudio); FreeOkApiDll(); return ret; } long WINAPI okCaptureAudio(HANDLE hAudio, TARGET target, FARPROC WriteAudioProc, LPARAM lParam) { return lpfnCaptureAudio(hAudio, target, WriteAudioProc, lParam); } BOOL WINAPI okStopCaptureAudio(HANDLE hAudio) { return lpfnStopCaptureAudio(hAudio); } long WINAPI okSetAudioParam(HANDLE hAudio, WORD wParam, LPARAM lParam) { return lpfnSetAudioParam(hAudio, wParam, lParam); } long WINAPI okReadAudioData(HANDLE hAudio, LPBYTE lpAudioBuf, long lSize) { return lpfnReadAudioData(hAudio, lpAudioBuf, lSize); } //----------- stream -------------- HANDLE WINAPI okOpenStream(HANDLE hBoard, LPARAM lParam) { return lpfnOpenStream(hBoard, lParam); } BOOL WINAPI okCloseStream(HANDLE hStream) { return lpfnCloseStream(hStream); } long WINAPI okCaptureStream(HANDLE hStream, TARGET target, FARPROC lpfnUserProc, long lMiliSeconds) { return lpfnCaptureStream(hStream, target, lpfnUserProc, lMiliSeconds); } BOOL WINAPI okStopCaptureStream(HANDLE hStream, DWORD dwPause) { return lpfnStopCaptureStream(hStream, dwPause); } long WINAPI okSetStreamParam(HANDLE hStream, WORD wParam, LPARAM lParam) { return lpfnSetStreamParam(hStream, wParam, lParam); } long WINAPI okReadStreamData(HANDLE hStream, LPBYTE lpStreamBuf, long lReadSize) { return lpfnReadStreamData(hStream, lpStreamBuf, lReadSize); } //-----------end------------------------------------------------------------------------