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 專業版、Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 shellapi.h
程式庫 Shell32.lib
Dll Shell32.dll (4.71 版或更新版本)