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_PRIVATE
載入字型,使其未列舉給使用者。 如果無法安裝字型,它將會保持私用。

[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