Проверка принадлежности потока BOOL CheckCurrentProcess(DWORD dwThreadID )
{
	HANDLE				hSnapshot;
	BOOL				bRet = TRUE;
	BOOL				bCont;
	THREADENTRY32		meThreadEntry;
	DWORD dwProceessID = GetCurrentProcessId();
	hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD,0 );
	if( hSnapshot != NULL )
	{
		meThreadEntry.dwSize = sizeof( THREADENTRY32 );
		bCont = Thread32First( hSnapshot,&meThreadEntry );
		while( bCont && bRet )
		{
			if( ( meThreadEntry.th32ThreadID == dwThreadID ) && ( meThreadEntry.th32OwnerProcessID == dwProceessID ) )
				bRet = FALSE;
			else
				bCont = Thread32Next( hSnapshot,&meThreadEntry );
		}
		CloseHandle( hSnapshot );
	}
	return bRet;
}

Поделитесь материалом с коллегами и друзьями