共用方式為


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

ABC結構的指標,此函式會擷取整個執行的ABC 寬度

傳回值

若成功,即傳回 0。 如果函式不成功,函式會傳回非零 HRESULT 值。 在所有錯誤情況下,輸出值都是未定義的。 應用程式可以使用 SUCCEEDEDFAILED 宏來測試傳回值。

如果 cGlyphs 所指示的輸出緩衝區長度太小,此函式會傳回E_OUTOFMEMORY。 應用程式可以嘗試使用較大的緩衝區再次呼叫。

函式會傳回E_PENDING如果 psc 參數指定的腳本快取未包含足夠的資訊來放置字元,而且 hdc 參數會以 Null 傳遞,讓函式無法完成放置程式。 應用程式應該為執行設定正確的裝置內容,並在 hdc 中以適當的值和所有其他參數再次呼叫此函式。

備註

此函式優先于較舊的 ScriptPlace 函式。 ScriptPlaceOpenType的一些優點包括:

  • 參數會直接對應至字型配置表格中的 OpenType 標記。
  • 參數會定義套用至每個字元的功能。 輸入分成範圍,而且每個範圍都有與其相關聯的 OpenType 屬性。
整個專案的複合 ABC 寬度可識別圖像在開始位置左邊和前進寬度總和所隱含長度右邊的字元數量。 線條的總進階寬度完全是 abcA+abcB+abcC。 abcA 和 abcC 值會維持為以 8 位表示的儲存格高度比例,因此大約是 +/-1%。 所擷取的總寬度是 piAdvance所指示的 abcA+abcB+abcC 值總和,精確到 TrueType 成形引擎的解析度。

除非 fLogicalOrder 成員設定在SCRIPT_ANALYSIS 結構中 ,否則所有陣列都是以視覺順序設定,由 SCRIPT_ANALYSIS 參數指示。

重要 從 Windows 8 開始:若要維持在 Windows 7 上執行的能力,使用 Uniscribe 的模組必須指定 Usp10.lib,才能在其程式庫清單中指定 gdi32.lib。
 

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 usp10.h
程式庫 Usp10.lib
Dll Usp10.dll
可轉散發套件 在 Windows XP 上 Usp10.dll 1.600 版或更新版本

另請參閱

使用 Uniscribe 顯示文字

GOFFSET

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_CHARPROP

SCRIPT_GLYPHPROP

ScriptItemizeOpenType

ScriptPlace

ScriptShapeOpenType

TEXTRANGE_PROPERTIES

Uniscribe 函式