共用方式為


PTGetPrintCapabilities 函式 (prntvpt.h)

擷取符合 XML 印表架構之格式的印表機功能。

語法

HRESULT PTGetPrintCapabilities(
  [in]  HPTPROVIDER hProvider,
  [in]  IStream     *pPrintTicket,
        IStream     *pCapabilities,
  [out] BSTR        *pbstrErrorMessage
);

參數

[in] hProvider

要擷取其列印功能的開啟提供者句柄。 PTOpenProviderPTOpenProviderEx 函式會傳回此句柄。

[in] pPrintTicket

數據流的指標,其搜尋位置位於列印票證內容的開頭。 此參數可以是 Null

pCapabilities

從目前搜尋位置開始,寫入列印功能的數據流指標。

[out] pbstrErrorMessage

字串的指標,指定 pPrintTicket 的相關內容無效。 如果有效,這個值會是 NULL

傳回值

如果作業成功,傳回值會S_OK。

如果在不同的線程中開啟 hProvider則 HRESULT 會E_INVALIDARG。

如果 pPrintTicket 不符合 列印架構則 HRESULT 會E_PRINTTICKET_FORMAT。

如果 pCapabilities 不符合 列印架構則 HRESULT 會E_PRINTCAPABILITIES_FORMAT。

如果在不同的線程中開啟 hProvider則 HRESULT 會E_INVALIDARG。

否則, HRESULT 中會傳回另一個錯誤碼。 如需 COM 錯誤碼的詳細資訊,請參閱 錯誤處理

備註

注意 這是封鎖或同步函式,可能不會立即傳回。 此函式傳回的速度取決於運行時間因素,例如網路狀態、列印伺服器設定和印表機驅動程序實作—撰寫應用程式時難以預測的因素。 從管理與使用者介面互動的線程呼叫此函式,可能會使應用程式看起來沒有回應。
 
hProvider 必須是在與用於此函式之線程相同的線程中開啟的句柄。

當值不是 NULL 時,印表機驅動程式會使用 pPrintTicket 值 (,) 驅動程式產生視目前設定而有所不同的印表機功能時建立設定。

當函式傳回時, pPrintTicket 的搜尋位置位於列印票證內容的結尾,而 pCapabilities 的搜尋位置則位於數據流結尾。 如果呼叫端針對 pCapabilities 使用記憶體數據流,例如 CreateStreamOnHGlobal 所建立的數據流,則呼叫端會負責在讀取數據之前重設搜尋位置。

如果 pbstrErrorMessage 在函式傳回時不是 NULL ,則呼叫端必須使用 SysFreeString 釋放字串。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 prntvpt.h
程式庫 Prntvpt.lib
Dll Prntvpt.dll

另請參閱

列印架構

列印多工緩衝處理器 API 函式

列印