SHInvokePrinterCommandW 函数 (shellapi.h)

对打印机对象执行命令。

注意 从 Windows Vista 开始,此函数已弃用。 建议通过 IContextMenuShellExecute 在打印机上调用谓词。
 

语法

BOOL SHInvokePrinterCommandW(
  [in, optional] HWND    hwnd,
                 UINT    uAction,
  [in]           LPCWSTR lpBuf1,
  [in, optional] LPCWSTR lpBuf2,
                 BOOL    fModal
);

参数

[in, optional] hwnd

类型:HWND

操作期间创建的任何窗口或对话框的父窗口的句柄。

uAction

类型: UINT

要执行的打印机操作的类型。 以下值之一:

PRINTACTION_OPEN (0)

0x0。 打开 lpBuf1 指定的打印机。 忽略 lpBuf2 参数。

PRINTACTION_PROPERTIES (1)

0x1。 显示 lpBuf1 指定的打印机的属性页。 lpBuf2 参数可以为 NULL,也可以按名称或数字命名要显示的特定属性表。 如果 lpBuf2 的高 WORD 为非零值,则假定此参数是指向包含要打开的工作表名称的缓冲区的指针。 否则, lpBuf2 被视为要打开的属性表的从零开始的索引。

PRINTACTION_NETINSTALL (2)

0x2。 安装 由 lpBuf1 指定的网络打印机。 忽略 lpBuf2 参数。

0x3。 创建 由 lpBuf1 指定的网络打印机的快捷方式。 lpBuf2 参数指定要在其中创建快捷方式的文件夹的驱动器和路径。 网络打印机必须已安装在本地计算机上。

PRINTACTION_TESTPAGE (4)

0x4。 在 lpBuf1 指定的打印机上打印测试页。 忽略 lpBuf2 参数。

PRINTACTION_OPENNETPRN (5)

0x5。 打开 lpBuf1 指定的网络打印机。 忽略 lpBuf2 参数。

PRINTACTION_DOCUMENTDEFAULTS (6)

0x6。 显示 由 lpBuf1 指定的打印机的默认文档属性。 忽略 lpBuf2 参数。

PRINTACTION_SERVERPROPERTIES (7)

0x7。 显示 由 lpBuf1 指定的打印机服务器的属性。 忽略 lpBuf2 参数。

[in] lpBuf1

类型: LPCTSTR

指向以 null 结尾的字符串的指针,该字符串包含打印机命令的其他信息。 此参数中包含的信息取决于 uAction 的值。

[in, optional] lpBuf2

类型: LPCTSTR

指向以 null 结尾的字符串的指针,该字符串包含打印机命令的其他信息。 此参数中包含的信息取决于 uAction 的值。

fModal

类型: BOOL

如果 指定 SHInvokePrinterCommand 在命令完成之前不应返回,则为 TRUE; 如果 函数应在命令初始化后立即返回,则为 FALSE。

返回值

类型: BOOL

如果成功,则返回 TRUE ;否则为 FALSE

注解

当打印机名称由 lpBuf1 指定时,该名称可以是本地打印机的名称,也可以是网络打印机的服务器和共享名称。 指定网络打印机名称时,必须按以下格式指定该名称:

"\\<server><shared printer name>"

此函数在 Shell 版本 4.71 及更高版本中实现。 为了保持与以前的 Shell 版本的向后兼容性,不应显式使用此函数。 相反,应使用 LoadLibraryGetProcAddress 函数来获取函数地址。

注意

shellapi.h 标头将 SHInvokePrinterCommand 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 shellapi.h
Library Shell32.lib
DLL Shell32.dll (4.71 或更高版本)