CreateDC

The CreateDC function creates a device context (DC) for a device by using the specified name.

HDC CreateDC(
  LPCTSTR lpszDriver,  // pointer to string specifying driver name
  LPCTSTR lpszDevice,  // pointer to string specifying device name
  LPCTSTR lpszOutput,  // do not use; set to NULL
  CONST DEVMODE *lpInitData 
                       // pointer to optional printer data
);
 

Parameters

lpszDriver
Windows NT: Pointer to a null-terminated character string that specifies either "DISPLAY" for a display driver, or the name of a printer driver, which is usually "WINSPOOL".

Windows 95 and Windows 98: In Win32-based applications, this parameter is ignored and should be NULL, with one exception: You may obtain a display device context by specifying the null-terminated string "DISPLAY". If this parameter is "DISPLAY", all other parameters must be NULL.

lpszDevice
Pointer to a null-terminated character string that specifies the name of the specific output device being used, as shown by the Print Manager (for example, "Epson FX-80"). It is not the printer model name. The lpszDevice parameter must be used.
lpszOutput
This parameter is ignored for Win32-based applications, and should set to NULL. It exists to provide compatibility for 16-bit Windows-based. For more information, see the following Remarks section.
lpInitData
Pointer to a DEVMODE structure containing device-specific initialization data for the device driver. The DocumentProperties function retrieves this structure filled in for a specified device. The lpInitData parameter must be NULL if the device driver is to use the default initialization (if any) specified by the user.

Return Values

If the function succeeds, the return value is the handle to a device context for the specified device.

If the function fails, the return value is NULL.

Windows NT: To get extended error information, call GetLastError.

Remarks

Applications written for 16-bit versions of Windows used the lpszOutput parameter to specify a port name or to print to a file. Win32-based applications do not need to specify a port name. Win32-based applications can print to a file by calling the StartDoc function with a DOCINFO structure whose lpszOutput member specifies the path of the output filename.

When you no longer need the device context, call the DeleteDC function to delete it.

ICM: By setting the dmICMMethod member of the DEVMODE structure(pointed to by the pInitData parameter) to the appropriate value, ICM can be enabled.

Windows CE: If no driver name is given for the lpszDriver parameter, Windows CE returns a screen DC.

Windows CE ignores the lpszDevice parameter.

Windows CE passes the lpInitData and lpszOutput parameters to the driver without modification.

QuickInfo

  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Requires version 2.0 or later.
  Header: Declared in wingdi.h.
  Import Library: Use gdi32.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows NT.

See Also

Device Contexts Overview, Device Context Functions, DeleteDC, DEVMODE, DOCINFO, DocumentProperties, StartDoc