Uniscribe 會儲存 Unicode 到字形(cmap)對應、字形寬度和 OpenType 腳本字形塑造表。 特定大小之特定字型的數據表句柄稱為「腳本快取」。 許多 Uniscribe 函式都會呼叫裝置內容句柄參數和 SCRIPT_CACHE 結構的指標。 這些函式會先透過腳本快取尋找資訊,只有在尚未快取必要的數據表時,才會使用裝置內容。 呼叫 ScriptShape、ScriptPlace或 ScriptTextOut 函式時,應用程式必須將指標傳遞至 SCRIPT_CACHE 結構。 在第一次將句柄傳遞給 Uniscribe 函式之前,應先將其初始化為 NULL。 應用程式不應該為不同的字型或大小傳遞相同的控制代碼。
應用程式可以隨時釋放腳本快取。 Uniscribe 會在其字型和排版器快取中維護參考計數,並且只有當所有字型尺寸全部釋放時才釋放字型數據,只有當字型排版器支援的所有字型都釋放時才釋放排版器數據。 當應用程式以樣式完成時,它應該呼叫 ScriptFreeCache 函式,以釋放樣式的腳本快取。
針對 ScriptShape 和 ScriptPlace,應用程式可以傳遞 null 裝置上下文。 呼叫通常會成功,因為所需的表格已快取。 如果成形或放置需要存取裝置內容,ScriptShape 或 ScriptPlace 會立即傳回E_PENDING錯誤碼。 然後應用程式必須在裝置內容中選取字型。 對於大多數應用程式,這有助於效能,因為可以避免重複使用 SelectObject 函數呼叫 來準備設備上下文句柄。
相關主題