Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2162 lines
52 KiB

  1. [token]
  2. .output=doc,rtf
  3. .token=^p,\par
  4. .token=^t,\tab
  5. .token=\,\\
  6. .token={,\{
  7. .token=},\}
  8. .highcharmask=\'%x
  9. .output=help,rtf
  10. .token=^p,\par
  11. .token=^t,\tab
  12. .token=\,\\
  13. .token={,\{
  14. .token=},\}
  15. .highcharmask=\'%x
  16. [extension]
  17. ; Filename extension types
  18. ; .ext=<extension_text>, c|asm|bas
  19. .ext=c,c
  20. .ext=cpp,c
  21. .ext=cxx,c
  22. .ext=inl,c
  23. .ext=d,c
  24. .ext=h,c
  25. .ext=hpp,c
  26. .ext=hxx,c
  27. .ext=asm,asm
  28. .ext=bas,bas
  29. .ext=mst,bas
  30. .ext=frm,bas
  31. .ext=inc,bas
  32. .ext=idl,c
  33. [constant]
  34. ; String constants
  35. ; .output=doc|help|both
  36. ; .define=<constant_name>, <constant_text>
  37. .output=both
  38. .define=reset,\pard\plain
  39. .define=title,Help
  40. .define=doc_header,Autodoc Output
  41. ;
  42. ; Help constants
  43. ;
  44. .output=help
  45. .define=header,\s243\li-1800\sl210\tqr\tx6960 \b\f2\fs19\lang1033
  46. .define=heading_4,\s251\sb160\sa40\sl280 \b\f2\lang1033
  47. .define=heading_3,\s252\li240\sb160\sa40\sl340 \b\f2\lang1033
  48. .define=heading_2,\s253\li240\sb160\sa60\sl380 \b\f0\fs28\lang1033
  49. .define=heading_1,\s254\li240\sb200\sa80\sl440 \b\f0\fs36\lang1033
  50. .define=normal,\li240\sa160\sl240 \f2\fs20\lang1033
  51. .define=table_text,\f2\fs20\lang1033
  52. .define=ex,\s28\li240\sl220\tx732\tx1224\tx1716\tx2208\tx2700\tx3192\tx3684\tx4176\tx4668\tx5160\tx5652\tx6144\tx6636\tx7128\tx7620 \f17\fs20\lang1033
  53. .define=header_rule,\s44\li-1770\ri30\sb50\sl-80\brdrt\brdrs\brdrw15\brdrcf2 \fs12\lang1033
  54. .define=rh1,\s45\li240\sl440\keep\keepn \b\f2\fs34\lang1033
  55. .define=rmh,\s46\li240\sb20\sl220 \b\f2\fs21\lang1033
  56. .define=term1,\s50\li240\sl240 \f2\fs20\lang1033
  57. .define=term2,\s53\li480\sl240 \f2\fs20\lang1033
  58. .define=term3,\s53\li720\sl240 \f2\fs20\lang1033
  59. .define=def1,\s54\li480\sa80\sl240 \f2\fs20\lang1033
  60. .define=def2,\s55\li720\sa80\sl240 \f2\fs20\lang1033
  61. .define=def3,\s55\li960\sa80\sl240 \f2\fs20\lang1033
  62. .define=def4,\fi-2880\li2880\sa160 \tx2880\tx6930 \fs21\lang1033
  63. .define=rule,\s57\li-1770\ri30\sb280\sa160\sl120\brdrb\brdrs\brdrw15 \fs8\cf8\lang1033
  64. .define=indexlink,\s93\sl240\li240 \f2\fs20\lang1033
  65. ;
  66. ; Doc constants
  67. ;
  68. .output=doc
  69. .define=header,\s243\li-1800\sl-210\tqr\tx6960 \b\f2\fs19\lang1033
  70. .define=heading_4,\s251\sb160\sa40\sl-280\keepn \b\f2\lang1033
  71. .define=heading_3,\s252\sb160\sa40\sl-340\keepn \b\f2\fs30\lang1033
  72. .define=heading_2,\s253\li-1800\sb160\sa60\sl-380\keepn \b\f0\fs34\lang1033
  73. .define=heading_1,\s254\li-1800\sb200\sa80\sl-440\keepn \b\f0\fs40\lang1033
  74. .define=normal,\sa160\sl240 \fs21\lang1033
  75. .define=ex,\s28\sl-220\tx380\tx760\tx1140\tx1520\tx1900\tx2280\tx2660\tx3040\tx3420\tx3800 \f19\fs16\lang1033
  76. .define=header_rule,\s44\li-1770\ri30\sb50\sl-80\brdrt\brdrs\brdrw15\brdrcf2 \fs12\lang1033
  77. .define=rh1,\s45\li-1800\sa180\sl-440\keepn\tx0 \b\f2\fs40\up8\lang1033
  78. .define=rmh,\s46\sb20\sl-220\keepn\pvpara\phpg\posy0\absw1560\dxfrtext240\dfrmtxtx240\dfrmtxty240 \b\f2\fs21\lang1033
  79. .define=term1,\s50\sl-240\keepn \f0\fs21\lang1033
  80. .define=term2,\s53\li280\sl-240\keepn \f0\fs21\lang1033
  81. .define=def1,\s54\li280\sa80\sl-240 \f0\fs21\lang1033
  82. .define=def2,\s55\li560\sa80\sl-240 \f0\fs21\lang1033
  83. .define=rule,\s57\li-1770\ri30\sb280\sa250\sl-120\keepn\brdrb\brdrs\brdrw15\brdrcf2 \fs8\cf8\lang1033
  84. .define=Table_Text,\s25\sa80\widctlpar\intbl \f4\fs21\lang1024 \sbasedon0\snext25
  85. .define=indexlink,\s93\sl240 \fs21\lang1033
  86. [file]
  87. ; ********************************************
  88. ; Help file headers
  89. ; ********************************************
  90. .output=help
  91. .pre={\rtf1\ansi \deff0\deflang1033
  92. {\fonttbl
  93. {\f0\froman Times New Roman;}
  94. {\f1\froman Symbol;}
  95. {\f2\fswiss Arial;}
  96. {\f3\froman Times Roman;}
  97. {\f4\fnil Univers;}
  98. {\f5\fnil Univers Medium Condensed;}
  99. {\f6\fnil Univers Condensed;}
  100. {\f7\fswiss LetterGothic;}
  101. {\f8\fdecor ZapfDingbats;}
  102. {\f9\fnil Lucida Stars;}
  103. {\f10\fswiss Helvetica-Narrow;}
  104. {\f11\fswiss CB Univers 67 CondensedBold;}
  105. {\f12\froman Times;}
  106. {\f13\fmodern Letter Gothic MS;}
  107. {\f14\fswiss C Univers 57 Condensed;}
  108. {\f15\fnil MSIcons;}
  109. {\f16\fswiss Arial Narrow;}
  110. {\f17\fmodern Courier;}
  111. {\f18\fnil Wingdings;}
  112. }
  113. {\colortbl;
  114. \red0\green0\blue0;
  115. \red0\green0\blue255;
  116. \red0\green255\blue255;
  117. \red0\green255\blue0;
  118. \red255\green0\blue255;
  119. \red255\green0\blue0;
  120. \red255\green255\blue0;
  121. \red255\green255\blue255;
  122. \red0\green0\blue127;
  123. \red0\green127\blue127;
  124. \red0\green127\blue0;
  125. \red127\green0\blue127;
  126. \red127\green0\blue0;
  127. \red127\green127\blue0;
  128. \red127\green127\blue127;
  129. \red192\green192\blue192;
  130. }
  131. {\stylesheet
  132. {$(header)header;}
  133. {$(heading_4)heading 4;}
  134. {$(heading_3)heading 3;}
  135. {$(heading_2)heading 2;}
  136. {$(heading_1)heading 1;}
  137. {$(normal)Normal;}
  138. {$(ex)Ex;}
  139. {$(header_rule)header rule;}
  140. {$(rh1)Rh1;}
  141. {$(rmh)Rmh;}
  142. {$(term1)Term1;}
  143. {$(term2)Term2;}
  144. {$(def1)Def1;}
  145. {$(def2)Def2;}
  146. {$(rule)Rule;}
  147. {$(indexlink)Index Link;}
  148. {$(table_text)Table Text;}
  149. }
  150. \paperw12240\paperh15840\margl3330\margr1530\margt-2540\margb-2220\gutter420
  151. \facingp\deftab280\widowctrl\ftnbj
  152. \sectd \binfsxn1\binsxn1\linex0\headery1990\footery360\endnhere\titlepg
  153. {\headerl $(reset)$(header)
  154. {\field\flddirty{\*\fldinst PAGE}{\fldrslt 4}}{\expnd50 }$(doc_header) - $!d\par
  155. $(reset)$(header_rule)\par }
  156. {\headerr $(reset)$(header)
  157. \tab $(doc_header) - $!d{\expnd50 }
  158. {\field\flddirty{\*\fldinst PAGE}{\fldrslt 3}}
  159. \par $(reset)$(header_rule)
  160. \par }
  161. .post=}
  162. ; ********************************************
  163. ; Doc file headers
  164. ; ********************************************
  165. .output=doc
  166. .pre={\rtf1\ansi \deff0\deflang1033
  167. {\fonttbl
  168. {\f0\froman Times New Roman;}
  169. {\f2\fswiss Arial;}
  170. {\f19\fmodern\fcharset0\fprq1 Courier New;}
  171. }
  172. {\colortbl;
  173. \red0\green0\blue0;
  174. \red0\green0\blue255;
  175. \red0\green255\blue255;
  176. \red0\green255\blue0;
  177. \red255\green0\blue255;
  178. \red255\green0\blue0;
  179. \red255\green255\blue0;
  180. \red255\green255\blue255;
  181. \red0\green0\blue127;
  182. \red0\green127\blue127;
  183. \red0\green127\blue0;
  184. \red127\green0\blue127;
  185. \red127\green0\blue0;
  186. \red127\green127\blue0;
  187. \red127\green127\blue127;
  188. \red192\green192\blue192;
  189. }
  190. {\stylesheet
  191. {$(header)header;}
  192. {$(heading_4)heading 4;}
  193. {$(heading_3)heading 3;}
  194. {$(heading_2)heading 2;}
  195. {$(heading_1)heading 1;}
  196. {\*\cs10 \additive Default Paragraph Font;}
  197. {$(normal)Normal;}
  198. {$(ex)Ex;}
  199. {$(header_rule)header rule;}
  200. {$(rh1)Rh1;}
  201. {$(rmh)Rmh;}
  202. {$(term1)Term1;}
  203. {$(term2)Term2;}
  204. {$(def1)Def1;}
  205. {$(def2)Def2;}
  206. {$(rule)Rule;}
  207. {$(indexlink)Index Link;}
  208. {$(table_text)Table Text;}
  209. }
  210. \paperw12240\paperh15840\margl3330\margr1530\margt-2540\margb-2220\gutter420
  211. \facingp\deftab280\widowctrl\ftnbj
  212. \sectd \binfsxn1\binsxn1\linex0\headery1990\footery360\endnhere\titlepg
  213. {\headerl $(reset)$(header)
  214. {\field\flddirty{\*\fldinst PAGE}{\fldrslt 4}}{\expnd50 }$(doc_header) - $!d\par
  215. $(reset)$(header_rule)\par }
  216. {\headerr $(reset)$(header)
  217. \tab $(doc_header) - $!d{\expnd50 }
  218. {\field\flddirty{\*\fldinst PAGE}{\fldrslt 3}}
  219. \par $(reset)$(header_rule)
  220. \par }
  221. .post=}
  222. [topic]
  223. ;
  224. ; *****************************************
  225. ; Basic Topics
  226. ; *****************************************
  227. .tag=bfunc,doc, 4, 20, $2
  228. .order=rdesc bparm comm ex
  229. .parsesource=bfunc
  230. .pre=$(reset)$(rule)\par
  231. $(reset)$(heading_1)$2\par
  232. $[bfunc]
  233. $(reset)$(normal)$4\par
  234. $(reset)$(normal)Defined in: $!F\par
  235. .tag=bfunc, help, 4, 20, $2
  236. .order=rdesc bparm comm ex
  237. .parsesource=bfunc
  238. .pre=\page
  239. $(reset)$(heading_1)
  240. ##{\footnote ## $!c}
  241. $${\footnote $$ $!n}
  242. K{\footnote K functions; $!n}
  243. +{\footnote + functions:0000}
  244. $2\par
  245. $[bfunc]
  246. $(reset)$(normal)$4\par
  247. $(reset)$(normal)Defined in: $!F\par
  248. .tag=bsub,doc, 3, 20, $2
  249. .order=rdesc bparm comm ex
  250. .parsesource=bsub
  251. .pre=$(reset)$(rule)\par
  252. $(reset)$(heading_1)$2\par
  253. $[bsub]
  254. $(reset)$(normal)$3\par
  255. $(reset)$(normal)Defined in: $!F\par
  256. .tag=bsub, help, 3, 20, $2
  257. .order=rdesc bparm comm ex
  258. .parsesource=bsub
  259. .pre=\page
  260. $(reset)$(heading_1)
  261. ##{\footnote ## $!c}
  262. $${\footnote $$ $!n}
  263. K{\footnote K functions; $!n}
  264. +{\footnote + functions:0000}
  265. $2\par
  266. $[bsub]
  267. $(reset)$(normal)$3\par
  268. $(reset)$(normal)Defined in: $!F\par
  269. .tag=btype, doc, 3, 20, $2
  270. .order=bfield comm ex
  271. .parsesource=btype
  272. .pre=$(reset)$(rule)\par
  273. $(reset)$(heading_1)$2\par
  274. $[bstruct]
  275. $(reset)$(normal)$3\par
  276. $(reset)$(normal)Defined in: $!F\par
  277. .tag=btype, help, 3, 20, $2
  278. .order=bfield comm ex
  279. .parsesource=btype
  280. .pre=\page
  281. $(reset)$(heading_1)
  282. ##{\footnote ## $!c}
  283. $${\footnote $$ $!n}
  284. K{\footnote K functions; $!n}
  285. +{\footnote + functions:0000}
  286. $2\par
  287. $[bstruct]
  288. $(reset)$(normal)$3\par
  289. $(reset)$(normal)Defined in: $!F\par
  290. ;
  291. ; ***********************************************************
  292. ; C Language topics
  293. ; ***********************************************************
  294. ; Functions
  295. .tag=func, doc, 3, 20, $2
  296. .order=syntax rdesc parm parmvar comm ex
  297. .parsesource=function
  298. .pre=$(reset)$(rule)\par
  299. $(reset)$(heading_1)$2\par
  300. $[function]
  301. $(reset)$(normal)$3\par
  302. $(reset)$(normal)Defined in: $!F\par
  303. .tag=func, help, 3, 20, $2
  304. .order=syntax rdesc parm parmvar comm ex
  305. .parsesource=function
  306. .pre=\page
  307. $(reset)$(heading_1)
  308. ##{\footnote ## $!c}
  309. $${\footnote $$ $!n}
  310. K{\footnote K functions; $!n}
  311. +{\footnote + functions:0000}
  312. $2\par
  313. $[function]
  314. $(reset)$(normal)$3\par
  315. $(reset)$(normal)Defined in: $!F\par
  316. ; Functions
  317. .tag=cb, doc, 3, 20, $2
  318. .order=syntax rdesc parm parmvar comm ex
  319. .parsesource=function
  320. .pre=$(reset)$(rule)\par
  321. $(reset)$(heading_1)$2\par
  322. $[function]
  323. $(reset)$(normal)$3\par
  324. $(reset)$(normal)Defined in: $!F\par
  325. .tag=cb, help, 3, 20, $2
  326. .order=syntax rdesc parm parmvar comm ex
  327. .parsesource=function
  328. .pre=\page
  329. $(reset)$(heading_1)
  330. ##{\footnote ## $!c}
  331. $${\footnote $$ $!n}
  332. K{\footnote K callback functions; functions; $!n callback function}
  333. +{\footnote + functions:0000}
  334. $2\par
  335. $[function]
  336. $(reset)$(normal)$3\par
  337. $(reset)$(normal)Defined in: $!F\par
  338. ; Messages
  339. .tag=msg, doc, 2, 30, $1
  340. .order=rdesc parm comm ex
  341. .pre=$(reset)$(rule)\par
  342. $(reset)$(heading_1)$1\par
  343. $(reset)$(normal)$2\par
  344. $(reset)$(normal)Defined in: $!F\par
  345. .tag=msg, help, 2, 30, $1
  346. .order=rdesc parm comm ex
  347. .pre=\page $(reset)$(heading_1)
  348. ##{\footnote ## $!c}
  349. $${\footnote $$ $!n}
  350. K{\footnote K messages; $!n}
  351. +{\footnote + messages:0000}
  352. $1\par
  353. $(reset)$(normal)$2\par
  354. $(reset)$(normal)Defined in: $!F\par
  355. ; Constants
  356. .tag=const, doc, 3, 30, $2
  357. .order=comm ex
  358. .parsesource=constant
  359. .pre=$(reset)$(rule)\par
  360. $(reset)$(heading_1)$2 constant\par
  361. $(reset)$(normal){\b const $1 $2;}\par
  362. $(reset)$(normal)Defined in: $!F\par
  363. $(reset)$(normal)$3\par
  364. .tag=const, help, 3, 30, $2
  365. .order=comm ex
  366. .parsesource=constant
  367. .pre=\page $(reset)$(heading_1)
  368. ##{\footnote ## $!c}
  369. $${\footnote $$ $!n}
  370. K{\footnote K constants; $!n constant}
  371. +{\footnote + constants:0000}
  372. $2 constant\par
  373. $(reset)$(normal){\b const $1 $2;}\par
  374. $(reset)$(normal)Defined in: $!F\par
  375. $(reset)$(normal)$3\par
  376. ; Data types (typedefs, etc.)
  377. .tag=type, doc, 2, 50, $1
  378. .order=field comm ex
  379. .pre=$(reset)$(rule)\par
  380. $(reset)$(heading_1)$1\par
  381. $(reset)$(normal)$2\par
  382. $(reset)$(normal)Defined in: $!F\par
  383. .tag=type, help, 2, 50, $1
  384. .order=field comm ex
  385. .pre=\page
  386. $(reset)$(heading_1)
  387. ##{\footnote ## $!c}
  388. $${\footnote $$ $!n}
  389. K{\footnote K types; typedefs; $1}
  390. +{\footnote + struct:0000}
  391. $1\par
  392. $(reset)$(normal)$2\par
  393. $(reset)$(normal)Defined in: $!F\par
  394. ; Structures
  395. .tag=struct, doc, 2, 50, $1
  396. .parsesource=struct
  397. .order=field comm ex
  398. .pre=$(reset)$(rule)\par
  399. $(reset)$(heading_1)$1 Structure\par
  400. $[structure]
  401. $(reset)$(normal)$2\par
  402. $(reset)$(normal)Defined in: $!F\par
  403. .tag=struct, help, 2, 50, $1
  404. .parsesource=struct
  405. .order=field comm ex
  406. .pre=\page
  407. $(reset)$(heading_1)
  408. ##{\footnote ## $!c}
  409. $${\footnote $$ $!n}
  410. K{\footnote K types; structures; $1}
  411. +{\footnote + struct:0000}
  412. $1 Structure\par
  413. $[structure]
  414. $(reset)$(normal)$2\par
  415. $(reset)$(normal)Defined in: $!F\par
  416. ; Modules
  417. .tag=module, doc, 2, 10, $1
  418. .pre=$(reset)$(rule)\par
  419. $(reset)$(heading_1)Module $1\par
  420. $(reset)$(normal)Filename: $!P\par
  421. $(reset)$(rmh)Description\par
  422. $(reset)$(normal)$2\par
  423. .tag=module, help, 2, 10, $1
  424. .pre=\page
  425. $(reset)$(heading_1)
  426. ##{\footnote ## $!c}
  427. $${\footnote $$ $!n}
  428. K{\footnote K modules; $1}
  429. +{\footnote + overviews:0000}
  430. Module $1\par
  431. $(reset)$(normal)Filename: $!P\par
  432. $(reset)$(rmh)Description\par
  433. $(reset)$(normal)$2\par
  434. ; Enumeration Types
  435. .tag=enum, doc, 2, 50, $1
  436. .parsesource=enum
  437. .order=emem comm ex
  438. .pre=$(reset)$(rule)\par
  439. $(reset)$(heading_1)$1\par
  440. $[enum]
  441. $(reset)$(normal)$2\par
  442. $(reset)$(normal)Defined in: $!F\par
  443. .tag=enum, help, 2, 50, $1
  444. .order=emem comm ex
  445. .parsesource=enum
  446. .pre=\page $(reset)$(heading_1)
  447. ##{\footnote ## $!c}
  448. $${\footnote $$ $!n}
  449. K{\footnote K types; enumeration types; $1}
  450. +{\footnote + types:0000}
  451. $(reset)$(heading_1)$1\par
  452. $[enum]
  453. $(reset)$(normal)$2\par
  454. $(reset)$(normal)Defined in: $!F\par
  455. ; ***********************************************************
  456. ; C++ Language topics
  457. ; ***********************************************************
  458. ; Classes
  459. .tag=class, doc, 2, 20, $1
  460. .parsesource=class
  461. .pre=$(reset)$(rule)\par
  462. $(reset)$(heading_1)$1 Class\par
  463. $[class]
  464. $(reset)$(normal)$2\par
  465. $(reset)$(normal)Defined in: $!F\par
  466. .tag=class, help, 2, 20, $1
  467. .parsesource=class
  468. .pre=\page
  469. $(reset)$(heading_1)
  470. ##{\footnote ## $!c}
  471. $${\footnote $$ $!n (class)}
  472. K{\footnote K classes; $!n}
  473. +{\footnote + classes:0000}
  474. $1 Class\par
  475. $[class]
  476. $(reset)$(normal)$2\par
  477. $(reset)$(normal)Defined in: $!F\par
  478. ; Member Classes
  479. .tag=mclass, doc, 3, 20, $1::$2
  480. .parsesource=class
  481. .pre=$(reset)$(rule)\par
  482. $(reset)$(heading_1)$!n Class\par
  483. $[mclass]
  484. $(reset)$(normal)$3\par
  485. $(reset)$(normal)Defined in: $!F\par
  486. .tag=mclass, help, 3, 20, $1::$2
  487. .parsesource=class
  488. .pre=\page
  489. $(reset)$(heading_1)
  490. ##{\footnote ## $!c}
  491. $${\footnote $$ $!n (class)}
  492. K{\footnote K classes; $!n}
  493. +{\footnote + classes:0000}
  494. $!n Class\par
  495. $[mclass]
  496. $(reset)$(normal)$3\par
  497. $(reset)$(normal)Defined in: $!F\par
  498. ; Member functions
  499. .tag=mfunc, doc, 4, 20, $2::$3
  500. .context=$2::$3
  501. .order=syntax rdesc parm comm ex
  502. .parsesource=memberfunction
  503. .pre=$(reset)$(rule)\par
  504. $(reset)$(heading_1)$2::$3\par
  505. $[mfunction]
  506. $(reset)$(normal)$4\par
  507. $(reset)$(normal)Defined in: $!F\par
  508. .tag=mfunc, help, 4, 20, $2::$3
  509. .context=$2::$3
  510. .order=syntax rdesc parm comm ex
  511. .parsesource=memberfunction
  512. .pre=\page
  513. $(reset)$(heading_1)
  514. ##{\footnote ## $!c}
  515. $${\footnote $$ $!n}
  516. K{\footnote K functions; member functions; class member functions; $3; $!n}
  517. +{\footnote + functions:0000}
  518. $2::$3\par
  519. $[mfunction]
  520. $(reset)$(normal)$4\par
  521. $(reset)$(normal)Defined in: $!F\par
  522. ; Member data
  523. .tag=mdata, doc, 4, 20, $2::$3
  524. .order=comm ex
  525. .pre=$(reset)$(rule)\par
  526. $(reset)$(heading_1)$2::$3\par
  527. $[mdata]
  528. $(reset)$(normal)$4\par
  529. .tag=mdata, help, 4, 20, $2::$3
  530. .order=comm ex
  531. .pre=\page
  532. $(reset)$(heading_1)
  533. ##{\footnote ## $!c}
  534. $${\footnote $$ $!n}
  535. K{\footnote K member data; class member data; $2::$3}
  536. +{\footnote + functions:0000}
  537. $2::$3\par
  538. $[mdata]
  539. $(reset)$(normal)$4\par
  540. ; Member structure
  541. .tag=mstruct, doc, 3, 50, $1::$2
  542. .order=field comm ex
  543. .pre=$(reset)$(rule)\par
  544. $(reset)$(heading_1)$1::$2 Structure\par
  545. $[structure]
  546. $(reset)$(normal)$3\par
  547. $(reset)$(normal)Defined in: $!F\par
  548. .tag=mstruct, help, 3, 50, $1::$2
  549. .order=field comm ex
  550. .pre=\page
  551. $(reset)$(heading_1)
  552. ##{\footnote ## $!c}
  553. $${\footnote $$ $!n}
  554. K{\footnote K types; structures; $!n}
  555. +{\footnote + struct:0000}
  556. $1::$2 Structure\par
  557. $[structure]
  558. $(reset)$(normal)$3\par
  559. $(reset)$(normal)Defined in: $!F\par
  560. ; Member enumerations
  561. ;
  562. .tag=menum, doc, 3, 50, $1::$2
  563. .order=emem comm ex
  564. .pre=$(reset)$(rule)\par
  565. $(reset)$(heading_1)$1::$2\par
  566. $[enum]
  567. $(reset)$(normal)$3\par
  568. $(reset)$(normal)Defined in: $!F\par
  569. .tag=menum, help, 3, 50, $1::$2
  570. .order=emem comm ex
  571. .pre=\page $(reset)$(heading_1)
  572. ##{\footnote ## $!c}
  573. $${\footnote $$ $!n}
  574. K{\footnote K types; enumeration types; $1; $!n}
  575. +{\footnote + types:0000}
  576. $(reset)$(heading_1)$!n\par
  577. $[enum]
  578. $(reset)$(normal)$3\par
  579. $(reset)$(normal)Defined in: $!F\par
  580. ;
  581. ;
  582. ; ***********************************************************
  583. ; OLE topics
  584. ; ***********************************************************
  585. ; Objects
  586. ; @object Point2D | Represents a two-dimensional coordinate.
  587. .tag=object, doc, 2, 20, $1
  588. .pre=$(reset)$(rule)\par
  589. $(reset)$(heading_1)$1 Object\par
  590. $(reset)$(rmh)Description\par
  591. $(reset)$(normal)$2\par
  592. $(reset)$(normal)Defined in: $!F\par
  593. .tag=object, help, 2, 20, $1
  594. .pre=\page
  595. ##{\footnote ## $!c}
  596. $${\footnote $$ $1 object}
  597. K{\footnote K OLE objects; objects; $1 object}
  598. +{\footnote + OLE:0000}
  599. $(reset)$(heading_1)$1 Object\par
  600. $(reset)$(normal)$2\par
  601. $(reset)$(normal)Defined in: $!F\par
  602. ; Abstract objects
  603. .tag=abstract, doc, 2, 20, $1
  604. .pre=$(reset)$(rule)\par
  605. $(reset)$(heading_1)$1 Abstract Object\par
  606. $(reset)$(rmh)Description\par
  607. $(reset)$(normal)$2\par
  608. .tag=abstract, help, 2, 20, $1
  609. .pre=\page
  610. ##{\footnote ## $!c}
  611. $${\footnote $$ $1 abstract object}
  612. K{\footnote K abstract objects; $1 abstract object; $1 object}
  613. +{\footnote + OLE:0000}
  614. $(reset)$(heading_1)$1 Abstract Object\par
  615. $(reset)$(normal)$2\par
  616. $(reset)$(normal)Defined in: $!F\par
  617. ; Interfaces
  618. .tag=interface, doc, 2, 20, $1
  619. .context=$1_int
  620. .pre=$(reset)$(rule)\par
  621. $(reset)$(heading_1)$1 Interface\par
  622. $(reset)$(normal)$2\par
  623. $(reset)$(normal)Defined in: $!F\par
  624. .tag=interface, help, 2, 20, $1
  625. .context=$1_int
  626. .pre=\page
  627. ##{\footnote ## $!c}
  628. $${\footnote $$ $!n}
  629. K{\footnote K OLE interfaces; interfaces; $!n interface}
  630. +{\footnote + OLE:0000}
  631. $(reset)$(heading_1)$!n\par
  632. $(reset)$(normal)$2\par
  633. $(reset)$(normal)Defined in: $!F\par
  634. ; Object methods
  635. .tag=method, doc, 4, 20, $2::$3
  636. .context=$2::$3_meth
  637. .order=rvalue rdesc parm comm ex
  638. .pre=$(reset)$(rule)\par
  639. $(reset)$(heading_1)$2::$3 Method\par
  640. $[method]
  641. $(reset)$(normal)$4\par
  642. $(reset)$(normal)Defined in: $!F\par
  643. .tag=method, help, 4, 20, $2::$3
  644. .context=$2::$3_meth
  645. .order=rvalue rdesc parm comm ex
  646. .pre=\page
  647. ##{\footnote ## $!c}
  648. $${\footnote $$ $!n}
  649. K{\footnote K interface methods; methods; $3 method;$!n method}
  650. +{\footnote + OLE:0000}
  651. $(reset)$(heading_1)$!n\par
  652. $[method]
  653. $(reset)$(normal)$4\par
  654. $(reset)$(normal)Defined in: $!F\par
  655. ; Object properties
  656. .tag=property, doc, 4, 20, $2::$3
  657. .order=rdesc comm ex
  658. .context=$2::$3_prop
  659. .pre=$(reset)$(rule)\par
  660. $(reset)$(heading_1)$2::$3 Property\par
  661. $(reset)$(rmh)Data Type\par
  662. $(reset)$(normal){\b $1}\par
  663. $(reset)$(rmh)Description\par
  664. $(reset)$(normal)$4\par
  665. $(reset)$(normal)Defined in: $!F\par
  666. .tag=property, help, 4, 20, $2::$3
  667. .order=rdesc comm ex
  668. .context=$2::$3_prop
  669. .pre=\page
  670. ##{\footnote ## $!c}
  671. $${\footnote $$ $!n}
  672. K{\footnote K OLE object properties; properties; $3 property;$!n property}
  673. +{\footnote + OLE:0000}
  674. $(reset)$(heading_1)$!n\par
  675. $(reset)$(rmh)Data Type\par
  676. $(reset)$(normal){\b $1}\par
  677. $(reset)$(rmh)Description\par
  678. $(reset)$(normal)$4\par
  679. $(reset)$(normal)Defined in: $!F\par
  680. ; Object events
  681. .tag=event, doc, 3, 20, $1::$2
  682. .context=$1::$2_event
  683. .order=parm comm ex
  684. .pre=$(reset)$(rule)\par
  685. $(reset)$(heading_1)$!n\par
  686. $[event]
  687. $(reset)$(rmh)Description\par
  688. $(reset)$(normal)$3\par
  689. $(reset)$(normal)Defined in: $!F\par
  690. .tag=event, help, 3, 20, $1::$2
  691. .context=$1::$2_event
  692. .order=parm comm ex
  693. .pre=\page
  694. ##{\footnote ## $!c}
  695. $${\footnote $$ $!n}
  696. K{\footnote K OLE object events; events; $2 event;$!n event}
  697. +{\footnote + OLE:0000}
  698. $(reset)$(heading_1)$1::$2 Event\par
  699. $[event]
  700. $(reset)$(rmh)Description\par
  701. $(reset)$(normal)$3\par
  702. $(reset)$(normal)Defined in: $!F\par
  703. ;
  704. ; ***********************************************************
  705. ; Overview Topics
  706. ; ***********************************************************
  707. .tag=topic, doc, 2, 5, $1
  708. .pre=\pard\plain $(heading_1)$1\par
  709. \pard\plain $(normal)$2\par
  710. .tag=topic, help, 2, 5, $1
  711. .pre=\page \pard\plain $(heading_1)
  712. ##{\footnote ## #1}
  713. $${\footnote $$ $1}
  714. K{\footnote K $1}
  715. +{\footnote + overviews:0000}
  716. $1\par
  717. \pard\plain $(normal)$2\par
  718. ;
  719. ; ***********************************************************
  720. ; Contents topics
  721. ; ***********************************************************
  722. .tag=Contents1, doc, 2, 0, __aaa$1
  723. .pre=$(reset)$(heading_1)$1\par
  724. $(reset)$(indexlink)$2\par
  725. .tag=contents1, help, 2, 0, __aaa$1
  726. .pre=\pard\plain $(heading_1)
  727. ##{\footnote ## #1}
  728. $${\footnote $$ $1}
  729. K{\footnote K $1}
  730. +{\footnote + Contents:0000}
  731. $1\par
  732. $(reset)$(indexlink)$2\par
  733. .tag=Contents2, doc, 2, 0, _aaa$1
  734. .pre=$(reset)$(heading_1)$1\par
  735. $(reset)$(indexlink)$2\par
  736. .tag=contents2, help, 2, 0, _aaa$1
  737. .pre=\page $(reset)$(heading_1)
  738. ##{\footnote ## #1}
  739. $${\footnote $$ $1}
  740. K{\footnote K $1}
  741. +{\footnote + Contents:0000}
  742. $1\par
  743. $(reset)$(indexlink)$2\par
  744. ; ***********************************************************************
  745. ; ***********************************************************************
  746. ; Paragraph section
  747. [paragraph]
  748. ;
  749. ; ***********************************************************
  750. ; Basic tags
  751. ; ***********************************************************
  752. ;
  753. .tag=bparm, both, 4, 1
  754. .parsesource=bparameter
  755. .pre=$(reset)$(rmh)Parameters\par
  756. .format=$(reset)$(term1){\i $2}\par
  757. $(reset)$(def1)$4\par
  758. .tag=bfield, both, 3, 1
  759. .parsesource=bfield
  760. .pre=$(reset)$(rmh)Fields\par
  761. .format=$(reset)$(term1)$1\par
  762. $(reset)$(def1)$3\par
  763. ;
  764. ; ***********************************************************
  765. ; C Tags
  766. ; ***********************************************************
  767. ; Parameters
  768. .tag=parm, both, 3, 1
  769. .parsesource=parameter
  770. .pre=$(reset)$(rmh)Parameters\par
  771. .format=$(reset)$(term1){\i $2}\par
  772. $(reset)$(def1)$3\par
  773. ; Optional Parameters
  774. .tag=parmopt, both, 4, 1
  775. .parsesource=parameteropt
  776. .pre=$[parmopthead]
  777. .format=$(reset)$(term1){\i $2}\par
  778. $(reset)$(def1)$4\par
  779. ; Variable length parameter list
  780. .tag=parmvar, both, 1, 1
  781. .pre=$(reset)$(rmh)Parameters\par
  782. .format=$(reset)$(term1){\b ...}\par
  783. $(reset)$(def1)$1\par
  784. ; Class template arguments
  785. .tag=tcarg, both, 3, 1
  786. .parsesource=parameter
  787. .pre=$(reset)$(rmh)Class Template Arguments\par
  788. .format=$(reset)$(term1){\i $2}\par
  789. $(reset)$(def1)$3\par
  790. ; Function template arguments
  791. .tag=tfarg, both, 3, 1
  792. .parsesource=parameter
  793. .pre=$(reset)$(rmh)Function Template Arguments\par
  794. .format=$(reset)$(term1){\i $2}\par
  795. $(reset)$(def1)$3\par
  796. .tag=field, both, 3, 1
  797. .parsesource=field
  798. .pre=$(reset)$(rmh)Members\par
  799. .format=$(reset)$(term1){\b $2}\par
  800. $(reset)$(def1)$3\par
  801. .tag=flag, both, 2, 2
  802. .format=$(reset)$(term2)$1\par
  803. $(reset)$(def2)$2\par
  804. .tag=rdesc, both, 1, 1
  805. .pre=$(reset)$(rmh)Return Value\par
  806. .format=$(reset)$(normal)$1\par
  807. .tag=emem, both, 2, 1
  808. .parsesource=emem
  809. .pre=\pard\plain $(rmh)Members\par
  810. .format=\pard\plain $(term1){\b $1}\par
  811. \pard\plain $(def1)$2\par
  812. .tag=field, both, 3, 1
  813. .parsesource=parameter
  814. .pre=$(reset)$(rmh)Members\par
  815. .format=$(reset)$(term1){\b $2}\par
  816. $(reset)$(def1)$3\par
  817. ; Global variables
  818. .tag=globalv, help, 3, 1
  819. .parsesource=parameter
  820. .pre=$(reset)$(rmh)Global Variables\par
  821. .format=$(reset)$(term1){\uldb $1}{\v $1} {\b $2}\par
  822. $(reset)$(def1)$3\par
  823. .if=exists($1)
  824. .tag=globalv, both, 3, 1
  825. .parsesource=parameter
  826. .pre=$(reset)$(rmh)Global Variables\par
  827. .format=$(reset)$(term1){\b $1 $2}\par
  828. $(reset)$(def1)$3\par
  829. ;
  830. ; ***********************************************************
  831. ; Misc Tags
  832. ; ***********************************************************
  833. .tag=comm, both, 1, 1
  834. .pre=$(reset)$(rmh)Comments\par
  835. .format=$(reset)$(normal)$1\par
  836. .tag=xref, both, 1, 1
  837. .pre=$(reset)$(rmh)See Also\par
  838. .format=$(reset)$(normal)$1\par
  839. .tag=ex, both, 2, 1, 1
  840. .pre=$(reset)$(rmh)Example\par
  841. .format=$(reset)$(normal)$1\par
  842. $(reset)$(ex)$2\par
  843. $(reset)$(ex)\par
  844. .tag=iex, both, 1, 8, 1
  845. .format=$(reset)$(ex)$1\par
  846. $(reset)$(ex)\par
  847. .tag=devnote, both, 1, 1
  848. .pre=$(reset)$(rmh)\cf6 Developer Notes\par
  849. .format=$(reset)$(normal)\cf6 $1\par
  850. .tag=todo, both, 1, 1
  851. .pre=$(reset)$(rmh)\cf6 To Do\par
  852. .format=$(reset)$(normal)\cf6 $1\par
  853. .tag=syntax, both, 1, 1
  854. .pre=\pard\plain $(rmh)Syntax\par
  855. .format=\pard\plain $(normal)$1\par
  856. ;
  857. ; ***********************************************************
  858. ; C++ Tags
  859. ; ***********************************************************
  860. .tag=access, both, 1, 1
  861. .pre=$(reset)$(rmh)Class Members\par
  862. .format=$(reset)$(normal){\b $1}\par
  863. ;@CMEMBER
  864. ; Replacement for @member - uses automatic parsing, 4 fields
  865. ; link name and type - data member
  866. .tag=cmember, help, 4, 2
  867. .pre=$[classhdr]
  868. .format=$(reset)$(term1){\uldb $1}{\v #1} {\uldb $2}{\v #class.1__#2}\par
  869. $(reset)$(def1)$4\par
  870. .if=exists($class.1::$<2),fieldempty(3),exists($1)
  871. .parsesource=classmember
  872. .map=mfunc,$1,$t.1,$2,$4
  873. .map=menum,$t.1,$2,$4
  874. .map=mstruct,$t.1,$2,$4
  875. .map=mclass,$t.1,$2,$4
  876. ; link name and type - function member
  877. .tag=cmember, help, 4, 2
  878. .pre=$[classhdr]
  879. .format=$(reset)$(term1){\uldb $1}{\v #1} {\uldb $2}{\v #class.1__#2}{\b $3}\par
  880. $(reset)$(def1)$4\par
  881. .if=exists($class.1::$<2),exists($1)
  882. .parsesource=classmember
  883. ; link name - data member
  884. .tag=cmember, help, 4, 2
  885. .pre=$[classhdr]
  886. .format=$(reset)$(term1){\b $1} {\uldb $2}{\v #class.1__#2}\par
  887. $(reset)$(def1)$4\par
  888. .if=exists($class.1::$<2),fieldempty(3)
  889. .parsesource=classmember
  890. ; link name - function member, no return value
  891. .tag=cmember, help, 4, 2
  892. .pre=$[classhdr]
  893. .format=$(reset)$(term1){\uldb $2}{\v #class.1__#2}{\b $3}\par
  894. $(reset)$(def1)$4\par
  895. .if=exists($class.1::$<2),fieldempty(1)
  896. .parsesource=classmember
  897. ; link name - function member
  898. .tag=cmember, help, 4, 2
  899. .pre=$[classhdr]
  900. .format=$(reset)$(term1){\b $1} {\uldb $2}{\v #class.1__#2}{\b $3}\par
  901. $(reset)$(def1)$4\par
  902. .if=exists($class.1::$<2)
  903. .parsesource=classmember
  904. ; no links or doc - data member
  905. .tag=cmember, both, 4, 2
  906. .pre=$[classhdr]
  907. .format=$(reset)$(term1){\b $1 $2}\par
  908. $(reset)$(def1)$4\par
  909. .parsesource=classmember
  910. .if=fieldempty(3)
  911. .map=mfunc,$1,$t.1,$2,$4
  912. .map=menum,$t.1,$2,$4
  913. .map=mstruct,$t.1,$2,$4
  914. .map=mclass,$t.1,$2,$4
  915. ; no links or doc - function member, no return value
  916. .tag=cmember, both, 4, 2
  917. .pre=$[classhdr]
  918. .format=$(reset)$(term1){\b $2$3}\par
  919. $(reset)$(def1)$4\par
  920. .parsesource=classmember
  921. .if=fieldempty(1)
  922. ; no links or doc - function member
  923. .tag=cmember, both, 4, 2
  924. .pre=$[classhdr]
  925. .format=$(reset)$(term1){\b $1 $2$3}\par
  926. $(reset)$(def1)$4\par
  927. .parsesource=classmember
  928. ; Old @member tag
  929. .tag=member, help, 2, 2
  930. .format=$(reset)$(term1){\uldb $1}{\v #class.1__#1}\par
  931. $(reset)$(def1)$2\par
  932. .if=exists($class.1::$1)
  933. .tag=member, both, 2, 2
  934. .format=$(reset)$(term1){\b $1}\par
  935. $(reset)$(def1)$2\par
  936. ; used to specify base classes for a C++ class
  937. ;
  938. ; in an "@interface" topic we actually show the base class.
  939. ; in an "@class" topic the base class shows up in the diagram.
  940. .tag=base, help, 2, 1
  941. .pre=$(reset)$(rmh)Based On\par
  942. .format=$(reset)$(normal){\uldb $2}{\v $2_int}\par
  943. .if=exists($2_int), tagexists(interface)
  944. .tag=base, both, 2, 1
  945. .pre=$(reset)$(rmh)Based On\par
  946. .format=$(reset)$(normal){\b $2}\par
  947. .if=tagexists(interface)
  948. .tag=base, both, 2, 1
  949. .format=
  950. ; used to add "const" keyword to end of member function diagram
  951. .tag=this, both, 1, 1
  952. .format=
  953. ;
  954. ; ***********************************************************
  955. ; OLE Tags
  956. ; ***********************************************************
  957. ; *** Methods ***
  958. ;link type and name
  959. .tag=meth, help, 3, 1
  960. .map=method,$1,$t.1,$2,$3
  961. .pre=$(reset)$(rmh)Methods\par
  962. .format=$(reset)$(term1){\uldb $1}{\v #1} {\uldb $2}{\v I#interface.1__#2_meth}\par
  963. $(reset)$(def1)$3\par
  964. .if=exists($1),exists($interface.1::$2_meth)
  965. ; link name
  966. .tag=meth, help, 3, 1
  967. .pre=$(reset)$(rmh)Methods\par
  968. .format=$(reset)$(term1){\b $1} {\uldb $2}{\v #interface.1__#2_meth}\par
  969. $(reset)$(def1)$3\par
  970. .if=exists($interface.1::$2_meth)
  971. ; link type only
  972. .tag=meth, help, 3, 1
  973. .pre=$(reset)$(rmh)Methods\par
  974. .format=$(reset)$(term1){\uldb $1}{\v #1} {\b $2}\par
  975. $(reset)$(def1)$3\par
  976. .if=exists($1)
  977. ; no links or doc
  978. .tag=meth, both, 3, 1
  979. .map=method,$1,$t.1,$2,$3
  980. .pre=$(reset)$(rmh)Methods\par
  981. .format=$(reset)$(term1){\b $1 $2}\par
  982. $(reset)$(def1)$3\par
  983. ; *** Properties ***
  984. ;link type and name, if type is an interface
  985. .tag=prop, help, 3, 1
  986. .map=property,$1,$t.1,$2,$3
  987. .pre=$(reset)$(rmh)Properties\par
  988. .format=$(reset)$(term1){\uldb $1}{\v #1_int} {\uldb $2}{\v #interface.1__#2_prop}\par
  989. $(reset)$(def1)$3\par
  990. .if=tagexists(interface),exists($1_int),exists($interface.1::$2_prop)
  991. ;link type and name
  992. .tag=prop, help, 3, 1
  993. .pre=$(reset)$(rmh)Properties\par
  994. .format=$(reset)$(term1){\uldb $1}{\v #1} {\uldb $2}{\v #interface.1__#2_prop}\par
  995. $(reset)$(def1)$3\par
  996. .if=exists($1),exists($interface.1::$2_prop)
  997. ;link name only
  998. .tag=prop, help, 3, 1
  999. .pre=$(reset)$(rmh)Properties\par
  1000. .format=$(reset)$(term1){\b $1} {\uldb $2}{\v #interface.1__#2_prop}\par
  1001. $(reset)$(def1)$3\par
  1002. .if=exists($interface.1::$2_prop)
  1003. ; link type only, if type is an interface
  1004. .tag=prop, help, 3, 1
  1005. .pre=$(reset)$(rmh)Properties\par
  1006. .format=$(reset)$(term1){\uldb $1}{\v #1_int} {\b $2}\par
  1007. $(reset)$(def1)$3\par
  1008. .if=exists($1_int)
  1009. ; link type only
  1010. .tag=prop, help, 3, 1
  1011. .pre=$(reset)$(rmh)Properties\par
  1012. .format=$(reset)$(term1){\uldb $1}{\v #1} {\b $2}\par
  1013. $(reset)$(def1)$3\par
  1014. .if=exists($1)
  1015. ; link neither, or doc
  1016. .tag=prop, both, 3, 1
  1017. .map=property,$1,$t.1,$2,$3
  1018. .pre=$(reset)$(rmh)Properties\par
  1019. .format=$(reset)$(term1){\b $1 $2}\par
  1020. $(reset)$(def1)$3\par
  1021. ; *** Events ***
  1022. ;link name
  1023. .tag=eve, help, 2, 1
  1024. .map=event,$t.1,$1,$2
  1025. .pre=$(reset)$(rmh)Events\par
  1026. .format=$(reset)$(term1){\uldb $1}{\v #interface.1__#1_event}\par
  1027. $(reset)$(def1)$2\par
  1028. .if= exists($interface.1::$1_event)
  1029. ; no link, or doc
  1030. .tag=eve, both, 2, 1
  1031. .map=event,$t.1,$1,$2
  1032. .pre=$(reset)$(rmh)Events\par
  1033. .format=$(reset)$(term1){\b $1}\par
  1034. $(reset)$(def1)$2\par
  1035. .tag=rvalue, doc, 2, 1
  1036. .pre=$(reset)$(rmh)Return Codes\par
  1037. \trowd \trgaph72\trleft-72 \cellx3078\cellx7038
  1038. .format=$(reset)\intbl$(table_text){\fs18 $1\cell $2\cell }\pard \intbl \row
  1039. .post=$(reset)\li240\sa0\sl240 \f2\fs20\lang1033 \par
  1040. .tag=rvalue, help, 2, 1
  1041. .pre=$(reset)$(rmh)Return Codes\par
  1042. \trowd \trgaph108\trleft162 \cellx2430\cellx8748
  1043. .format=$(reset)\intbl $(table_text){\fs16 $1}\cell $2\cell \pard \intbl \row
  1044. .post=$(reset)$(normal)\par
  1045. ; link interface name
  1046. .tag=supint, help, 2, 1
  1047. .pre=$(reset)$(rmh)Supported Interfaces\par
  1048. .format=$(reset)$(term1){\uldb $1}{\v #1_int}\par
  1049. $(reset)$(def1)$2\par
  1050. .if=exists($1_int)
  1051. ; no link, or doc
  1052. .tag=supint, both, 2, 1
  1053. .pre=$(reset)$(rmh)Supported Interfaces\par
  1054. .format=$(reset)$(term1){\b $1}\par
  1055. $(reset)$(def1)$2\par
  1056. ; link interface name
  1057. .tag=reqint, help, 2, 1
  1058. .pre=$(reset)$(rmh)Required Interfaces\par
  1059. .format=$(reset)$(term1){\uldb $1}{\v #1_int}\par
  1060. $(reset)$(def1)$2\par
  1061. .if=exists($1_int)
  1062. ; no link, or doc
  1063. .tag=reqint, both, 2, 1
  1064. .pre=$(reset)$(rmh)Required Interfaces\par
  1065. .format=$(reset)$(term1){\b $1}\par
  1066. $(reset)$(def1)$2\par
  1067. ; link interface name
  1068. .tag=optint, help, 2, 1
  1069. .pre=$(reset)$(rmh)Optional Interfaces\par
  1070. .format=$(reset)$(term1){\uldb $1}{\v #1_int}\par
  1071. $(reset)$(def1)$2\par
  1072. .if=exists($1_int)
  1073. ; no link, or doc
  1074. .tag=optint, both, 2, 1
  1075. .pre=$(reset)$(rmh)Optional Interfaces\par
  1076. .format=$(reset)$(term1){\b $1}\par
  1077. $(reset)$(def1)$2\par
  1078. ; Interfaces/objects that support a property or method
  1079. .tag=supby, both, 1, 1
  1080. .pre=$(reset)$(rmh)Supported By\par
  1081. .format=$(reset)$(normal){\b $1}\par
  1082. ; Interfaces that an object expects to consume
  1083. .tag=consumes, both, 1, 1
  1084. .pre=$(reset)$(rmh)Consumes\par
  1085. .format=$(reset)$(normal){\b $1}\par
  1086. ; Abstract object types to which an abstract object type belongs
  1087. .tag=is, both, 1, 1
  1088. .pre=$(reset)$(rmh)Is A\par
  1089. .format=$(reset)$(normal){\b $1}\par
  1090. ; Aggregates
  1091. ; link interface name
  1092. .tag=aggregates, help, 2, 1
  1093. .pre=$(reset)$(rmh)Aggregated Objects\par
  1094. .format=$(reset)$(term1){\uldb $1}{\v #1}\par
  1095. $(reset)$(def1)$2\par
  1096. .if=exists($1)
  1097. ; no link, or doc
  1098. .tag=aggregates, both, 2, 1
  1099. .pre=$(reset)$(rmh)Aggregated Objects\par
  1100. .format=$(reset)$(term1){\b $1}\par
  1101. $(reset)$(def1)$2\par
  1102. ; ******************************************
  1103. ; Miscellaneous tags
  1104. ; ******************************************
  1105. .tag=normal,both,1,1
  1106. .format=$(reset)$(normal)$1\par
  1107. .tag=head1, both, 2, 1
  1108. .if=fieldempty(2)
  1109. .format=$(reset)$(heading_1)$1\par
  1110. .tag=head2, both, 2, 1
  1111. .if=fieldempty(2)
  1112. .format=$(reset)$(heading_1)$1\par
  1113. .tag=head3, both, 2, 1
  1114. .if=fieldempty(2)
  1115. .format=$(reset)$(heading_3)$1\par
  1116. .tag=head1, both, 2, 1
  1117. .format=$(reset)$(heading_1)$1\par
  1118. $(reset)$(normal)$2\par
  1119. .tag=head2, both, 2, 1
  1120. .format=$(reset)$(heading_1)$1\par
  1121. $(reset)$(normal)$2\par
  1122. .tag=head3, both, 2, 1
  1123. .format=$(reset)$(heading_3)$1\par
  1124. $(reset)$(normal)$2\par
  1125. .tag=group, both, 1, 8
  1126. .format=$(reset)$(heading_3)$1\par
  1127. .tag=end, both, 0, 8
  1128. .format=
  1129. ; ******************************************
  1130. ; Index tags
  1131. ; ******************************************
  1132. .tag=index, both, 2, 1
  1133. .format=$(reset)$(indexlink)$[index:$1:$2]\par
  1134. .tag=subindex,help,1,1
  1135. .format=$(reset)$(indexlink){\uldb $1}{\v #1}\par
  1136. .tag=subindex,doc,1,1
  1137. .format=$(reset)$(indexlink)$1\par
  1138. [text]
  1139. ; ******************************************
  1140. ; Symbols
  1141. ; ******************************************
  1142. .tag=cp, both, 0
  1143. .format=\'a9
  1144. .tag=tm, both, 0
  1145. .format=\'99
  1146. .tag=rtm, both, 0
  1147. .format=\'ae
  1148. .tag=en-, doc, 0
  1149. .format=\endash
  1150. .tag=en-, help, 0
  1151. .format=\'97
  1152. .tag=em-, doc, 0
  1153. .format=\emdash
  1154. .tag=em-, help, 0
  1155. .format=\'96
  1156. .tag=lq, doc, 0
  1157. .format=\ldblquote
  1158. .tag=lq, help, 0
  1159. .format=\'91
  1160. .tag=rq, doc, 0
  1161. .format=\rdblquote
  1162. .tag=rq, help, 0
  1163. .format=\'92
  1164. .tag=gt, both, 0
  1165. .format=>
  1166. .tag=lt, both, 0
  1167. .format=<
  1168. .tag=tab, both, 0
  1169. .format=\tab
  1170. .tag=nl, both, 0
  1171. .format=\line
  1172. .tag=cmt, both, 0
  1173. .format=//
  1174. ;
  1175. ; ******************************************
  1176. ; Build elements
  1177. ; ******************************************
  1178. .tag=date,both,0
  1179. .format=$!d
  1180. .tag=filename,both,0
  1181. .format=$!F
  1182. .tag=filepath,both,0
  1183. .format=$!P
  1184. .tag=tname,both,0
  1185. .format=$!n
  1186. .tag=tcontext,both,0
  1187. .format=$!c
  1188. ;
  1189. ; ******************************************
  1190. ; Graphics
  1191. ; ******************************************
  1192. .tag=bmp, help, 1
  1193. .format=\{bmc $1\}
  1194. .tag=bmp, doc, 1
  1195. .format={\field{\*\fldinst INCLUDEPICTURE $1 \\* MERGEFORMAT }}}
  1196. ;
  1197. ; ******************************************
  1198. ; Functions
  1199. ; ******************************************
  1200. .tag=f, help, 1
  1201. .format={\b $1}
  1202. .if=$1=$func.2
  1203. .tag=f, help, 1
  1204. .format={\uldb $1}{\v !Klink($1)}
  1205. .if=exists($1)
  1206. .tag=f, both, 1
  1207. .format={\b $1}
  1208. ;
  1209. ; ******************************************
  1210. ; Messages
  1211. ; ******************************************
  1212. .tag=m, help, 1
  1213. .format=$1
  1214. .if=$1=$msg.1
  1215. .tag=m, help, 1
  1216. .format={\uldb $1}{\v !Klink($1)}
  1217. .if=exists($1)
  1218. .tag=m, both, 1
  1219. .format=$1
  1220. ;
  1221. ; ******************************************
  1222. ; Structures
  1223. ; ******************************************
  1224. .tag=t, help, 1
  1225. .format={\b $1}
  1226. .if=$1=$struct.1
  1227. .tag=t, help, 1
  1228. .format={\b $1}
  1229. .if=$1=$enum.1
  1230. .tag=t, help, 1
  1231. .format={\uldb $1}{\v !Klink($1)}
  1232. .if=exists($1)
  1233. .tag=t, both, 1
  1234. .format={\b $1}
  1235. ;
  1236. ; ******************************************
  1237. ; Parameters
  1238. ; ******************************************
  1239. .tag=p, both, 1
  1240. .format={\i $1}
  1241. ;
  1242. ; ******************************************
  1243. ; Structure and Enumeration Elements
  1244. ; ******************************************
  1245. .tag=e, help, 2
  1246. .format={\b $2}
  1247. .if=$1=$struct.1
  1248. .tag=e, help, 2
  1249. .format={\b $2}
  1250. .if=$1=$enum.1
  1251. .tag=e, help, 2
  1252. .format={\uldb $2}{\v !Klink($1)}
  1253. .if=exists($1)
  1254. .tag=e, both, 2
  1255. .format={\b $2}
  1256. ;
  1257. ; ******************************************
  1258. ; Classes
  1259. ; ******************************************
  1260. .tag=c, help, 1
  1261. .format={\b $1}
  1262. .if=$1=$class.1
  1263. .tag=c, help, 1
  1264. .format={\uldb $1}{\v !Klink($1)}
  1265. .if=exists($1)
  1266. .tag=c, both, 1
  1267. .format={\b $1}
  1268. ;
  1269. ; ******************************************
  1270. ; Enumerations
  1271. ; ******************************************
  1272. .tag=enum, help, 2
  1273. .format={\b $1}
  1274. .if=$1=$enum.1,fieldempty(2)
  1275. .tag=enum, help, 2
  1276. .format={\uldb $1}{\v !Klink($1)}
  1277. .if=exists($1),fieldempty(2)
  1278. .tag=enum, both, 2
  1279. .format={\b $1},fieldempty(2)
  1280. .tag=enum, help, 2
  1281. .format={\b $2::$1}
  1282. .if=$1=$enum.1
  1283. .tag=enum, help, 2
  1284. .format={\uldb $2::$1}{\v !Klink($2::$1)}
  1285. .if=exists($2__$1)
  1286. .tag=enum, both, 2
  1287. .format={\b $2::$1}
  1288. ;
  1289. ; ******************************************
  1290. ; Member Functions
  1291. ; ******************************************
  1292. ; circular reference, make bold
  1293. ;
  1294. .tag=mf, help, 2
  1295. .format={\b $2}
  1296. .if=fieldempty(1),$2=$mfunc.3
  1297. .if=$1=$mfunc.2,$2=$mfunc.3
  1298. ; same class, different function, link target exists: omit class name & link
  1299. ;
  1300. .tag=mf, help, 2
  1301. .format={\uldb $2}{\v !Klink($class.1$mfunc.2$mdata.2::$2)}
  1302. .if=fieldempty(1),exists($class.1$mfunc.2$mdata.2::$2)
  1303. .if=exists($1::$2),$1=$class.1$mfunc.2$mdata.2
  1304. ; different class, link target exists: output class::function & link
  1305. ;
  1306. .tag=mf, help, 2
  1307. .format={\uldb $1::$2}{\v !Klink($1__$2)}
  1308. .if=exists($1::$2)
  1309. ; same class, no link target: omit class name & bold
  1310. ;
  1311. .tag=mf, both, 2
  1312. .format={\b $2}
  1313. .if=fieldempty(1)
  1314. .if=$1=$class.1$mfunc.2$mdata.2
  1315. ; nothing to link to, within different class
  1316. ;
  1317. .tag=mf, both, 2
  1318. .format={\b $1::$2}
  1319. ;
  1320. ; ******************************************
  1321. ; Member data
  1322. ; ******************************************
  1323. ; circular reference, make bold
  1324. ;
  1325. .tag=md, help, 2
  1326. .format={\b $2}
  1327. .if=fieldempty(1),$2=$mdata.3
  1328. .if=$1=$mfunc.2,$2=$mdata.3
  1329. ; same class, different function, link target exists: omit class name & link
  1330. ;
  1331. .tag=md, help, 2
  1332. .format={\uldb $2}{\v !KLink($class.1$mfunc.2$mdata.2::$2)}
  1333. .if=fieldempty(1),exists($class.1$mfunc.2$mdata.2::$2)
  1334. .if=exists($1::$2),$1=$class.1$mfunc.2$mdata.2
  1335. ; different class, link target exists: output class::function & link
  1336. ;
  1337. .tag=md, help, 2
  1338. .format={\uldb $1::$2}{\v !KLink($1::$2)}
  1339. .if=exists($1::$2)
  1340. ; same class, no link target: omit class name & bold
  1341. ;
  1342. .tag=md, both, 2
  1343. .format={\b $2}
  1344. .if=fieldempty(1)
  1345. .if=$1=$class.1$mfunc.2$mdata.2
  1346. ; nothing to link to, within different class
  1347. ;
  1348. .tag=md, both, 2
  1349. .format={\b $1::$2}
  1350. ;
  1351. ; ******************************************
  1352. ; OLE Objects
  1353. ; ******************************************
  1354. .tag=o, help, 1
  1355. .format={\b $1}
  1356. .if=$1=$abstract.1$object.1
  1357. .tag=o, help, 1
  1358. .format={\uldb $1}{\v !Klink($1 object)}
  1359. .if=exists($1)
  1360. .tag=o, both, 1
  1361. .format={\b $1}
  1362. ;
  1363. ; ******************************************
  1364. ; OLE Interfaces
  1365. ; ******************************************
  1366. .tag=i, help, 1
  1367. .format={\b $1}
  1368. .if=$1=$interface.1
  1369. .tag=i, help, 1
  1370. .format={\uldb $1}{\v !KLink($1 interface)}
  1371. .if=exists($1_int)
  1372. .tag=i, both, 1
  1373. .format={\b $1}
  1374. ;
  1375. ; ******************************************
  1376. ; OLE Methods
  1377. ; ******************************************
  1378. ; circular reference, make bold
  1379. ; example: <om .Bar> appearing in @method ret|IFoo|Bar
  1380. .tag=om, help, 2
  1381. .format={\b $2}
  1382. .if=tagexists(method),fieldempty(1),$2=$method.3
  1383. .if=$1=$method.2,$2=$method.3
  1384. ; @abstract or @object tag, empty field, link
  1385. ; example: <om .Bar> appearing in @abstract Foo or @object Foo
  1386. .tag=om, help, 2
  1387. .format={\uldb $2}{\v !Klink(I$abstract.1$object.1::$2 method)}
  1388. .if=tagexists(object),fieldempty(1),exists(I$object.1::$2_meth)
  1389. .if=tagexists(abstract),fieldempty(1),exists(I$abstract.1::$2_meth)
  1390. ; @method, @interface, @property, @event, empty field, link
  1391. ; example: <om .Bar> appearing in @interface IFoo
  1392. .tag=om, help, 2
  1393. .format={\uldb $2}{\v !Klink($method.2$property.2$interface.1$event.1::$2 method)}
  1394. .if=fieldempty(1),exists($method.2$property.2$interface.1$event.1::$2_meth)
  1395. ; @object, @abstract, same object, link
  1396. ; example: <om IFoo.Bar> appearing in @object Foo
  1397. .tag=om, help, 2
  1398. .format={\uldb $2}{\v !Klink(I$object.1$abstract.1::$2 method)}
  1399. .if=tagexists(object),$1=I$object.1,exists(I$object.1::$2_meth)
  1400. .if=tagexists(abstract),$1=I$abstract.1,exists(I$abstract.1::$2_meth)
  1401. ; @method, @interface, @property, @event, same interface, link
  1402. ; example: <om IFoo.Bar> appearing in @method ret|IFoo|Bar
  1403. .tag=om, help, 2
  1404. .format={\uldb $2}{\v !Klink($method.2$property.2$interface.1$event.1::$2 method)}
  1405. .if=$1=$method.2$property.2$interface.1$event.1,exists($method.2$property.2$interface.1$event.1::$2_meth)
  1406. ; different interface, link
  1407. ; example: <om IFoo.Bar> appearing in @method ret|IBar|Foo
  1408. .tag=om, help, 2
  1409. .format={\uldb $1::$2}{\v !Klink($1::$2 method)}
  1410. .if=exists($1::$2_meth)
  1411. ; same interface, no link
  1412. ; example: <om IFoo.Bar> appearing in @method ret|IBar|Foo but no
  1413. ; IFoo::Bar defined
  1414. .tag=om, both, 2
  1415. .format={\b $2}
  1416. .if=tagexists(object),$1=I$object.1
  1417. .if=tagexists(abstract),$1=I$abstract.1
  1418. .if=$1=$method.2$property.2$interface.1$event.1
  1419. .if=fieldempty(1)
  1420. ; default: both fields,
  1421. ; example: <om IFoo.Bar> output with "IFoo.Bar" in bold
  1422. .tag=om, both, 2
  1423. .format={\b $1::$2}
  1424. ;
  1425. ; ******************************************
  1426. ; OLE Properties
  1427. ; ******************************************
  1428. ; circular reference, make bold
  1429. ; example: <op .Bar> appearing in @property type|IFoo|Bar
  1430. .tag=op, help, 2
  1431. .format={\b $2}
  1432. .if=tagexists(property),fieldempty(1),$2=$property.3
  1433. .if=$1=$property.2,$2=$property.3
  1434. ; @abstract or @object tag, empty field, link
  1435. ; example: <op .Bar> appearing in @abstract Foo or @object Foo
  1436. .tag=op, help, 2
  1437. .format={\uldb $2}{\v !Klink(I$abstract.1$object.1::$2 property)}
  1438. .if=tagexists(object),fieldempty(1),exists(I$object.1::$2_prop)
  1439. .if=tagexists(abstract),fieldempty(1),exists(I$abstract.1::$2_prop)
  1440. ; @method, @interface, @property, @event, empty field, link
  1441. ; example: <op .Bar> appearing in @interface IFoo
  1442. .tag=op, help, 2
  1443. .format={\uldb $2}{\v !Klink($method.2$property.2$interface.1$event.1::$2 property)}
  1444. .if=fieldempty(1),exists($method.2$property.2$interface.1$event.1::$2_prop)
  1445. ; @object, @abstract, same object, link
  1446. ; example: <op IFoo.Bar> appearing in @object Foo
  1447. .tag=op, help, 2
  1448. .format={\uldb $2}{\v !Klink(I$object.1$abstract.1::$2 property)}
  1449. .if=tagexists(object),$1=I$object.1,exists(I$object.1::$2_prop)
  1450. .if=tagexists(abstract),$1=I$abstract.1,exists(I$abstract.1::$2_prop)
  1451. ; @method, @interface, @property, @event, same interface, link
  1452. ; example: <op IFoo.Bar> appearing in @method ret|IFoo|Bar
  1453. .tag=op, help, 2
  1454. .format={\uldb $2}{\v !Klink($method.2$property.2$interface.1$event.1::$2 property)}
  1455. .if=$1=$method.2$property.2$interface.1$event.1,exists($method.2$property.2$interface.1$event.1::$2_prop)
  1456. ; different interface, link
  1457. ; example: <op IFoo.Bar> appearing in @method ret|IBar|Foo
  1458. .tag=op, help, 2
  1459. .format={\uldb $1::$2}{\v !Klink($1::$2 property)}
  1460. .if=exists($1::$2_prop)
  1461. ; same interface, no link
  1462. ; example: <op IFoo.Bar> appearing in @method ret|IBar|Foo but no
  1463. ; IFoo::Bar defined
  1464. .tag=op, both, 2
  1465. .format={\b $2}
  1466. .if=tagexists(object),$1=I$object.1
  1467. .if=tagexists(abstract),$1=I$abstract.1
  1468. .if=$1=$method.2$property.2$interface.1$event.1
  1469. .if=fieldempty(1)
  1470. ; default: both fields,
  1471. ; example: <op IFoo.Bar> output with "IFoo.Bar" in bold
  1472. .tag=op, both, 2
  1473. .format={\b $1::$2}
  1474. ; ******************************************
  1475. ; OLE Events
  1476. ; ******************************************
  1477. ; See "OLE Methods" for descriptions/examples of each block
  1478. ; circular reference
  1479. .tag=oe, help, 2
  1480. .format={\b $2}
  1481. .if=fieldempty(1),$2=$event.1
  1482. .if=$1=$event.1,$2=$event.2
  1483. ; link, ref. same interface within @object, @abstract,
  1484. ; omit interface prefix
  1485. .tag=oe, help, 2
  1486. .format={\uldb $2}{\v !Klink(I$abstract.1$object.1::$2 event)}
  1487. .if=tagexists(object),fieldempty(1),exists(I$object.1::$2_event)
  1488. .if=tagexists(abstract),fieldempty(1),exists(I$abstract.1::$2_event)
  1489. .if=tagexists(object),$1=I$object.1,exists(I$object.1::$2_event)
  1490. .if=tagexists(abstract),$1=I$abstract.1,exists(I$abstract.1::$2_event)
  1491. ; link, ref. same interface within @method, @property, @interface, @event
  1492. ; omit interface prefix
  1493. .tag=oe, help, 2
  1494. .format={\uldb $2}{\v !Klink($event.1$method.2$property.2$interface.1::$2 event)}
  1495. .if=fieldempty(1),exists($event.1$method.2$property.2$interface.1::$2_event)
  1496. .if=$1=$event.1$method.2$property.2$interface.1,exists($1::$2_event)
  1497. ; no link, ref. same interface
  1498. ; omit interface prefix
  1499. .tag=oe, both, 2
  1500. .format={\b $2}
  1501. .if=fieldempty(1)
  1502. .if=$1=I$object.1$abstract.1
  1503. .if=$1=$method.2$property.2$interface.1$event.1
  1504. ; link
  1505. .tag=oe, help, 2
  1506. .format={\uldb $1::$2}{\v !Klink($1::$2 event)}
  1507. .if=exists($1::$2_event)
  1508. ;
  1509. ; default
  1510. .tag=oe, both, 2
  1511. .format={\b $1::$2}
  1512. ; ******************************************
  1513. ; Misc weirdness
  1514. ; ******************************************
  1515. .tag=index, both, 2
  1516. .format=$[index:$1:$2]
  1517. .tag=y, both, 1
  1518. .format={\i $1}
  1519. .tag=l, both, 1
  1520. .format=$1
  1521. .if=$1=$topic.1
  1522. .tag=l, help, 1
  1523. .format={\uldb $1}{\v !Klink($1)}
  1524. [diagram]
  1525. ; Visual Basic type diagram
  1526. .tag=bstruct, both, bfield
  1527. .pre=\pard \plain $(ex)$[bmod]Type\par
  1528. .post=End Type\par
  1529. \par
  1530. .format=$[bfield]\par
  1531. .tag=bfield, both, none
  1532. .if=fieldempty(2)
  1533. .pre=\tab $1
  1534. .format=
  1535. .tag=bfield, both, none
  1536. .pre=\tab $1 As $2
  1537. .format=
  1538. ; Visual Basic subroutine diagram
  1539. .tag=bfunc, both, bparm
  1540. .pre=\pard \plain $(normal)$[bmod]{\b Function} {\b $2(}
  1541. .post={\b )}$[btype]\par
  1542. .formatfirst=$[bparm]
  1543. .format={\b , }$[bparm]
  1544. .tag=bsub, both, bparm
  1545. .pre=\pard \plain $(normal)$[bmod]{\b Sub} {\b $2(}
  1546. .post={\b )}\par
  1547. .formatfirst=$[bparm]
  1548. .format={\b , }$[bparm]
  1549. .tag=bparm, both, none
  1550. .if=fieldempty(1)
  1551. .pre={\i $2}$[btype]
  1552. .format=
  1553. .tag=bparm, both, none
  1554. .pre={\b $1} {\i $2}$[btype]
  1555. .format=
  1556. .tag=bparm, both, none
  1557. .if=fieldempty(1)
  1558. .format=
  1559. .pre={\i $2} {\b As $3}
  1560. .tag=bparm, both, none
  1561. .format=
  1562. .pre={\b $1} {\i $2} {\b As $3}
  1563. .tag=bmod, both, bmod
  1564. .if=fieldempty(1)
  1565. .format=
  1566. .tag=bmod, both, bmod
  1567. .format=
  1568. .pre={\b $1}
  1569. .tag=btype, both, btype
  1570. .if=fieldempty(3)
  1571. .format=
  1572. .tag=btype, both, btype
  1573. .format=
  1574. .pre= {\b As $3}
  1575. .tag=parmopthead, both, parm
  1576. .cancelifpresent=parm
  1577. .pre=$(reset)$(rmh)Parameters\par
  1578. .format=
  1579. .tag=parmopt, both, parmopt
  1580. .cancelifpresent=syntax
  1581. .format={\b , $1} {\i $2} {\b = $3}
  1582. .if=tagexists(parm)
  1583. .tag=parmopt, both, parmopt
  1584. .cancelifpresent=syntax
  1585. .formatfirst={\b $1} {\i $2} {\b = $3}
  1586. .format={\b , $1} {\i $2} {\b = $3}
  1587. ; *** Function diagram ******
  1588. ;
  1589. ; No return value, parameters
  1590. .tag=function, both, parm
  1591. .cancelifpresent=syntax
  1592. .pre=\pard \plain $(normal)$[ftemplate]{\b $1} {\b $2(}
  1593. .post=$[parmopt]$[vararg]{\b ) $this.1}\par
  1594. .formatfirst={\b $1} {\i $2}
  1595. .format={\b , $1} {\i $2}
  1596. .if=fieldempty(1), tagexists(parm)
  1597. .if=fieldempty(1), tagexists(parmopt)
  1598. ; No return value, no parameters
  1599. .tag=function, both, parm
  1600. .cancelifpresent=syntax
  1601. .pre=\pard \plain $(normal)$[ftemplate]{\b $2(void}
  1602. .post=$[parmopt]$[vararg]{\b ) $this.1}\par
  1603. .format=
  1604. .if=fieldempty(1)
  1605. ; Return value, parameters
  1606. ;
  1607. .tag=function, both, parm
  1608. .cancelifpresent=syntax
  1609. .pre=\pard \plain $(normal)$[ftemplate]{\b $1} {\b $2(}
  1610. .post=$[parmopt]$[vararg]{\b ) $this.1}\par
  1611. .formatfirst={\b $1} {\i $2}
  1612. .format={\b , $1} {\i $2}
  1613. .if=tagexists(parm)
  1614. .if=tagexists(parmopt)
  1615. ; Return value, no parameters
  1616. ;
  1617. .tag=function, both, parm
  1618. .cancelifpresent=syntax
  1619. .pre=\pard \plain $(normal)$[ftemplate]{\b $1} {\b $2(void}
  1620. .post=$[parmopt]$[vararg]{\b ) $this.1}\par
  1621. .format=
  1622. ;
  1623. ; *** Member Functions ******
  1624. ; No return value, parameters
  1625. .tag=mfunction, both, parm
  1626. .cancelifpresent=syntax
  1627. .pre=\pard \plain $(normal)$[template]{\b $2}$[tcarg]{\b ::$3$[tfarg](}
  1628. .post=$[parmopt]$[vararg]{\b ) $this.1}\par
  1629. .formatfirst={\b $1} {\i $2}
  1630. .format={\b , $1} {\i $2}
  1631. .if=fieldempty(1), tagexists(parm)
  1632. .if=fieldempty(1), tagexists(parmopt)
  1633. ; No return value, no parameters
  1634. .tag=mfunction, both, parm
  1635. .cancelifpresent=syntax
  1636. .pre=\pard \plain $(normal)$[template]{\b $2}$[tcarg]{\b ::$3$[tfarg](void}
  1637. .post=$[parmopt]$[vararg]{\b ) $this.1}\par
  1638. .format=
  1639. .if=fieldempty(1)
  1640. ; Return value, parameters
  1641. ;
  1642. .tag=mfunction, both, parm
  1643. .cancelifpresent=syntax
  1644. .pre=\pard \plain $(normal)$[template]{\b $1} {\b $2}$[tcarg]{\b ::$3$[tfarg](}
  1645. .post=$[parmopt]$[vararg]{\b ) $this.1}\par
  1646. .formatfirst={\b $1} {\i $2}
  1647. .format={\b , $1} {\i $2}
  1648. .if=tagexists(parm)
  1649. .if=tagexists(parmopt)
  1650. ; Return value, no parameters
  1651. ;
  1652. .tag=mfunction, both, parm
  1653. .cancelifpresent=syntax
  1654. .pre=\pard \plain $(normal)$[template]{\b $1} {\b $2}$[tcarg]{\b ::$3$[tfarg](void}
  1655. .post=$[parmopt]$[vararg]{\b ) $this.1}\par
  1656. .format=
  1657. ;
  1658. ; **** OLE2 Method ********
  1659. .tag=method, both, parm
  1660. .cancelifpresent=syntax
  1661. .pre=\pard \plain $(normal){\b $1 $3(}
  1662. .post={\b )}\par
  1663. .formatfirst={\b $1} {\i $2}
  1664. .format={\b , $1} {\i $2}
  1665. ; **** OLE2 Event ********
  1666. .tag=event, both, parm
  1667. .cancelifpresent=syntax
  1668. .pre=\pard \plain $(normal){\b $1(}
  1669. .post={\b )}\par
  1670. .formatfirst={\b $1} {\i $2}
  1671. .format={\b , $1} {\i $2}
  1672. ; **** Structure ********
  1673. .tag=structure, both, field
  1674. .pre=$(reset)$(ex)typedef struct \{\par
  1675. .format=$(reset)$(ex)\tab $1 $2;\par
  1676. .post=$(reset)$(ex)\} $1;\par
  1677. $(reset)$(ex)\par
  1678. ; **** Enumeration ********
  1679. .tag=enum, both, emem
  1680. .pre=$(reset)$(ex)enum $1 \{\par
  1681. .formatfirst=$(reset)$(ex)\tab $1
  1682. .format=,\par
  1683. $(reset)$(ex)\tab $1
  1684. .post=\par
  1685. $(reset)$(ex)\};\par
  1686. $(reset)$(ex)\par
  1687. ; **** Class *****************
  1688. .tag=class, both, base
  1689. .pre=$(reset)$(normal)$[template]{\b class $1}
  1690. .formatfirst={\b : $1 $2}
  1691. .format={\b , $1 $2}
  1692. .post=\par
  1693. ; **** Member Class *****************
  1694. .tag=mclass, both, base
  1695. .pre=$(reset)$(normal)$[template]{\b class $1::$2}
  1696. .formatfirst={\b : $1 $2}
  1697. .format={\b , $1 $2}
  1698. .post=\par
  1699. ; **** Template specification for classes or member functions
  1700. .tag=template, both, tcarg
  1701. .pre={\b template <}
  1702. .formatfirst={\b $1 }{\i $2}
  1703. .format=, {\b $1 }{\i $2}
  1704. .post={\b >}\line
  1705. .if=tagexists(tcarg)
  1706. .tag=template, both, tcarg
  1707. .format=
  1708. ; **** Template specification for functions
  1709. .tag=ftemplate, both, tfarg
  1710. .pre={\b template <}
  1711. .formatfirst={\b $1 }{\i $2}
  1712. .format=, {\b $1 }{\i $2}
  1713. .post={\b >}\line
  1714. .if=tagexists(tfarg)
  1715. .tag=ftemplate, both, tfarg
  1716. .format=
  1717. ; **** member function args list
  1718. .tag=tcarg, both, tcarg
  1719. .pre={\b <}
  1720. .formatfirst={\i $2}
  1721. .format={\b , }{\i $2}
  1722. .post={\b >}
  1723. .if=tagexists(tcarg)
  1724. .tag=tcarg, both, targ
  1725. .format=
  1726. ; **** function args list
  1727. .tag=tfarg, both, tfarg
  1728. .pre={\b <}
  1729. .formatfirst={\b $1} {\i $2}
  1730. .format={\b , }{\b $1} {\i $2}
  1731. .post={\b >}
  1732. .if=tagexists(tfarg)
  1733. .tag=tfarg, both, tfarg
  1734. .format=
  1735. ; ****** function variable args
  1736. .tag=vararg, both, parmvar
  1737. .format={\b , ...}
  1738. .if=tagexists(parmvar)
  1739. ; ****** function variable args
  1740. .tag=vararg, both, parmvar
  1741. .format=
  1742. ; ****** Member data diagram
  1743. .tag=mdata, help, parm
  1744. .cancelifpresent=syntax
  1745. .pre=$(reset)$(normal){\uldb $1}{\v $1} {\uldb $2}{\v $2}{\b ::$3}
  1746. .post=\par
  1747. .format=
  1748. .if=exists($1),exists($2)
  1749. .tag=mdata, help, parm
  1750. .cancelifpresent=syntax
  1751. .pre=$(reset)$(normal){\b $1} {\uldb $2}{\v $2}{\b ::$3}
  1752. .post=\par
  1753. .format=
  1754. .if=exists($2)
  1755. .tag=mdata, help, parm
  1756. .cancelifpresent=syntax
  1757. .pre=$(reset)$(normal){\uldb $1}{\v $1} {\b $2}{\b ::$3}
  1758. .post=\par
  1759. .format=
  1760. .if=exists($1)
  1761. .tag=mdata, both, parm
  1762. .cancelifpresent=syntax
  1763. .pre=$(reset)$(normal){\b $1 $2::$3}
  1764. .post=\par
  1765. .format=
  1766. .tag=classhdr, both, parm
  1767. .cancelifpresent=access
  1768. .pre=$(reset)$(rmh)Class Members\par
  1769. .format=
  1770. [index]
  1771. .output=help
  1772. .prename=$(reset)$(indexlink){\uldb
  1773. .precontext=}{\v
  1774. .postcontext=}\par
  1775. .output=doc
  1776. .prename=$(reset)$(indexlink)
  1777. .precontext={\v
  1778. .postcontext=}\par