SHInvokePrinterCommandA 函数 (shellapi.h)

对打印机对象执行命令。

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

语法

BOOL SHInvokePrinterCommandA(
  [in, optional] HWND   hwnd,
                 UINT   uAction,
  [in]           LPCSTR lpBuf1,
  [in, optional] LPCSTR 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

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

返回值

类型:BOOL

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

言论

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

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

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

注意

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

要求

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