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.

506 lines
13 KiB

  1. C
  2. C fgraph.fi - declare constants and functions for graphics library
  3. C
  4. C Copyright (c) 1987-1993 Microsoft Corporation. All rights reserved.
  5. C
  6. C Purpose:
  7. C This file declares the graphics library functions and
  8. C the manifest constants that are used with them.
  9. C
  10. $NOTRUNCATE
  11. $NOTSTRICT
  12. C User-visible declarations for FORTRAN Graphics Library
  13. INTERFACE TO FUNCTION arc(x1,y1,x2,y2,x3,y3,x4,y4)
  14. INTEGER*2 arc[FAR,C,ALIAS:"__arc"],x1,y1,x2,y2,x3,y3,x4,y4
  15. END
  16. INTERFACE TO FUNCTION arc_w(wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4)
  17. INTEGER*2 arc_w[FAR,C,ALIAS:"__arc_w"]
  18. DOUBLE PRECISION wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
  19. END
  20. INTERFACE TO FUNCTION getarcinfo(lpstart,lpend,lppaint)
  21. INTEGER*2 getarcinfo[FAR,C,ALIAS:"__getarcinfo"]
  22. STRUCTURE/xycoord/
  23. INTEGER*2 xcoord
  24. INTEGER*2 ycoord
  25. END STRUCTURE
  26. RECORD/xycoord/lpstart[FAR,REFERENCE]
  27. RECORD/xycoord/lpend[FAR,REFERENCE]
  28. RECORD/xycoord/lppaint[FAR,REFERENCE]
  29. END
  30. INTERFACE TO SUBROUTINE
  31. + clearscreen[FAR,C,ALIAS:"__clearscreen"](area)
  32. INTEGER*2 area
  33. END
  34. INTERFACE TO FUNCTION displaycursor(toggle)
  35. INTEGER*2 displaycursor[FAR,C,ALIAS:"__displaycursor"],toggle
  36. END
  37. INTERFACE TO FUNCTION ellipse(control,x1,y1,x2,y2)
  38. INTEGER*2 ellipse[FAR,C,ALIAS:"__ellipse"],control,x1,y1,x2,y2
  39. END
  40. INTERFACE TO FUNCTION ellipse_w(control,wx1,wy1,wx2,wy2)
  41. INTEGER*2 ellipse_w[FAR,C,ALIAS:"__ellipse_w"],control
  42. DOUBLE PRECISION wx1,wy1,wx2,wy2
  43. END
  44. INTERFACE TO FUNCTION floodfill(x,y,boundary)
  45. INTEGER*2 floodfill[FAR,C,ALIAS:"__floodfill"],x,y,boundary
  46. END
  47. INTERFACE TO FUNCTION floodfill_w(wx1,wy1,boundary)
  48. INTEGER*2 floodfill_w[FAR,C,ALIAS:"__floodfill_w"],boundary
  49. DOUBLE PRECISION wx1,wy1
  50. END
  51. INTERFACE TO FUNCTION getactivepage()
  52. INTEGER*2 getactivepage[FAR,C,ALIAS:"__getactivepage"]
  53. END
  54. INTERFACE TO FUNCTION getbkcolor()
  55. INTEGER*4 getbkcolor[FAR,C,ALIAS:"__getbkcolor"]
  56. END
  57. INTERFACE TO FUNCTION getcolor()
  58. INTEGER*2 getcolor[FAR,C,ALIAS:"__getcolor"]
  59. END
  60. INTERFACE TO SUBROUTINE
  61. + getcurrentposition[FAR,C,ALIAS:"__f_getcurrentposition"](s)
  62. STRUCTURE/xycoord/
  63. INTEGER*2 xcoord
  64. INTEGER*2 ycoord
  65. END STRUCTURE
  66. RECORD/xycoord/s[FAR,REFERENCE]
  67. END
  68. INTERFACE TO SUBROUTINE
  69. + getcurrentposition_w[FAR,C,ALIAS:"__f_getcurrentposition_wxy"](s)
  70. STRUCTURE/wxycoord/
  71. DOUBLE PRECISION wx
  72. DOUBLE PRECISION wy
  73. END STRUCTURE
  74. RECORD/wxycoord/s[FAR,REFERENCE]
  75. END
  76. INTERFACE TO SUBROUTINE
  77. + getfillmask[FAR,C,ALIAS:"__getfillmask"](mask)
  78. INTEGER*1 mask[FAR,REFERENCE](8)
  79. END
  80. INTERFACE TO SUBROUTINE
  81. + getimage[FAR,C,ALIAS:"__getimage"](x1,y1,x2,y2,image)
  82. INTEGER*2 x1,y1,x2,y2
  83. INTEGER*1 image[FAR,REFERENCE](*)
  84. END
  85. INTERFACE TO SUBROUTINE
  86. + getimage_w[FAR,C,ALIAS:"__getimage_w"](wx1,wy1,wx2,wy2,image)
  87. DOUBLE PRECISION wx1,wy1,wx2,wy2
  88. INTEGER*1 image[FAR,REFERENCE](*)
  89. END
  90. INTERFACE TO FUNCTION getlinestyle()
  91. INTEGER*2 getlinestyle[FAR,C,ALIAS:"__getlinestyle"]
  92. END
  93. INTERFACE TO SUBROUTINE
  94. + getphyscoord[FAR,C,ALIAS:"__f_getphyscoord"](x,y,s)
  95. INTEGER*2 x,y
  96. STRUCTURE/xycoord/
  97. INTEGER*2 xcoord
  98. INTEGER*2 ycoord
  99. END STRUCTURE
  100. RECORD/xycoord/s[FAR,REFERENCE]
  101. END
  102. INTERFACE TO FUNCTION getpixel(x,y)
  103. INTEGER*2 getpixel[FAR,C,ALIAS:"__getpixel"],x,y
  104. END
  105. INTERFACE TO FUNCTION getpixel_w(wx,wy)
  106. INTEGER*2 getpixel_w[FAR,C,ALIAS:"__getpixel_w"]
  107. DOUBLE PRECISION wx,wy
  108. END
  109. INTERFACE TO FUNCTION gettextcolor()
  110. INTEGER*2 gettextcolor[FAR,C,ALIAS:"__gettextcolor"]
  111. END
  112. INTERFACE TO FUNCTION gettextcursor()
  113. INTEGER*2 gettextcursor[FAR,C,ALIAS:"__gettextcursor"]
  114. END
  115. INTERFACE TO SUBROUTINE
  116. + gettextposition[FAR,C,ALIAS:"__f_gettextposition"](s)
  117. STRUCTURE/rccoord/
  118. INTEGER*2 row
  119. INTEGER*2 col
  120. END STRUCTURE
  121. RECORD/rccoord/s[FAR,REFERENCE]
  122. END
  123. INTERFACE TO SUBROUTINE
  124. + gettextwindow[FAR,C,ALIAS:"__gettextwindow"](r1,c1,r2,c2)
  125. INTEGER*2 r1[FAR,REFERENCE],c1[FAR,REFERENCE]
  126. INTEGER*2 r2[FAR,REFERENCE],c2[FAR,REFERENCE]
  127. END
  128. INTERFACE TO SUBROUTINE
  129. + getvideoconfig[FAR,C,ALIAS:"__getvideoconfig"](s)
  130. STRUCTURE/videoconfig/
  131. INTEGER*2 numxpixels ! number of pixels on X axis
  132. INTEGER*2 numypixels ! number of pixels on Y axis
  133. INTEGER*2 numtextcols ! number of text columns available
  134. INTEGER*2 numtextrows ! number of text rows available
  135. INTEGER*2 numcolors ! number of actual colors
  136. INTEGER*2 bitsperpixel ! number of bits per pixel
  137. INTEGER*2 numvideopages ! number of available video pages
  138. INTEGER*2 mode ! current video mode
  139. INTEGER*2 adapter ! active display adapter
  140. INTEGER*2 monitor ! active display monitor
  141. INTEGER*2 memory ! adapter video memory in K bytes
  142. END STRUCTURE
  143. RECORD/videoconfig/s[FAR,REFERENCE]
  144. END
  145. INTERFACE TO SUBROUTINE
  146. + getviewcoord[FAR,C,ALIAS:"__f_getviewcoord"](x,y,s)
  147. INTEGER*2 x,y
  148. STRUCTURE/xycoord/
  149. INTEGER*2 xcoord
  150. INTEGER*2 ycoord
  151. END STRUCTURE
  152. RECORD/xycoord/s[FAR,REFERENCE]
  153. END
  154. INTERFACE TO SUBROUTINE
  155. + getviewcoord_w[FAR,C,ALIAS:"__f_getviewcoord_w"](wx,wy,s)
  156. DOUBLE PRECISION wx,wy
  157. STRUCTURE/xycoord/
  158. INTEGER*2 xcoord
  159. INTEGER*2 ycoord
  160. END STRUCTURE
  161. RECORD/xycoord/s[FAR,REFERENCE]
  162. END
  163. INTERFACE TO FUNCTION getvisualpage()
  164. INTEGER*2 getvisualpage[FAR,C,ALIAS:"__getvisualpage"]
  165. END
  166. INTERFACE TO SUBROUTINE
  167. + getwindowcoord[FAR,C,ALIAS:"__f_getwindowcoord"](x,y,s)
  168. INTEGER*2 x,y
  169. STRUCTURE/wxycoord/
  170. DOUBLE PRECISION wx
  171. DOUBLE PRECISION wy
  172. END STRUCTURE
  173. RECORD/wxycoord/s[FAR,REFERENCE]
  174. END
  175. INTERFACE TO FUNCTION getwritemode()
  176. INTEGER*2 getwritemode[FAR,C,ALIAS:"__getwritemode"]
  177. END
  178. INTERFACE TO FUNCTION grstatus()
  179. INTEGER*2 grstatus[FAR,C,ALIAS:"__grstatus"]
  180. END
  181. INTERFACE TO FUNCTION imagesize(x1,y1,x2,y2)
  182. INTEGER*4 imagesize[FAR,C,ALIAS:"__imagesize"]
  183. INTEGER*2 x1,y1,x2,y2
  184. END
  185. INTERFACE TO FUNCTION imagesize_w(wx1,wy1,wx2,wy2)
  186. INTEGER*4 imagesize_w[FAR,C,ALIAS:"__imagesize_w"]
  187. DOUBLE PRECISION wx1,wy1,wx2,wy2
  188. END
  189. INTERFACE TO FUNCTION lineto(x,y)
  190. INTEGER*2 lineto[FAR,C,ALIAS:"__lineto"],x,y
  191. END
  192. INTERFACE TO FUNCTION lineto_w(wx,wy)
  193. INTEGER*2 lineto_w[FAR,C,ALIAS:"__lineto_w"]
  194. DOUBLE PRECISION wx,wy
  195. END
  196. INTERFACE TO SUBROUTINE
  197. + moveto[FAR,C,ALIAS:"__f_moveto"](x,y,s)
  198. INTEGER*2 x,y
  199. STRUCTURE/xycoord/
  200. INTEGER*2 xcoord
  201. INTEGER*2 ycoord
  202. END STRUCTURE
  203. RECORD/xycoord/s[FAR,REFERENCE]
  204. END
  205. INTERFACE TO SUBROUTINE
  206. + moveto_w[FAR,C,ALIAS:"__f_moveto_w"](wx,wy,s)
  207. DOUBLE PRECISION wx,wy
  208. STRUCTURE/wxycoord/
  209. DOUBLE PRECISION wx
  210. DOUBLE PRECISION wy
  211. END STRUCTURE
  212. RECORD/wxycoord/s[FAR,REFERENCE]
  213. END
  214. INTERFACE TO SUBROUTINE
  215. + outtext[FAR,C,ALIAS:"__f_outtext"](text)
  216. CHARACTER*(*) text[FAR,REFERENCE]
  217. END
  218. INTERFACE TO FUNCTION pie(i,x1,y1,x2,y2,x3,y3,x4,y4)
  219. INTEGER*2 pie[FAR,C,ALIAS:"__pie"],i,x1,y1,x2,y2,x3,y3,x4,y4
  220. END
  221. INTERFACE TO FUNCTION pie_w(i,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4)
  222. INTEGER*2 pie_w[FAR,C,ALIAS:"__pie_w"],i
  223. DOUBLE PRECISION wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
  224. END
  225. INTERFACE TO FUNCTION polygon(control,lppoints,cpoints)
  226. INTEGER*2 polygon[FAR,C,ALIAS:"__polygon"],control,cpoints
  227. STRUCTURE/xycoord/
  228. INTEGER*2 xcoord
  229. INTEGER*2 ycoord
  230. END STRUCTURE
  231. RECORD/xycoord/lppoints[FAR,REFERENCE](*)
  232. END
  233. INTERFACE TO FUNCTION polygon_w(control,lppoints,cpoints)
  234. INTEGER*2 polygon_w[FAR,C,ALIAS:"__polygon_w"],control,cpoints
  235. STRUCTURE/wxycoord/
  236. DOUBLE PRECISION wx
  237. DOUBLE PRECISION wy
  238. END STRUCTURE
  239. RECORD/wxycoord/lppoints[FAR,REFERENCE](*)
  240. END
  241. INTERFACE TO SUBROUTINE
  242. + putimage[FAR,C,ALIAS:"__putimage"](x,y,image,action)
  243. INTEGER*2 x,y,action
  244. INTEGER*1 image[FAR,REFERENCE](*)
  245. END
  246. INTERFACE TO SUBROUTINE
  247. + putimage_w[FAR,C,ALIAS:"__putimage_w"](wx,wy,image,action)
  248. DOUBLE PRECISION wx,wy
  249. INTEGER*1 image[FAR,REFERENCE](*)
  250. INTEGER*2 action
  251. END
  252. INTERFACE TO FUNCTION rectangle(control,x1,y1,x2,y2)
  253. INTEGER*2 rectangle[FAR,C,ALIAS:"__rectangle"]
  254. INTEGER*2 control,x1,y1,x2,y2
  255. END
  256. INTERFACE TO FUNCTION rectangle_w(control,wx1,wy1,wx2,wy2)
  257. INTEGER*2 rectangle_w[FAR,C,ALIAS:"__rectangle_w"],control
  258. DOUBLE PRECISION wx1,wy1,wx2,wy2
  259. END
  260. INTERFACE TO FUNCTION remappalette(index,color)
  261. INTEGER*4 remappalette[FAR,C,ALIAS:"__remappalette"],color
  262. INTEGER*2 index
  263. END
  264. INTERFACE TO FUNCTION remapallpalette(colors)
  265. INTEGER*2 remapallpalette[FAR,C,ALIAS:"__remapallpalette"]
  266. INTEGER*4 colors[FAR,REFERENCE](*)
  267. END
  268. INTERFACE TO SUBROUTINE
  269. + scrolltextwindow[FAR,C,ALIAS:"__scrolltextwindow"](rows)
  270. INTEGER*2 rows
  271. END
  272. INTERFACE TO FUNCTION selectpalette(number)
  273. INTEGER*2 selectpalette[FAR,C,ALIAS:"__selectpalette"],number
  274. END
  275. INTERFACE TO FUNCTION setactivepage(page)
  276. INTEGER*2 setactivepage[FAR,C,ALIAS:"__setactivepage"],page
  277. END
  278. INTERFACE TO FUNCTION setbkcolor(color)
  279. INTEGER*4 setbkcolor[FAR,C,ALIAS:"__setbkcolor"],color
  280. END
  281. INTERFACE TO SUBROUTINE
  282. + setcliprgn[FAR,C,ALIAS:"__setcliprgn"](x1,y1,x2,y2)
  283. INTEGER*2 x1,y1,x2,y2
  284. END
  285. INTERFACE TO FUNCTION setcolor(color)
  286. INTEGER*2 setcolor[FAR,C,ALIAS:"__setcolor"]
  287. INTEGER*2 color
  288. END
  289. INTERFACE TO SUBROUTINE
  290. + setfillmask[FAR,C,ALIAS:"__setfillmask"](mask)
  291. INTEGER*1 mask[FAR,REFERENCE](8)
  292. END
  293. INTERFACE TO SUBROUTINE
  294. + setlinestyle[FAR,C,ALIAS:"__setlinestyle"](mask)
  295. INTEGER*2 mask
  296. END
  297. INTERFACE TO FUNCTION setpixel(x,y)
  298. INTEGER*2 setpixel[FAR,C,ALIAS:"__setpixel"],x,y
  299. END
  300. INTERFACE TO FUNCTION setpixel_w(wx,wy)
  301. INTEGER*2 setpixel_w[FAR,C,ALIAS:"__setpixel_w"]
  302. DOUBLE PRECISION wx,wy
  303. END
  304. INTERFACE TO FUNCTION settextcolor(index)
  305. INTEGER*2 settextcolor[FAR,C,ALIAS:"__settextcolor"],index
  306. END
  307. INTERFACE TO FUNCTION settextcursor(attr)
  308. INTEGER*2 settextcursor[FAR,C,ALIAS:"__settextcursor"],attr
  309. END
  310. INTERFACE TO SUBROUTINE
  311. + settextposition[FAR,C,ALIAS:"__f_settextposition"](row,col,s)
  312. INTEGER*2 row,col
  313. STRUCTURE/rccoord/
  314. INTEGER*2 row
  315. INTEGER*2 col
  316. END STRUCTURE
  317. RECORD/rccoord/s[FAR,REFERENCE]
  318. END
  319. INTERFACE TO FUNCTION settextrows(rows)
  320. INTEGER*2 settextrows[FAR,C,ALIAS:"__settextrows"],rows
  321. END
  322. INTERFACE TO SUBROUTINE
  323. + settextwindow[FAR,C,ALIAS:"__settextwindow"](r1,c1,r2,c2)
  324. INTEGER*2 r1,c1,r2,c2
  325. END
  326. INTERFACE TO FUNCTION setvideomode(mode)
  327. INTEGER*2 setvideomode[FAR,C,ALIAS:"__setvideomode"],mode
  328. END
  329. INTERFACE TO FUNCTION setvideomoderows(mode,rows)
  330. INTEGER*2 setvideomoderows[FAR,C,ALIAS:"__setvideomoderows"]
  331. INTEGER*2 mode,rows
  332. END
  333. INTERFACE TO SUBROUTINE
  334. + setvieworg[FAR,C,ALIAS:"__f_setvieworg"](x,y,s)
  335. INTEGER*2 x,y
  336. STRUCTURE/xycoord/
  337. INTEGER*2 xcoord
  338. INTEGER*2 ycoord
  339. END STRUCTURE
  340. RECORD/xycoord/s[FAR,REFERENCE]
  341. END
  342. INTERFACE TO SUBROUTINE
  343. + setviewport[FAR,C,ALIAS:"__setviewport"](x1,y1,x2,y2)
  344. INTEGER*2 x1,y1,x2,y2
  345. END
  346. INTERFACE TO FUNCTION setvisualpage(page)
  347. INTEGER*2 setvisualpage[FAR,C,ALIAS:"__setvisualpage"],page
  348. END
  349. INTERFACE TO FUNCTION setwindow(finvert,wx1,wy1,wx2,wy2)
  350. INTEGER*2 setwindow[FAR,C,ALIAS:"__setwindow"]
  351. LOGICAL*2 finvert
  352. DOUBLE PRECISION wx1,wy1,wx2,wy2
  353. END
  354. INTERFACE TO FUNCTION setwritemode(wmode)
  355. INTEGER*2 setwritemode[FAR,C,ALIAS:"__setwritemode"],wmode
  356. END
  357. INTERFACE TO FUNCTION wrapon(option)
  358. INTEGER*2 wrapon[FAR,C,ALIAS:"__wrapon"],option
  359. END
  360. C FONTS
  361. INTERFACE TO FUNCTION getfontinfo(fi)
  362. INTEGER*2 getfontinfo[FAR,C,ALIAS:"__f_getfontinfo"]
  363. STRUCTURE/fontinfo/
  364. INTEGER*2 type ! b0 set = vector,clear = bit map
  365. INTEGER*2 ascent ! pix dist from top to baseline
  366. INTEGER*2 pixwidth ! character width in pixels, 0=prop
  367. INTEGER*2 pixheight ! character height in pixels
  368. INTEGER*2 avgwidth ! average character width in pixels
  369. CHARACTER*81 filename ! file name including path
  370. CHARACTER*32 facename ! font name
  371. END STRUCTURE
  372. RECORD/fontinfo/fi[FAR,REFERENCE]
  373. END
  374. INTERFACE TO FUNCTION getgtextextent(text)
  375. INTEGER*2 getgtextextent[FAR,C,ALIAS:"__f_getgtextextent"]
  376. CHARACTER*(*) text[FAR,REFERENCE]
  377. END
  378. INTERFACE TO SUBROUTINE
  379. + getgtextvector[FAR,C,ALIAS:"__f_getgtextvector"](x,y)
  380. INTEGER*2 x[FAR,REFERENCE],y[FAR,REFERENCE]
  381. END
  382. INTERFACE TO SUBROUTINE
  383. + outgtext[FAR,C,ALIAS:"__f_outgtext"](text)
  384. CHARACTER*(*) text[FAR,REFERENCE]
  385. END
  386. INTERFACE TO FUNCTION registerfonts(filename)
  387. INTEGER*2 registerfonts[FAR,C,ALIAS:"__f_registerfonts"]
  388. CHARACTER*(*) filename[FAR,REFERENCE]
  389. END
  390. INTERFACE TO FUNCTION setfont(options)
  391. INTEGER*2 setfont[FAR,C,ALIAS:"__f_setfont"]
  392. CHARACTER*(*) options[FAR,REFERENCE]
  393. END
  394. INTERFACE TO SUBROUTINE
  395. + setgtextvector[FAR,C,ALIAS:"__setgtextvector"](x,y)
  396. INTEGER*2 x,y
  397. END
  398. INTERFACE TO SUBROUTINE
  399. + unregisterfonts[FAR,C,ALIAS:"__unregisterfonts"]()
  400. END
  401. C QuickWin Graphics API's
  402. INTERFACE TO FUNCTION INCHARQQ()
  403. INTEGER*2 INCHARQQ[FAR,C,ALIAS:"__inchar"]
  404. END
  405. INTERFACE TO FUNCTION WGOPENQQ(name)
  406. INTEGER*2 WGOPENQQ[FAR,C,ALIAS:"__wgopen"]
  407. CHARACTER*(*) name[REFERENCE]
  408. END
  409. INTERFACE TO FUNCTION WGCLOSEQQ(handle)
  410. INTEGER*2 WGCLOSEQQ[FAR,C,ALIAS:"__wgclose"], handle
  411. END
  412. INTERFACE TO FUNCTION WGSETACTIVEQQ(handle)
  413. INTEGER*2 WGSETACTIVEQQ[FAR,C,ALIAS:"__wgsetactive"], handle
  414. END
  415. INTERFACE TO FUNCTION WGGETACTIVEQQ()
  416. INTEGER*2 WGGETACTIVEQQ[FAR,C,ALIAS:"__wggetactive"]
  417. END