IViewObject::GetColorSet 方法 (oleidl.h)
傳回物件將用來繪製其 IViewObject::D raw 方法與對應參數的邏輯調色盤。
語法
HRESULT GetColorSet(
[in] DWORD dwDrawAspect,
[in] LONG lindex,
[in] void *pvAspect,
[in] DVTARGETDEVICE *ptd,
[in] HDC hicTargetDev,
[out] LOGPALETTE **ppColorSet
);
參數
[in] dwDrawAspect
指定物件要進行表示的方式。 表示法包括內容、圖示、縮圖或列印的檔。 有效值取自列舉 DVASPECT。 如需詳細資訊,請參閱 DVASPECT 列舉。
[in] lindex
想要進行繪製作業的物件部分。 其解譯會隨著 dwDrawAspect 而有所不同。 如需詳細資訊,請參閱 DVASPECT 列舉。
[in] pvAspect
有關 dwDrawAspect 中所指定之對象檢視之其他資訊的指標。 由於目前層面都不支援其他資訊, pvAspect 必須一律為 NULL。
[in] ptd
DVTARGETDEVICE 結構的指標,描述要呈現對象的裝置。 如果 為 NULL,則應該針對預設目標裝置轉譯檢視, (通常是顯示) 。 NULL 以外的值會與 hicTargetDev 和 hdcDraw 一起解譯。 例如,如果 hdcDraw 將印表機指定為裝置內容,ptd 會指向描述該印表機裝置的結構。 如果 hicTargetDev 是有效的值,或 hicTargetDev 為 NULL,則數據可能會實際列印在列印預覽模式中。
[in] hicTargetDev
由 ptd 參數指示的目標裝置資訊內容,物件可從中擷取裝置計量並測試裝置的功能。 如果 ptd 為 NULL,對象應該忽略 hicTargetDev 參數。
[out] ppColorSet
LOGPALETTE 指標變數的位址,該變數會接收LOGPALETTE結構的指標。 LOGPALETTE 結構包含一組色彩,如果 呼叫 IViewObject::D raw 時,會使用相同的 dwAspect、 lindex、 pvAspect、 ptd 和 hicTargetDev 的參數來使用。 如果 ppColorSet 為 NULL,則物件不會使用調色盤。
傳回值
此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。
傳回碼 | Description |
---|---|
|
色彩集是空的,或物件不會提供資訊。 |
|
對象沒有表示數據。 |
|
lindex 的值無效;目前僅支援 -1。 |
|
dwAspect 的值無效。 |
|
提供的一或多個參數值無效。 |
|
此作業的記憶體不足。 |
備註
IViewObject::GetColorSet 方法會以遞歸方式查詢任何巢狀物件,並傳回代表要求之所有色彩聯集的色彩集。 色彩集最終會將色彩設定為擁有視窗框架的最上層容器。 此容器可以在每個內嵌物件上呼叫 IViewObject::GetColorSet ,以取得繪製內嵌物件所需的所有色彩。 容器可以使用與本身設定整體調色盤所需的其他色彩搭配取得的色彩集。
IViewObject::GetColorSet 的 OLE 提供實作會查看它手邊繪製圖片的數據。 如果CF_DIB是繪圖格式,則會使用位圖中找到的調色盤。 若為一般點陣圖,則不會傳回色彩資訊。 如果繪圖格式是元檔,則對象處理程式會列舉尋找 CreatePalette 元文件記錄的元檔。 如果找到其中一個,處理程式會使用它做為色彩集。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | oleidl.h |