■69373 / inTopicNo.12) |
Re[5]: プリンタをVB.NETからカラー設定する |
□投稿者/ Jitta (126回)-(2013/12/19(Thu) 21:09:35)
|
■No69357 (オショウ さん) に返信
> いては、ドライバーのバグなのか・・・それとも仕様なのか・・・ ごめんなさい、こっちがメインだった。 XBox から入力していたのですが、間違って[Back]キーを押して、 入力していたものを消してしまい、50音表から入力するのが面倒になってしまったのでした。
改めて。 ドライバーは関係ないです!!
現在有効なプリンター ドライバーには、V3 と呼ばれるものと V4 と呼ばれるものの2種類があります。 V3 ドライバーの開発に関わっています。(昨年、他部署から引き継いだ) V4 については、ドキュメントを拾い読みしている程度です。 キヤノンのドライバーがどちらで実装しているのか、分かりません。
私が知っている範囲では、SetPrinter 関数でドライバー関数が呼び出されることはありません。 GetPrinter, SetPrinter は、スプーラーまでしか関与していません。 ドライバーへ DEVMODE を問い合わせるには、DocumentProperties 関数を使用します。 http://msdn.microsoft.com/ja-jp/library/cc428447.aspx
日本語の GetPrinter 関数の説明にはかかれていませんが、 英語の GetPrinter function の Remarks セクションには、 レベル2や3、PRINTER_INFO_2, PRINTER_INFO_3 にはセキュリティ記述子を含んでいるので、 セキュリティ記述子へのアクセス権を指定して OpenPrinter を呼び出せ、と書かれています。 エラーになったのは、こちらの方が引っかかったのではないでしょうか。 http://msdn.microsoft.com/en-us/library/windows/desktop/dd144911.aspx > For the PRINTER_INFO_2 and PRINTER_INFO_3 structures that contain > a pointer to a security descriptor, the function retrieves only those > components of the security descriptor that the caller has permission > to read. To retrieve particular security descriptor components, you > must specify the necessary access rights when you call the OpenPrinter > function to retrieve a handle to the printer.
プリンターは、Windows Vista 以降でだいぶ変わっています。 Win32 API の日本語ドキュメントは、Windows 2000 くらいで止まっているので、 英語を参照した方が良いと思います。
|
|