#pragma once
#include "base_head.h"

const DWORD MS_VC_EXCEPTION_PROCESO_UTILES=0x406D1388;

#pragma pack(push,8)
typedef struct tagTHREADNAME_INFO
{
	DWORD dwType; // Must be 0x1000.
	LPCSTR szName; // Pointer to name (in user addr space).
	DWORD dwThreadID; // Thread ID (-1=caller thread).
	DWORD dwFlags; // Reserved for future use, must be zero.
} THREADNAME_INFO;
#pragma pack(pop)

class UTILES_EXPORT C_proceso//proceso base
{
public:
	C_proceso(void);
	char nombre[32];
	CWinThread * m_thread;
	virtual ~C_proceso(void);
	BOOL lanza(char *nombre=NULL);//lanzar thread
	virtual void run();//funcion que hace el thread
	void join();//espera al thread
};
UINT main_c_proceso(LPVOID pp);
UTILES_EXPORT void SetThreadName( DWORD dwThreadID, char* threadName);