Macros

Some of the macros are simple while others are complicated. An example of a simple macro is ParaEnd (pcBuf) which terminates the current paragraph.

#define ParaEnd(pcBuf)                                   \
        {                                                \
            *pcBuf++ = KVT_PARA_BREAK;                   \
             KVT_PUTINT(pcBuf, KVTSIZE_PARA_BREAK);      \
        }

In Filter SDK, this generates an 0x0d, 0x0a pair of bytes on a Windows machine. In HTML Export this can generate a <p style="…"> element, depending on the value of other paragraph attributes.

One of the more complicated macros is PutPictureEx().

#define PutPictureEx(pcBuf, lpszKey, cx, cy, flags,             \
             scaleHeight, scaleWidth,                           \
             cropFromL, cropFromT, cropFromR, cropFromB,        \
             anchorHorizontal, anchorVertical, offsetX, offsetY)\
          {                                                     \
             PutPic(pcBuf, lpszKey, cx, cy, flags,              \
             scaleHeight, scaleWidth,                           \
             cropFromL, cropFromT, cropFromR, cropFromB,        \
             anchorHorizontal, anchorVertical, offsetX, offsetY,\
             180, 0, 180, 0, -1, 0, 0, 0, 0)                    \
          }

You can generate a representation of the token stream by running filtertest.exe with the -d command-line option. This stream does not include the tokens generated for headers or footers. The filtertest.exe is in the directory install\samples\utf8\bin, where install is the path name of the Filter installation directory.


_HP_HTML5_bannerTitle.htm