#pragma once #pragma pack(push,1) template < typename DATATYPE > struct sTEMPLATE_TOTAL_INFO { explicit sTEMPLATE_TOTAL_INFO() : m_Count(0) {} typedef DATATYPE DATA_TYPE; enum { MAX_DATA_NUM = 0xFF, }; BYTE m_Count; DATA_TYPE m_Data[MAX_DATA_NUM]; void Clear() { m_Count = 0; } int GetSize() { return (sizeof(*this)-(MAX_DATA_NUM-m_Count)*sizeof(this->m_Data[0])); } }; #ifdef __20080312__SOLARAUTH_SERVER_PATCH template<> struct sTEMPLATE_TOTAL_INFO { typedef CONVERT_RESULT DATA_TYPE; enum { MAX_DATA_NUM = 0xFF, }; explicit sTEMPLATE_TOTAL_INFO() : m_Count(0) { } void Clear() { m_Count = 0; } int GetSize() { return (sizeof(*this)-(MAX_DATA_NUM-m_Count)*sizeof(this->m_Data[0])); } VOID AddData( const CONVERT_RESULT& val ) { m_Data[m_Count++] = val; } VOID AddData(LPCTSTR FileName, eRC_CONVERT Error, BOOL type) { m_Data[m_Count].byType = type; m_Data[m_Count].dwError = Error; _tcsncpy( m_Data[m_Count++].szFileName, FileName, MAX_FILE_NAME); } BYTE m_Count; DATA_TYPE m_Data[MAX_DATA_NUM]; }; #endif typedef sTEMPLATE_TOTAL_INFO SERVER_TOTAL_INFO; typedef sTEMPLATE_TOTAL_INFO FTP_TOTAL_INFO; typedef sTEMPLATE_TOTAL_INFO SERVER_ACCESS_TOTAL_INFO; typedef sTEMPLATE_TOTAL_INFO AGENT_TOTAL_INFO; #ifdef __20080312__SOLARAUTH_SERVER_PATCH typedef sTEMPLATE_TOTAL_INFO SCRIPTFOLDER_TOTAL_INFO; typedef sTEMPLATE_TOTAL_INFO CONVERT_RESULT_TOTAL_INFO; #endif #pragma pack(pop)