jvGetPrinterString(プリンタプロパティ文字情報取得)

プリンタプロパティの各種文字情報を取得します。

[構文]
 
Function jvGetPrinterString(ByVal prnName As String, ByVal mode As Long, ByVal bufLen As Long, ByVal buffer As String)As Long
 
C言語
int jvGetPrinterString(char *prnName , int mode, int bufLen, char *buffer );
 
JAVA
int jvGetPrinterString(String prnName , int mode, int bufLen, StringBuffer buffer );
 
Delphi
Function jvGetFieldString(prnName : PAnsiChar; mode, bufLen: Longint; buffer : PAnsiChar): Longint;
 
 

設定項目

内容

prnName

プリンタ名

mode

プロパティの種類(設定値参照)

bufLen

情報取得バッファ(buffer)のサイズ

buffer

情報を取得するバッファ

 
リターンコード
 

定数

内容

 

1以上

情報取得に必要なバッファのサイズ

 

0

正常終了

JV_ERR_PARAMETER

-2

パラメータエラー

JV_ERR_OPEN_STDPRN

-103

通常使用するプリンタが指定されていない

JV_ERR_GETPRINTER_INFO

-128

プリンタ情報取得エラー

 
[設定値]
 
prnName mode の値によって設定値が異なります。mode によって次の値を設定してください。
   

mode の値

prnName 設定する値

JV_PRNSTR_SERVER

プリンタ名。未指定の場合、デフォルトプリンタ(※1)を使用。

JV_PRNSTR_PROCESSOR

プリンタ名。未指定の場合、デフォルトプリンタ(※1)を使用。

JV_PRNSTR_DATATYPE

プリンタ名。未指定の場合、デフォルトプリンタ(※1)を使用。

JV_PRNSTR_SERVER_ALL

何も指定しない。

JV_PRNSTR_PROCESSOR_ALL

プリントサーバー名。未指定の場合、ローカルサーバーを使用。

JV_PRNSTR_DATATYPE_ALL

プリントサーバー名とプリントプロセッサ名(※2)。未指定の場合、ローカルサーバーを使用。

※1:デフォルトプリンタとは、コントロールパネルで通常使うプリンタに指定されているプリンタです。
※2:プリントサーバー名とプリントプロセッサ名はカンマで区切って指定します。(例:\\server1,winprint)
 
mode には次の値を設定します。
 

定数

内容

JV_PRNSTR_SERVER

1

指定したプリンタのプリントサーバー名を取得

JV_PRNSTR_PROCESSOR

2

指定したプリンタのプリントプロセッサ名を取得

JV_PRNSTR_DATATYPE

3

指定したプリンタのプリントデータ型を取得

JV_PRNSTR_SERVER_ALL

4

すべてのプリントサーバー名を取得

JV_PRNSTR_PROCESSOR_ALL

5

指定したプリントサーバーのすべてのプリントプロセッサ名を取得

JV_PRNSTR_DATATYPE_ALL

6

指定したプリントプロセッサのすべてのプリントデータ型を取得

     
[解説]
 
jvGetPrinterStringは、コントロールパネルのプリンターのプロパティ詳細設定画面にあるプロパティの設定値をアプリケーション側で取得するための関数です。これらのプロパティは、コントロールパネルのプリンターのプロパティ詳細設定画面から確認することもできます。
 
jvGetPrinterStringでは文字型の値を持つプロパティの設定値を取得します。 数値型を取得する時はjvGetPrinterLongを使います。
値を設定する時はjvSetPrinterStringを使います。
 
jvGetPrinterStringはどこでもコールすることができます。
 
※各プロパティの詳細は、Microsoft社が提供するWindowsのヘルプなどをご参照ください。
   
[コーディング例]
 
Dim buflen As Long
Dim buffer As String
 
'すべてのプリントサーバー名の取得
buflen = jvGetPrinterString("", JV_PRNSTR_SERVER_ALL, 0, buffer)
If buflen > 0 Then
buffer = Space(buflen)
ret = jvGetPrinterString("", JV_PRNSTR_SERVER_ALL, buflen, buffer)
End If
 
'プリントサーバー名の取得
buflen = jvGetPrinterString("PM-G860", JV_PRNSTR_SERVER, 0, sPrintServer)
If buflen > 0 Then
sPrintServer = Space(buflen)
ret = jvGetPrinterString("PM-G860", JV_PRNSTR_SERVER, buflen, sPrintServer)
End If