Да конечно красяво, но я не слишком люблю для простых действий делать классы обертки

. Да кстати сначало ета функция выглядела не так а вот как:
bool CIMProto::Login2(char *login,char *pass,u_long status)
{
unsigned int thrdaddr;
if(connected && !logining)
{
if(sendmtx=CreateMutex(NULL,false,NULL))
{
DbgPrint("Login2: send CreateMutex error...");
return false;
}
if(recvmtx=CreateMutex(NULL,false,NULL))
{
DbgPrint("Login2: recv CreateMutex error...");
CloseHandle(sendmtx);
return false;
}
if(pingthrd=(HANDLE)_beginthreadex(NULL,0,(PTHREAD)PingThread,this,0,&thrdaddr))
{
DbgPrint("Login2: ping _beginthreadex error...");
CloseHandle(sendmtx);
CloseHandle(recvmtx);
return false;
}
if(recvthrd=(HANDLE)_beginthreadex(NULL,0,(PTHREAD)RecvThread,this,0,&thrdaddr))
{
DbgPrint("Login2: recv _beginthreadex error...");
CloseHandle(sendmtx);
CloseHandle(recvmtx);
TerminateThread(pingthrd,0);
WaitForSingleObject(pingthrd,INFINITE);
CloseHandle(pingthrd);
return false;
}
DbgPrint("Login2: successfull...")
return true;
}
DbgPrint("Login2: not connected or loginning error...")
return false;
}
И как на твой взгляд какая функция красивей?