⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 awarenetclass.cpp

📁 c++系统开发实例精粹内附的80例源代码 环境:windows2000,c++6.0
💻 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 + -