- 公開日
- 2007-10-12
- 公開元
- 灰塵
PC小噺3 - Win32API思ひ付き關數解説
- 全て、C言語に於ける話です。
- Win32APIの關數の中から、思ひ付きで關數を選んで解説します。
- 其の内「Win32API思ひ付き關數解説其の二」なんていふのが出來るかも知れません。
Win32API?
Win32APIつて何ぞ?といふ方は、申し訣有りませんがググつて下さい。此のページでは「Win32APIとは何か」を解説しません。據つて、「Win32APIが何であるか」を知つてゐる必要があります。
また、CreateWindow關數など、餘りに基本的な關數に就いては解説しません。據つて、「或る程度のWindowsプログラミングの知識」も必要になります。敷居が高くなつてしまひ、申し訣御座いません。
ウィンドウ操作とか
SetWindowLong關數・GetWindowLong關數
LONG SetWindowLong(HWND hWnd, int nIndex, LONG dwNewLong);
LONG GetWindowLong(HWND hWnd, int nIndex);
SetWindowLong
ウィンドウの情報を變更することが出來ます。
hWndにウィンドウハンドル、nIndexに變更する對象、dwNewLongにはnIndexの値に應じた新しい値を渡します。nIndexに就いて、「變更する對象」といふのは、例へばウィンドウスタイルを變更したいならGWL_STYLE定數、ウィンドウプロシージャを對象とするならGWL_WNDPROC定數をnIndexに指定します。また、dwNewLongにはnIndexに應じた適切な値を指定するべきで、例へばnIndexがGWL_STYLEならば、dwNewLongには"WS_"で始るウィンドウスタイルに關する定數を指定する必要があります。
nIndexに指定できる定數
- GWL_EXSTYLE - 擴張ウィンドウスタイル。
- GWL_STYLE - ウィンドウスタイル。
- GWL_WNDPROC - ウィンドウプロシージャ。
- GWL_HINSTANCE - アプリケーションのインスタンスハンドル。
- GWL_ID - ウィンドウのID。
- GWL_USERDATA - ウィンドウに關連付けられてゐる32ビット値。
- DWL_DLGPROC - ダイアログボックスプロシージャ。此の定數は、hWndがダイアログボックスの場合にしか使へません。
- DWL_MSGRESULT - ダイアログボックスプロシージャ内で處理されたメッセージの戻り値。此の定數は、hWndがダイアログボックスの場合にしか使へません。
- DWL_USER - ハンドルやポインタ等の、アプリケーション固有の擴張情報。此の定數は、hWndがダイアログボックスの場合にしか使へません。
GetWindowLong
ウィンドウの情報を取得することが出來ます。
hWndにウィンドウハンドル、nIndexに取得する對象を渡せば、その對象の値を取得することができます。
MoveWindow關數・SetWindowPos關數
BOOL MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL nRepaint);
BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags);
MoveWindow
ウィンドウの移動、サイズの變更が出來ます。
hWndにウィンドウハンドル、XとYには新しい位置となる座標、nWidthにはウィンドウの新しい幅、nHeightにウィンドウの新しい高さを渡します。bRepaintをTRUEにすると、變更後にウィンドウが再描畫されます。
SetWindowPos
MoveWindowよりも柔軟に、ウィンドウの移動、サイズの變更が出來ます。
hWndにウィンドウハンドル、hWndInsertAfterに先行するウィンドウハンドル、XとYには新しい位置となる座標、cxに幅、cyに高さ、uFlagsにはオプションを渡します。hWndInsertAfterに指定するのは、先行するウィンドウハンドルですが、大抵の場合は"HWND_"で始る定數を指定し、Z軸の優先度を決めます。uFlagsには"SWP_"で始る定數を、此の關數の動作に關するオプションを指定します。
HWND_で始る定數
- HWND_BOTTOM - ウィンドウをZ軸の最後に置きます。また、最前面ウィンドウ(他のウィンドウよりも優先されて前面に出されるウィンドウ)ではなくなります。
- HWND_NOTOPMOST - ウィンドウを最後の最前面の後ろに置きます。
- HWND_TOP - ウィンドウをZ軸の先頭に置きます。
- HWND_TOPMOST - ウィンドウを最前面ウィンドウに指定します。
SWP_で始る定數
- SWP_ASYNCWINDOWPOS - SetWindowPosを呼び出したスレッドと、ウィンドウを所有するスレッドが異なる入力キューに關連付けられてゐる場合、ウィンドウを所有するスレッドへ要求が送られます。
- SWP_DEFERERASE - WM_SYNCPAINTメッセージを發效しません。
- SWP_FRAMECHANGED - 先に説明したSetWindowLong關數を使つて新しいフレームスタイルの設定を適用します。
- SWP_HIDEWINDOW - ウィンドウを隱します。此のオプションが指定されてゐる場合、ウィンドウのサイズを變更したり移動することは出來ません。
- SWP_NOACTIVATE - ウィンドウをアクティヴにしません。
- SWP_NOCOPYBITS - クライアント領域の内容を全て破棄します。
- SWP_NOMOVE - ウィンドウを動かしません。XとYは無視されます。
- SWP_NOOWNERZORDER - 親ウィンドウのZ軸は變更されません。
- SWP_NOREDRAW - 變更結果を再描畫しません。
- SWP_NOREPOSITION - SWP_NOOWNERZORDERフラグに同じ。
- SWP_NOSENDCHANGING - WM_WINDOWPOSCHANGINGメッセージを發效しません。
- SWP_NOSIZE - ウィンドウサイズを變更しません。cxとcyは無視されます。
- SWP_NOZORDER - ウィンドウのZ軸を變更しません。hWndInsertAfterは無視されます。
- SWP_SHOWWINDOW - ウィンドウを表示します。此のオプションが指定されてゐる場合、ウィンドウのサイズを變更したり移動することは出來ません。
SetWindowRgn關數・GetWindowRgn關數
int SetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw);
int GetWindowRgn(HWND hWnd, HRGN hRgn);
SetWindowRgn
ウィンドウは指定されたリージョンの範圍外を描畫しなくなります。(丸など、特殊な形のウィンドウを作ることが出來ます)
hWndにウィンドウハンドル、hRgnに目的の形をしたリージョンを渡します。bRedrawをTRUEにすると、ウィンドウの形を變更した後に再描畫が行はれます。
GetWindowRgn
ウィンドウに指定されたリージョンを取得します。
hWndにウィンドウハンドル、hRgnにリージョンを渡します。
ChangeDisplaySettings關數
LONG ChangeDisplaySettings(LPDEVMODE lpDevMode, DWORD dwFlags);
ChangeDisplaySettings
畫面解像度を變更します。
lpDevModeには畫面モードを表すDEVMODE構造體へのポインタを、dwFlagsには變更方法を表すフラグを指定します。
DEVMODE構造體
typedef struct _devicemode{
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 */
}
迚も大きなサイズの構造體ですが、ChangeDisplaySettings關數で利用するメンバは僅かです。なので今囘はdmSize, dmFields, dmBitsPerPel, dmPelsWidth, dmPelsHeight, dmDisplayFlags, dmDisplayFrequencyのみ説明します。が、どうしても全部のメンバの意味が知りたい方の爲に下の餘談を御覽下さい。簡單な全メンバの説明を記載してあります。
- dmSize
- 之には、DEVMODE構造體そのもののサイズをバイト單位で指定します。sizeof演算子を使ふと良いでせう。
- dmFields
- 之には、DEVMODE構造體の中で、今囘使用するメンバを指定します。使用するメンバを表す定數を論理和で指定します。今囘は、ChangeDisplaySettings關數で利用することのあるメンバを表す定數だけを紹介します。全て知りたい方は餘談を御覽下さい。
- DM_BITSPERPEL
- dmBitsPerPelメンバを使ひます
- DM_PELSWIDTH
- dmPelsWidthメンバを使ひます
- DM_PELSHEIGHT
- dmPelsHeightメンバを使ひます
- DM_DISPLAYFLAGS
- dmDisplayFlagsメンバを使ひます
- DM_DISPLAYFREQUENCY
- dmDisplayFrequencyメンバを使ひます
- dmBitsPerPel
- 1色のビット數を指定します。
- dmPelsWidth
- 横解像度を指定します。
- dmPelsHeight
- 縱解像度を指定します。
- dmDisplayFlags
- ディスプレイモードを表す定數の組み合はせを指定します。以下に示す定數が使用可能です。
- DM_GRAYSCALE
- ディスプレイは非カラー
- DM_INTERLACED
- ディスプレイモードはインタレース
- dmDisplayFrequency
- モード周波數を指定します。
複雜過ぎるかも知れませんが、例へば、畫面解像度だけを切り替へたいときは、dmFieldsの内容を「DM_PELSWIDTH | DM_PELSHEIGHT」にして、dmPelsWidthとdmPelsHeightに解像度を指定して渡せばよいのです。
dwFlagsの取り得る値
- 0 - 現在の畫面のグラフィックスモードを動的に變更します。
- CDS_UPDATEREGISTRY - 現在の畫面のグラフィックスモードを動的に變更し、レジストリを更新します。
- CDS_TEST - 要求されたグラフィックスモードが使用可能か、システムでテストします。
- CDS_FULLSCREEN - 變更をレジストリに保存しない、一時的なモードです。
- CDS_GLOBAL - 全ユーザに對して、グラフィックスモードの變更を行ひます。尚、此のフラグはCDS_UPDATEREGISTRYと併用せねば有效になりません。
- CDS_SET_PRIMARY - このデヴァイスは、一次デヴァイスになります。
- CDS_RESET - 要求された設定が、現在の設定と同じであつても、設定を變更します。
- CDS_SETRECT - 全てのアプリケーションに送信するWM_DISPLAYCHANGEメッセージに指定されたlParamメッセージパラメータは、マルチスクリーン環境でのディスプレイデヴァイスの位置を示すRECT構造體へのポインタである必要があります。
- CDS_NORESET - 設定はレジストリに保存されますが、ディスプレイモードは變更されません。尚、此のフラグはCDS_UPDATEREGISTRYと併用せねば有效になりません。
FindWindow關數
HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName);
FindWindow
指定された文字列と一致するクラス名、ウィンドウ名を持つトップレヴェルウィンドウ(親ウィンドウを持たないウィンドウ)のハンドルを返します。
lpClassNameにクラス名、lpWindowNameにウィンドウ名を渡します。lpWindowNameにNULLを指定すると、あらゆるウィンドウが該當します。
ビットマップ操作とか
BitBlt關數
BOOL BitBlt(
HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight,
HDC hdcSrc, int nXSrc, int nYSrc,
DWORD dwRop
);
BitBlt
コピー元デヴァイスから選擇した矩形を、別のデヴァイスの選擇した座標に轉送します。
hdcDestに指定するデヴァイスコンテキスト、コピー先デヴァイス、nXDestとnYDestにコピー先長方形の左上を表す座標、nWidthとnHeightにコピー先のサイズ、hdcSrcにコピー元デヴァイス、nXSrcとnYSrcにコピー元長方形の左上を表す座標、dwRopにはラスタオペレーションを示す定數を渡します。
dwRopに指定するラスタオペレーション
- BLACKNESS - 物理パレットのインデックス0に對應する色(既定は黒)で、コピー先の長方形を塗潰します。
- CAPTUREBLT - Win98とWin2000のみ。アプリケーションのウィンドウより上位にレイヤ化されてゐる全てのウィンドウを、最終的なイメージに含めます。
- DSTINVERT - コピー先長方形の色を反轉します。
- MERGECOPY - コピー元の色とコピー先の色とを、論理積で結合します。
- MERGEPAINT - コピー元の色を反轉した色と、コピー先の色とを、論理和で結合します。
- NOMIRRORBITMAP - Win98とWin2000のみ。ビットマップのミラーリングを防止します。
- NOTSRCCOPY - コピー元の色を反轉して、コピー先へコピーします。
- NOTSRCERASE - コピー元の色とコピー先の色とを、論理和で結合し、更に反轉します。
- PATCOPY - 指定したパターンをコピー先へコピーします。
- PATINVERT - 指定したパターンの色と、コピー先の色とを、排他的論理和で結合します。
- PATPAINT - 指定したパターンの色とコピー先の色を反轉した色を、論理和で結合し、その結果と、コピー先の色を論理和で結合します。
- SRCAND - コピー元の色とコピー先の色とを、論理積で結合します。
- SRCCOPY - コピー元長方形をコピー先長方形へそのままコピーします。
- SRCERASE - コピー元の色と、コピー先の色を反轉した色を、論理積で結合します。
- SRCINVERT - コピー元の色とコピー先の色とを、排他的論理和で結合します。
- SRCPAINT - コピー元の色とコピー先の色とを、論理和で結合します。
- WHITENESS - 物理パレットのインデックス1に對應する色(既定は白)で、コピー先の長方形を塗潰します。
StretchBlt關數・SetStretchBltMode關數
BOOL StretchBlt(
HDC hdcDest,
int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest,
HDC hdcSrc,
int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc,
DWORD dwRop
);
int SetStretchBltMode(HDC hdc, int iStretchMode);
StretchBlt
BitBlt關數を擴張して、轉送するイメージを擴大又は縮小することが出來るやうにしたものです。
hdcDestにコピー先デヴァイス、nXOriginDestとnYOriginDestにコピー先長方形の左上座標、nWidthDestとnHeightDestにコピー先長方形の幅と高さ、hdcSrcにコピー元デヴァイス、nXOriginSrcとnYOriginSrcにコピー元長方形の左上座標、nWidthSrcとnWidthSrcにコピー元長方形の幅と高さ、dwRopにラスタオペレーションを示す定數を渡します。
SetStretchBltMode
StretchBlt關數に於ける、イメージの擴大縮小の方法を設定します。
hdcにデヴァイスコンテキストハンドル、iStretchModeにビットマップ伸縮モードを渡します。
iStretchModeに指定出來る定數
- BLACKONWHITE - 殘す點の色と取り除く點の色を論理積で結合します。ビットマップがモノクロのビットマップである場合、白のピクセルが消され、黒が殘ります。
- COLORONCOLOR - ピクセルを削除します。
- HALFTONE - 9x系ではサポートされてゐません。コピー元長方形内のピクセルをコピー先長方形内のピクセルブロックに關連付けます。
- STRETCH_ANDSCANS - BLACKONWHITEに同じ。
- STRETCH_DELETESCANS - COLORONCOLORに同じ。
- STRETCH_HALFTONE - HAFLTONEに同じ。
- STRETCH_ORSCANS - WHITEONBLACKに同じ。
- WHITEONBLACK - 殘す點の色と取り除く點の色を論理和で結合します。ビットマップがモノクロのビットマップである場合、黒のピクセルが消され、白のピクセルが殘ります。
TransparentBlt關數
BOOL TransparentBlt(
HDC hdcDest,
int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest,
HDC hdcSrc,
int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc,
UINT crTransparent,
);
TransparentBlt
ビットブロック轉送時、特定の色を透過することができます。
最後のcrTransparent以外は、StretchBlt關數と同じ引數です。crTransparentには、コピー元から轉送を無視する透過色を指定します。
AlphaBlend關數
AlphaBlend(
HDC hdcDest,
int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest,
HDC hdcSrc,
int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc,
BLENDFUNCTION blendFunction
);
AlphaBlend
コピー元とコピー先の色を混ぜます。
之もTransparentBitと同じく、最後の引數blendFunction以外は、StretchBlt關數と同じです。
BLENDFUNCTION構造體
typedef struct _BLENDFUNCTION {
BYTE BlendOp;
BYTE BlendFlags;
BYTE SourceConstantAlpha;
BYTE AlphaFormat;
}BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION;
BLENDFUNCTION構造體は四つのメンバを持ちますが、重要なのはSourceConstantAlphaのみです。此のメンバには、コピー元の畫像をどの程度透明にするかを表す數値、即ち透明度を表します。0だと完全に透明で255だと完全に上書きになります。127を指定すると丁度半透明が實現できます。尚、BlendOpは混合操作を表しますが、現在はAC_SRC_OVERのみしか定義されてゐないのでそれで初期化します。BlendFlagsには常に0を指定します。また、AlphaFormatは、コピー元ビットマップがアルファ値を持つならばAC_SRC_ALPHAを指定しますが、大抵は0を指定します。
スレッド制御とか
CreateThread關數・ExitThread關數・GetExitCodeThread關數
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId
);
VOID ExitThread(DWORD dwExitCode);
BOOL GetExitCodeThread(HANDLE hThread, LPDWORD lpExitCode);
CreateThread
新しいスレッドを生成します。尚、CreateThreadで生成されたスレッド内で標準Cライブラリの關數を使つてはなりません。使ふ場合は_beginthread關數を使つてスレッドを生成します。
lpThreadAttributesには、SECURITY_ATTRIBUTES構造體へのポインタを指定しますが、特別な意圖が無い限りは0を、dwStackSizeにはスタックサイズを指定しますが、Windowsは必要に應じてスタックサイズを變更するのでデフォルトを表す0を、lpStartAddresには生成されるスレッドで實行する關數へのポインタを、lpParameterにはスレッド關數に渡す引數を、dwCreationFlagsには通常0を、lpThreadIdにはスレッド識別子を格納するDWORDへのポインタを渡します。
LPTHREAD_START_ROUTINE型の定義
DWORD WINAPI ThreadProc(LPVOID lpParameter);
dwCreationFlagsに指定出來る値
- 0 - 生成と同時にスレッドは稼動します。
- CREATE_SUSPENDED - スレッドの實行が中斷された状態でスレッドが生成されます。ResumeThread關數を呼び出す迄稼動しません。
ExitThread
スレッドを破棄します。尚、_beginthread關數で生成したスレッドは_endthread關數で破棄して下さい。
dwExitCodeにこのスレッドの終了コードを指定します。
GetExitCodeThread
指定したスレッドの終了コードを取得します。
hThreadにスレッドハンドルを、lpExitCodeには終了コードを受け取るDWORDへのポインタを指定します。hThreadで指定されたスレッドがExitThreadで設定した終了コードを取得します。
ここではDEVMODE構造體の中身を解説します。
typedef struct _devicemode{
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
- デヴァイス名を表す文字列です。
- dmSpecVersion
- DEVMODE構造體のヴァージョンです。現在のヴァージョンはDM_SPECVERSIONといふ定數として定義されてゐます。
- dmDriverVersion
- プリンタドライヴァのヴァージョンです。
- dmSize
- DEVMODE構造體のサイズをバイト單位で格納してゐます。
- dmDriverExtra
- DEVMODE構造體の後に續くプライヴェートなデータのサイズをバイト單位で格納してゐます。
- dmFields
- プリンタドライヴァが、DEVMODE構造體の内どのメンバを使用するかを示してゐます。それらは、定數同士の論理和によつて示されます。
- 定數
- その定數によつて、使用されることが明示されるメンバ
- 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(Win2000及び其れ以降のWindowsのみ)
- dmPanningWidth(Win2000及び其れ以降のWindowsのみ)
- DM_PANNINGHEIGHT(Win2000及び其れ以降のWindowsのみ)
- dmPanningHeight(Win2000及び其れ以降のWindowsのみ)
- dmOrientation
- 用紙の向きです。指定出來る定數は以下の通りです。
- DMORIENT_PORTRAIT
- 縱向き
- DMORIENT_LANDSCAPE
- 横向き
- dmPaperSize
- 用紙のサイズです。通常は以下に示す定數で表せますが、dmPaperLength,dmPaperWidthメンバで指定する場合は中身は0で構ひません。
- DMPAPER_LETTER
- Letter, 8 1/2 * 11インチ
- DMPAPER_LEGAL
- Legal, 8 1/2 * 14インチ
- DMPAPER_A4
- A4シート, 210 * 297mm
- 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 * 420mm
- DMPAPER_A4SMALL
- A4 smallシート, 210 * 297mm
- DMPAPER_A5
- A5シート, 148 * 210mm
- DMPAPER_B4
- B4シート, 250 * 354mm
- DMPAPER_B5
- B5シート, 182 * 257mm
- DMPAPER_FOLIO
- Folio, 8 1/2 * 13インチ
- DMPAPER_QUATRO
- Quatro, 215 * 275mm
- 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 * 220mm
- DMPAPER_ENV_C5
- C5 Envelope, 162 * 229mm
- DMPAPER_ENV_C3
- C3 Envelope, 324 * 458mm
- DMPAPER_ENV_C4
- C4 Envelope, 229 * 324mm
- DMPAPER_ENV_C6
- C6 Envelope, 114 * 162mm
- DMPAPER_ENV_C65
- C65 Envelope, 114 * 229mm
- DMPAPER_ENV_B4
- B4 Envelope, 250 * 353mm
- DMPAPER_ENV_B5
- B5 Envelope, 176 * 250mm
- DMPAPER_ENV_B6
- B6 Envelope, 176 * 125mm
- DMPAPER_ENV_ITALY
- Italy Envelope, 110 * 230mm
- 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インチ
- DMPAPER_FANFOLD_LGL_GERMAN
- German Legal Fanfold, 8 1/2 * 13インチ
- dmPaperLength
- 縱向きモードでの用紙の長さを0.1ミリ單位で格納してゐます。
- dmPaperWidth
- 縱向きモードでの用紙の幅を0.1ミリ單位で格納してゐます。
- dmScale
- 印刷出力のスケーリング時のスケーリング係數を指定します。
- dmCopies
- 印刷部數です。
- dmDefaultSource
- デフォルトの用紙トレイを指定します。以下の定數か、若しくは、DMBIN_USER定數の値以上の、ドライヴァ定義値を指定します。
- DMBIN_ONLYONE
- 單一用紙ソース
- DMBIN_LOWER
- 下用紙トレイ
- DMBIN_MIDDLE
- 中用紙トレイ
- DMBIN_MANUAL
- 手差し用紙フィーダ
- DMBIN_ENVELOPE
- 封筒フィーダ
- DMBIN_ENVMANUAL
- 手差し封筒フィーダ
- DMBIN_AUTO
- 自動用紙トレイ選擇
- DMBIN_TRACTOR
- トラクタフィーダ
- DMBIN_SMALLFMT
- 小型用紙ソース
- DMBIN_LARGEFMT
- 大型用紙ソース
- DMBIN_LARGECAPACITY
- 大容量用紙トレイ
- DMBIN_CASSETTE
- 用紙カセット
- dmPrintQuality
- プリンタ解像度です。DPIを示します。デヴァイスに依存しない以下の定數を指定することも可能です。
- DMRES_HIGH
- 高解像度
- DMRES_MEDIUM
- 中解像度
- DMRES_LOW
- 低解像度
- DMRES_DRAFT
- ドラフト印刷解像度
- dmColor
- カラープリンタに於て、カラーとモノクロのどちらで印刷するかを指定します。以下の定數で指定できます。
- DMCOLOR_CIKIR
- カラー
- DMCOLOR_MONOCHROME
- モノクロ
- dmDules
- 兩面印刷可能なプリンタに於て、兩面印刷をするかどうかを指定します。以下の定數で指定します。
- DMDUP_SIMPLEX
- 兩面印刷しない
- DMDUP_HORIZONTAL
- 横(長邊)
- DMDUP_VERTICAL
- 縱(短邊)
- dmYResolution
- プリンタの垂直方向の解像度です。DPIを示します。
- dmTTOption
- TrueTypeフォントの印刷方法を指定します。以下の定數が指定出來ます。
- DMTT_BITMAP
- TrueTypeフォントをグラフィックとして印刷
- DMTT_DOWNLOAD
- TrueTypeフォントをソフトフォントとしてダウンロード
- DMTT_SUBDEV
- TrueTypeフォントをデヴァイスフォントで置き換へる
- DMTT_DOWNLOAD_OUTLINE
- TrueTypeフォントをアウトラインソフトフォントとしてダウンロード
- dmCollate
- 複數部印刷時、部單位で印刷するかどうかを指定します。以下の定數で指定します。
- DMCOLLATE_TRUE
- 部單位で印刷する
- DMCOLLATE_FALSE
- 部單位で印刷しない
- dmFormName
- 使用する用紙の名前です。
- dmLogPixels
- 論理インチ當りのピクセル數を指定します。
- dmBitsPerPel
- ディスプレイデヴァイスのカラービット數です。
- dmPelsWidth
- 可視デヴァイス表面幅です。
- dmPelsHeight
- 可視デヴァイス表面高です。
- dmDisplayFlags
- デヴァイスのディスプレイモードを指定します。以下の定數で指定します。
- DM_GRAYSCALE
- ディスプレイが非カラーのデヴァイスであることを示す
- DM_INTERLACED
- ディスプレイモードがインタレースであることを示す
- dmDisplayFrequency
- 特定のモードに於ける、ディスプレイデヴァイスの周波數です。單位はHzです。
- dmICMMethod
- 非ICMアプリケーションに於て、ICMの使用可能不可能を示します。また、ICMアプリケーションに於て、ICMサポートの處理方法を決定します。以下の定數か又は、定數DMICMMETHOD_USERよりも大きな値で指定します。
- DMICMMETHOD_NONE
- ICM使用不可
- DMICMMETHOD_SYSTEM
- ICMはWindowsが處理
- DMICMMETHOD_DRIVER
- ICMはデヴァイスドライヴァが處理
- DMICMMETHOD_DEVICE
- ICMはデヴァイスが處理
- dmICMIntent
- 非ICMアプリケーションに於てカラーマッチング方法のデフォルトを指定します。以下の定數か、又はDMICM_USER以上のドライヴァ定義値を指定します。
- DMICM_SATURATE
- 色の鮮やかさ優先
- DMICM_CONTRAST
- コントラスト優先
- DMICM_COLORMETRIC
- 要求通りの色に合はせる
- dmMediaType
- 印刷メディアを指定します。以下の定數か、又はDMMEDIA_USER以上のドライヴァ定義値を指定出來ます。
- DMMEDIA_STANDARD
- 普通紙
- DMMEDIA_GLOSSY
- 光澤紙
- DMMEDIA_TRANSPARENCY
- 透明フィルム
- dmDitherType
- ディザリング方法を指定します。以下の定數か、又はDMDITHER_USER以上のドライヴァ定義値を指定出來ます。
- DMDITHER_NONE
- ディザリングしない
- DMDITHER_COARSE
- 粗いブラシでディザリング
- DMDITHER_FINE
- 細かいブラシでディザリング
- DMDITHER_LINEART
- ラインアートディザリング
- DMDITHER_GRAYSCALE
- グレースケール使用
- dmReserved1, dmReserved2
- 豫約領域。内容は固定で0です。
- dnPanningWidth, dmPanningHeight
- Win2000及び其れ以降のWindowsのみサポートしてゐます。NT系では固定で0を指定します。