struct _CNetDiagnosticsApp
{
AEEApplet a; // Mandatory AEEApplet data member appears first
IFileMgr * m_pFileMgr; // Pointer to the apps IFileMgr object
AEERect m_rc; // Device Screen Rect
IHtmlViewer * m_pHTMLViewer; // The HTMLViewer control used to display HTML text
INetMgr * m_pINetMgr; // Pointer to INetMgr
IStatic * m_pIStatic; // Used for displaying messages
char * m_ppszHistory[MAX_HIST]; // history list
int m_cntHistory; // number of entries currently in the history list
PFNCLEANUP m_pfnViewCleanup; // function to clean up after test (NULL => no test)
// Form data
char * m_pszFormData; // this points to the memory block holding all values
char * m_pszHost; // "HOST" field
char * m_pszURL; // "URL" field
char * m_pszMsg; // "MSG" field
flg m_bRS:1; // "RS" field: Display response if TRUE
flg m_bRT:1; // "RT" field: Display response time if TRUE
flg m_bTCP:1; // "PROTOCOL" field == "1": Use TCP as protocol if TRUE
uint16 m_nDataLength; // length of pszMsg (calculated when set)
// Echoer state
uint16 m_nTCPIdx; // Index used for sending TCP data
uint32 m_nTotalTime; // Total Time
uint32 m_nSendTime; // Time to Send Data
uint32 m_nReceiveTime; // Time to Receive Data
AEEDNSResult m_dnsr; // DNS Result
AEECallback m_cb; // Callback for DNS
ISocket * m_pISocket; // Pointer to socket
// HTTP test state
IWeb * m_pIWeb; // Pointer to IWeb for HTTP Tests
WebAction m_awa[1]; // array of WebActions. By changing the '1' to any
// number, you can attempt to kick off multiple Web
// transactions simultaneously, testing Keep-Alive,
// multiple-POST Keep-Alives, NOWAITCONN, FORCENEW,
// and request queueing.
};