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

📄 console.cpp

📁 墨香最新私服
💻 CPP
字号:
// Console.cpp: implementation of the CConsole class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Console.h"
#include <stdio.H>

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CConsole g_Console;

CConsole::CConsole()
{
	m_pIConsole = NULL;
//	CoInitialize(NULL);
}

CConsole::~CConsole()
{
//	CoUninitialize();
}

/*
BOOL CConsole::Init(int MaxButton,CUSTOM_BUTTON* pButtonInfo, void (*CommandFunc)(char* szCommand))
{	

	// 快急 I4DyuchiCOSOLE哪器惩飘 积己
	HRESULT hr;
    
	hr = CoCreateInstance(
           CLSID_4DyuchiCONSOLE,
           NULL,
           CLSCTX_INPROC_SERVER,
           IID_4DyuchiCONSOLE,
           (void**)&m_pIConsole);

	
	if(FAILED(hr))
		return FALSE;

	// 哪器惩飘狼 能贾阑 积己.积己窍扁 困秦 DESC_CONSOLE备炼眉甫 盲况辑 弊 器牢磐甫 持绢具茄促.
	// DESC_CONSOLE备炼眉绰 颇老肺彪阑 困茄 FILE_WRITE_INFO客 拳搁肺彪阑 困茄 DISPLAY_INFO
	// 甫 器窃茄促. FILE_WRITE_INFO篮 颇老肺彪阑 窍瘤 臼阑 版快 NULL肺 持栏搁 等促.弊矾唱 
	// DISPLAY_INFO绰 馆靛矫 盲况持绢具 茄促.

	// 酒贰狼 荐摹绰 鼻厘荐摹捞促.措帆 酒贰 沥档狼 蔼栏肺 技泼窍搁 公府啊 绝促.
	DISPLAY_INFO	display;
	display.dwMaxAccessibleThreadNum = 5;		// 捞 能贾 哪器惩飘狼 叼胶敲饭捞 概聪廉甫 悼矫俊 撅技胶且 胶饭靛 弥措肮荐
	display.dwMaxStringBufferNum = 10000;		// 弥措 10000扼牢狼 滚欺甫 啊柳促.
	display.dwMinMaintainBufferNum = 5000;		// 拳搁俊 焊咯瘤绰 弥措 扼牢荐绰 10000-5000栏肺 5000扼牢阑 杭荐 乐促.
	display.dwDisplayRefreshRate = 1000;		// 盎脚林扁绰 500ms捞促.
	display.dwFilteredLevel = LOG_DEBUG;		// 肺弊皋矫瘤 快急鉴困啊 LOG_DEBUG焊促 撤栏搁 钎矫窍瘤 臼绰促.
	
	
	WRITE_FILE_INFO	file;
	file.dwMaxAccessibleThreadNum = 5;			// 捞 能贾 哪器惩飘狼 颇老 肺弊 概聪廉甫 撅技胶且 胶饭靛 弥措肮荐
	file.dwLimitedBufferSizeToWriteFile = 8192;	// 肺弊 皋矫瘤啊 8192官捞飘 阶老锭付促 角力肺 颇老俊 WRITE茄促.
	file.dwFilteredLevel = LOG_DEBUG;			// 肺弊皋矫瘤 快急鉴困啊 LOG_DEBUG焊促 撤栏搁 颇老俊 扁废窍瘤 臼绰促.

	DESC_CONSOLE	desc;

	desc.OnCommandFunc = CommandFunc;				// 虐焊靛 哪盖靛 橇芬橇飘俊辑 哪盖靛甫 持菌阑锭 parsing且 妮归窃荐 技泼
	desc.dwCustomButtonNum = MaxButton;			// 荤侩磊 沥狼 滚瓢 2俺 荤侩窃.
	desc.pCustomButton = pButtonInfo;			// 目胶乓 捞亥飘 器牢磐 技泼
	desc.szFileName = "log.txt";				// write且 颇老疙.颇老肺彪窍瘤 臼阑 版快 NULL
	desc.pDisplayInfo = &display;				// 拳搁 叼胶敲饭捞甫 困茄 DISPLAY_INFO 备炼眉 器牢磐.公炼扒 技泼秦具茄促.
	desc.pWriteFileInfo = &file;				// 颇老肺彪阑 困茄 WRITE_FILE_INFO 备炼眉 器牢磐.荤侩窍瘤 臼栏搁 NULL

	m_pIConsole->CreateConsole(&desc);			// 能贾 积己

	return true;
}
*/

BOOL CConsole::Init(int MaxButton,MENU_CUSTOM_INFO* pMenuInfo, cbRetrnFunc commandFunc)
{
	HRESULT hr;
	
	hr = CoCreateInstance(
           CLSID_ULTRA_TCONSOLE,
           NULL,
           CLSCTX_INPROC_SERVER,
           IID_ITConsole,
           (void**)&m_pIConsole);

	
	if(FAILED(hr))
		return FALSE;

	LOGFONT logFont;
	logFont.lfHeight		= 17; 
	logFont.lfWidth			= 0; 
	logFont.lfEscapement	= 0; 
	logFont.lfOrientation	= 0; 
	logFont.lfWeight		= FW_BOLD; 
	logFont.lfItalic		= 0; 
	logFont.lfUnderline		= 0; 
	logFont.lfStrikeOut		= 0; 
	logFont.lfCharSet		= HANGUL_CHARSET; 
	logFont.lfOutPrecision	= 0; 
	logFont.lfClipPrecision	= 0; 
	logFont.lfQuality		= 0; 
	logFont.lfPitchAndFamily	= 0; 
	strcpy(logFont.lfFaceName, "奔覆"); 

	HWND hWnd;
	MHTCONSOLE_DESC	desc;
	desc.szConsoleName = "Darkstory";
	desc.dwRefreshRate = 1000;
	desc.wLogFileType = 0;//LFILE_LOGOVERFLOWFILEOUT;
	desc.szLogFileName = "log.txt";
	desc.dwFlushFileBufferSize = 10000;
	desc.dwDrawTimeOut	= 1000*60*3;
	desc.wMaxLineNum = 1000;
	desc.dwListStyle = TLO_NOTMESSAGECLOSE|TLO_LINENUMBER|TLO_SCROLLTUMBTRACKUPDATE;
	desc.Width	= 800;
	desc.Height = 400;
	desc.pFont = &logFont;

	desc.nCustomMunuNum = MaxButton;
	desc.cbReturnFunc = commandFunc;
	desc.pCustomMenu = pMenuInfo;
	m_pIConsole->CreateConsole(&desc, &hWnd);

	return TRUE;
}

void CConsole::Release()
{
	if(m_pIConsole)
	{
		m_pIConsole->Release();
		m_pIConsole = NULL;
	}
	
}

void CConsole::Log(int LogType,int MsgLevel,char* LogMsg,...)
{
	static char   va_Temp_Buff[1024];
	
	va_list vl;

	va_start(vl, LogMsg);
	vsprintf(va_Temp_Buff, LogMsg, vl);
	va_end(vl);


	switch(LogType) 
	{
	case eLogDisplay:
		m_pIConsole->OutputFile(va_Temp_Buff,strlen(va_Temp_Buff));
		break;
	case eLogFile:
		{
			//m_pIConsole->WriteFile(va_Temp_Buff,strlen(va_Temp_Buff),MsgLevel);
		}
		break;
	default:
		MessageBox(NULL,"Not Defined LogType",0,0);
	}
}

void CConsole::LOG(int MsgLevel,char* LogMsg,...)
{
	static char   va_Temp_Buff[1024];
	
	va_list vl;

	va_start(vl, LogMsg);
	vsprintf(va_Temp_Buff, LogMsg, vl);
	va_end(vl);

	if(m_pIConsole)
	m_pIConsole->OutputDisplay(va_Temp_Buff,strlen(va_Temp_Buff));
}

void CConsole::WaitMessage()
{
	m_pIConsole->MessageLoop();
}

⌨️ 快捷键说明

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