www.pudn.com > WZ_UpdateModule_DLL.rar > ParameterPaser.cpp


#include ".\parameterpaser.h" 
 
 
CParameterPaser::CParameterPaser(void) 
{ 
	ZeroMemory( m_szPath, MAX_PATH ); 
	ZeroMemory( m_szIP, MAX_PATH ); 
	ZeroMemory( m_szID, MAX_ID ); 
	ZeroMemory( m_szPass, MAX_PASS ); 
	m_nProtocol = 0; 
	m_nPort = 0; 
	m_bPasing = FALSE; 
} 
 
CParameterPaser::~CParameterPaser(void) 
{ 
 
} 
 
 
//ÀÎÀÚ·Î µé¾î¿Â °ªÀ» ÆÄ½ÌÇÑ´Ù. 
BOOL CParameterPaser::ParseCommandLine (const char* lpszCmdLine) 
{ 
	if( lpszCmdLine == NULL || sizeof(lpszCmdLine) == 0 ) 
		return FALSE; 
 
	static enum 
	{ 
		STR_PATH, 
		STR_PROTOCOL, 
		STR_IPADDR, 
		STR_PORT, 
		STR_ID, 
		STR_PASS 
	}; 
 
	char szTemp [MAX_PATH * 2]; 
	int iArgc=0, iTempPtr=0; 
	bool bInitParse = FALSE; 
 
	for (int i = 0 ; lpszCmdLine[i] ; i++) 
	{ 
		switch (lpszCmdLine[i]) 
		{ 
		case '<' : 
			bInitParse = TRUE; 
			break; 
		case '>' : 
			szTemp[iTempPtr] = 0; 
 
			switch (iArgc) 
			{ 
			case STR_PATH : 
				strcpy (m_szPath, szTemp); 
				{ 
					char szTemp2[MAX_PATH]; 
					wsprintf( szTemp2, "PATH : %s", m_szPath ); 
					OutputDebugString(szTemp2); 
				} 
				break; 
			case STR_PROTOCOL : 
				m_nProtocol = atoi(szTemp); 
				{ 
					char szTemp2[MAX_PATH]; 
					wsprintf(szTemp2, "PROTOCOL : %d", m_nProtocol); 
					OutputDebugString(szTemp2); 
				} 
				break; 
			case STR_IPADDR : 
				strcpy (m_szIP, szTemp); 
				{ 
					char szTemp2[MAX_PATH]; 
					wsprintf(szTemp2, "IP : %s", m_szIP); 
					OutputDebugString(szTemp2); 
				} 
				break; 
			case STR_PORT : 
				m_nPort = atoi(szTemp); 
				if (!m_nPort) 
				{ 
					switch(m_nProtocol) 
					{ 
					case PROTOCOL_FTP : 
						m_nPort = PORT_FTP; 
						break; 
					case PROTOCOL_HTTP : 
						m_nPort = PORT_HTTP; 
						break; 
					} 
				} 
				else 
				{ 
					char szTemp2[MAX_PATH]; 
					wsprintf(szTemp2, "PORT : %d", m_nPort); 
					OutputDebugString(szTemp2); 
				} 
				break; 
			case STR_ID : 
				strcpy (m_szID, szTemp); 
				{ 
					char szTemp2[MAX_PATH]; 
					wsprintf(szTemp2, "ID : %s", m_szID); 
					OutputDebugString(szTemp2); 
				} 
				break; 
			case STR_PASS : 
				strcpy (m_szPass, szTemp); 
				{ 
					char szTemp2[MAX_PATH]; 
					wsprintf(szTemp2, "PASS : %s", m_szPass); 
					OutputDebugString(szTemp2); 
				} 
				break; 
			} 
 
			iTempPtr=0; 
			iArgc++; 
			bInitParse = FALSE; 
			break; 
		default : 
			if (bInitParse) 
			{ 
				szTemp[iTempPtr] = lpszCmdLine[i]; 
				iTempPtr++;			 
			} 
			break; 
		} 
	} 
 
	return TRUE; 
} 
 
 
BOOL CParameterPaser::CheckParameter() 
{ 
	if(!strcmp (m_szPath, "")) 
	{ 
		MessageBox (NULL, "Excutable File Path Not Found.", "error", MB_OK | MB_ICONERROR); 
		return FALSE; 
	} 
 
	if(!strcmp (m_szIP, "")) 
	{ 
		MessageBox (NULL, "Update Server IP Address Not Found.", "error", MB_OK | MB_ICONERROR); 
		return FALSE; 
	} 
 
	return TRUE; 
} 
 
 
void CParameterPaser::GetPameterInfo( char* pszPath, char* pszIP, char* pszID, char* pszPass, int* pProtocol, int* pPort ) 
{ 
	strcpy( pszPath, m_szPath ); 
	strcpy( pszIP, m_szIP ); 
	strcpy( pszID, m_szID ); 
	strcpy( pszPass, m_szPass ); 
	*pProtocol = m_nProtocol; 
	*pPort = m_nPort; 
}