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

📄 basenetwork.cpp

📁 墨香最新私服
💻 CPP
字号:
#include "stdafx.h"
#include "basenetwork.h"
#include "network.h"
#include "basenetworkinterface.h"
#include "msgproc.h"

CSC_BaseNetwork::CSC_BaseNetwork()
{
	m_dwRefCount			=	0;
	g_pNetwork				=	NULL;

}

CSC_BaseNetwork::~CSC_BaseNetwork()
{
	if (g_pNetwork)
		delete g_pNetwork;
	g_pNetwork = NULL;
}

STDMETHODIMP CSC_BaseNetwork::QueryInterface(REFIID refiid, PPVOID ppv)
{
	if (IID_IUnknown == refiid)
		*ppv = this;
	else if (IID_SC_BASENETWORK_DLL == refiid)
		*ppv = (ISC_BaseNetwork*)this;
	else 
	{
		*ppv = NULL;
		return E_NOINTERFACE;
	}
	((IUnknown*)(*ppv))->AddRef();
	return NOERROR;
	
}
STDMETHODIMP_(ULONG) CSC_BaseNetwork::AddRef(void)
{
	InterlockedIncrement((LPLONG)&m_dwRefCount);
	return m_dwRefCount;
}

STDMETHODIMP_(ULONG) CSC_BaseNetwork::Release(void)
{

	InterlockedDecrement((LPLONG)&m_dwRefCount);
	if (!m_dwRefCount)
		delete this;
	return 0;
}

DWORD __stdcall CSC_BaseNetwork::InitNetwork(HWND hwnd, DWORD dwMaxConnect,DESC_BASENETWORK* pDesc )
{
	if (g_pNetwork) return 0;
	g_pNetwork = new CNetwork( hwnd, dwMaxConnect, pDesc->wSockEventWinMsgID);
	if (!g_pNetwork) return 0;

	g_pNetwork->ReceivedMsg = pDesc->ReceivedMsg;
	g_pNetwork->OnDisconnect = pDesc->OnDisconnect;
	g_pNetwork->OnConnect = pDesc->OnConnect;

	return 1;
}

BOOL __stdcall CSC_BaseNetwork::Send(DWORD dwConnectionIndex,char* msg,DWORD length)
{
	return g_pNetwork->Send(dwConnectionIndex,msg,length);
}
void CSC_BaseNetwork::CompulsiveDisconnect(DWORD dwIndex)
{
	g_pNetwork->CompulsiveDisconnect(dwIndex);
}
BOOL __stdcall CSC_BaseNetwork::StartServer(char* ip,WORD port)
{
	return g_pNetwork->StartServer(ip,port);
}

void __stdcall CSC_BaseNetwork::CloseAllConnection()
{
	g_pNetwork->CloseAllConnection();
}


void __stdcall CSC_BaseNetwork::CloseConnection(DWORD dwIndex)
{
	g_pNetwork->CloseConnection(dwIndex);
}

DWORD __stdcall CSC_BaseNetwork::ConnectToServer(char* szIP,WORD port)
{
	return g_pNetwork->ConnectToServer(szIP,port);
}

void  __stdcall CSC_BaseNetwork::SocketEventProc()
{
	SocketEventProc1();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -