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

📄 codb.cpp

📁 墨香最新私服
💻 CPP
字号:
#include "stdafx.h"
#include "DB.h"
#include "dbclass.h"
#include "memorypool.h"


CODB::CODB()
{
	m_dwRefCount		=	0;
	m_pDb				=	NULL;
}

CODB::~CODB()
{
	if (m_pDb)
		delete m_pDb;
	m_pDb = NULL;

}


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

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

BOOL __stdcall	CODB::CreateDBThread(DESC_DBTHREAD* pDesc)
{
	if(m_pDb) 
	{
		m_pDb->m_pWriteMessage("CreateDBThread : Already Alloced CDB Class");
		return false;	
	}

	m_pDb = new CDB(pDesc);
	if (!m_pDb) return false;

	m_pDb->m_dwDBMessageID	=	pDesc->dwDBMessageID;
	m_pDb->SetUsingDll(pDesc->bUsingDLL);
	m_pDb->SetUsingThread(pDesc->bUsingThread);
	m_pDb->SetIsUseEvnetDB(pDesc->bUsingEventObject);
	m_pDb->SetHwnd(pDesc->hWndToPostMessage);
	m_pDb->SetOnResultFunc(pDesc->ReadDBResult);
	m_pDb->SetOnWriteMessageFunc(pDesc->WriteMessage);

	strcpy(m_pDb->GetAdMinCon()->szCursorName,pDesc->AdminCursor);
	strcpy(m_pDb->GetAdMinCon()->szDBName,pDesc->DBName);
	strcpy(m_pDb->GetAdMinCon()->szID,pDesc->AdminID);
	strcpy(m_pDb->GetAdMinCon()->szPW,pDesc->AdminPW);
	strcpy(m_pDb->GetClientCon()->szDBName,pDesc->DBName);
	strcpy(m_pDb->GetClientCon()->szID,pDesc->ClientID);
	strcpy(m_pDb->GetClientCon()->szPW,pDesc->ClientPW);
	strcpy(m_pDb->GetClientCon()->szCursorName,pDesc->ClientCursor);
	strcpy(m_pDb->m_szDefault_User_table,pDesc->Default_User_table);
	strcpy(m_pDb->m_szDefault_User_account,pDesc->Default_User_account);
	strcpy(m_pDb->m_szDefault_User_pw,pDesc->Default_User_pw);
	strcpy(m_pDb->m_szDefault_User_guid,pDesc->Default_User_guid);

	if (m_pDb->GetUsingDll() == 0)
		m_pDb->SetDBMessageEvent(CreateEvent(NULL, FALSE, FALSE, NULL));

	char* ret = m_pDb->InitDBConnection();
	if(!ret)
	{
		m_pDb->m_pWriteMessage("Fail to initialize DB Connection");
		return false;
	}
	m_pDb->m_pWriteMessage("DB INIT OK");


	return TRUE;
}

BOOL	__stdcall	CODB::InitDBConnection()
{
	return (BOOL) m_pDb->InitDBConnection();
}


BOOL	__stdcall	CODB::InitDBConnection(LPSTR szID, LPSTR szPassword, LPSTR Dbname, LPSTR szIDC, LPSTR szPasswordC, LPSTR DbnameC) 
{
	return (BOOL) m_pDb->InitDBConnection(szID, szPassword,Dbname, szIDC, szPasswordC, DbnameC);
}

void	__stdcall	CODB::SendMessageDB(LPDBMESSAGE pPara) 
{
	m_pDb->SendMessageDB(pPara);
}

BOOL	__stdcall	CODB::CloseThisConnection(LPDBCON pCon) 
{
	return m_pDb->CloseThisConnection(pCon); 
}
LPDBCON		CODB::MakeNewConnection(LPSTR lpDbName, LPSTR lpID, LPSTR lpPW)
{
	return m_pDb->MakeNewConnection(lpDbName,lpID,lpPW);
}
void	__stdcall	CODB::SetDBMessageEvent(HANDLE val)
{
	m_pDb->SetDBMessageEvent(val);
}
HANDLE	__stdcall	CODB::GetDBMessageEvent()
{
	return m_pDb->GetDBMessageEvent();
}
void	__stdcall	CODB::CloseDBConnection() 
{
	m_pDb->CloseDBConnection();
}

LPDBCON		__stdcall 		CODB::GetAdMinCon()
{
	return m_pDb->GetAdMinCon();
}
LPDBCON		__stdcall 		CODB::GetClientCon()
{
	return m_pDb->GetClientCon();
}

void		__stdcall		CODB::ProcessingDBMessage()
{
	m_pDb->ProcessingDBMessage();
}


void		__stdcall		CODB::DeleteThisPointer(DWORD dwFnNo, LPVOID pTarget)
{
	m_pDb->DeleteThisPointer(dwFnNo, pTarget);
}

char*		__stdcall		CODB::GetDBMessageMemory()
{
	return m_pDb->GetDBMessageMemory();
}

char*		__stdcall		CODB::GetDBMessageStackMemory()
{
	return m_pDb->GetDBMessageStackMemory();
}

void		__stdcall		CODB::FreeThisMemory(LPVOID pMsg, LPVOID pData)
{
	// pMsg啊 皋技瘤 备炼眉 
	// pData绰 牢磊 备炼眉.
	if (pMsg) m_pDb->FreeDBMessageMemory((char*) pMsg);
	if (pData) m_pDb->FreeDBStackMemory((char*) pData);

}

DWORD		__stdcall		CODB::GetUnusedStackMemoryNum()
{
	return m_pDb->GetUnusedStackMemoryNum();
}

DWORD		__stdcall		CODB::GetUnusedDBMemoryNum()
{
	return m_pDb->GetUnusedDBMemoryNum();
}

⌨️ 快捷键说明

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