[extension]
.ext=w,c

[topic]
;
; ***********************************************************
; C Language topics
; ***********************************************************

; Functions

;$DI$ - add returns before comm
.tag=func, doc, 3, 20, $2
.order=syntax rdesc parm parmvar returns comm ex
.parsesource=function
.pre=$(reset)$(rule)\par 
$(reset)$(heading_1)$2\par 
$[function]
$(reset)$(normal)$3\par 
$(reset)$(normal)Defined in: $!p\par 

;$DI$ - add returns before comm
.tag=func, help, 3, 20, $2
.order=syntax rdesc parm parmvar returns comm ex
.parsesource=function
.pre=\page 
$(reset)$(heading_1)
##{\footnote ## #2}
$${\footnote $$ $2}
K{\footnote K functions; $2}
+{\footnote + functions:0000} 
$2\par 
$[function]
$(reset)$(normal)$3\par 
$(reset)$(normal)Defined in: $!p\par 

; Functions

;$DI$ - add returns before comm
.tag=cb, doc, 3, 20, $2
.order=syntax rdesc parm parmvar returns comm ex
.parsesource=function
.pre=$(reset)$(rule)\par 
$(reset)$(heading_1)$2\par 
$[function]
$(reset)$(normal)$3\par 
$(reset)$(normal)Defined in: $!p\par 

;$DI$ - add returns before comm
.tag=cb, help, 3, 20, $2
.order=syntax rdesc parm parmvar returns comm ex
.parsesource=function
.pre=\page 
$(reset)$(heading_1)
##{\footnote ## #2}
$${\footnote $$ $2}
K{\footnote K callback functions; functions; $2 callback function}
+{\footnote + functions:0000} 
$2\par 
$[function]
$(reset)$(normal)$3\par 
$(reset)$(normal)Defined in: $!p\par 

;$DI$ - add [cmethod] to diagram
; Object methods

.tag=method, doc, 4, 20, $2::$3
.context=$2::$3_meth
.pre=$(reset)$(rule)\par 
$(reset)$(heading_1)$2::$3 Method\par 
$[method]
$[cmethod]
$(reset)$(normal)$4\par 
$(reset)$(normal)Defined in: $!p\par 

.tag=method, help, 4, 20, $2::$3
.context=$2::$3_meth
.order=parm rvalue comm ex
.pre=\page 
##{\footnote ## #2__#3_meth}
$${\footnote $$ $2::$3 Method}
K{\footnote K OLE interfaces; interface methods; methods; $3 method; $2 interface}
+{\footnote + OLE:0000} 
$(reset)$(heading_1)$2::$3 Method\par 
$[method]
$[cmethod]
$(reset)$(normal)$4\par 
$(reset)$(normal)Defined in: $!p\par 

; #define's

.tag=define, doc, 3, 30, $1
.pre=$(reset)$(rule)\par 
$(reset)$(heading_1)$1 constant\par
$(reset)$(normal){\b ##define} $1 $2\par
$(reset)$(normal)Defined in: $!p\par 
$(reset)$(normal)$3\par

.tag=define, help, 3, 30, $1
.pre=\page $(reset)$(heading_1)
##{\footnote ## #1}
$${\footnote $$ $1}
K{\footnote K ##define's; $1}
+{\footnote + ##define's:0000} 
$1 constant\par 
$(reset)$(normal){\b ##define} $1 $2\par
$(reset)$(normal)Defined in: $!p\par 
$(reset)$(normal)$3\par

; Globals

.tag=global, doc, 3, 30, $2
.parsesource=constant
.pre=$(reset)$(rule)\par 
$(reset)$(heading_1)$2 global variable\par 
$(reset)$(normal){\b $1 $2;}\par 
$(reset)$(normal)Defined in: $!p\par 
$(reset)$(normal)$3\par 

.tag=global, help, 3, 30, $2
.parsesource=constant
.pre=\page $(reset)$(heading_1)
##{\footnote ## #2}
$${\footnote $$ $2}
K{\footnote K global variables; $2 global variable}
+{\footnote + global variables:0000} 
$2 global variable\par 
$(reset)$(normal){\b $1 $2;}\par 
$(reset)$(normal)Defined in: $!p\par 
$(reset)$(normal)$3\par 

; Flags

.tag=flags, doc, 2, 50, $1
.pre=$(reset)$(rule)\par 
$(reset)$(heading_1)$1\par 
$(reset)$(normal)$2\par
$(reset)$(normal)Defined in: $!p\par 

.tag=flags, help, 2, 50, $1
.pre=\page $(reset)$(heading_1)
##{\footnote ## #1}
$${\footnote $$ $1}
K{\footnote K flags; $1}
+{\footnote + flags:0000}
$(reset)$(heading_1)$1\par
$(reset)$(normal)$2\par
$(reset)$(normal)Defined in: $!p\par

[paragraph]
; ***********************************************************
; C wrappers
; ***********************************************************
;$DI$ - @cwrap to indicate that there is a C wrapper
; $1 is the type
; $2 is the variable name to use for the type
.tag=cwrap, both, 2, 1
.pre=
.format=


;
; ***********************************************************
; Misc Tags
; ***********************************************************

;$DI$ - @returns to describe function return values
.tag=returns, both, 1, 1
.pre=$(reset)$(rmh)Return Values\par 
.format=$(reset)$(normal)$1\par 

[diagram]

; **** OLE2 Method ********
;$DI$ - Stick "C++" in front to mark this as C++ notation.

.tag=method, both, parm
.pre=\pard \plain $(normal)\tx0\li0\fi-600[C++]\tab{\b $1 $2::$3(}
.post={\b )}\par
.formatfirst={\b $1} {\i $2}
.format={\b , $1} {\i $2}

;$DI$ - C prototype for ole2 method
.tag=cmethod, both, parm
.pre=\pard \plain $(normal)\tx0\li0\fi-600[C]
\tab{\b $1 $2_$3(\b $cwrap.1} {\i $cwrap.2}{\b , }
.post={\b )}\par
.formatfirst={\b $1} {\i $2}
.format={\b , $1} {\i $2}
.if=tagexists(cwrap), tagexists(parm)

;$DI$ - C prototype for ole2 method, no parameters
.tag=cmethod, both, parm
.pre=\pard \plain $(normal)\tx0\li0\fi-600[C]
\tab{\b $1 $2_$3(\b $cwrap.1} {\i $cwrap.2}
.post={\b )}\par
.formatfirst={\b $1} {\i $2}
.format={\b , $1} {\i $2}
.if=tagexists(cwrap)

;$DI$ - C prototype for ole2 method when no wrapper requested
.tag=cmethod, both, parm
.pre=
.post=
.formatfirst=
.format=

[text]

; ******************************************
; Misc weirdness
; ******************************************
;
;\cf13 = dark red
; \uld = double underline
.tag=new, both, 1
.format={\ul $1}

.tag=bnew, both, 0
; Note! trailing space!
.format={\ul 

.tag=enew, both, 0
.format=}

.tag=del, both, 1
.format={\strike $1}

.tag=bdel, both, 0
;.format={\uld
; Note! trailing space!
.format={\strike 

.tag=edel, both, 0
.format=}

;
;   Special notes.
;
.tag=bnote, both, 0
; Note! trailing space!
.format={\cf6 

.tag=enote, both, 0
.format=}

;
;   Latin.
;
.tag=qv, both, 0
.format={\i q.v.}

.tag=ie, both, 0
.format={\i i.e.}

;
; Symbols.
;

.tag=vbar, both, 0
.format=|