abc GUI ライブラリマニュアル このマニュアルは、GUI ライブラリの 仕様について記載します。 Ver. 1.
ご注意 ● このソフトウェアおよびマニュアルの、一部または全部を無断で使用、複製することはできません。 ● このソフトウェアおよびマニュアルは、本製品の使用許諾契約書のもとでのみ使用することができます。 ● このソフトウェアおよびマニュアルを運用した結果の影響については、一切の責任を負いかねますのでご了 承ください。 ● このソフトウェアの仕様、およびマニュアルに記載されている事柄は、将来予告なしに変更することがありま す。 ● このマニュアルの著作権はカシオ計算機株式会社に帰属します。 ● 本書中に含まれている画面表示は、実際の画面とは若干異なる場合があります。予めご了承ください。 © 2008-2011 カシオ計算機株式会社 Microsoft, MS, ActiveSync, Active Desktop, Outlook, Windows, Windows NT, および Windows ロゴは、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。Microsoft 社の製品は、OEM 各社に、Microsoft Corporation の 100
変更履歴 バージョン 1.00 1.01 変更日付 2008.12 2011.11 2012.01 ページ 2012.03 2012.03 1 5 2012.
目次 1. 概要····························································································································································· 1 2. 動作環境 ···················································································································································· 1 3. 機能一覧 ···················································································································································· 3 3.
1. 概要 本ライブラリは、内蔵プリンタ用印刷システム/印刷ライブラリです。 本ライブラリを使用することにより、GDI 関数を用いて印刷データを作成して印刷することが可能にな ります。 ※ ただし、GDI 関数/印刷システムの前処理が行われるため、印刷の開始まで多少時間がかかりま す 2. 動作環境 GUI ライブラリの動作環境を以下に示します。 対象機種 • DT-9800 • IT-9000 対象 OS • Microsoft WindowsCE 5.0 • Microsoft WindowsCE 6.0 • Microsoft Windows Mobile 6.5 開発環境 • Microsoft embedded Visual C++ Version 4.0 + SP4 • Microsoft Visual Studio.NET 2003 +SP1 • Microsoft Visual Studio 2005 + SP1 • Microsoft Visual Studio 2008 + SP1 提供ファイル • Cp780Lib.lib インポートライブラリ • Cp780Lib.
使用方法 • C++の場合は、プログラムソース内に CpLib.h をインクルードし、Cp780Lib.lib を使用するライブラ リとして指定してください • VB または C#の場合は、Cp780LibCS.dll、Cp780LibVB.
3. 機能一覧 3.1 構造体一覧 GUI ライブラリの提供する構造体は、以下のとおりです。 構造体名 CPDOCINFO CPDEVMODE CPEXTDVM CPCDEVMODE 3.1.
3.1.
3.1.
CPDEVMODE 共通情報 共通構造体 CpDocumentProperties関数で サイズを取得 拡張情報 (CPEXTDVM) プリンタドライバ毎に 異なる情報 6
3.1.
3.2 関数一覧 GUI ライブラリの提供する関数は、以下のとおりです。 表 3.
3.2.
3.2.
3.2.3 CpDocumentProperties 指定したプリンタのプリンタ構成ダイアログボックスを表示します。 [C++] LONG CpDocumentProperties ( HWND hwnd, HANDLE hPrinter, LPCPDEVMODE lpdmOutput , LPCPDEVMODE lpdmInput , DWORD fMode ) [Visual Basic] Declare Function CpDocumentProperties ( ByVal hwnd As Int32, _ ByVal hPrinter As Int32, _ ByRef cdm_out As Int16, _ ByRef cdm_in As Int16, _ ByVal fMode As Int32 ) As Int32 [C#] CpDocumentProperties ( Int32 Int32 CalibCs.Cp780LibCS.CPDEVMODE IntPtr Int32 ) CpDocumentProperties ( Int32 Int32 CalibCs.Cp780LibCS.
hPrinter オープンしたプリンタのハンドルを指定します。 lpdmOutput 修正したプリンタデータを指定します。 lpdmInput 元のプリンタデータを指定します。 fMode 関数が実行する操作を示す値を指定します。 0 を指定した場合は、CPDEVMODE 構造体に必要なバイト数を返します。 それ以外の場合は、次に示す値を 1 つ以上組み合わせてこのパラメータに指定します。 CPDM_IN_BUFFER : 関数への入力を指定します。 CPDM_IN_PROMPT : プリンタ設定ダイアログを表示します。 CPDM_OUT_BUFFER : 関数からの出力を指定します。 戻り値 fMode が 0、または lpdmOutput が NULL の場合は、プリンタドライバの初期化データを設定する ために必要なバッファのサイズを返します。プリンタドライバが構造体にプライベートなデータを付 加している場合は、バッファが CPDEVMODE 構造体よりも大きくなります。 本関数が初期化ダイアログボックスを表示したときは、ユーザが選択したボタンに応じて、IDOK ま たは IDCANCEL を返しま
3.2.4 CpCreateDC プリンタのデバイスコンテキスト(DC)を作成します。作成した DC に対して、各 GDI 関数が使用できま す。 [C++] HDC CpCreateDC ( HANDLE hPrinter, LPCPDEVMODE lpInitData ) [Visual Basic] Declare Function CpCreateDC ( ByVal hPrinter As Int32, _ ByRef cdm As Int16 ) As Int32 [C#] Int32 CpCreateDC ( Int32 CalibCs.Cp780LibCS.
3.2.5 CpResetDC プリンタのデバイスコンテキスト(DC)を更新します。 また、1ドキュメント内での用紙方向切り替え、用紙サイズ変更時に使用します。 [C++] HDC CpResetDC ( HANDLE hPrinter, HDC hdc , LPCPDEVMODE lpInitData ) [Visual Basic] Declare Function CpResetDC ( ByVal hPrinter As Int32, _ ByVal hdc As Int32, _ ByRef cdm As Int16 ) As Int32 [C#] Int32 CpResetDC ( Int32 Int32 CalibCs.Cp780LibCS.
3.2.
3.2.7 CpGetDeviceCaps プリンタの情報を取得します。 [C++] int CpGetDeviceCaps ( HANDLE hPrinter , HDC hdc, int nIndex ) [Visual Basic] Declare Function CpGetDeviceCaps ( ByVal hPrinter As Int32, _ ByVal hDC As Int32 ByVal nIndex As Int32 ) As Boolean [C#] Int32 CpGetDeviceCaps ( Int32 hPrinter , _ Int32 hdc , _ Int32 nIndex ) 解説 本関数は、プリンタの情報を取得します。 パラメータ hPrinter オープンしたプリンタのハンドルを指定します。 hdc デバイスコンテキストを指定します。 nIndex 以下の機能取得番号を指定します。 CP_HORZRES : 印刷可能領域幅(ピクセル単位) CP_VERTRES : 印刷可能領域長さ(ピクセル単位) CP_HORZSIZE : 印刷可能領域幅(0.
CP_PRINTER CP_TEXTCAPS : ページ制御プリンタ/ライン制御プリンタ : CpUnicodeOut 描画の出力方式 戻り値 指定した機能取得番号の項目の値を返します。 17
3.2.8 CpStartDoc 印刷ジョブを開始します。 [C++] int CpStartDoc ( HANDLE hPrinter, HDC hdc , LPCPDOCINFO lpdi ) [Visual Basic] Declare Function CpStartDoc ( ByVal hPrinter As Int32, _ ByVal hDC As Int32 ByRef docinfo As Int32 ) As Boolean [C#] Int32 CpStartDoc ( Int32 Int32 CalibCs.Cp780LibCS.
3.2.
3.2.
3.2.
3.2.
3.2.
戻り値 関数が正常終了した場合は正の値を、それ以外の場合は CP_ERROR を返します。 補足 本関数は、プリンタコマンドを出力しません。そのため、ESC コマンドでの各種設定は CpExtEscape関数で出力する必要があります。 24
3.2.
hdc デバイスコンテキストを指定します。 nEscape CPPASSTHROGH を指定してください。 cbInput lpvInData のバイト数を指定します。 lpvInData 指定したエスケープに必要なデータを指定します。 cbOutput lpvOutData のバイト数を指定します。 lpvOutData 指定したエスケープからの出力を受け取るデータを指定します。 戻り値 関数が正常終了した場合は正の値を、エスケープが実装されていない場合は、0 を返します。 それ以外の場合は CP_ERROR を返します。 26
3.2.15 CpPrintDlg [プリンタ選択]ダイアログボックスを表示します。 [C++] int CpPrintDlg ( HWND hwnd, LPHANDLE lphPrinter , LPCPDEVMODE lpdmOutput , LPTSTR lpszPrinter , LPTSTR lpszPort ) [Visual Basic] Declare Function CpPrintDlg( ByVal hwnd As Int32, _ ByRef lphPrinter As Int32, _ ByVal lpdmOutput As Cp780LibVB.CPDEVMODE, _ ByVal lpszPrinter As String, _ ByVal lpszPort As String ) As Int32 [C#] Int32 CpPrintDlg ( Int32 Int32 CalibCs.Cp780LibCS.
lpdmOutput CPDEVMODE構造体を指定します。 lpszPrinter 出力するプリンタ名を指定します。 lpszPort 出力するポート名を指定します。 戻り値 lpdmOutput が NULL の場合は、プリンタドライバの初期化データを設定するために必要なバッフ ァのサイズを返します。プリンタドライバが構造体にプライベートなデータを付加している場合は、 バッファが CPDEVMODE 構造体よりも大きくなります。 関数がダイアログボックスを表示した場合は、ユーザが選択したボタンに応じて、IDOK、または IDCANCEL を返します。 関数が正常に終了しなかったときは、0 未満の値を返します。 28
3.2.
CpEndPage関数実行前に、CpSetBarcodeType関数により裏面バーコードの読取方式を設定し てください。 30
3.2.
3.2.
3.3 プログラミング上の注意点 3.3.
3.3.2 プリンタ名と出力ポート名へについて プリンタ名と対応する出力ポート名を以下に示します。 プリンタ名 内蔵プリンタ(日本語版) 内蔵プリンタ(英語版) 3.3.3 BuiltIn BuiltIn 出力ポート名 BuiltIn BuiltIn 用紙サイズについて プリンタの指定可能用紙サイズを以下に示します。 ※ このサイズはデバイスコンテキストに作成する描画イメージのサイズです 内蔵プリンタ 3.3.4 幅[0.1mm] 480 or 720 長さ[0.
各種エラーについて エラー表示 用紙がありません プラテンがオープンしています VDETP が発生しました エラー内容 用紙切れ、用紙なし プラテンが開いている ローバッテリー状態 サスペンドが発生しました サスペンド(印字中断)状態 ヘッド温度エラー ヘッド温度上昇 マーカー検出エラー マーカーが検出できない 80mm へ変更できません 用紙サイズ変更エラー 3.3.5 対処方法 用紙をセットしてください プラテンを閉じてください バッテリーを充電、交換してくださ い エラー時継続印字を有効にして印 刷してください ヘッド温度が下がるまで印字しな いでください 印刷を中止し、マーカー検出を無 効にして再度印刷してください マーカー用紙で再度印刷してくだ さい 印刷を中止し、用紙幅の設定を 48.
4. サンプルソースコード 4.
よる // 値の変更以外にも上記コードのように値を直接指定することも可能です /***** プリンタ毎の拡張情報を変更したい場合 *****/ // プリンタ拡張情報定義のヘッダファイル(CpExtDvm.h)のインクルードが必要です // 内蔵プリンタの【印字速度】を「高速印字」に変更する場合 // ((LPCPCDEVMODE)pCDM)->dlg.PrintSpeed = PRINTSPEED_FAST; /***** CpCreateDC:描画用のデバイスコンテキストハンドルを取得します hDC = CpCreateDC(hPrinter, pCDM); if (hDC == NULL) { CpClosePrinter(hPrinter); free(pCDM); return; } *****/ /***** CpSartDoc:印刷ドキュメントの開始設定を行います *****/ // CPDOCINFO 設定 doc.cbSize = sizeof(CPDOCINFO); wcscpy((LPWSTR)doc.
/***** CpResetDC:用紙サイズを変更します *****/ hDCOld = hDC; pCDM->dmPaperLength = 100; // 描画サイズ(長さ)を 200 から 100(10[mm])に変 更 hDC = CpResetDC(hPrinter, hDC, pCDM); if (hDC == NULL) { CpEndDoc(hPrinter, hDCOld); CpDeleteDC(hPrinter, hDCOld); CpClosePrinter(hPrinter); free(pCDM); return; } /***** CpStartPage:ページの開始設定を行います if (CpStartPage(hPrinter, hDC) == CP_ERROR) { CpEndDoc(hPrinter, hDC); CpDeleteDC(hPrinter, hDC); CpClosePrinter(hPrinter); free(pCDM); return; } *****/ /***** CpUnicodeOut:文字列を送ります *****/ if (CpUnico
/***** 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; } *****/ /***** CpClosePrinter:指定されたプリンタを閉じます if (CpClosePrinter(hPrinter) != TRUE) { free(pCDM); return; } *****/ // プリンタデータ保存領域を解放 if(pCDM) free(pCDM); } 39
4.2 裏面バーコードの読み取り 本サンプルプログラムではライブラリの関数を使用して、GDI 関数である"LineTo"によるイメージを印 刷し、裏面バーコードの読み取りを行います。 裏面バーコードを読み取る場合の注意点 • ヘッダファイルは Cp780Lib.h と CpExtDvm.
// 取得された必要サイズ分の領域を確保 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.
ます *****/ 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(h
} break; } Sleep( 100); } /***** CpClosePrinter:指定されたプリンタを閉じます *****/ if (CpClosePrinter(hPrinter) != TRUE) { free(pCDM); return; } // プリンタデータ保存領域を解放 if(pCDM) { free(pCDM); } } 43
カシオ計算機お問い合わせ窓口 製品に関する最新情報 ●製品サポートサイト(カシオペア・ハンディターミナル) http://casio.