void Receive::threadProc() { exitEvent = CreateEvent(NULL,TRUE,FALSE,NULL); while(TRUE) { ULONG ulCmd, ulAddr; if (LWEXT_GetIr(&ulCmd,&ulAddr)!=DLL_OK){ //break; } if (WaitForSingleObject (exitEvent,0) == WAIT_OBJECT_0) break; if ((ulCmd==0xff) || (ulCmd==0xcc) || (ulAddr==0xff) || (ulAddr==0xcc)) continue; WORD code = MAKEWORD(ulCmd,ulAddr); code |= 0x3000; #ifdef _DEBUG char code_str[128]; sprintf(code_str,"Geniatech RC: 0x%04X\n",(DWORD)code); OutputDebugString(code_str); #endif//RCCODE_DEBUGOUT setData(code); // no conversion needed (hopefully) SetEvent(dataReadyEvent); Sleep(100); } SAFE_CLOSE_HANDLE(exitEvent); }
void XESocketClientInServer::CloseWorkThread() { Lock( __TFUNC__ ); SAFE_CLOSE_HANDLE( m_thWork.m_hHandle ); Unlock(); if( m_thWork.m_idThread ) XDetectDeadLock::sGet()->DelThread( m_thWork.m_idThread ); m_thWork.m_idThread = 0; }
WL_API void deinit() { if(receive) { receive->deinit(); delete receive; receive = NULL; } SAFE_CLOSE_HANDLE(dataReadyEvent); threadExitEvent = NULL; }
WL_API void deinit() { if(sendReceiveData) { sendReceiveData->deinit(); delete sendReceiveData; sendReceiveData = nullptr; } SAFE_CLOSE_HANDLE(dataReadyEvent); threadExitEvent = nullptr; }
CFilePage::~CFilePage() { BOOL bRet = FALSE; SAFE_CLOSE_HANDLE(m_hShareFileHandle, INVALID_HANDLE_VALUE); if (m_pShareFilePointer) { fclose(m_pShareFilePointer); m_pShareFilePointer = NULL; } if (m_nShareFileStream.is_open()) { m_nShareFileStream.close(); } }
void CFilePage::OnBnClickedBtnAutoName() { CFileDialog dlg(FALSE, NULL, NULL, 0); if (dlg.DoModal()) { BOOL bRet = FALSE; TCHAR szFilePath[MAX_PATH] = {0}; StringCchCopy(szFilePath, _countof(szFilePath), dlg.GetPathName()); HANDLE hFile = NULL; API_VERIFY((hFile = CFFileUtil::CreateLocalWriteFile(szFilePath, _countof(szFilePath), clfAutoRename)) != NULL); SAFE_CLOSE_HANDLE(hFile, INVALID_HANDLE_VALUE); } }
void CFilePage::OnBnClickedBtnLockOpen() { BOOL bRet = FALSE; CFileDialog dlgFile(TRUE); if(dlgFile.DoModal() == IDOK) { HANDLE hFileLockOpen = INVALID_HANDLE_VALUE; API_VERIFY(INVALID_HANDLE_VALUE != (hFileLockOpen = ::CreateFile(dlgFile.GetPathName(), GENERIC_WRITE, m_dwHandleShareMode, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL))); if(bRet) { MessageBox(TEXT("Open file Success, close file when close the message dialog")); SAFE_CLOSE_HANDLE(hFileLockOpen, INVALID_HANDLE_VALUE); } else{ MessageBox(TEXT("Open file fail")); } } }
BOOL CFileStream::SetLength( uint64 iFileSize ) { if ( !m_hFile ) return FALSE; m_iFileLength = iFileSize; uint64 iFreeBytesToCaller = 0; TCHAR szDriver[4] = { PathGetDriveNumber( m_strFilePath ) + _T( 'A' ), _T( ':' ), _T( '\\' ), _T( '\0' ) }; if ( GetDiskFreeSpaceEx( szDriver, ( PULARGE_INTEGER )&iFreeBytesToCaller, NULL, NULL ) ) { if (m_iFileLength > 0 && iFreeBytesToCaller > m_iFileLength ) { long iPosHigh = HIINT32( m_iFileLength ); if ( INVALID_SET_FILE_POINTER == SetFilePointer( m_hFile, LOINT32( m_iFileLength ), &iPosHigh, FILE_BEGIN ) && NO_ERROR != GetLastError() ) { SAFE_CLOSE_HANDLE(m_hFile); return FALSE; } return TRUE; } } return FALSE; }
void CFileStream::CloseFile() { SAFE_CLOSE_HANDLE( m_hFile ); }
void SendReceiveData::threadProc() { //======================== OVERLAPPED overlappedRead; HANDLE events[2]; DWORD result; //======================== memset(&overlappedRead,0,sizeof(OVERLAPPED)); overlappedRead.hEvent = CreateEvent(NULL,FALSE,FALSE,NULL); exitEvent = CreateEvent(NULL,TRUE,FALSE,NULL); events[0] = overlappedRead.hEvent; events[1] = exitEvent; setFeatures(); while(1) { //============== UCHAR buffer[5]; DWORD bytesRead; //============== if(!ReadFile(device.HidDevice,buffer,5,&bytesRead,&overlappedRead)) { //break; } result = WaitForMultipleObjects(2,events,FALSE,INFINITE); if(result==(WAIT_OBJECT_0)) { irCode = buffer[2]; if(irCode==lastValue) { repeats++; } else { repeats = 0; } //printf("irCode %i repeats %i\n",irCode,repeats); SetEvent(dataReadyEvent); } if(result==(WAIT_OBJECT_0+1)) { //printf("leaving thread \n"); break; } } restoreFeatures(); CloseHidDevice(&device); SAFE_CLOSE_HANDLE(exitEvent); SAFE_CLOSE_HANDLE(overlappedRead.hEvent); }
void CDownload::_Cleanup() { SAFE_CLOSE_HANDLE(m_hThread); SAFE_CLOSE_HANDLE(m_hStopEvent); }
void CFilePage::OnBnClickedBtnClosefile() { BOOL bRet = FALSE; SAFE_CLOSE_HANDLE(m_hShareFileHandle, INVALID_HANDLE_VALUE); _SetFileButtonStatus(); }
void Receive::threadProc() { CoInitializeEx(nullptr,COINIT_MULTITHREADED); exitEvent = CreateEvent(nullptr,TRUE,FALSE,nullptr); BYTE addr=0, cmd=0, count=0; while(TRUE) { Sleep(50); ULONG bytesReturned = 0; KSPROPERTY_IRCAPTURE_KEYSTROKES_S kStore = {1,1}; KSPROPERTY ks; ks.Id = KSPROPERTY_IRCAPTURE_KEYSTROKES; // make call into driver HRESULT hr = m_pKsVCPropSet->Get(KSPROPSETID_CustomIRCaptureProperties, KSPROPERTY_IRCAPTURE_KEYSTROKES, &ks, sizeof(ks), &kStore, sizeof(kStore), &bytesReturned); if FAILED(hr) break; if (WaitForSingleObject (exitEvent,0) == WAIT_OBJECT_0) break; if ((kStore.dwAddress==0xffff) || (kStore.dwCommand==0xffff) || (kStore.dwCommand==0xff) || (kStore.dwCommand==0x00)) continue; if (kStore.dwCommand==0x10000) count++; else { addr = (BYTE)kStore.dwAddress; cmd = (BYTE)kStore.dwCommand; count=0; } if (count && count<5) continue; WORD code = MAKEWORD(cmd,addr); #ifdef _DEBUG char code_str[128]; sprintf_s(code_str,"TBS CXT RC: 0x%04X\n",(DWORD)code); OutputDebugStringA(code_str); #endif//RCCODE_DEBUGOUT setData(code); // no conversion needed (hopefully) SetEvent(dataReadyEvent); } KSPROPERTY_IRCAPTURE_COMMAND_S ir_cmd; ir_cmd.CommandCode = IRCAPTURE_COMMAND_STOP; // make call into driver m_pKsVCPropSet->Set(KSPROPSETID_CustomIRCaptureProperties, KSPROPERTY_IRCAPTURE_COMMAND, &ir_cmd, sizeof(ir_cmd), &ir_cmd, sizeof(ir_cmd)); SAFE_CLOSE_HANDLE(exitEvent); CoUninitialize (); }
void ZJobObject::close() { SAFE_CLOSE_HANDLE(m_handle); }