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.

468 lines
18 KiB

  1. /*++ BUILD Version: 0004 // Increment this if a change has global effects
  2. Copyright (c) 1985-1999 Microsoft Corporation
  3. Module Name:
  4. wingdi.h
  5. Abstract:
  6. Procedure declarations, constant definitions and macros for the GDI
  7. component.
  8. --*/
  9. #define CBM_CREATEDIB 0x02L /* create DIB bitmap */
  10. #define DMDUP_LAST DMDUP_HORIZONTAL
  11. #define DMTT_LAST DMTT_DOWNLOAD_OUTLINE
  12. #define DMMEDIA_LAST DMMEDIA_GLOSSY
  13. #define DMDITHER_LAST DMDITHER_GRAYSCALE
  14. typedef ULONG COUNT;
  15. // Old fields that Chicago won't support that we can't publically
  16. // support anymore
  17. #define HS_SOLIDCLR 6
  18. #define HS_DITHEREDCLR 7
  19. #define HS_SOLIDTEXTCLR 8
  20. #define HS_DITHEREDTEXTCLR 9
  21. #define HS_SOLIDBKCLR 10
  22. #define HS_DITHEREDBKCLR 11
  23. #define HS_API_MAX 12
  24. #define DIB_PAL_INDICES 2 /* No color table indices into surf palette */
  25. // End of stuff we yanked for Chicago compatability
  26. #define SWAPL(x,y,t) {t = x; x = y; y = t;}
  27. #define ERROR_BOOL (BOOL) -1L
  28. #include <winddi.h>
  29. /*********************************Struct***********************************\
  30. * struct ENUMFONTDATA
  31. *
  32. * Information for the callback function used by EnumFonts.
  33. *
  34. * lf LOGFONT structure corresponding to one of the enumerated fonts.
  35. *
  36. * tm The corresponding TEXTMETRIC structure for the LOGFONT above.
  37. *
  38. * flType Flags are set as follows:
  39. *
  40. * DEVICE_FONTTYPE is set if font is device-based (as
  41. * opposed to IFI-based).
  42. *
  43. * RASTER_FONTTYPE is set if font is bitmap type.
  44. *
  45. * History:
  46. * 21-May-1991 -by- Gilman Wong [gilmanw]
  47. * Wrote it.
  48. \**************************************************************************/
  49. #if defined(JAPAN)
  50. #define NATIVE_CHARSET SHIFTJIS_CHARSET
  51. #define NATIVE_CODEPAGE 932
  52. #define NATIVE_LANGUAGE_ID 411
  53. #define DBCS_CHARSET NATIVE_CHARSET
  54. #elif defined(KOREA)
  55. #define NATIVE_CHARSET HANGEUL_CHARSET
  56. #define NATIVE_CODEPAGE 949
  57. #define NATIVE_LANGUAGE_ID 412
  58. #define DBCS_CHARSET NATIVE_CHARSET
  59. #elif defined(TAIWAN)
  60. #define NATIVE_CHARSET CHINESEBIG5_CHARSET
  61. #define NATIVE_CODEPAGE 950
  62. #define NATIVE_LANGUAGE_ID 404
  63. #define DBCS_CHARSET NATIVE_CHARSET
  64. #elif defined(PRC)
  65. #define NATIVE_CHARSET GB2312_CHARSET
  66. #define NATIVE_CODEPAGE 936
  67. #define NATIVE_LANGUAGE_ID 804
  68. #define DBCS_CHARSET NATIVE_CHARSET
  69. #endif
  70. #if defined(DBCS)
  71. #define IS_DBCS_CHARSET( CharSet ) ( ((CharSet) == DBCS_CHARSET) ? TRUE : FALSE )
  72. #define IS_ANY_DBCS_CHARSET( CharSet ) ( ((CharSet) == SHIFTJIS_CHARSET) ? TRUE : \
  73. ((CharSet) == HANGEUL_CHARSET) ? TRUE : \
  74. ((CharSet) == JOHAB_CHARSET) ? TRUE : \
  75. ((CharSet) == CHINESEBIG5_CHARSET) ? TRUE : \
  76. ((CharSet) == GB2312_CHARSET) ? TRUE : FALSE )
  77. #define IS_DBCS_CODEPAGE( CodePage ) (((CodePage) == NATIVE_CODEPAGE) ? TRUE : FALSE )
  78. #define IS_ANY_DBCS_CODEPAGE( CodePage ) (((CodePage) == 932) ? TRUE : \
  79. ((CodePage) == 949) ? TRUE : \
  80. ((CodePage) == 1361) ? TRUE : \
  81. ((CodePage) == 950) ? TRUE : \
  82. ((CodePage) == 936) ? TRUE : FALSE )
  83. #endif // DBCS
  84. /*********************************Struct***********************************\
  85. * struct ENUMFONTDATAW
  86. *
  87. * Information for the callback function used by EnumFontsW
  88. *
  89. * lfw LOGFONTW structure corresponding to one of the enumerated fonts.
  90. *
  91. * tmw The corresponding TEXTMETRICW structure for the LOGFONTW above.
  92. *
  93. * flType Flags are set as follows:
  94. *
  95. * DEVICE_FONTTYPE is set if font is device-based (as
  96. * opposed to IFI-based).
  97. *
  98. * RASTER_FONTTYPE is set if font is bitmap type.
  99. *
  100. * History:
  101. * Wed 04-Sep-1991 -by- Bodin Dresevic [BodinD]
  102. * Wrote it.
  103. \**************************************************************************/
  104. //
  105. // Function prototypes
  106. //
  107. BOOL bDeleteSurface(HSURF hsurf);
  108. BOOL bSetBitmapOwner(HBITMAP hbm,LONG lPid);
  109. BOOL bSetBrushOwner(HBRUSH hbr,LONG lPid);
  110. BOOL bSetPaletteOwner(HPALETTE hpal, LONG lPid);
  111. BOOL bSetLFONTOwner(HFONT hlfnt, LONG pid);
  112. BOOL bDeleteRegion(HRGN hrgn);
  113. BOOL bSetRegionOwner(HRGN hrgn,LONG lPid);
  114. LONG iCombineRectRgn(HRGN hrgnTrg,HRGN hrgnSrc,PRECTL prcl,LONG iMode);
  115. BOOL bGetFontPathName
  116. (
  117. LPWSTR *ppwszPathName, // place to store the result, full path of the font file
  118. PWCHAR awcPathName, // ptr to the buffer on the stack, must be MAX_PATH in length
  119. LPWSTR pwszFileName // file name, possibly bare name that has to be tacked onto the path
  120. );
  121. BOOL UserGetHwnd(HDC hdc, HWND *phwnd, PVOID *ppwo, BOOL bCheckStyle);
  122. VOID UserAssociateHwnd(HWND hwnd, PVOID pwo);
  123. // private flags in low bits of hdc returned from GreCreateDCW
  124. #define GRE_DISPLAYDC 1
  125. #define GRE_PRINTERDC 2
  126. #define GRE_OWNDC 1
  127. HDC hdcCloneDC(HDC hdc,ULONG iType);
  128. BOOL bSetDCOwner(HDC hdc,LONG lPid);
  129. DWORD sidGetObjectOwner(HDC hdc, DWORD objType);
  130. BOOL bSetupDC(HDC hdc,FLONG fl);
  131. #define SETUPDC_CLEANDC 0x00000040
  132. #define SETUPDC_RESERVE 0x00000080
  133. BOOL APIENTRY GreConsoleTextOut
  134. (
  135. HDC hdc,
  136. POLYTEXTW *lpto,
  137. UINT nStrings,
  138. RECTL *prclBounds
  139. );
  140. #define UTO_NOCLIP 0x0001
  141. // Server entry point for font enumeration.
  142. // Sundown: change from ULONG to ULONG_PTR in places used as handles/pointers
  143. ULONG_PTR APIENTRY ulEnumFontOpen(
  144. HDC hdc, // device to enumerate on
  145. BOOL bEnumFonts, // flag indicates old style EnumFonts()
  146. FLONG flWin31Compat, // Win3.1 compatibility flags
  147. COUNT cwchMax, // maximum name length (for paranoid CSR code)
  148. LPWSTR pwszName); // font name to enumerate
  149. BOOL APIENTRY bEnumFontChunk(
  150. HDC hdc, // device to enumerate on
  151. ULONG_PTR idEnum,
  152. COUNT cefdw, // (in) capacity of buffer
  153. COUNT *pcefdw, // (out) number of ENUMFONTDATAs returned
  154. PENUMFONTDATAW pefdw); // return buffer
  155. BOOL APIENTRY bEnumFontClose(
  156. ULONG_PTR idEnum); // enumeration id
  157. // Server entry points for adding/removing font resources.
  158. BOOL APIENTRY bUnloadFont(
  159. LPWSTR pwszPathname,
  160. ULONG iResource);
  161. // Private Control Panel entry point to configure font enumeration.
  162. BOOL APIENTRY GreArc(HDC,int,int,int,int,int,int,int,int);
  163. BOOL APIENTRY GreArcTo(HDC,int,int,int,int,int,int,int,int);
  164. BOOL APIENTRY GreChord(HDC,int,int,int,int,int,int,int,int);
  165. BOOL APIENTRY GreEllipse(HDC,int,int,int,int);
  166. ULONG APIENTRY GreEnumObjects(HDC, int, ULONG, PVOID);
  167. BOOL APIENTRY GreExtFloodFill(HDC,int,int,COLORREF,UINT);
  168. BOOL APIENTRY GreFillRgn(HDC,HRGN,HBRUSH);
  169. BOOL APIENTRY GreFloodFill(HDC,int,int,COLORREF);
  170. BOOL APIENTRY GreFrameRgn(HDC,HRGN,HBRUSH,int,int);
  171. BOOL APIENTRY GreMaskBlt(HDC,int,int,int,int,HDC,int,int,HBITMAP,int,int,DWORD,DWORD);
  172. BOOL APIENTRY GrePlgBlt(HDC,LPPOINT,HDC,int,int,int,int,HBITMAP,int,int,DWORD);
  173. BOOL APIENTRY GrePie(HDC,int,int,int,int,int,int,int,int);
  174. BOOL APIENTRY GrePaintRgn(HDC,HRGN);
  175. BOOL APIENTRY GreRectangle(HDC,int,int,int,int);
  176. BOOL APIENTRY GreRoundRect(HDC,int,int,int,int,int,int);
  177. BOOL APIENTRY GreAngleArc(HDC,int,int,DWORD,FLOATL,FLOATL);
  178. BOOL APIENTRY GrePlayJournal(HDC,LPWSTR,ULONG,ULONG);
  179. BOOL APIENTRY GrePolyPolygon(HDC,LPPOINT,LPINT,int);
  180. BOOL APIENTRY GrePolyPolyline(HDC, CONST POINT *,LPDWORD,DWORD);
  181. BOOL APIENTRY GrePolyPatBlt(HDC,DWORD,PPOLYPATBLT,DWORD,DWORD);
  182. BOOL APIENTRY GrePolyBezierTo(HDC,LPPOINT,DWORD);
  183. BOOL APIENTRY GrePolylineTo(HDC,LPPOINT,DWORD);
  184. BOOL APIENTRY GreGetTextExtentExW (HDC, LPWSTR, COUNT, ULONG, COUNT *, PULONG, LPSIZE, FLONG);
  185. int APIENTRY GreGetTextFaceW(HDC,int,LPWSTR, BOOL);
  186. #define ETO_MASKPUBLIC ( ETO_OPAQUE | ETO_CLIPPED ) // public (wingdi.h) flag mask
  187. BOOL APIENTRY GrePolyTextOutW(HDC, POLYTEXTW *, UINT, DWORD);
  188. BOOL APIENTRY GreSetAttrs(HDC hdc);
  189. BOOL APIENTRY GreSetFontXform(HDC,FLOATL,FLOATL);
  190. BOOL APIENTRY GreBeginPath(HDC);
  191. BOOL APIENTRY GreCloseFigure(HDC);
  192. BOOL APIENTRY GreEndPath(HDC);
  193. BOOL APIENTRY GreAbortPath(HDC);
  194. BOOL APIENTRY GreFillPath(HDC);
  195. BOOL APIENTRY GreFlattenPath(HDC);
  196. HRGN APIENTRY GrePathToRegion(HDC);
  197. BOOL APIENTRY GrePolyDraw(HDC,LPPOINT,LPBYTE,ULONG);
  198. BOOL APIENTRY GreSelectClipPath(HDC,int);
  199. int APIENTRY GreSetArcDirection(HDC,int);
  200. int APIENTRY GreGetArcDirection(HDC);
  201. BOOL APIENTRY GreSetMiterLimit(HDC,FLOATL,FLOATL *);
  202. BOOL APIENTRY GreGetMiterLimit(HDC,FLOATL *);
  203. BOOL APIENTRY GreStrokeAndFillPath(HDC);
  204. BOOL APIENTRY GreStrokePath(HDC);
  205. BOOL APIENTRY GreWidenPath(HDC);
  206. BOOL APIENTRY GreAnimatePalette(HPALETTE, UINT, UINT, CONST PALETTEENTRY *);
  207. BOOL APIENTRY GreAspectRatioFilter(HDC, LPSIZE);
  208. BOOL APIENTRY GreCancelDC(HDC);
  209. int APIENTRY GreChoosePixelFormat(HDC, UINT, CONST PIXELFORMATDESCRIPTOR *);
  210. BOOL APIENTRY GreCombineTransform(XFORML *, XFORML *, XFORML *);
  211. HDC APIENTRY GreCreateDCW(LPWSTR, LPWSTR, LPWSTR, LPDEVMODEW, BOOL);
  212. HBRUSH APIENTRY GreCreateDIBPatternBrush(HGLOBAL, DWORD);
  213. HBRUSH APIENTRY GreCreateDIBPatternBrushPt(LPVOID, DWORD);
  214. HBITMAP APIENTRY GreCreateDIBitmap(HDC, LPBITMAPINFOHEADER, DWORD, LPBYTE, LPBITMAPINFO, DWORD);
  215. HRGN APIENTRY GreCreateEllipticRgn(int, int, int, int);
  216. HBRUSH APIENTRY GreCreateHatchBrush(ULONG, COLORREF);
  217. HPEN APIENTRY GreCreatePen(int, int, COLORREF,HBRUSH);
  218. HPEN APIENTRY GreExtCreatePen(ULONG, ULONG, ULONG, ULONG, ULONG_PTR, ULONG_PTR, ULONG, PULONG, ULONG, BOOL, HBRUSH);
  219. HPEN APIENTRY GreCreatePenIndirect(LPLOGPEN);
  220. HRGN APIENTRY GreCreatePolyPolygonRgn(CONST POINT *, CONST INT *, int, int);
  221. HRGN APIENTRY GreCreatePolygonRgn(CONST POINT *, int, int);
  222. HRGN APIENTRY GreCreateRoundRectRgn(int, int, int, int, int, int);
  223. BOOL APIENTRY GreCreateScalableFontResourceW(FLONG, LPWSTR, LPWSTR, LPWSTR);
  224. int APIENTRY GreDescribePixelFormat(HDC hdc,int ipfd,UINT cjpfd,PPIXELFORMATDESCRIPTOR ppfd);
  225. int APIENTRY GreDeviceCapabilities(LPSTR, LPSTR, LPSTR, int, LPSTR, LPDEVMODE);
  226. int APIENTRY GreDrawEscape(HDC,int,int,LPSTR);
  227. BOOL APIENTRY GreEqualRgn(HRGN, HRGN);
  228. int APIENTRY GreExtEscape(HDC,int,int,LPSTR,int,LPSTR);
  229. BOOL APIENTRY GreGetAspectRatioFilter(HDC, LPSIZE);
  230. BOOL APIENTRY GreGetBitmapDimension(HBITMAP, LPSIZE);
  231. int APIENTRY GreGetBkMode(HDC);
  232. DWORD APIENTRY GreGetBoundsRect(HDC, LPRECT, DWORD);
  233. BOOL APIENTRY GreGetCharWidthW(HDC hdc, UINT wcFirstChar, UINT cwc, PWCHAR pwc, FLONG fl, PVOID lpBuffer);
  234. BOOL APIENTRY GreFontIsLinked(HDC hdc);
  235. BOOL APIENTRY GreGetCharABCWidthsW(
  236. HDC, // hdc
  237. UINT, // wcFirst
  238. COUNT, // cwc
  239. PWCHAR, // pwc to buffer with chars to convert
  240. FLONG, //
  241. PVOID); // abc or abcf
  242. BOOL APIENTRY GreGetCharWidthInfo(HDC hdc, PCHWIDTHINFO pChWidthInfo);
  243. int APIENTRY GreGetAppClipBox(HDC, LPRECT);
  244. BOOL APIENTRY GreGetCurrentPosition(HDC, LPPOINT);
  245. int APIENTRY GreGetGraphicsMode(HDC hdc);
  246. COLORREF APIENTRY GreGetNearestColor(HDC, COLORREF);
  247. UINT APIENTRY GreGetNearestPaletteIndex(HPALETTE, COLORREF);
  248. UINT APIENTRY GreGetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY);
  249. DWORD APIENTRY GreGetPixel(HDC, int, int);
  250. int APIENTRY GreGetPixelFormat(HDC);
  251. UINT APIENTRY GreGetTextAlign(HDC);
  252. BOOL APIENTRY GreGetWorldTransform(HDC, XFORML *);
  253. BOOL APIENTRY GreGetTransform(HDC, DWORD, XFORML *);
  254. BOOL APIENTRY GreSetVirtualResolution(HDC, int, int, int, int);
  255. HRGN APIENTRY GreInquireRgn(HDC hdc);
  256. BOOL APIENTRY GreInvertRgn(HDC, HRGN);
  257. BOOL APIENTRY GreModifyWorldTransform(HDC ,XFORML *, DWORD);
  258. BOOL APIENTRY GreMoveTo(HDC, int, int, LPPOINT);
  259. int APIENTRY GreOffsetClipRgn(HDC, int, int);
  260. BOOL APIENTRY GreOffsetViewportOrg(HDC, int, int, LPPOINT);
  261. BOOL APIENTRY GreOffsetWindowOrg(HDC, int, int, LPPOINT);
  262. BOOL APIENTRY GrePolyBezier (HDC, LPPOINT, ULONG);
  263. BOOL APIENTRY GrePtVisible(HDC, int, int);
  264. BOOL APIENTRY GreRectVisible(HDC, LPRECT);
  265. BOOL APIENTRY GreResetDC(HDC, LPDEVMODEW);
  266. BOOL APIENTRY GreResizePalette(HPALETTE, UINT);
  267. BOOL APIENTRY GreScaleViewportExt(HDC, int, int, int, int, LPSIZE);
  268. BOOL APIENTRY GreScaleWindowExt(HDC, int, int, int, int, LPSIZE);
  269. HPALETTE APIENTRY LockCSSelectPalette(HDC, HPALETTE, BOOL);
  270. HPEN APIENTRY GreSelectPen(HDC,HPEN);
  271. LONG APIENTRY GreSetBitmapBits(HBITMAP, ULONG, PBYTE, PLONG);
  272. BOOL APIENTRY GreSetBitmapDimension(HBITMAP, int, int, LPSIZE);
  273. DWORD APIENTRY GreSetBoundsRect(HDC, LPRECT, DWORD);
  274. UINT APIENTRY GreSetDIBColorTable(HDC, UINT, UINT, RGBQUAD *);
  275. int APIENTRY GreSetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int, int, DWORD, DWORD, LPBYTE, LPBITMAPINFO, DWORD);
  276. int APIENTRY GreSetGraphicsMode(HDC hdc, int iMode);
  277. int APIENTRY GreSetMapMode(HDC, int);
  278. DWORD APIENTRY GreSetMapperFlags(HDC, DWORD);
  279. UINT APIENTRY GreSetPaletteEntries(HPALETTE, UINT, UINT, CONST PALETTEENTRY *);
  280. COLORREF APIENTRY GreSetPixel(HDC, int, int, COLORREF);
  281. BOOL APIENTRY GreSetPixelV(HDC, int, int, COLORREF);
  282. BOOL APIENTRY GreSetPixelFormat(HDC, int);
  283. BOOL APIENTRY GreSetRectRgn(HRGN, int, int, int, int);
  284. UINT APIENTRY GreSetSystemPaletteUse(HDC, UINT);
  285. UINT APIENTRY GreSetTextAlign(HDC, UINT);
  286. HPALETTE APIENTRY GreCreateHalftonePalette(HDC hdc);
  287. HPALETTE APIENTRY GreCreateCompatibleHalftonePalette(HDC hdc);
  288. BOOL APIENTRY GreSetTextJustification(HDC, int, int);
  289. BOOL APIENTRY GreSetViewportExt(HDC, int, int, LPSIZE);
  290. BOOL APIENTRY GreSetWindowExt(HDC, int, int, LPSIZE);
  291. BOOL APIENTRY GreSetWorldTransform(HDC, XFORML *);
  292. int APIENTRY GreStretchDIBits(HDC, int, int, int, int, int, int, int, int, LPBYTE, LPBITMAPINFO, DWORD, DWORD);
  293. BOOL APIENTRY GreSystemFontSelected(HDC, BOOL);
  294. BOOL APIENTRY GreSwapBuffers(HDC hdc);
  295. BOOL APIENTRY GreUnrealizeObject(HANDLE);
  296. BOOL APIENTRY GreUpdateColors(HDC);
  297. // Prototypes for wgl and OpenGL calls
  298. HGLRC APIENTRY GreCreateRC(HDC);
  299. BOOL APIENTRY GreMakeCurrent(HDC, HGLRC);
  300. BOOL APIENTRY GreDeleteRC(HGLRC);
  301. BOOL APIENTRY GreSwapBuffers(HDC);
  302. BOOL APIENTRY GreGlAttention(VOID);
  303. BOOL APIENTRY GreShareLists(HGLRC, HGLRC);
  304. BOOL APIENTRY glsrvDuplicateSection(ULONG, HANDLE);
  305. void APIENTRY glsrvThreadExit(void);
  306. BOOL bSetRCOwner(HGLRC hglrc,LONG lPid);
  307. // these should disappear as should all other functions that contain references
  308. // to ansi strings
  309. BOOL APIENTRY GreGetTextExtent(HDC,LPSTR,int,LPSIZE,UINT);
  310. BOOL APIENTRY GreExtTextOut(HDC,int,int,UINT,LPRECT,LPSTR,int,LPINT);
  311. BOOL APIENTRY GreTextOut(HDC,int,int,LPSTR,int);
  312. // these stay
  313. VOID vGetFontList(VOID *pvBuffer, COUNT *pNumFonts, UINT *pSize);
  314. BOOL GreMatchFont(LPWSTR pwszBareName, LPWSTR pwszFontPathName);
  315. // used in clean up at log-off time
  316. // these are for font linking
  317. BOOL GreEnableEUDC(BOOL);
  318. // this is for font association
  319. UINT GreGetFontAssocStatus();
  320. BOOL APIENTRY GreStartPage(HDC);
  321. BOOL APIENTRY GreEndPage(HDC);
  322. int APIENTRY GreStartDoc(HDC, DOCINFOW *);
  323. BOOL APIENTRY GreEndDoc(HDC);
  324. BOOL APIENTRY GreAbortDoc(HDC);
  325. // Prototypes for GDI local helper functions. These are only available on
  326. // the client side.
  327. HPALETTE GdiConvertPalette(HPALETTE hpal);
  328. HFONT GdiConvertFont(HFONT hfnt);
  329. HBRUSH GdiConvertBrush(HBRUSH hbrush);
  330. HDC GdiGetLocalDC(HDC hdcRemote);
  331. HDC GdiCreateLocalDC(HDC hdcRemote);
  332. BOOL GdiReleaseLocalDC(HDC hdcLocal);
  333. HBITMAP GdiCreateLocalBitmap();
  334. HBRUSH GdiCreateLocalBrush(HBRUSH hbrushRemote);
  335. HRGN GdiCreateLocalRegion(HRGN hrgnRemote);
  336. HFONT GdiCreateLocalFont(HFONT hfntRemote);
  337. HPALETTE GdiCreateLocalPalette(HPALETTE hpalRemote);
  338. ULONG GdiAssociateObject(ULONG hLocal,ULONG hRemote);
  339. VOID GdiDeleteLocalObject(ULONG h);
  340. BOOL GdiSetAttrs(HDC);
  341. HANDLE SelectFontLocal(HDC, HANDLE);
  342. HANDLE SelectBrushLocal(HDC, HANDLE);
  343. HFONT GdiGetLocalFont(HFONT);
  344. HBRUSH GdiGetLocalBrush(HBRUSH);
  345. HBITMAP GdiGetLocalBitmap(HBITMAP);
  346. HDC GdiCloneDC(HDC hdc, UINT iType);
  347. BOOL GdiPlayScript(PULONG pulScript,ULONG cjScript,PULONG pulEnv,ULONG cjEnv,PULONG pulOutput,ULONG cjOutput,ULONG cLimit);
  348. BOOL GdiPlayDCScript(HDC hdc,PULONG pulScript,ULONG cjScript,PULONG pulOutput,ULONG cjOutput,ULONG cLimit);
  349. BOOL GdiIsMetaFileDC(HDC hdc);
  350. // Return codes from server-side ResetDC
  351. #define RESETDC_ERROR 0
  352. #define RESETDC_FAILED 1
  353. #define RESETDC_SUCCESS 2
  354. // Private calls for USER
  355. int APIENTRY GreGetClipRgn(HDC, HRGN);
  356. BOOL APIENTRY GreSrcBlt(HDC, int, int, int, int, int, int);
  357. BOOL APIENTRY GreCopyBits(HDC,int,int,int,int,HDC,int,int);
  358. VOID APIENTRY GreSetClientRgn(PVOID, HRGN, LPRECT);
  359. ULONG APIENTRY GreSetROP2(HDC hdc,int iROP);
  360. // Private calls for metafiling
  361. DWORD APIENTRY GreGetRegionData(HRGN, DWORD, LPRGNDATA);
  362. HRGN APIENTRY GreExtCreateRegion(XFORML *, DWORD, LPRGNDATA);
  363. int APIENTRY GreExtSelectMetaRgn(HDC, HRGN, int);
  364. BOOL APIENTRY GreMonoBitmap(HBITMAP);
  365. HBITMAP APIENTRY GreGetObjectBitmapHandle(HBRUSH, UINT *);
  366. typedef struct _DDALIST
  367. {
  368. LONG yTop;
  369. LONG yBottom;
  370. LONG axPairs[2];
  371. } DDALIST;