VB 開発向け
プリンタドライバ・ビューア
プログラミング＆リファレンス

はじめに
本書は、 STARFAX Server SDK のプ
プリンタドライバとビビューアプログラムの仕様のご説明と、それらを利用するユーザープログラムの作成方法をご説明しています。
なお、本書は、Visual Basic 6.0(※) を開発ツールとしてプログラムを作成する方を対象としています。
本書をお読みになる前に、 ｢STARFAX Server SDK セットアップマニュアル｣ をお読みいただき、STARFAXServer SDK の動作をご理解していただくようお願いいたします。
※ VB.NET2003 向けのサンプルを別途用意しています。これは、VB6.0 のサンプルプログラムをコンバートし、単純なコンバートでは問題のある箇所に修正を加えたものです。
なお、本書中の記述で VB.NET2003 サンプルプログラムの収録フォルダについては、「VB6 SP6」を「VB.net 2003」と読み替えてください。
■ ご注意
本書に登場するシステム名・製品名は、一般に開発メーカーの登録商標です。

本書の構成について
本書は、次のような内容で構成されています。
● 第Ⅰ章 ユーザープログラムの開発について● 第Ⅱ章 サンプルプログラム● 第Ⅲ章 リファレンス
まずは、第Ⅰ章に開発の手順等をご説明していますので、 第Ⅰ章をご覧になってから第Ⅱ章にお進み下さい。
第Ⅲ章 リファレンス には、プリンタドライバとビビューアプログラムの仕様についてご説明しています。

1

目次
はじめに
本書の構成について････････････････

１
１････････

４････････

６

第Ⅰ章 ユーザープログラムの開発について
1.1 開発の手順

第Ⅱ章 サンプルプログラム
2.1 印刷結果のＦＡＸ送信… ( PrtCli.exe )2.1.1 印刷結果を得る
2.1.2 印刷結果を表示する････････
８････････ １０

2.2 TIFF ファイルの作成とＦＡＸ送信 … ( PrtCli2.exe )2.2.1 印刷結果を得る
2.2.2 印刷結果を表示する････････ １２････････ １３････････ １９

第Ⅲ章 リファレンス
3.1 プリンタドライバの仕様
3.2 ビューアプログラムの仕様････････ ２２････････ ２３2

第Ⅰ章
ユーザープログラムの開発についてユーザープログラムの開発の手順についてご説明しています。

1.1 開発の手順

3

1.1 開発の手順
STARFAX Server SDK を操作するユーザープログラムは、 STARFAX Server SDK が動作していることが前提です。従って、ユーザープログラム開発を行う前に STARFAX Server SDK 本体のインストールを行い、その操作を簡単に理解しておく必要があります。
それらを考慮して、以下の手順でユーザープログラム開発を行うことをお奨めします。
① ｢STARFAX Server SDK セットアップマニュアル｣ をお読みください。
● STARFAX Server SDK 本体のインストールを行って下さい。
● 基本的な操作を理解してください。
② 第Ⅱ章 サンプルプログラム を学習してください。
● サンプルプログラムは２種類用意しています。
◇ ワード・エクセル等のアプリケーションからＦＡＸ送信したい場合→ 印刷結果のＦＡＸ送信 ( PrtCli.exe )ワード・エクセル等のアプリケーションから手動で印刷後、プリンタドライバからユーザープログラムが起動されます。
◇ ユーザープログラムからＦＡＸ原稿を作成して、ＦＡＸ送信したい場合→ TIFF ファイルの作成とＦＡＸ送信 ( PrtCli2.exe )ユーザープログラムがプリンタドライバを制御して印刷結果(TIFF ファイル)を取得します。
● 各サンプルプログラムの説明は次の各項をご覧ください。

2.1 印刷結果のＦＡＸ送信 … ( PrtCli.exe )2.2 TIFF ファイルの作成とＦＡＸ送信 … ( PrtCli2.exe )③ ユーザープログラムを作成してください。
● ①～② を踏まえて、ユーザープログラムの作成・テストを行って下さい。

4

第Ⅱ章
サンプルプログラム
プリンタドライバとビューアプログラムを利用するサンプルプログラムです。

2.1 印刷結果のＦＡＸ送信 … ( PrtCli.exe )2.2 TIFF ファイルの作成とＦＡＸ送信 … ( PrtCli2.exe )5

2.1 印刷結果のＦＡＸ送信 … ( PrtCli.exe )印刷結果のＦＡＸ送信プログラム【PrtCli.exe】 は、印刷結果の表示と FAX 送信を行うサンプルプ
ログラムです。本 CD-ROM の以下の位置に入っています。ワード・エクセル等のアプリケーションから手動で印刷後、プリンタドライバからユーザープログラムが起動されます。
\サンプル\VB6 SP6\PrtCli.exe ... 印刷結果のＦＡＸ送信プログラム\サンプル\VB6 SP6\PrtCli\... 印刷結果のＦＡＸプログラム 開発プロジェクト
主な、仕様、及び、操作方法は以下の通りです。
①

STARFAX Server SDK を起動します。
(STARFAX Server SDK の起動は、｢STARFAX Server SDK セットアップアニュアル｣ P21 参照)② 以下のププリンタドライバ の動作に関するレジストリを指定します。
● HKEY_LOCAL_MACHINE\Software\MEGASOFT\SfCs\OutFolder … ファイル出力フォルダ
文字列項目で、任意の作業フォルダを作成して指定します。
( 例: "C:\Program Files\SfCs\Temp" )● HKEY_LOCAL_MACHINE\Software\MEGASOFT\SfCs\DocName …ドキュメント名
文字列項目で、 このサンプルプログラムの場合、任意の文字列を指定します。
( 例: "SFCSPRN" )● HKEY_LOCAL_MACHINE\Software\MEGASOFT\SfCs\ExecFlag …プログラム実行フラグ
DWORD 項目で、 1 を指定します。
● HKEY_LOCAL_MACHINE\Software\MEGASOFT\SfCs\ExecPath …プログラムパス
文字列項目で、 PrtCli.exe をフルパスで指定します。
( 例: "C:\Program Files\SfCs\PrtCli.exe" )● HKEY_LOCAL_MACHINE\Software\MEGASOFT\SfCs\ExecParam …追加パラメータ
文字列項目で、 何も指定していない状態( "" ) を設定します。
(詳細は 3.1 プリンタドライバ の仕様 をご覧下さい。)③ 印刷可能な適当なアプリケーション(ワード等)から プリンタ名 "MEGASOFT STARFAX Engine"に対して印刷を行うと 印刷結果のＦＡＸ送信プログラム【PrtCli.exe】 が起動して、印刷結果が送信する内容として指定された状態になります。

6

④ 表示(V)ボタンを押して、印刷結果の内容を確認します。
⑤ ＦＡＸ送信(S)ボタンを押して、FAX 送信を行います。 (これでプログラムは終了します。)
この後、FAX 送信が正常に動作していない場合は、 STARFAX Server SDK ログ管理プログラム でイベントの内容を確認して下さい。
(FAX 送信は、 STARFAX OCX の FAX 送信コントロール [ SFCSSendFax ] を使用しています。
詳細は、 ｢STARFAX Server SDK VB 開発向け OCX リファレンスマニュアル｣ の 2.1 FAX 送信コントロール [ SFCSSendFax ] をご覧下さい。)

7

2.1 印刷結果のＦＡＸ送信 … ( PrtCli.exe )2.1.1 印刷結果を得る
プリンタドライバで印刷した結果を得る方法を、印刷結果のＦＡＸ送信プログラム
開発プロジェクトのソースファイルを元にご説明します。
印刷結果のＦＡＸ送信プログラム【PrtCli.exe】 の仕様、および操作方法については、2.1 印刷
結果のＦＡＸ送信 をご覧下さい。
開発プロジェクトは、本 CD-ROM の以下の位置に入っています。
\サンプル\VB6 SP6\PrtCli\ ... 印刷結果のＦＡＸ送信プログラム 開発プロジェクト■ 印刷結果を得る
プリンタドライバ が印刷終了時に、印刷結果(TIFF ファイル) をパラメータとして、ユーザープログラムを起動することにより、 ユーザープログラム は 印刷結果を得ることができます。
そしてプ
プリンタドライバ が起動するプログラムは、レジストリに登録します。
(レジストリの設定の詳細は 3.1 プリンタドライバ の仕様 をご覧下さい。)

8

Form1.frm :Command() でプ
プリンタドライバ より 渡された 印刷結果(TIFF ファイル) を取得しています。

9

2.1 印刷結果のＦＡＸ送信 … ( PrtCli.exe )2.1.2 印刷結果を表示する
印刷結果(TIFF ファイル)を表示する方法を、印刷結果のＦＡＸ送信プログラム 開発プロジェクトのソースファイルを元にご説明します。
印刷結果のＦＡＸ送信プログラム【PrtCli.exe】 の仕様、および操作方法については、2.1 印刷
結果のＦＡＸ送信 をご覧下さい。
開発プロジェクトは、本 CD-ROM の以下の位置に入っています。
\サンプル\VB6 SP6\PrtCli\ ... 印刷結果のＦＡＸ送信プログラム 開発プロジェクト■ 印刷結果を表示する
ビューアプログラム 起動時に、コマンドラインパラメータに表示させたいファイルを" 囲みで指定して起動することにより、印刷結果(TIFF ファイル)を表示することができます。
(起動時のコマンドラインパラメータの詳細は 3.2 ビューアプログラム の仕様 をご覧下さい。)

10Form1.frm :'*************************************************************' 表示ボタン: クリック'*************************************************************

Private Sub CommandVIEW_Click()Dim strViewExeName, strViewComand, strViewPath As String
Dim strInstall As String'/////////////////////////////////////////////////////////////'// ビューア呼び出し

If SFCSEnv1.GetSfcsFolder(strInstall) = SFCSENV_SUCCESS ThenstrViewExeName = "\SfCsVw.exe"
strViewComand = " /T ビューア "strViewPath = Chr$(34) & strInstall & strViewExeName & Chr$(34) & strViewComand & Chr$(34) & s_strFileName & Chr$(34)Call Shell(strViewPath, vbNormalFocus)
End IfEnd Sub11

2.2 TIFF ファイルの作成とＦＡＸ送信 … ( PrtCli2.exe )TIFF ファイルのＦＡＸ送信プログラム【PrtCli2.exe】 は、TIFF ファイルの作成 と FAX 送信を行うサンプルプログラムです。本 CD-ROM の以下の位置に入っています。ユーザープログラムがプリンタドライバを制御して印刷結果(TIFF ファイル)を取得します。

\サンプル\VB6 SP6\PrtCli2.exe ... TIFF ファイルのＦＡＸ送信プログラム\サンプル\VB6 SP6\PrtCli2\... TIFF ファイルのＦＡＸ送信プログラム 開発プロジェクト
主な、仕様、及び、操作方法は以下の通りです。
①

STARFAX Server SDK を起動します。
(STARFAX Server SDK の起動は、｢STARFAX Server SDK セットアップアニュアル｣ P21 参照)②

PrtCli2.exe を起動します。

③「操作１」の下欄に FAX 原稿に表示させる文字を入力します。

④「①FAX 原稿の作成」ボタンをクリックします。
(作成するファイル名を任意指定したい場合は、[指定]ラジオボタンをクリックして、ファイル名を入力してください。)⑤「②FAX 原稿の表示」ボタンをクリックすると、作成された FAX 原稿がビューアで表示されます。

⑥「操作３」の下欄に送信先の FAX 番号を入力します。

⑦「FAX 送信」ボタンをクリックします。
この後、FAX 送信が正常に動作していない場合は、 STARFAX ログ管理プログラム でイベントの内容を確認して下さい。
(FAX 送信は、 STARFAX OCX の FAX 送信コントロール [ SFCSSendFax ] を使用しています。
詳細は、 ｢STARFAX Server SDK VB 開発向け OCX リファレンスマニュアル｣ の 2.1 FAX 送
信コントロール [ SFCSSendFax ] をご覧下さい。)

12

2.2 TIFF ファイルの作成とＦＡＸ送信 … ( PrtCli2.exe )2.2.1 印刷結果を得る
プリンタドライバで印刷した結果を得る方法を、印刷結果のＦＡＸ送信プログラム
開発プロジェクトのソースファイルを元にご説明します。
TIFF ファイルの作成とＦＡＸ送信プログラム【PrtCli2.exe】 の仕様、および操作方法については、2.2 TIFF ファイルの作成とＦＡＸ送信 をご覧下さい。
開発プロジェクトは、本 CD-ROM の以下の位置に入っています。
\サンプル\VB6 SP6\PrtCli2\ ... TIFF ファイルの作成とＦＡＸ送信プログラム 開発プロジェクト■ 印刷結果を得る
プリンタドライバ が印刷終了時に、印刷結果(TIFF ファイル) を「ファイル出力フォルダ」に出力するので、このフォルダを参照することで、ユーザープログラム は印刷結果を得ることができます。
そして、それらの制御を STARFAX OCX の FAX 送信コントロール [ SFCSSendFax ] が行います。

13

Form1.frm :'*************************************************************' [① ＦＡＸ原稿の作成]ボタン: クリック'*************************************************************

Private Sub CommandPRINT_Click()Dim iRetDim objPr As Object
Dim iPNum As Integer
Dim iPages As Integer
Dim lPageWidth As Long
Dim lPageHeight As LongDim lPageXres As Long
Dim lPageYres As Long
Dim iColor As Integer
Dim strNAMESET As String
Dim strExist As String
Dim iRes As Integer
Dim lRet As Long'------------------------------------------------------------' 作成する TIFF ファイル名の確認

strNAMESET = ""' TIFF ファイル名 ( 0:自動, 1:指定 )If s_lTiffFileNameMode = 1 Then
strNAMESET = TextNAMESET.Text
If strNAMESET = "" Then
MsgBox "TIFF ファイル名を指定してください", vbCritical, s_cstTITLE
Exit SubEnd IfstrNAMESET = strNAMESET + ".TIF"
strExist = s_strPgmData + "\" + strNAMESET
If Dir(strExist) <> "" TheniRes = MsgBox("指定された TIFF ファイルは既に存在します。" & vbCrLf & "上書きしてよろしいですか？", vbQuestion+ vbOKCancel, s_cstTITLE)
If iRes <> vbOK Then
Exit SubEnd IfEnd IfEnd If14

'------------------------------------------------------------' FAX 原稿( TIFF ファイル )のクリア

If s_strTIFFFILE <> "" Then
Kill s_strTIFFFILE
s_strTIFFFILE = ""TextFILE.Text = ""End If'------------------------------------------------------------' STARFAX Server SDK 印刷初期処理

iRet = False
For Each objPr In Printers
If objPr.DeviceName = SFCSPRT_PRINTERNAME Then
Set Printer = objPr
iRet = True
Exit ForEnd IfNext

If iRet = False Then
MsgBox "プリンタドライバが見つかりません", vbCritical, s_cstTITLE
Exit SubEnd If'/////////////////////////////////////////////////////////////'// (1) FAX 送信用の TIFF ファイルの作成準備'//'//

Function SetupPrinter( Folder As String,'//FileName As String ) as Long'//lRet = SFCSSendFax1.SetupPrinter(s_strPgmData, strNAMESET)
If lRet <> SFCSPRINTER_SUCCESS ThenIf lRet = SFCSPRINTER_ERR_PARAM_Folder Then
MsgBox "パラメータエラー: TIFF ファイルを作成するフォルダが指定されていません。", vbExclamation, s_cstTITLE
End IfIf lRet = SFCSPRINTER_ERR_PARAM_NoFolder Then
MsgBox "パラメータエラー: TIFF ファイルを作成するフォルダが存在しません。", vbExclamation, s_cstTITLE
End IfIf lRet = SFCSPRINTER_ERR_REG_ExecFlag ThenMsgBox "プリンタドライバ動作設定値(レジストリ)エラー:" & vbCrLf & "このメソッドを正常に動作させるには、プロ15

グラム実行フラグを 0 にする必要があります。", vbExclamation, s_cstTITLE
End IfIf lRet = SFCSPRINTER_ERR_REG_OutFolder Then
MsgBox "プリンタドライバ動作設定値(レジストリ)エラー:" & vbCrLf & "このメソッドを正常に動作させるには、ファイル出力フォルダを指定する必要があります。", vbExclamation, s_cstTITLE
End IfIf lRet = SFCSPRINTER_ERR_REG_NoOutFolder Then
MsgBox "プリンタドライバ動作設定値(レジストリ)エラー:" & vbCrLf & "ファイル出力フォルダに指定されているフォルダが存在しません。", vbExclamation, s_cstTITLE
End IfIf lRet = SFCSPRINTER_ERR_REG_SameOutFolder Then
MsgBox "プリンタドライバ動作設定値(レジストリ)エラー:" & vbCrLf & "ファイル出力フォルダに指定されているフォルダと" & vbCrLf & "TIFF ファイルを作成するフォルダが同じです。", vbExclamation, s_cstTITLE
End IfIf lRet = SFCSPRINTER_ERR_REG_ClsOutFolder Then
MsgBox "プリンタドライバ動作設定値(レジストリ)エラー:" & vbCrLf & "ファイル出力フォルダ内のクリアに失敗しました。", vbExclamation, s_cstTITLE
End IfExit SubEnd If

DoEvents

MousePointer = ccHourglass' 砂時計～～～～～～～～～～～～～～～～～～～～～～～～～～～
ここでユーザープログラムからプ
プリンタドライバへの印刷を行います。
'------------------------------------------------------------' サンプル印刷

Call PROC_SamplePrint(Printer.hdc, TextTEXT.Text)～～～～～～～～～～～～～～～～～～～～～～～～～～～
MousePointer = ccDefault' 標準

Set objPr = Nothing'------------------------------------------------------------' STARFAX Server SDK 印刷: ファイル出力フォルダ内の印刷完了ファイルの取得

16Dim iRetry As Long
Dim strGetFileName As String
Dim bGet As Boolean

MousePointer = ccHourglass' 砂時計

bGet = False

For iRetry = 1 To 30'/////////////////////////////////////////////////////////////'// (2) FAX 送信用の TIFF ファイルの作成終了'//'//

Function TerminatePrinter() as String'//

strGetFileName = SFCSSendFax1.TerminatePrinter()If strGetFileName = "NG" Then
MsgBox "SetupPrinter メソッドが呼ばれていない、または、正常に終了していません。", vbExclamation, s_cstTITLE
Exit For
Else
If strGetFileName <> "" Then'------------------------------------------------------------' FAX 原稿( TIFF ファイル )の取得
s_strTIFFFILE = strGetFileName
TextFILE.Text = s_strTIFFFILE

bGet = True
Exit ForEnd IfEnd IfSleep 2000

Next iRetry

MousePointer = ccDefault' 標準If bGet = False Then
MsgBox "印刷処理が失敗しました", vbCritical, s_cstTITLE
End IfEnd Sub17

2.2 TIFF ファイルの作成とＦＡＸ送信 … ( PrtCli2.exe )2.2.2 印刷結果を表示する
印刷結果(TIFF ファイル)を表示する方法を、印刷結果のＦＡＸ送信プログラム 開発プロジェクトのソースファイルを元にご説明します。
TIFF ファイルの作成とＦＡＸ送信プログラム【PrtCli2.exe】 の仕様、および操作方法については、2.2TIFF ファイルの作成とＦＡＸ送信 をご覧下さい。
開発プロジェクトは、本 CD-ROM の以下の位置に入っています。
\サンプル\VB6 SP6\PrtCli2\ ... TEFF ファイルの作成とＦＡＸ送信プログラム 開発プロジェクト■ 印刷結果を表示する
ビューアプログラム 起動時に、コマンドラインパラメータに表示させたいファイルを" 囲みで指定して起動することにより、印刷結果(TIFF ファイル)を表示することができます。
(起動時のコマンドラインパラメータの詳細は 3.2 ビューアプログラム の仕様 をご覧下さい。)

18

Form1.frm :'*************************************************************' [ＦＡＸ原稿の表示]ボタン: クリック'*************************************************************

Private Sub CommandVIEW_Click()Dim strViewExeName, strViewComand, strViewPath As String
Dim strInstall As String'/////////////////////////////////////////////////////////////'// ビューア呼び出し

If s_strTIFFFILE <> "" Then
If SFCSEnv1.GetSfcsFolder(strInstall) = SFCSENV_SUCCESS Then
strViewExeName = "\SfCsVw.exe"
strViewComand = " /T ビューア "strViewPath = Chr$(34) & strInstall & strViewExeName & Chr$(34) & strViewComand & Chr$(34) & s_strTIFFFILE &Chr$(34)Call Shell(strViewPath, vbNormalFocus)
End IfElse
MsgBox "[① ＦＡＸ原稿の作成] を行ってください", vbExclamation, s_cstTITLE
End IfEnd Sub

19

第Ⅲ章
リファレンス
プリンタドライバとビューアプログラムの仕様について解説しています。

3.1 プリンタドライバの仕様
3.2 ビューアプログラムの仕様

20

3.1 プリンタドライバの仕様
プリンタドライバの仕様について記述します。

■ プリンタ名"MEGASOFT STARFAX Engine"■ レジストリ 【 HKEY_LOCAL_MACHINE\\Software\\MEGASOFT\\SfCs 】● "OutFolder"● "DocName"... 文字列項目: ファイル出力フォルダ... 文字列項目: ドキュメント名

ファイル出力フォルダに以下のファイルを出力します。
ドキュメント名＋アンダーバー＋日付情報 （ [ドキュメント名]_YYYYMMDDHHMMSSMMM.tif ）● "ExecFlag" ... DWORD 項目: プログラム実行フラグ● "ExecPath" ... 文字列項目: 実行プログラム フルパス
● "ExecParam" ... 文字列項目: 追加コマンドラインパラメータプログラム実行フラグ が 1 の場合、印刷終了後に実行プログラム フルパス で指定されたプログラムを起動します。
コマンドラインパラメータに 印刷結果(TIFF)ファイルのフルパス が " 囲み で設定されます。
追加コマンドラインパラメータ に指定があれば、プログラムを呼び出すときに印刷結果(TIFF)ファイル のフルパス だけでなく、追加コマンドラインパラメータもコマンドラインパラメータ に設定されます。
■ 印刷結果(TIFF ファイル) のファイル形式
拡張子: TIF
ファイル形式: TIFF 形式 モノクロ PackBits 圧縮21

3.2 ビューアプログラムの仕様
ビューアプログラムの仕様について記述します。

■ 起動時のコマンドラインパラメータ● "???" ... 表示するファイル を指定します。
● /T??? ... プログラムのキャプションを指定します。
例: C:\Program Files\SfCs\SfCsVw.exe "D:\Data\Test.TIF" /T テストデータの表示■ 表示できるファイル形式● ＴＩＦＦ形式 圧縮なし
修正ＣＣＩＴＴ ＭＨ 圧縮
ＣＣＩＴＴ Ｇ３ ＭＨ 圧縮
ＣＣＩＴＴ Ｇ３ ＭＲ 圧縮
ＰａｃｋＢｉｔｓ 圧縮
Ｃｌａｓｓ Ｆ 圧縮
Ｇ４ 圧縮
ＪＰＥＧ圧縮● ＢＭＰファイル● ＰＣＸファイル● ＤＣＸファイル● ＪＰＥＧファイル● テキストファイル● ＦＡＸファイル
DOS 版 STARFAX で扱われているファイル形式です。
● ＬＮＫファイル
STARFAX で扱われているファイル形式です。

22