TTLoadEmbeddedFont 函式 (t2embapi.h)

從檔資料流程讀取內嵌字型並加以安裝。 也允許用戶端進一步限制字型的內嵌許可權。

語法

LONG TTLoadEmbeddedFont(
  [out]          HANDLE        *phFontReference,
  [in]           ULONG         ulFlags,
  [out]          ULONG         *pulPrivStatus,
  [in]           ULONG         ulPrivs,
  [out]          ULONG         *pulStatus,
  [in]           READEMBEDPROC lpfnReadFromStream,
  [in]           LPVOID        lpvReadStream,
  [in, optional] LPWSTR        szWinFamilyName,
  [in, optional] LPSTR         szMacFamilyName,
  [in, optional] TTLOADINFO    *pTTLoadInfo
);

參數

[out] phFontReference

識別已安裝內嵌字型之控制碼的指標。 這個控制碼會參考內部結構,而不是 Hfont。

[in] ulFlags

指定載入和安裝選項的旗標。 目前,此旗標可以設定為零或下列值:

意義
TTLOAD_PRI加值稅E
載入字型,使其不會列舉給使用者。 如果無法安裝字型,則會保持私人。

[out] pulPrivStatus

旗標指標,表示字型的內嵌許可權。 此旗標會在完成此函式時寫入,而且可以具有下列其中一個值。 此函式會傳回授與的最低限制授權。

意義
EMBED_PREVIEWPRINT
預覽和列印內嵌。 字型可以內嵌在檔中,但必須暫時安裝在遠端系統上。 包含此字型類型的檔只能以唯讀方式開啟。 應用程式不得允許使用者編輯檔。 檔只能檢視和/或列印。
EMBED_EDITABLE
可編輯的內嵌。 字型可以內嵌在檔中,但必須暫時安裝在遠端系統上。 包含此字型類型的檔可以開啟「讀取/寫入」,並允許編輯。
EMBED_INSTALLABLE
可安裝的內嵌。 字型可以內嵌並永久安裝在遠端系統上。 遠端系統的使用者會取得該字型的相同權利、義務和授權,做為字型的原始購買者,而且受限於與原始購買者相同的使用者授權合約、著作權、設計專利和/或商標。
EMBED_NOEMBEDDING
限制的授權內嵌。 不需先取得法律擁有者的許可權,就不得以任何方式修改、內嵌或交換字型。

[in] ulPrivs

旗標,表示用戶端載入字型所加加的內嵌許可權進一步限制。 此旗標必須具有下列其中一個值。

意義
LICENSE_PREVIEWPRINT
預覽和列印內嵌。
LICENSE_EDITABLE
可編輯的內嵌。
LICENSE_INSTALLABLE
可安裝的內嵌。
LICENSE_NOEMBEDDING
限制的授權內嵌。
LICENSE_DEFAULT
使用預設內嵌層級。

[out] pulStatus

位欄位的指標,其中包含 TTLoadEmbeddedFont 要求的狀態資訊。 完成此函式時會填入此欄位,而且可以有下列零或多個值。

意義
TTLOAD_FONT_SUBSETTED
載入的字型是原始字型的子集。
TTLOAD_FONT_IN_SYSSTARTUP
載入的字型標示為可安裝,並已新增至登錄,以便在啟動時可供使用。

[in] lpfnReadFromStream

用戶端定義回呼函式的指標,可從檔資料流程讀取字型結構。

[in] lpvReadStream

資料流程 (字型結構的指標) 。

[in, optional] szWinFamilyName

新 16 位字元 Unicode Microsoft Windows 系列名稱字型的指標。 將 設定為 Null 以使用現有的名稱。 在載入時變更字型的名稱時,您必須同時提供此參數和 szMacFamilyName 參數。

[in, optional] szMacFamilyName

新 8 位字元 Macintosh 系列名稱字型的指標。 將 設定為 Null 以使用現有的名稱。 在載入時變更字型的名稱時,您必須同時提供此參數和 szWinFamilyName 參數。

[in, optional] pTTLoadInfo

TTLOADINFO結構的指標,其中包含從中取得內嵌字型物件的 URL。 如果此值不符合 TTEMBEDINFO 結構中包含的其中一個值,字型將不會成功載入。

傳回值

如果成功,則會傳回E_NONE。

如果字型載入成功,就會從字型結構建立 phFontReference 所指出的字型,其中包含 szWinFamilyNameszMacFamilyName中所參考的名稱。 pulPrivStatus 已設定,指出字型的內嵌許可權;和 pulStatus 可能會設定,指出字型載入作業的狀態資訊。

否則,傳回內 嵌函式錯誤訊息中所述的錯誤碼。

備註

為了協助用戶端判斷是否已在系統上安裝內嵌字型,字型載入函式會傳回錯誤訊息,指出系統上有相同名稱的字型 (E_FONTNAMEALREADYEXISTS) ,以及該字型是否具有與內嵌字型相同的總和檢查碼 (E_FONTALREADYEXISTS) 。 然後,用戶端有兩個選項:

  1. 假設已安裝的字型與內嵌字型完全相同,且涵蓋相同的子集。
  2. 強制使用不同的名稱安裝內嵌字型,以避免與系統上的字型不相容。
若要在安裝之前變更內嵌字型的名稱,用戶端必須同時提供 8 位字元和 16 位字元名稱字串做為參數。 新安裝字型的名稱表格中將會變更字型名稱。 新的名稱僅適用于用戶端,且不會列舉給使用者。

若要使用內嵌字型的現有名稱,名稱字串參數必須設定為 Null

規格需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平臺 Windows
標頭 t2embapi.h
程式庫 T2embed.lib
DLL T2embed.dll

另請參閱

TTDeleteEmbeddedFont

TTEMBEDINFO

TTGetEmbeddingType

TTGetNewFontName

TTLOADINFO