ネットワーク・ローカルにつながっているプリンタ名を取得するのにEnumPrinters()API
を使い、その一覧を取得する事はできましたが、その中でどれがデフォルトなのかを
どうやって判定したらいいのか分かりません。
Win98の場合はプリンタ情報レベル2で取得し、PRINTER_INFO_2の中のAttributesを
チェックすれば良いようですが、WinXPの場合はこれではダメのようです。
GetDefaultPrinter()APIはロ-カルプリンタのみのようですので、ネットワークプリンタ
がデフォルトの場合は名前の取得に失敗します。
とりあえずデフォルトプリンタ名を取得できれば一覧から一致する物を見つける事ができ
ますので、ローカル・ネットワークを含めたデフォルトプリンタの名前を取得できれば
OKです。
どうやったら取得できるのでしょうか?
win.iniにもそれらしい物は見つかりませんでした・・・
環境はVC++6.0SP6 MFC未使用 WinXPです。
既定のプリンタ(通常使うプリンタ)に関する情報を取得するには、セクション名を表
す文字列に windows、キー名を表す文字列に device を設定して
GetProfileString 関数を呼び出してください。既定のプリンタの名前、プリンタの
DRV ファイルの名前、プリンタの接続ポートからなる文字列が返ります。
と、EnumPrinters()APIのマニュアルに書いてあります。
ありがとうございます。
確認しましたが、確かに取得できました。
> EnumPrinters()APIのマニュアルに書いてあります。
私のMSDNライブラリにはのってませんねぇ。(2001/10月)
APIマニュアルって何でしょう?
MSDNが古いだけなのかな?
ともあれ問題は解決しました、ありがとうございます。
ごめんなさい、MSDNにバッチリ書かれてました。
見落としてたようです。