以下の内容はhttps://kkamegawa.hatenablog.jp/entry/20060705/p2より取得しました。


CreateDCでACCESS_DENY

DEVNAMESとDEVMODE構造体を自前で作るとCreateDCでACCESS_DENY(GetLastError()が5)なのに、PrintDlg()で表示したプリンタダイアログからもらったPRINTDLG構造体の中のDEVMODE,DEVNAMESのハンドルを渡せばOK…という現象が手元でおこっている。
実際CreateDCやっているのは私じゃなくて、よそ様のライブラリなのだけれど…うーん、わからん。サーバ処理だから、PrintDlg()でUI出すのはできないのだけれど、フックして指定したプリンタを選択したことにしてしまうか…なぁ。ちなみにやっているのはこんな手順。

  • OpenPrinter()
  • EnumPrinters()でPRINTER_INFO_2を取得。
  • PRINTER_INFO_2からDEVNAMES,DEVMODE構造体の領域をGlobalAlloc/Lockで取得して、そのハンドルを渡す。



以上の内容はhttps://kkamegawa.hatenablog.jp/entry/20060705/p2より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14