【ソ フ ト名】 プリンタの設定変更DLL V1.3 【登 録 名】 SETPRT13.LZH 【著作権 者】 てんちゃん 【対応 機種】 WIN9x/WinMe, WINNT(4.0以上) 【動作 確認】 Fiva103 + WIN95(OSR2.1)/WIN98/NT40(SP4) 【作成 方法】 LHAにて解凍を行う。 【ソフトウェア種別】 フリーウェア 【転載 条件】 ■補足説明: 次の様な設定を『通常使うプリンタ』のプリンタドライバを呼び出すことに より行います。内部的にはドライバを呼び出してDEVMODE構造体を設定し ているだけですが、VBからの呼び出しが楽なようにキーワード中心のインタ フェースとなっています。 ※設定できる項目 印刷方向 (PORTRAIT, LANDSCAPE) 用紙サイズ (LETTER, A3, A4, B4, B5...) デフォルトの給紙ビン番号 (UPPER, LOWER...) 印刷品質 (DRAFT, LOW, MEDIUM, HIGH) 白黒/カラー印刷指定 (MONOCHROME, COLOR) 片面/両面印刷指定 (SIMPLEX, HORIZONTAL, VERTICAL) TrueTypeフォントの印刷方法 (BITMAP, DOWNLOAD, SUBDEV) VB2およびVB4(16ビット)、VB6(32ビット)用のDLLが同梱されています。 それぞれ SETPRT.DLL, SETPRT32.DLL です。 関数宣言用標準モジュールとして、VB2の場合には SETPRT.BAS を、 VB6の場合には SETPRT4.BAS を使用してください。 テスト用として TEST.MAK(VB2), TEST4.VBP(VB4) も同梱しています。 1.3 では、COM オブジェクトを追加しました。 COM オブジェクトの方が、関数宣言をしなくて済みます。 SetPrtX.dll は、Windowsディレクトリなどに入れてください。 2001.6.20 てんちゃん ■インストール ・ダウンロードした『SETPRT13.LZH』をLHA等で解凍してください。 ・『SetPRT32.dll』を適当なフォルダ(ディレクトリ)に移動してください。 ・通常のDLL呼び出しで使用する場合には、VBプロジェクトに関数宣言用 標準モジュールを追加してください。 ・COM オブジェクトとして使用する場合は、あらかじめ SetPrtX.DLL を \regsvr32.exe で登録し、VBプロジェクトに参照設定を 行ってください。 o 定義部に下記オブジェクト変数を宣言してください。 ------------------- 'SetPrt はActiveXではないシンプルCOMオブジェクトなので、オブジェクトとして利用 'するため、あらかじめ SetPrtX.dll をプロジェクト/参照設定しておくこと。 Private SetPrt As SETPRTXLib.SetPrt ------------------- o 実行部のどこかで下記コードにより、インスタンスを生成してください。 ------------------- 'SetPrt COMオブジェクトインスタンスの作成 Set SetPrt = New SETPRTXLib.SetPrt ------------------- 詳細は、TestX のプロジェクトを参照してください。 ■実行 ・関数宣言用標準モジュール内の説明を参照してください。 ■サポート ・ありません。 ・最新版は、ベクターの http://hp.vector.co.jp/authors/VA003682/ で公開 しています。 ■履歴 ・V1.3 2001.6.18 プリンタドライバによって、設定が失敗することがあるバグ修正。 ネットワークプリンタ対応。 COM オブジェクトとして、SetPrtX.DLL を追加。 ・V1.2 2000.6.4 32ビット用にSetPrtEx()を追加。SetUsrSiz()を吸収。 プリンタポートを指定可能にした。 ・V1.1 1996.11 要望が多かったので、ユーザサイズ用紙の指定用に SetUsrSiz()を追加。 ・V1.0 1996.8 新規公開。 ■免責 このソフトウェアは、現状あるがままの状態で提供されるものです。 バグや要望があれば、修正するよう努めますが、いかなる約束もできません。 使用は自らの責任において行ってください。このソフトウェアを使用する ことによって発生するいかなる事態についても、作者は賠償/保障等の一切 の責任を免れるものとさせていただきます。 ※転載など このソフトは著作権を放棄していないフリーソフトウェアです。転載など は自由ですが、必ずファイルをオリジナルの状態で同封して下さい。 また、このDLLを使用するソフトウェアには必ずこのDLLの著作権が 『てんちゃん』にあることを明記してください。 シェアウェアを含む商用ソフトウェアでの使用も許可しますが、その場合でも 前掲の著作権の明示が必要です。 ■使用例 '***** プリンタ設定用DLLプロトタイプ宣言 ***** '書式1(16bit) #If Win16 Then Declare Function SetPrt% Lib "SetPrt.dll" (ByVal items$) Declare Function SetUsrSiz% Lib "SetPrt.dll" (ByVal paperwidth%, ByVal paperleng) #Else '書式2(32bit) Declare Function SetPrt& Lib "SetPrt32.dll" (ByVal items$) Declare Function SetPrtEx& Lib "SetPrt32.dll" (ByVal PortName$, ByVal items$, ByVal lWidth&, ByVal lHeight&) #End If '使用例 '■SetPrt (items$) 'items(I): 上記 "DMxxx_yyyy" からなる設定キーワードを "," で区切って連結したものの文字列(ASCIZ)を指定する。 ' (キーワード間は "," のみで区切り、余計な空白等はいれないこと) ' 例: "DMORIENT_PORTRAIT,DMBIN_LOWER,DMRES_LOW" ' (同一カテゴリ(例:印刷方向)内のキーワードは相互排他的に最後に指定されたものが使用される。) ' 例: "DMORIENT_PORTRAIT,DMORIENT_LANDSCAPE" ==> "DMORIENT_LANDSCAPE"と同じ ' (ドライバによってサポートされていないキーワードが指定されても無視されエラーにはならない) ' 例: 白黒プリンタに対する "DMCOLOR_COLOR" '戻り値 '-999: 『通常使うプリンタ』(WIN.INI/[Windows]: device=prtname,drvname,portname) 解析エラー '-9999: プリンタドライバのロードエラー '-9998: プリンタドライバ情報取得エラー 'n>0: キーワードエラー(n番目のキーワードでエラー) '■SetPrtEx (PortName$, items$, lWidth&, lHeight&) 'PortName(I): プリンタポート名("LPT1","np56232f-np_lpt1"等。ブランクの場合、『通常使うプリンタ』) 'items(I): 上記 SetPrt()を参照。 '下記 lWidth, lHeight のいずれかを0以外に指定するとユーザ指定の用紙サイズとなる。 'DMPAPER_xxxx 指定を有効にするには、必ず両方に0を指定すること。 'lWidth(I): ユーザ定義用紙の横幅(1/10mmを1単位として指定する。例: 100 = 10mm) 'lHeight(I): ユーザ定義用紙の縦長(1/10mmを1単位として指定する。例: 100 = 10mm) '戻り値 '-999: 『プリンタ』(WIN.INI/[Windows]: device=prtname,drvname,portname) 解析エラー '-9999: プリンタドライバのロードエラー '-9998: プリンタドライバ情報取得エラー 'n>0: キーワードエラー(n番目のキーワードでエラー)