ScriptPlaceOpenType 函式 (usp10.h)
使用ScriptShapeOpenType輸出的 OpenType 資訊,產生 Unicode 的字元和視覺屬性。
語法
HRESULT ScriptPlaceOpenType(
[in, optional] HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in, out] SCRIPT_ANALYSIS *psa,
[in] OPENTYPE_TAG tagScript,
[in] OPENTYPE_TAG tagLangSys,
[in, optional] int *rcRangeChars,
[in, optional] TEXTRANGE_PROPERTIES **rpRangeProperties,
[in] int cRanges,
[in] const WCHAR *pwcChars,
[in] WORD *pwLogClust,
[in] SCRIPT_CHARPROP *pCharProps,
[in] int cChars,
[in] const WORD *pwGlyphs,
[in] const SCRIPT_GLYPHPROP *pGlyphProps,
[in] int cGlyphs,
[out] int *piAdvance,
[out] GOFFSET *pGoffset,
[out, optional] ABC *pABC
);
參數
[in, optional] hdc
裝置內容的控制碼。 如需詳細資訊,請參閱 快取。
[in, out] psc
識別腳本快取 之SCRIPT_CACHE 結構的指標。
[in, out] psa
從先前呼叫ScriptItemizeOpenType取得之SCRIPT_ANALYSIS結構的指標。 此結構會識別控管所產生字元及其相關聯寬度清單的成形引擎,以及 x 和 y 放置位移。
或者,應用程式可以將此參數設定為 Null ,以接收未篩選的結果。
[in] tagScript
包含 OpenType 腳本標籤的 OPENTYPE_TAG 結構,可供寫入系統使用。
[in] tagLangSys
包含撰寫系統的 OpenType 語言標記 的OPENTYPE_TAG 結構。
[in, optional] rcRangeChars
每個範圍中字元數的陣列。 cRanges參數中會指出成員數目。 值總計應該等於 cChars的值。
[in, optional] rpRangeProperties
定義每個範圍屬性 之TEXTRANGE_PROPERTIES 結構的陣列。 元素數目是由 cRanges 參數所定義。
[in] cRanges
OpenType 功能範圍的數目。
[in] pwcChars
包含執行之 Unicode 字元陣列的指標。 元素數目是由 cRanges 參數所定義。
[in] pwLogClust
邏輯叢集資訊的陣列指標。 陣列中的每個元素都會對應至 pwcChars所定義陣列中的字元。 每個元素的值都是從執行中第一個圖像到包含對應字元之叢集中第一個圖像的位移。 請注意,當SCRIPT_ANALYSIS結構的fRTL成員設定為TRUE時,pwLogClust中的元素會在讀取陣列時減少。
[in] pCharProps
Unicode 執行中字元屬性值陣列的指標。
[in] cChars
Unicode 執行中的字元數。
[in] pwGlyphs
從先前呼叫 ScriptShapeOpenType 函式取得的字元緩衝區指標。
[in] pGlyphProps
要擷取之每個圖像的屬性陣列指標。 值的數目等於 cGlyphs的值。 由於每個字元都有一個字元屬性,因此此參數具有 cGlyphs所指示的元素數目。
[in] cGlyphs
字元陣列緩衝區中的字元計數。
[out] piAdvance
陣列的指標,其長度為 cGlyphs,在此陣列中,此函式會擷取 進階寬度 資訊。
[out] pGoffset
GOFFSET結構的陣列指標,此結構會擷取結合圖像的 x 和 y 位移。 此陣列的長度必須是 cGlyphs所指出。
[out, optional] pABC
傳回值
若成功,即傳回 0。 如果函式不成功,函式會傳回非零 HRESULT 值。 在所有錯誤情況下,輸出值都是未定義的。 應用程式可以使用 SUCCEEDED 和 FAILED 宏來測試傳回值。
如果 cGlyphs 所指示的輸出緩衝區長度太小,此函式會傳回E_OUTOFMEMORY。 應用程式可以嘗試使用較大的緩衝區再次呼叫。
函式會傳回E_PENDING如果 psc 參數指定的腳本快取未包含足夠的資訊來放置字元,而且 hdc 參數會以 Null 傳遞,讓函式無法完成放置程式。 應用程式應該為執行設定正確的裝置內容,並在 hdc 中以適當的值和所有其他參數再次呼叫此函式。
備註
此函式優先于較舊的 ScriptPlace 函式。 ScriptPlaceOpenType的一些優點包括:
- 參數會直接對應至字型配置表格中的 OpenType 標記。
- 參數會定義套用至每個字元的功能。 輸入分成範圍,而且每個範圍都有與其相關聯的 OpenType 屬性。
除非 fLogicalOrder 成員設定在SCRIPT_ANALYSIS 結構中 ,否則所有陣列都是以視覺順序設定,由 SCRIPT_ANALYSIS 參數指示。
規格需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | usp10.h |
程式庫 | Usp10.lib |
Dll | Usp10.dll |
可轉散發套件 | 在 Windows XP 上 Usp10.dll 1.600 版或更新版本 |