ScriptLayout 函式 (usp10.h)

將執行 內嵌層級 的陣列轉換為視覺到邏輯位置的對應和/或邏輯到視覺位置。

語法

HRESULT ScriptLayout(
  [in]            int        cRuns,
  [in]            const BYTE *pbLevel,
  [out, optional] int        *piVisualToLogical,
  [out, optional] int        *piLogicalToVisual
);

參數

[in] cRuns

要處理的執行次數。

[in] pbLevel

數位的指標,其長度由 cRuns 表示,包含執行內嵌層級。 必須包含行上所有執行的內嵌層級,並以邏輯方式排序。 如需詳細資訊,請參閱<備註>一節。

[out, optional] piVisualToLogical

數位的指標,其長度為 cRuns,在此陣列中,此函式會擷取重新排列為視覺順序的執行內嵌層級。 第一個陣列元素代表要顯示在最左邊的回合,後續專案應該會顯示從左至右的進度。 如果沒有任何輸出,此函式會將此參數設定為 NULL 。

[out, optional] piLogicalToVisual

數位的指標,其長度為 cRuns,在此陣列中,此函式會擷取視覺執行位置。 第一個數位元素是應該顯示第一個邏輯執行之相對視覺位置,最左邊的顯示位置是0。 如果沒有任何輸出,此函式會將此參數設定為 NULL 。

傳回值

若成功,即傳回 0。 如果函式不成功,函式會傳回非零 HRESULT 值。 應用程式可以使用 SUCCEEDED 和 FAILED 宏來測試傳回值。

備註

如需通常呼叫此函式的內容討論,請參閱 使用 Uniscribe 顯示文字 。

此函式只會處理與單行文字相關的數據。

執行內嵌層級定義於 Unicode 雙向演算法中。 它們描述執行的方向、其內嵌的任何執行方向,以及段落的方向。 呼叫此函式時不需要任何其他輸入。 如需詳細資訊,請參閱 Unicode。

下表列出預先定義的內嵌層級。 應用程式可以視需要新增層級。

層級 意義
0 從左至右段落中的由左至右執行。
1 內嵌在由左至右段落中由左至右執行中的由右至左回合。 或者,從右至左執行,而不是內嵌在另一個回合中,由右至左段落。
2 內嵌在類型 1 的由右至左執行中,由左至右執行。
3 內嵌在類型 2 的由左至右執行中的由右至左回合。
 

「邏輯位置」是指相對於其他回合的執行位置。 它是備份儲存區中的位置,會對應到使用者大聲朗讀文字的順序。 回合的「視覺位置」是指在行上以可視化方式顯示執行的方式,並考慮執行可以擁有的可能方向。

應用程式可以呼叫此函式設定 piLogicalToVisual 或 piVisualToLogical,或兩者。

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

規格需求

需求 值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 usp10.h
程式庫 Usp10.lib
Dll Usp10.dll
可轉散發套件 Windows Me/98/95 上的 Internet Explorer 5 或更新版本

另請參閱

使用 Uniscribe 顯示文字

Uniscribe

Uniscribe 函式