BOOL CHttpDataParser::HandleTransferData( PBYTE pData,int nDataLen ) { if ( m_ceEncoding == CE_GZIP ) { BYTE *pUnCompBuffer = NULL; ULONG ulUnCompBufferLen = 0; BOOL bUnCompRes = UnCompressGzipData(&m_gzipstream,&pUnCompBuffer,&ulUnCompBufferLen,pData,nDataLen); ASSERT(bUnCompRes); if ( bUnCompRes && m_pCallback ) { m_pCallback(m_pCallbackParam,pUnCompBuffer,ulUnCompBufferLen,FALSE); } free(pUnCompBuffer); return bUnCompRes; } if (m_pCallback) { m_pCallback(m_pCallbackParam,pData,nDataLen,FALSE); } return TRUE;; }
void CCommunity::DoPulse ( void ) { if ( m_ulStartTime ) { eVerificationResult Status; // Poll the HTTP client CHTTPBuffer buffer; if ( m_HTTP.GetData ( buffer ) ) { char *szBuffer = buffer.GetData (); // Get the returned status Status = (eVerificationResult)(szBuffer[0] - 48); m_bLoggedIn = Status == VERIFY_ERROR_SUCCESS; m_ulStartTime = 0; // Change GUI CLocalGUI::GetSingleton ().GetMainMenu()->ChangeCommunityState ( m_bLoggedIn, m_strUsername ); CLocalGUI::GetSingleton ().GetMainMenu()->GetSettingsWindow()->OnLoginStateChange ( m_bLoggedIn ); // Perform callback if ( m_pCallback ) { m_pCallback ( m_bLoggedIn, szVerificationMessages[Status], m_pVerificationObject ); m_pCallback = NULL; m_pVerificationObject = NULL; } } // Check for timeout else if ( ( CClientTime::GetTime () - m_ulStartTime ) > VERIFICATION_DELAY ) { g_pCore->ShowMessageBox ( "Error", "Services currently unavaliable", MB_BUTTON_OK | MB_ICON_ERROR ); Logout (); } } }
void CMessageBox::Close(bool bReturn) { if (!m_bVisible) return; m_bVisible = false; m_Dlg.Show(false); m_Dlg.FlushTextureStrings(); if (m_eType == LTMB_EDIT) m_pData = (void*)m_pEdit->GetText(); if (!m_bGameWasPaused) g_pGameClientShell->PauseGame(false); if (m_pCallback) { m_pCallback(bReturn, m_pData, m_pUserData); } // Play sound... g_pInterfaceMgr->RequestInterfaceSound(IS_SELECT); // Set the cursor to the appropriate state g_pInterfaceMgr->UpdateCursorState(); }
void SensorManagerClass::EndReadings() { for (int x = 0; x <= m_bLastSensor; x++) { (m_arrSensors[x])->EndReading(); } // Invoke the callback if there is one if (m_pCallback) m_pCallback(); }
//往打包文件中添加一个目录 bool KPackFileManager::AddFolderToPak(int nFullFolderFileNameLen) { strcpy(m_FullFolderFileName + nFullFolderFileNameLen, "*.*"); HANDLE hFindHandle; //win32查找文件句柄 WIN32_FIND_DATA FindData; hFindHandle = ::FindFirstFile(m_FullFolderFileName, &FindData); if (hFindHandle == INVALID_HANDLE_VALUE) return false; bool bOk = true; do { if (FindData.cFileName[0] == '.') continue; int nNewLen = (int)strlen(FindData.cFileName); memcpy(m_FullFolderFileName + nFullFolderFileNameLen, FindData.cFileName, nNewLen); nNewLen += nFullFolderFileNameLen; if (nNewLen - m_nElemFileRootPathNotEnderLen >= 128) { printf("Error: The length of [%S] is out of limit!\n", m_FullFolderFileName + m_nElemFileRootPathNotEnderLen); } if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { m_FullFolderFileName[nNewLen++] = '\\'; m_FullFolderFileName[nNewLen] = 0; if (!AddFolderToPak(nNewLen)) { bOk = false; break; } } else { m_FullFolderFileName[nNewLen] = 0; if (m_pCallback && !m_pCallback(m_FullFolderFileName)) continue; if (!AddElemToPak()) { bOk = false; break; } } }while(::FindNextFile(hFindHandle, &FindData)); ::FindClose(hFindHandle); hFindHandle = INVALID_HANDLE_VALUE ; return bOk; }
void MPUManager::__WorkThreadPush() { __CaptureData_t _Data; memset( &_Data, 0, sizeof(__CaptureData_t) ); for(;!m_bStop;) { usleep(5*1000); if( __LoadDataFromDevice( &_Data ) ) { m_pCallback( &_Data ); } } }
// Handle the right command LTBOOL CLTGUISlider::OnRight() { if (m_bDisplayOnly) return LTFALSE; int nPos = m_nSliderPos+m_nSliderIncrement; if ( nPos > m_nMaxSlider ) { nPos = m_nMaxSlider; } if (nPos != m_nSliderPos) { if (m_pCallback && !m_pCallback(this,nPos,m_nSliderPos)) return LTFALSE; SetSliderPos(nPos); return LTTRUE; } return LTFALSE; }
void CMessageBox::Close(LTBOOL bReturn) { if (!m_bVisible) return; if (m_pCallback) { m_pCallback(bReturn, m_pData); } //hack to prevent cursor from showing up after state transition if (g_pInterfaceMgr->GetGameState() == GS_PLAYING) m_bCursorWasUsed = LTFALSE; // g_pInterfaceMgr->UseCursor(m_bCursorWasUsed); if (!m_bGameWasPaused) g_pGameClientShell->PauseGame(LTFALSE); m_MsgBox.Destroy(); m_bVisible = LTFALSE; g_pInterfaceMgr->UpdateCursorState(); }
LTBOOL CLTGUISlider::OnLButtonUp(int x, int y) { if (m_bDisplayOnly) return LTFALSE; if (m_bOverLeft) return OnLeft(); if (m_bOverRight) return OnRight(); if (x >= m_rcBar.left && y >= m_rcBar.top && x <= m_rcBar.right && y <= m_rcBar.bottom) { float fPercent = (float)(x - m_rcBar.left) / (float)(m_rcBar.right - m_rcBar.left); int nPos = m_nSliderIncrement * (int)((fPercent * (float)(m_nMaxSlider - m_nMinSlider) / (float)m_nSliderIncrement) + 0.5f); if (nPos+m_nMinSlider != m_nSliderPos) { if (m_pCallback && !m_pCallback(this,(nPos+m_nMinSlider),m_nSliderPos)) return LTFALSE; SetSliderPos(nPos+m_nMinSlider); return LTTRUE; } } return LTFALSE; }
void CCommunity::DownloadSuccess( char* pCompletedData, size_t completedLength ) { // Get the returned status eVerificationResult Status = VERIFY_ERROR_UNEXPECTED; if ( completedLength > 0 ) { Status = (eVerificationResult)(pCompletedData[0] - 48); } m_bLoggedIn = Status == VERIFY_ERROR_SUCCESS; m_ulStartTime = 0; // Change GUI CLocalGUI::GetSingleton ().GetMainMenu()->ChangeCommunityState ( m_bLoggedIn, m_strUsername ); CLocalGUI::GetSingleton ().GetMainMenu()->GetSettingsWindow()->OnLoginStateChange ( m_bLoggedIn ); // Perform callback if ( m_pCallback ) { m_pCallback ( m_bLoggedIn, szVerificationMessages[Status], m_pVerificationObject ); m_pCallback = NULL; m_pVerificationObject = NULL; } }
BOOL CHttpDataParser::ParseRecvData( PBYTE pRecvData,int nRecvDataLen,BOOL *pbFinalData) { BOOL bAddRes = FALSE; do { if ( NULL == pRecvData || nRecvDataLen == 0 ) { break; } //如果还没有接受到头部,则缓存数据,等待头部 if ( FALSE == m_bHeaderOk ) { m_bufHead.AppendData(pRecvData,nRecvDataLen); } else { m_bufContent.AppendData(pRecvData,nRecvDataLen); } if ( FALSE == m_bHeaderOk ) { BYTE *pHeadDataBuffer = m_bufHead.GetDataBuffer(); LONGLONG llHeadDataLen = m_bufHead.GetTotalBufferLen(); CHttpRecvParser recvparser; if (recvparser.ParseData((const char *)pHeadDataBuffer,llHeadDataLen) ) { m_bHeaderOk = TRUE; m_nContentStart = recvparser.GetContentStart(); int nRecvContentLen = llHeadDataLen - m_nContentStart; if ( nRecvContentLen > 0 ) { m_bufContent.AppendData(pHeadDataBuffer+m_nContentStart,nRecvContentLen); } m_pCallback(m_pCallbackParam,pHeadDataBuffer,m_nContentStart,TRUE); CStringA strContentLen; CStringA strContentEncoding; CStringA strTransferEncoding; strContentLen = recvparser.GetValueByName("Content-Length"); strContentEncoding = recvparser.GetValueByName("Content-Encoding"); strTransferEncoding = recvparser.GetValueByName("Transfer-Encoding"); if ( !strContentLen.IsEmpty() ) { //没有传输编码 m_teEncoding = TE_NO_ENCODING; m_llTotalContentLen = _ttoi64(CString(strContentLen)); } else if( !strTransferEncoding.IsEmpty() ) { //有传输编码 if ( strTransferEncoding.CompareNoCase("chunked") == 0 ) { m_teEncoding = TE_CHUNKED; } else { ASSERT(FALSE); } } else { m_teEncoding = TE_NO_ENCODING; m_llTotalContentLen = 0; } if( !strContentEncoding.IsEmpty() ) { //内容有压缩编码 if ( strContentEncoding.Find("gzip") >= 0 ) { m_ceEncoding = CE_GZIP; } else { m_ceEncoding = CE_UNKNOWN; } } else { m_ceEncoding = CE_NO_ENCODING; } } } if ( m_bHeaderOk ) { BYTE *pContentDataBuffer = m_bufContent.GetDataBuffer(); LONGLONG llContentDataLen = m_bufContent.GetTotalBufferLen(); if ( pContentDataBuffer && llContentDataLen ) { HandleContentData( pContentDataBuffer , llContentDataLen,pbFinalData); m_bufContent.DestoryData(); } } bAddRes = TRUE; } while (FALSE); return bAddRes; }
void CGEWebRequest::OnExit() { if ( m_pCallback ) m_pCallback( (char*) m_Result.Base(), m_pError ); }
HRESULT DetectionModule_touchLib::CallCallbackFunction() { m_pCallback(m_callbackArgc,m_callbackArgv); return S_OK; }