共用方式為


ExtractIconExA 函數 (shellapi.h)

ExtractIconEx 函式會建立從指定可執行檔、DLL 或圖示檔案擷取的大型或小型圖示控制碼陣列。

語法

UINT ExtractIconExA(
  [in]  LPCSTR lpszFile,
  [in]  int    nIconIndex,
  [out] HICON  *phiconLarge,
  [out] HICON  *phiconSmall,
        UINT   nIcons
);

參數

[in] lpszFile

類型:LPCTSTR

以 Null 結尾字串的指標,指定要從中擷取圖示的可執行檔、DLL 或圖示檔案的名稱。

[in] nIconIndex

類型: int

指定要擷取的第一個圖示的從零開始的索引。 例如,如果此值為零,則函數會擷取指定檔案中的第一個圖示。

如果此值為 –1,且 phiconLargephiconSmall 都是 NULL,則函式會傳回指定檔案中的圖示總數。 如果檔案是可執行檔或 DLL,則傳回值是RT_GROUP_ICON資源數目。 如果檔案是.ico檔案,則傳回值為 1。

如果此值是負數,且 phiconLargephiconSmall 不是 Null,則函式會先擷取資源識別碼等於 nIconIndex 絕對值的圖示。 例如,使用 -3 來擷取資源識別碼為 3 的圖示。

[out] phiconLarge

類型: HICON*

指向圖示控制碼陣列的指標,以接收從檔案擷取之大型圖示的控制碼。 如果此參數為 Null,則不會從檔案中擷取大型圖示。

[out] phiconSmall

類型: HICON*

指向圖示控制碼陣列的指標,以接收從檔案擷取之小圖示的控制碼。 如果此參數為 Null,則不會從檔案中擷取任何小圖示。

nIcons

類型: UINT

要從檔案中擷取的圖示數目。

返回值

類型: UINT

如果 nIconIndex 參數 -1,且 phiconLargephiconSmall 參數都是 Null,則傳回值是指定檔案中包含的圖示數目。

如果 nIconIndex 參數是 -1 以外的任何值,且 phiconLargephiconSmall 不是 Null,則傳回值是從檔案中成功擷取的圖示數目。

備註

如果函式遇到錯誤,則會傳回 UINT_MAX。 在此情況下,您可以呼叫 GetLastError 來擷取錯誤碼。 例如,如果找不到 lpszFile 所指定的檔案,而 nIconIndex 參數是 -1 以外的任何值,且 phiconLargephiconSmall 不是 Null,則此函式會傳回 UINT_MAX。 在此情況下, GetLastError 會傳回 ERROR_FILE_NOT_FOUND (2)。

備註

當不再需要它們時,您必須藉由呼叫 DestroyIcon 函式來終結 ExtractIconEx 擷取的所有圖示。

若要擷取大小圖示的尺寸,請將此函式與 SM_CXICON、SM_CYICON、SM_CXSMICON 和 SM_CYSMICON 旗標搭配使用。

備註

shellapi.h 標頭會將 ExtractIconEx 定義為別名,以根據 UNICODE 前置處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型 慣例。

需求

Requirement 價值觀
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
Header shellapi.h
Library 殼層32.lib
DLL Shell32.dll
API 集 ext-ms-win-shell-shell32-l1-2-1 (Windows 10 版本 10.0.10240 中引進)

另請參閱

擷取關聯圖示

擷取關聯 IconEx

擷取圖示