windows-nt/Source/XPSP1/NT/enduser/netmeeting/h/html.h
2020-09-26 16:20:57 +08:00

123 lines
3.9 KiB
C

/*
* html.h
*
* Constants and Macros for html file generation and parsing
*
* Revision History:
*
* When Who What
* -------- ------------------ ---------------------------------------
* Sunita Created/defined macros to write and parse html
*/
#ifndef _HTML_H
#define _HTML_H
//include for common token defns
#include "nameres.h"
#include <pshpack8.h> /* Assume 8 byte packing throughout */
#ifdef __cplusplus
extern "C" {
#endif
//html file manipulation macros
#define HTMLTOKENBEGINCHAR TOKENBEGINCHAR
#define HTMLTOKENENDCHAR TOKENENDCHAR
#define HTMLHEADERSTARTSTR HEADSTARTSTR
#define HTMLHEADERENDSTR HEADENDSTR
#define HTMLSIGNSTARTSTR "HTML"
#define HTMLSIGNENDSTR "/HTML"
#define HTMLBODYSTARTSTR "BODY"
#define HTMLBODYENDSTR "/BODY"
#define HTMLAHREFSTARTSTR "A HREF = "
#define HTMLAHREFENDSTR "/A"
#define HTMLTITLESTARTSTR "TITLE"
#define HTMLTITLEENDSTR "/TITLE"
#define HTMLCONTENTTYPESTR "Content-Type: text/html\r\n\n\n"
//token types in the ipa file format
#define HTMLTOKEN_INVALID 0
#define HTMLTOKEN_UNKNOWN 1
#define HTMLTOKEN_SIGNSTART 2
#define HTMLTOKEN_SIGNEND 3
#define HTMLTOKEN_HEADSTART 4
#define HTMLTOKEN_HEADEND 5
#define HTMLTOKEN_BODYSTART 6
#define HTMLTOKEN_BODYEND 7
#define HTMLTOKEN_AHREFSTART 8
#define HTMLTOKEN_AHREFEND 9
#define HTMLTOKEN_TITLESTART 10
#define HTMLTOKEN_TITLEEND 11
//write macros
//note all macros taken LPSTR - it is the responsibility of the calling
//code to do any appropriate string conversions.
#define WRITEHTMLSIGNATURESTART(lpBuf) \
wsprintf((LPSTR)(lpBuf), "%c%s%c\r\n", HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLSIGNSTARTSTR,HTMLTOKENENDCHAR)
#define WRITEHTMLSIGNATUREEND(lpBuf) \
wsprintf((LPSTR)(lpBuf), "%c%s%c\r\n", HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLSIGNENDSTR,HTMLTOKENENDCHAR)
#define WRITEHTMLHEADERSTART(lpBuf) \
wsprintf((LPSTR)(lpBuf), "%c%s%c\r\n", HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLHEADERSTARTSTR,HTMLTOKENENDCHAR)
#define WRITEHTMLHEADEREND(lpBuf) \
wsprintf((LPSTR)(lpBuf), "%c%s%c\r\n", HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLHEADERENDSTR,HTMLTOKENENDCHAR)
#define WRITEHTMLTITLESTART(lpBuf) \
wsprintf((LPSTR)(lpBuf), "%c%s%c\r\n", HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLTITLESTARTSTR,HTMLTOKENENDCHAR)
#define WRITEHTMLTITLE(lpBuf,lpszTitle) \
wsprintf((LPSTR)(lpBuf), "%s\r\n", lpszTitle)
#define WRITEHTMLTITLEEND(lpBuf) \
wsprintf((LPSTR)(lpBuf), "%c%s%c\r\n", HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLTITLEENDSTR,HTMLTOKENENDCHAR)
#define WRITEHTMLBODYSTART(lpBuf) \
wsprintf((LPSTR)(lpBuf), "%c%s%c\r\n", HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLBODYSTARTSTR,HTMLTOKENENDCHAR)
#define WRITEHTMLBODYEND(lpBuf) \
wsprintf((LPSTR)(lpBuf), "%c%s%c\r\n", HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLBODYENDSTR,HTMLTOKENENDCHAR)
#define WRITEHTMLSIGNATURE(lpBuf) \
wsprintf((LPSTR)(lpBuf), "%c%s%c\r\n", HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLSIGNATURESTR,HTMLTOKENENDCHAR)
#define WRITEHTMLREF(lpBuf,lpszUrl,lpszDisplayName) \
wsprintf((LPSTR)(lpBuf), "%c%s\"%s\"%c%s%c%s%c\r\n", \
HTMLTOKENBEGINCHAR,(LPSTR)HTMLAHREFSTARTSTR, \
(LPSTR)lpszUrl,HTMLTOKENENDCHAR, \
(LPSTR)lpszDisplayName,HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLAHREFENDSTR,HTMLTOKENENDCHAR)
#define WRITEHTMLREFCRLF(lpBuf,lpszUrl,lpszDisplayName) \
wsprintf((LPSTR)(lpBuf), "%c%s\"%s\"%c%s%c%s%c<BR>\r\n", \
HTMLTOKENBEGINCHAR,(LPSTR)HTMLAHREFSTARTSTR, \
(LPSTR)lpszUrl,HTMLTOKENENDCHAR, \
(LPSTR)lpszDisplayName,HTMLTOKENBEGINCHAR, \
(LPSTR)HTMLAHREFENDSTR,HTMLTOKENENDCHAR)
//token identification macros
#define ISBUFOURHTMLTOKEN(lpBuf,dwBufSize,lpszToken) \
((strlen((LPSTR)lpszToken) == dwBufSize) ? \
!(memcmp((LPBYTE)lpBuf,(LPBYTE)lpszToken,dwBufSize)) : 0 )
#ifdef __cplusplus
}
#endif
#include <poppack.h> /* End byte packing */
#endif //#ifndef _HTML_H