typedef struct _devicemode { // dvmd BCHAR dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; union { struct { short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; }; POINTL dmPosition; }; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; short dmColor; short dmDuplex; short dmYResolution; short dmTTOption; short dmCollate; BCHAR dmFormName[CCHFORMNAME]; WORD dmLogPixels; DWORD dmBitsPerPel; DWORD dmPelsWidth; DWORD dmPelsHeight; DWORD dmDisplayFlags; DWORD dmDisplayFrequency; #if(WINVER >= 0x0400) DWORD dmICMMethod; DWORD dmICMIntent; DWORD dmMediaType; DWORD dmDitherType; DWORD dmReserved1; DWORD dmReserved2; #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) DWORD dmPanningWidth; DWORD dmPanningHeight; #endif #endif /* WINVER >= 0x0400 */ } DEVMODE;dmDeviceName には、ドライバがサポートするデバイスの名前を指定します
定数 | メンバ |
---|---|
DM_ORIENTATION | dmOrientation |
DM_PAPERSIZE | dmPaperSize |
DM_PAPERLENGTH | dmPaperLength |
DM_PAPERWIDTH | dmPaperWidth |
DM_POSITION | dmPosition |
DM_SCALE | dmScale |
DM_COPIES | dmCopies |
DM_DEFAULTSOURCE | dmDefaultSource |
DM_PRINTQUALITY | dmPrintQuality |
DM_COLOR | dmColor |
DM_DUPLEX | dmDuplex |
DM_YRESOLUTION | dmYResolution |
DM_TTOPTION | dmTTOption |
DM_COLLATE | dmCollate |
DM_FORMNAME | dmFormName |
DM_LOGPIXELS | dmLogPixels |
DM_BITSPERPEL | dmBitsPerPel |
DM_PELSWIDTH | dmPelsWidth |
DM_PELSHEIGHT | dmPelsHeight |
DM_DISPLAYFLAGS | dmDisplayFlags |
DM_DISPLAYFREQUENCY | dmDisplayFrequency |
DM_ICMMETHOD | dmICMMethod |
DM_ICMINTENT | dmICMIntent |
DM_MEDIATYPE | dmMediaType |
DM_DITHERTYPE | dmDitherType |
DM_PANNINGWIDTH | Windows NT 5.0 and later: dmPanningWidth |
DM_PANNINGHEIGHT | Windows NT 5.0 and later: dmPanningHeight |
定数 | サイズ |
---|---|
DMPAPER_LETTER | Letter、8 1/2 × 11 インチ |
MPAPER_LEGAL | Legal、8 1/2 × 14 インチ |
DMPAPER_A4 | A4 シート、210 × 297 mm |
DMPAPER_CSHEET | C シート、17 × 22 インチ |
DMPAPER_DSHEET | D シート、22 × 34 インチ |
DMPAPER_ESHEET | E シート、34 × 44 インチ |
DMPAPER_LETTERSMALL | Letter Small、8 1/2 × 11 インチ |
DMPAPER_TABLOID | Tabloid、11 × 17 インチ |
DMPAPER_LEDGER | Ledger、17 × 11 インチ |
DMPAPER_STATEMENT | Statement、5 1/2 × 8 1/2 インチ |
DMPAPER_EXECUTIVE | Executive、7 1/4 × 10 1/2 インチ |
DMPAPER_A3 | A3 シート、297 × 420 mm |
DMPAPER_A4SMALL | A4 small シート、210 × 297 mm |
DMPAPER_A5 | A5 シート、148 × 210 mm |
DMPAPER_B4 | B4 シート、250 × 354 mm |
DMPAPER_B5 | B5 シート、182 × 257 mm |
DMPAPER_FOLIO | Folio、8 1/2 × 13 インチ |
DMPAPER_QUARTO | Quarto、215 × 275 mm |
DMPAPER_10X14 | 10 × 14 インチ シート |
DMPAPER_11X17 | 11 × 17 インチ シート |
DMPAPER_NOTE | Note、 8 1/2 × 11 インチ |
DMPAPER_ENV_9 | #9 Envelope、3 7/8 × 8 7/8 インチ |
DMPAPER_ENV_10 | #10 Envelope、4 1/8 × 9 1/2 インチ |
DMPAPER_ENV_11 | #11 Envelope、4 1/2 × 10 3/8 インチ |
DMPAPER_ENV_12 | #12 Envelope、4 3/4 × 11 インチ |
DMPAPER_ENV_14 | #14 Envelope、5 × 11 1/2 インチ |
DMPAPER_ENV_DL | DL Envelope、110 × 220 mm |
DMPAPER_ENV_C5 | C5 Envelope、162 × 229 mm |
DMPAPER_ENV_C3 | C3 Envelope、324 × 458 mm |
DMPAPER_ENV_C4 | C4 Envelope、229 × 324 mm |
DMPAPER_ENV_C6 | C6 Envelope、114 × 162 mm |
DMPAPER_ENV_C65 | C65 Envelope、114 × 229 mm |
DMPAPER_ENV_B4 | B4 Envelope、250 × 353 mm |
DMPAPER_ENV_B5 | B5 Envelope、176 × 250 mm |
DMPAPER_ENV_B6 | B6 Envelope、176 × 125 mm |
DMPAPER_ENV_ITALY | Italy Envelope、110 × 230 mm |
DMPAPER_ENV_MONARCH | Monarch Envelope、3 7/8 × 7 1/2 インチ |
DMPAPER_ENV_PERSONAL | 6 3/4 Envelope、3 5/8 × 6 1/2 インチ |
DMPAPER_FANFOLD_US | US Std Fanfold、14 7/8 × 11 インチ |
DMPAPER_FANFOLD_STD_GERMAN | German Std Fanfold、8 1/2 × 12 インチ |
DMPA PER_FANFOLD_LGL_GERMAN | German Legal Fanfold、8 1/2 × 13 インチ |
定数 | 解説 |
---|---|
DMBIN_ONLYONE | 単一用紙ソース |
DMBIN_LOWER | 下用紙トレイ |
DMBIN_MIDDLE | 中用紙トレイ |
DMBIN_MANUAL | 手差し用紙フィーダ |
DMBIN_ENVELOPE | 封筒フィーダ |
DMBIN_ENVMANUAL | 手差し封筒フィーダ |
DMBIN_AUTO | 自動用紙トレイ選択 |
DMBIN_TRACTOR | トラクタフィーダ |
DMBIN_SMALLFMT | 小型用紙ソース |
DMBIN_LARGEFMT | 大型用紙ソース |
DMBIN_LARGECAPACITY | 大容量用紙トレイ |
DMBIN_CASSETTE | 用紙カセット |
定数 | 解説 |
---|---|
DMRES_HIGH | 高解像度 |
DMRES_MEDIUM | 中解像度 |
DMRES_LOW | 低解像度 |
DMRES_DRAFT | ドラフト印刷解像度 |
定数 | 解説 |
---|---|
DMDUP_SIMPLEX | 画面印刷しない |
DMDUP_HORIZONTAL | 横(長辺) |
DMDUP_VERTICAL | 縦(短辺) |
定数 | 解説 |
---|---|
DMTT_BITMAP | TrueType フォントをグラフィックとして印刷します ドットマトリックス プリンタのデフォルトの動作です |
DMTT_DOWNLOAD | TrueType フォントをソフト フォントとしてダウンロードします Printer Control Language (PCL) を使う Hewlett-Packard のプリンタのデフォルトの動作です |
DMTT_SUBDEV | TrueType フォントをデバイス フォントで置き換えます PostScriptR プリンタのデフォルトの動作です |
DMTT_DOWNLOAD_OUTLINE | TrueType フォントをアウトラインソフトフォントとしてダウンロードします |
定数 | 解説 |
---|---|
DM_GRAYSCALE | ディスプレイが非カラーのデバイスであることを指定します このフラグが設定されていないと、カラー デバイスとみなします |
DM_INTERLACED | ディスプレイモードがインターレースであることを指定します このフラグが設定されていないと、ノンインターレースであるとみなします |
定数 | 解説 |
---|---|
DMICMMETHOD_NONE | ICM は使用不可です |
DMICMMETHOD_SYSTEM | ICM は Windows によって処理されます |
DMICMMETHOD_DRIVER | ICM はデバイスドライバによって処理されます |
DMICMMETHOD_DEVICE | ICM はデバイスによって処理されます |
定数 | 解説 |
---|---|
DMICM_SATURATE | カラーマッチングで、色の鮮やかさを優先します ディザリングが望まれない、ビジネス用のグラフに最適です |
DMICM_CONTRAST | カラーマッチングで、カラーコントラストを優先します ディザリングが望まれる、写真等の画像に最適です |
DMICM_COLORMETRIC | カラーマッチングで、要求どおりの色に合わせます 正確な色合わせが要求されるときに最適です |
定数 | 解説 |
---|---|
DMMEDIA_STANDARD | 普通紙 |
DMMEDIA_GLOSSY | 光沢紙 |
DMMEDIA_TRANSPARENCY | 透明フィルム |
定数 | 解説 |
---|---|
DMDITHER_NONE | ディザリングしません |
DMDITHER_COARSE | 粗いブラシによるディザリング |
DMDITHER_FINE | 細かいブラシによるディザリング |
DMDITHER_LINEART | ラインアートディザリング |
DMDITHER_GRAYSCALE | デバイスは、グレースケールを使う |
#include <windows.h> #define TITLE TEXT("Kitty on your lap") int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { DOCINFO diInfo = {0}; DEVMODE dmMode = {0}; HDC hdc; diInfo.cbSize = sizeof (DOCINFO); diInfo.lpszDocName = TITLE; dmMode.dmSpecVersion = DM_SPECVERSION; dmMode.dmSize = sizeof (DEVMODE); dmMode.dmFields = DM_ORIENTATION; dmMode.dmOrientation = DMORIENT_LANDSCAPE; if (!(hdc = CreateDC(NULL , lpCmdLine , NULL , NULL))) { MessageBox(NULL , TEXT("DCが得られません") , lpCmdLine , MB_OK); return -1; } if (StartDoc(hdc , &diInfo) > 0) { hdc = ResetDC(hdc , &dmMode); StartPage(hdc); SetMapMode(hdc , MM_LOMETRIC); Ellipse(hdc , 0 , 0 , 500 , -500); TextOut(hdc , 0 , 0 , TITLE , lstrlen(TITLE)); EndPage(hdc); EndDoc(hdc); } DeleteDC(hdc); return 0; }このプログラムは、コマンドライン引数から印刷するプリンタを選択すると