现在的位置: 首页 > 综合 > 正文

SHInvokePrinterCommand 打开打印机

2013年10月03日 ⁄ 综合 ⁄ 共 448字 ⁄ 字号 评论关闭

 

#include <WinSpool.h>
#pragma comment(lib, "Winspool.lib")

#include <shellapi.h>
#pragma comment(lib, "shell32.lib")

BOOL OpenDefaultPrinter()
{
  BOOL bRet = FALSE;

  DWORD dwSize = 0;
  if(!GetDefaultPrinter(NULL, &dwSize) 
    && GetLastError()==ERROR_INSUFFICIENT_BUFFER)
  {
    TCHAR *szPrinter = new TCHAR[dwSize+1];
    if(GetDefaultPrinter(szPrinter, &dwSize))
    {
      if(SHInvokePrinterCommand(
        NULL, //GetSafeHwnd(), 
        PRINTACTION_OPEN,
        szPrinter,
        NULL,
        FALSE))
      {
        bRet = TRUE;
      }
    }
    delete []szPrinter;
  }

  return bRet;
}

抱歉!评论已关闭.