#include "StdAfx.h" #include "PlayApi.h" ////////////////////////////////////////////////////////////////////////// // CPlayAPI::CPlayAPI(): m_hModule(NULL), m_APIOpenStream(NULL), m_APISetDisplayCallBack(NULL), m_APIRigisterDrawFun(NULL), m_APIPlay(NULL), m_APIInputData(NULL), m_APIQueryInfo(NULL), m_APIStop(NULL), m_APICloseStream(NULL), m_APIGetLastError(NULL) { } CPlayAPI::~CPlayAPI() { if (m_hModule) { FreeLibrary(m_hModule); m_hModule = NULL; OutputDebugString(_T("Unload PlaySDK!\n")); } } ////////////////////////////////////////////////////////////////////////// // void CPlayAPI::LoadPlayDll() { HMODULE hLib = ::LoadLibraryEx("dhplay.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH); if (hLib) { m_APIOpenStream = (PLAY_API_OPENSTREAM)GetProcAddress(hLib, "PLAY_OpenStream");; m_APISetDisplayCallBack = (PLAY_API_SETIVSCALLBACK)GetProcAddress(hLib, "PLAY_SetIVSCallBack"); m_APIRigisterDrawFun = (PLAY_API_RIGISTERDRAWFUN)GetProcAddress(hLib, "PLAY_RigisterDrawFun"); m_APIPlay = (PLAY_API_PLAY)GetProcAddress(hLib, "PLAY_Play"); m_APIInputData = (PLAY_API_INPUTDATA)GetProcAddress(hLib, "PLAY_InputData"); m_APIQueryInfo = (PLAY_API_QUERYINFO)GetProcAddress(hLib, "PLAY_QueryInfo"); m_APIStop = (PLAY_API_STOP)GetProcAddress(hLib, "PLAY_Stop"); m_APICloseStream = (PLAY_API_CLOSESTREAM)GetProcAddress(hLib, "PLAY_CloseStream"); m_APIGetLastError = (PLAY_API_GetLastError)GetProcAddress(hLib, "PLAY_GetLastError"); m_hModule = hLib; OutputDebugString(_T("Load PlaySDK Successfully!\n")); } else { OutputDebugString(_T("Load PlaySDK Failed!\n")); } } BOOL CPlayAPI::PLAY_OpenStream(LONG nPort,PBYTE pFileHeadBuf,DWORD nSize,DWORD nBufPoolSize) { if (m_APIOpenStream) { return m_APIOpenStream(nPort, pFileHeadBuf, nSize, nBufPoolSize); } return FALSE; } BOOL CPlayAPI::PLAY_SetIVSCallBack(LONG nPort, GetIVSInfoCallbackFunc pFunc, void* pUserData) { if (m_APISetDisplayCallBack) { return m_APISetDisplayCallBack(nPort, pFunc, pUserData); } return FALSE; } BOOL CPlayAPI::PLAY_RigisterDrawFun(LONG nPort, DrawFun DrawFuncb, void* pUserData) { if (m_APIRigisterDrawFun) { return m_APIRigisterDrawFun(nPort, DrawFuncb, pUserData); } return FALSE; } BOOL CPlayAPI::PLAY_Play(LONG nPort, HWND hWnd) { if (m_APIPlay) { return m_APIPlay(nPort, hWnd); } return FALSE; } BOOL CPlayAPI::PLAY_InputData(LONG nPort, PBYTE pBuf, DWORD nSize) { if (m_APIInputData) { return m_APIInputData(nPort, pBuf, nSize); } return FALSE; } BOOL CPlayAPI::PLAY_QueryInfo(LONG nPort , int cmdType, char* buf, int buflen, int* returnlen) { if (m_APIQueryInfo) { return m_APIQueryInfo(nPort, cmdType, buf, buflen, returnlen); } return FALSE; } BOOL CPlayAPI::PLAY_Stop(LONG nPort) { if (m_APIStop) { return m_APIStop(nPort); } return FALSE; } BOOL CPlayAPI::PLAY_CloseStream(LONG nPort) { if (m_APICloseStream) { return m_APICloseStream(nPort); } return FALSE; } DWORD CPlayAPI::PLAY_GetLastError(LONG nPort) { if (m_APIGetLastError) { return m_APIGetLastError(nPort); } return -1; }