IPrintCorePS2::GetOptions 方法 (prcomoem.h)
方法會 IPrintCorePS2::GetOptions
以功能/選項關鍵片語清單的格式擷取驅動程式目前的功能設定。
語法
HRESULT GetOptions(
[in] PDEVOBJ pdevobj,
[in] DWORD dwFlags,
[in] PCZZSTR pmszFeaturesRequested,
[in] DWORD cbIn,
[out] PZZSTR pmszFeatureOptionBuf,
[in] DWORD cbSize,
[out] PDWORD pcbNeeded
);
參數
[in] pdevobj
DEVOBJ 結構的指標。
[in] dwFlags
為保留,且必須設定為零。
[in] pmszFeaturesRequested
呼叫端提供的緩衝區指標,其中包含MULTI_SZ格式 (功能關鍵詞清單,) 要求設定。 將此參數設定為 NULL ,以取得所有功能的設定。
[in] cbIn
指定 pmszFeaturesRequested 所指向之緩衝區的大小,以位元組為單位。 大小包含最後一個MULTI_SZ null 字元。
[out] pmszFeatureOptionBuf
呼叫端提供的緩衝區指標,接收從驅動程式設定取得MULTI_SZ格式的功能/選項關鍵片語清單) (。 每個功能/選項關鍵片語都包含功能關鍵詞名稱、Null 字元、選項關鍵詞名稱,以及另一個 Null 字元。 清單會以兩個NULL 字元終止。
[in] cbSize
指定 pmszFeatureOptionBuf 所指向之緩衝區的大小,以位元組為單位。
[out] pcbNeeded
接收所要求數據之實際大小的記憶體位置指標,以位元組為單位。
傳回值
方法必須傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
cbSize 中的值小於要寫入輸出緩衝區的位元元組數目, (pmszFeatureOptionBuf 所指向的緩衝區) 。
方法已呼叫, 並將 pmszFeatureOptionBuf 設定為 NULL。 |
|
已提供 pmszFeaturesRequested) 所指向的緩衝區 (輸入緩衝區,但其內容不是MULTI_SZ格式。
pdevobj 參數指向無效的驅動程序內容物件。 |
|
不支援此方法。 |
|
方法失敗。 |
備註
這個方法同時支援 檔黏性 與 印表機黏性 功能。 只有在核心驅動程式完成 DrvEnablePDEV 處理之後,才會支援它,這會設定所有選項設定。 IPrintCorePS2::GetOptions
不支援時呼叫 時,應該會讓它傳回E_NOTIMPL。 例如,當核心驅動程式呼叫轉譯外掛程式的 IPrintOemPS::EnablePDEV 方法時,驅動程式仍會佔用其 DrvEnablePDEV 處理,因此,如果外掛程式的 IPrintOemPS::D evMode 方法內外掛程式呼叫IPrintCorePS2::GetOptions
,外掛程式就會接收E_NOTIMPL傳回值。 不過,因為外掛程式的 IPrintOemPS::EnablePDEV 方法會在核心驅動程式完成 DrvEnablePDEV 處理之後呼叫,所以外掛程式能夠在其 IPrintOemPS::EnablePDEV 方法內成功呼叫IPrintCorePS2::GetOptions
。
如果無法辨識要求的功能關鍵詞,或辨識功能,但目前沒有選項選取,則會忽略此功能,而且功能/選項關鍵詞組不會放在輸出緩衝區中。
若要減少每個數據存取兩次呼叫的需求,請傳遞固定大小的輸出緩衝區 (1 KB,例如) ,然後檢查函式傳回值。 如果方法傳回S_OK,則緩衝區已經包含感興趣的數據。 如果方法傳回E_OUTOFMEMORY,*azureNeeded 中的值就是保存感興趣的數據所需的緩衝區大小。 接著呼叫端應該配置該較大大小的緩衝區,然後繼續進行方法的第二次呼叫。
任何 Pscript5 轉譯外掛程式都支援此方法。
如需詳細資訊,請參閱 使用 GetOptions 和 SetOptions。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | prcomoem.h (包括 Prcomoem.h) |