Windows印表機驅動開發筆記(二)

來源:互聯網
上載者:User
這部分介紹如何編寫Rendering Plug-Ins。

這個plug-in是一個COM組件,需要向系統提供一個IPrintOemUni2介面的COM組件。

其中比較重要的函數是:
1.EnableDriver
2.DisableDriver
在EnableDriver中需要註冊一組函數指標數組,這些函數用來hook中相應的DDI解釋部分。這樣就可以改變預設Universal Printer Driver的行為。

3.
EnablePDEV建立印表機廠商自訂的資料結構,然後初始化這個資料結構。
4.
DisablePDEV負責回收這個資料結構的所佔用的記憶體。

重要資料結構
typedef struct _DEVOBJ {
  DWORD  dwSize;//這個資料結構的大小
  PDEVOEM  pdevOEM;//自訂OEM資料結構的指標
  HANDLE  hEngine;//物理裝置的handle
  HANDLE  hPrinter;//印表機控制代碼
  HANDLE  hOEM;
  PDEVMODE  pPublicDM;
  PVOID  pOEMDM;
  PDRVPROCS  pDrvProcs;
} DEVOBJ;

5.
GetInfo函數是負責得到一些印表機的一些資訊。

6.PublishDriverInterface
這個函數可以在其中得到

IPrintOemDriverUni 介面指標,這個指標非常有用,可以調用Universal Printer Driver提供的一些功能。
如向印表機輸出命令,DrvWriteSpoolBuf。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.