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 且 phiconLarge 和 phiconSmall 都是 Null,則函式會傳回指定檔案中的圖示總數。 如果檔案是可執行檔或 DLL,則傳回值為RT_GROUP_ICON資源的數目。 如果檔案是 .ico 檔案,則傳回值為 1。
如果此值是負數,而且 phiconLarge 或 phiconSmall 不是 Null,則函式會從擷取資源識別碼等於 nIconIndex的絕對值開始。 例如,使用 -3 來擷取其資源識別碼為 3 的圖示。
[out] phiconLarge
類型: HICON*
圖示控制碼陣列的指標,可接收從檔案擷取之大型圖示的控制碼。 如果此參數為 Null,則不會從檔案中擷取任何大型圖示。
[out] phiconSmall
類型: HICON*
圖示控制碼陣列的指標,可接收從檔案擷取之小型圖示的控制碼。 如果此參數為 Null,則不會從檔案中擷取任何小型圖示。
nIcons
類型: UINT
要從檔案中擷取的圖示數目。
傳回值
類型: UINT
如果 nIconIndex 參數是 -1,而且 phiconLarge 和 phiconSmall 參數都是 Null,則傳回值會是指定檔案中包含的圖示數目。
如果 nIconIndex 參數是 -1 以外的任何值,而且 phiconLarge 或 phiconSmall 不是 Null,則傳回值會是已成功從檔案中擷取的圖示數目。
注意
如果函式發生錯誤,它會傳回 UINT_MAX。 在此情況下,您可以呼叫 GetLastError 來擷取錯誤碼。 例如,如果找不到lpszFile指定的檔案,而nIconIndex參數是 -1 以外的任何值,而且phiconLarge或phiconSmall不是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 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shellapi.h |
Dll | Shell32.dll |
API 集合 | ext-ms-win-shell32-l1-2-1 (于 Windows 10 10.0.10240 版) |