INF: List of Functions That Are Valid in Metafiles

ID Number: Q84984

3.00 3.10

WINDOWS

docerr

Summary:

Pages 2-41 and 2-42 of the "Microsoft Windows Software Development Kit

(SDK) Reference Volume 1" for version 3.0 list the subset of Windows

GDI functions that an application can use in a metafile under Windows

3.0. The list printed in the manual is incorrect.

Page 107 of the "Microsoft Windows Software Development Kit:

Programmer's Reference, Volume 1: Overview," lists the functions that

are valid in a metafile for Windows 3.1. This list is incomplete.

This article provides a corrected list of functions that an

application can use in a metafile under Windows 3.1.

More Information:

The following list of functions that are valid in a Windows 3.1

metafile is taken from page 107 of the "Windows SDK: Programmer's

Reference, Volume 1: Overview":

AnimatePalette OffsetViewportOrg SetBkMode

Arc OffsetWindowOrg SetDIBitsToDevice

BitBlt PatBlt SetMapMode

Chord Pie SetMapperFlags

CreateBrushIndirect Polygon SetPixel

CreateDIBPatternBrush Polyline SetPolyFillMode

CreateFontIndirect PolyPolygon SetROP2

CreatePatternBrush RealizePalette SetStretchBltMode

Ellipse RestoreDC SetTextColor

Escape RoundRect SetTextJustification

ExcludeClipRect SaveDC SetViewportExt

ExtTextOut ScaleViewportExt SetViewportOrg

FloodFill ScaleWindowExt SetWindowExt

IntersectClipRect SelectClipRgn SetWindowOrg

LineTo SelectObject StretchBlt

MoveTo SelectPalette StretchDIBits

OffsetClipRgn SetBkColor TextOut

The following table lists additional functions that are valid in a

metafile under Windows 3.1:

CreateDIBitmap CreateSolidBrush Rectangle

CreateFont DeleteObject ResizePalette

CreateHatchBrush ExtFloodFill SetPaletteEntries

CreatePalette FillRgn SetTextAlign

CreatePen InvertRgn SetTextCharacterExtra

CreatePenIndirect PaintRgn

Although the following functions might function correctly in a

metafile, they should not be used in a metafile:

AbortDoc EndPage StartPage

EndDoc StartDoc ResetDC

Windows has a number of functions that are not supported in metafiles

directly because they are used to put an object into a metafile. The

region functions are a common example of this function category. An

application can create an arbitrary region, either directly or by

combining existing regions. When an application selects the handle to

the region into a metafile DC (display context), Windows records a

CREATEREGION record into the metafile.

An application can select a bitmap into a memory DC that is compatible

with the display (not directly into the metafile), and then then call

the BitBlt function to move the bitmap from the memory DC into the

metafile DC. Windows saves the bitmap image in the metafile as a DIB

(device-independent bitmap).

For more information, please refer to the online documentation for the

Windows SDK or pages 106-109 of the "Windows SDK: Programmer's

Reference, Volume 1: Overview" for version 3.1 manual.

* As a general rule, a metafile should be as device-independent as

possible. Therefore, an application should not record into a metafile

a GDI function that requires device units. Such functions include

BitBlt, FillRgn, SetViewportExt, and SetViewportOrg.

Additional reference words: 3.00 3.10