📄 awarenetclass.cpp
字号:
#include "stdafx.h"
#include "AwareNetClass.h"
/*
--------------------------CAwareNet Class--------------------------
Version 1.19
Copyright(C) 1999, 2000 Tenebril Incorporated
Extensive documentation is provided online at the
Tenebril Incorporated web site. It is accessible from,
http://www.tenebril.com/developers/main.html
Please refer to this documentation to learn how to use
AwareNet.
---------------------------------------------------------------------
*/
//////////////////////////////////////////////////////////////////////////
// CAwareNet class
//
// This class contains no state; you can create as many instantiations as
// you like without affecting the internal state of AwareNet. In most
// cases, it simply calls the underlying API function. Some use MFC
// dynamic memory classes to make life a little easier.
//
//////////////////////////////////////////////////////////////////////////
CAwareNet::CAwareNet()
{
}
CAwareNet::~CAwareNet()
{
}
BOOL CAwareNet::Initialize(HWND ParentWindow, int Service)
{
return AwareNet_Initialize(ParentWindow, Service);
}
BOOL CAwareNet::Deallocate(int Service)
{
return AwareNet_Deallocate(Service);
}
BOOL CAwareNet::SetMyProfile(CPersonalInfo PInfo)
{
ASSERT(PInfo.m_pData);
return AwareNet_SetMyProfile(*PInfo.m_pData);
}
HWND CAwareNet::SetParentWindow(HWND Parent)
{
return AwareNet_SetParentWindow(Parent);
}
BOOL CAwareNet::FlushData()
{
return AwareNet_FlushData();
}
BOOL CAwareNet::Add(LPCTSTR czProgramName, LPCTSTR czProgramURL, int nTOS)
{
return AwareNet_Add(czProgramName, czProgramURL, nTOS);
}
BOOL CAwareNet::AddID(int ID)
{
return AwareNet_AddID(ID);
}
BOOL CAwareNet::ChangeIdentity()
{
return AwareNet_ChangeIdentity();
}
int CAwareNet::GetHighestIdentity()
{
return AwareNet_GetHighestIdentity();
}
BOOL CAwareNet::GetIdentity(int iIdentityNum, LPTSTR czName,
UINT nNameLen)
{
return AwareNet_GetIdentity(iIdentityNum, czName, nNameLen);
}
BOOL CAwareNet::SetIdentity(int iIdentityNum, LPCTSTR cszPassword)
{
return AwareNet_SetIdentity(iIdentityNum, cszPassword);
}
BOOL CAwareNet::DeleteIdentity(int iID)
{
return AwareNet_DeleteIdentity(iID);
}
int CAwareNet::GetActiveIdentity()
{
return AwareNet_GetActiveIdentity();
}
BOOL CAwareNet::AddIdentity()
{
return AwareNet_AddIdentity();
}
BOOL CAwareNet::Delete(int ID)
{
return AwareNet_Delete(ID);
}
int CAwareNet::GetAcquaintance(int num)
{
return AwareNet_GetAcquaintance(num);
}
int CAwareNet::GetFriend(int num)
{
return AwareNet_GetFriend(num);
}
BOOL CAwareNet::GetProfile(int ID, CPersonalInfo &PInfo)
{
TPersonalInfo tInfo;
BOOL bRet = AwareNet_GetProfile(ID, &tInfo);
PInfo = tInfo;
return bRet;
}
BOOL CAwareNet::GetMyProfile(CPersonalInfo &PInfo)
{
TPersonalInfo tInfo;
BOOL bRet = AwareNet_GetMyProfile(&tInfo);
PInfo = tInfo;
return bRet;
}
int CAwareNet::LookupID(LPCTSTR czEMail)
{
return AwareNet_LookupID(czEMail);
}
BOOL CAwareNet::LookupProfile(int ID, CPersonalInfo &PInfo)
{
TPersonalInfo tInfo;
BOOL bRet = AwareNet_LookupProfile(ID, &tInfo);
PInfo = tInfo;
return bRet;
}
BOOL CAwareNet::IsOnline(int iID, int iService, BOOL bForceLookup)
{
return AwareNet_IsOnline(iID, iService, bForceLookup);
}
BOOL CAwareNet::GetIP(CString &rczIP, int nID)
{
TCHAR ipBuffer[AWARENET_MAX_IP];
BOOL bRet = AwareNet_GetIP(nID, ipBuffer, AWARENET_MAX_IP);
rczIP = ipBuffer;
return bRet;
}
int CAwareNet::GetMyID()
{
return AwareNet_GetMyID();
}
BOOL CAwareNet::UpdateTOS(int service, BOOL up)
{
return AwareNet_UpdateTOS(service, up);
}
int CAwareNet::NumActiveTOS()
{
return AwareNet_NumActiveTOS();
}
BOOL CAwareNet::SendInvitation(LPCTSTR czRecipient, LPCTSTR czProgramName,
LPCTSTR czProgramURL, int nTOS)
{
return AwareNet_SendInvitation(czRecipient, czProgramName, czProgramURL, nTOS);
}
BOOL CAwareNet::AddAnonAcquaintances(int nNum, int nService)
{
return AwareNet_AddAnonAcquaintances(nNum, nService);
}
BOOL CAwareNet::GetAnonAquaintances(int nService, BOOL bRefresh, CStringArray &csaIPs)
{
// Get the appropriate buffer length.
TCHAR *ptBuffer = new TCHAR[2];
UINT nBufferLen = AwareNet_GetAnonAcquaintances(nService, bRefresh, ptBuffer, 1);
delete ptBuffer;
if(nBufferLen == 0)
return FALSE;
// Create a large enough buffer.
ptBuffer = new TCHAR[nBufferLen + 1];
memset((void *)ptBuffer, 0, sizeof(TCHAR) * (nBufferLen + 1));
// Get the results.
// Don't refresh this time; it's redundant.
if(AwareNet_GetAnonAcquaintances(nService, FALSE, ptBuffer, nBufferLen) > nBufferLen)
{
delete ptBuffer;
return FALSE;
}
// Construct the string array.
TCHAR *ptStart, *ptEnd;
ptStart = ptBuffer;
ptEnd = ptBuffer;
while(*ptStart != _T('\0'))
{
BOOL bShouldEnd = FALSE;
// Put a stopper at the end.
ptEnd = ptStart;
while(*ptEnd != _T(' ') && *ptEnd != _T('\0'))
ptEnd++;
if(*ptEnd == _T('\0'))
bShouldEnd = TRUE;
*ptEnd = '\0';
// Add the string.
csaIPs.Add(CString(ptStart));
// Update the pointers.
ptStart = (ptEnd + 1);
if(bShouldEnd)
break;
}
delete ptBuffer;
return TRUE;
}
BOOL CAwareNet::IsIdentityTaken(LPCTSTR czEMail)
{
return AwareNet_IsIdentityTaken(czEMail);
}
//////////////////////////////////////////////////////////////////////////////////////////
// CPersonalInfo class
//
// You should use the CPersonalInfo class instead of using the
// TPersonalInfo structure directly. It gives you some added memory
// security. The CAwareNet class uses CPersonalInfo parameters to
// give you extra incentive.
//
//////////////////////////////////////////////////////////////////////////////////////////
CPersonalInfo::CPersonalInfo()
{
m_pData = PersonalInfo_Create();
}
CPersonalInfo::~CPersonalInfo()
{
ASSERT(m_pData);
PersonalInfo_Destroy(m_pData);
}
LPCTSTR CPersonalInfo::GetName()
{
return PersonalInfo_GetName(m_pData);
}
LPCTSTR CPersonalInfo::GetEMail()
{
return PersonalInfo_GetEMail(m_pData);
}
LPCTSTR CPersonalInfo::GetPassword()
{
return PersonalInfo_GetPassword(m_pData);
}
BOOL CPersonalInfo::SetName(LPCTSTR name)
{
return PersonalInfo_SetName(m_pData, name);
}
BOOL CPersonalInfo::SetEMail(LPCTSTR email)
{
return PersonalInfo_SetEMail(m_pData, email);
}
BOOL CPersonalInfo::SetPassword(LPCTSTR password)
{
return PersonalInfo_SetPassword(m_pData, password);
}
const CPersonalInfo &CPersonalInfo::operator=(const CPersonalInfo &info)
{
PersonalInfo_Copy(info.m_pData, m_pData);
return *this;
}
const CPersonalInfo &CPersonalInfo::operator=(const TPersonalInfo pinfo)
{
PersonalInfo_Copy((TPersonalInfo *)&pinfo, m_pData);
return *this;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -