User manual - GUIライブラリマニュアルver.1.01(2012年3月29日)
41
// 取得された必要サイズ分の領域を確保
pCDM = (LPCPDEVMODE)malloc(size);
// CPDEVMODE のデフォルト情報を取得
if (CpDocumentProperties(hWnd, hPrinter, pCDM, pInCDM, fMode) < 0)
{
CpClosePrinter(hPrinter);
free(pCDM);
return;
}
/***** 描画サイズ(長さ)を変更 *****/
// 裏面バーコードを読み取る場合は、描画サイズ(長さ)を 420(42[mm])以上に設定
してください
pCDM->dmPaperLength = 420;
/**** 裏面バーコード読み取り時は「マーカ検出(終端)」を設定してください ****/
((LPCPCDEVMODE)pCDM)->dlg.bMarkerDetection = MARKER_END;
/***** CpCreateDC:描画用のデバイスコンテキストハンドルを取得します *****/
hDC = CpCreateDC(hPrinter, pCDM);
if (hDC == NULL)
{
CpClosePrinter(hPrinter);
free(pCDM);
return;
}
/***** CpSartDoc:印刷ドキュメントの開始設定を行います *****/
// CPDOCINFO 設定
doc.cbSize = sizeof(CPDOCINFO);
wcscpy((LPWSTR)doc.DocName, (LPWSTR)_T("ドキュメント名"));
wcscpy((LPWSTR)doc.Output, (LPWSTR)_T(""));
if (CpStartDoc(hPrinter, hDC, &doc) == CP_ERROR)
{
CpDeleteDC(hPrinter, hDC);
CpClosePrinter(hPrinter);
free(pCDM);
return;
}
/***** CpStartPage:ページの開始設定を行います *****/
if (CpStartPage(hPrinter, hDC) == CP_ERROR)
{
CpEndDoc(hPrinter, hDC);
CpDeleteDC(hPrinter, hDC);
CpClosePrinter(hPrinter);
free(pCDM);
return;
}
/***** イメージ描画:デバイスコンテキストハンドルに右のイメージを描画してい