User manual - GUIライブラリマニュアルver.1.01(2012年3月29日)
42
ます *****/
LineTo(hDC, 100, 100); //
LineTo(hDC, 100, 0); //
LineTo(hDC, 0, 0); //
/***** CpEndPage:ページの終了設定を行います *****/
if (CpEndPage(hPrinter, hDC) == CP_ERROR)
{
CpEndDoc(hPrinter, hDC);
CpDeleteDC(hPrinter, hDC);
CpClosePrinter(hPrinter);
free(pCDM);
return;
}
/***** CpEndDoc:ドキュメントの終了設定を行います *****/
// CpEndDoc 実行により、印刷がスタートします。
if (CpEndDoc(hPrinter, hDC) == CP_ERROR)
{
CpDeleteDC(hPrinter, hDC);
CpClosePrinter(hPrinter);
free(pCDM);
return;
}
/***** CpDeleteDC:デバイスコンテキストを削除します *****/
if (CpDeleteDC(hPrinter, hDC) != TRUE)
{
CpClosePrinter(hPrinter);
free(pCDM);
return;
}
/***** 印字完了を待って裏面バーコード読み取り結果を取得する *****/
// 印字完了メッセージ CP_WM_PRINTDONE を受け取った後、
// 裏面バーコード読み取り結果を取得します
// 以下の処理は通常はウィンドウプロシージャ内で行ってください
DWORD tick = GetTickCount();
while(( GetTickCount() - tick) < 10000)
{
MSG winmsg;
if ( PeekMessage( &winmsg, hWnd, CP_WM_PRINTDONE, CP_WM_PRINTDONE,
PM_REMOVE))
{
DWORD len;
TCHAR szbarcode[ 32], szmes[ 64];
len = 0;
ZeroMemory( szbarcode, sizeof( szbarcode));
if ( CpDecodeBarcode( hPrinter, &len, szbarcode) != CP_ERROR)
{
wsprintf( szmes, L"len=%u\r\n%s", len, szbarcode);
MessageBox( hWnd, szmes, L"Barcode", MB_OK);