Пример #1
0
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);
}
Пример #2
0
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;
}
Пример #3
0
WL_API void deinit() {

	if(receive) {
		receive->deinit();
		delete receive;
		receive = NULL;
	}

	SAFE_CLOSE_HANDLE(dataReadyEvent);

	threadExitEvent = NULL;	
}
Пример #4
0
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"));
        }
    }
}
Пример #8
0
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;
}
Пример #9
0
void CFileStream::CloseFile()
{
	SAFE_CLOSE_HANDLE( m_hFile );
}
Пример #10
0
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);
}
Пример #11
0
void CDownload::_Cleanup()
{
	SAFE_CLOSE_HANDLE(m_hThread);
	SAFE_CLOSE_HANDLE(m_hStopEvent);
}
Пример #12
0
void CFilePage::OnBnClickedBtnClosefile()
{
    BOOL bRet = FALSE;
    SAFE_CLOSE_HANDLE(m_hShareFileHandle, INVALID_HANDLE_VALUE);
    _SetFileButtonStatus();
}
Пример #13
0
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 ();
}
Пример #14
0
void ZJobObject::close()
{
    SAFE_CLOSE_HANDLE(m_handle);
}