【发布时间】:2013-05-10 22:01:56
【问题描述】:
我有一个处理打印请求的系统服务,并给定用户的打印机名称,然后将 DC 连接到该打印机。它开始一个文档,结束它,然后分离。
m_PrinterDC.CreateDC (L"WINSPOOL", _printerName.c_str(), NULL, NULL)
m_DC.Attach(m_hprinter)
m_DC.StartDoc(...)
...
mDc.TextOut(...)
...
m_DC.EndDoc()
m_DC.Detatch()
这适用于普通打印机,但在使用“打印到 OneNote”功能(驱动程序名称“发送到 OneNote 2010”)时,它似乎不起作用。我想避免仅针对此功能的自定义逻辑;理想情况下,所有打印机都可以正常工作。有什么想法可能会出错吗?我已尝试更新打印机安全设置,以包括所有人的打印权限;不知道还能尝试什么。
【问题讨论】:
-
“它似乎不起作用” - 请更准确。哪个调用失败?您确实检查了返回值,对吗?
-
没有对话框出现'将文档发送到打印机'等。所有调用都没有失败,所有返回预期值(不是每个调用都被检查,但所有设置拆卸都是)。这些函数中的每一个实际上都被称为:
if(m_DC.EndDoc() < 0) LOG(L"Failed to end document printing");,但没有出现错误。