68 lines
3.1 KiB
C#
68 lines
3.1 KiB
C#
using System.Runtime.InteropServices;
|
||
|
||
namespace Pilz.Win32.Native;
|
||
|
||
|
||
public class Shell32
|
||
{
|
||
|
||
/// <summary>
|
||
/// Creates an array of handles to large or small icons extracted from
|
||
/// the specified executable file, dynamic-link library (DLL), or icon
|
||
/// file.
|
||
/// </summary>
|
||
/// <param name="lpszFile">
|
||
/// Name of an executable file, DLL, or icon file from which icons will
|
||
/// be extracted.
|
||
/// </param>
|
||
/// <param name="nIconIndex">
|
||
/// <para>
|
||
/// Specifies the zero-based index of the first icon to extract. For
|
||
/// example, if this value is zero, the function extracts the first
|
||
/// icon in the specified file.
|
||
/// </para>
|
||
/// <para>
|
||
/// If this value is <20>1 and <paramrefname="phiconLarge"/> and
|
||
/// <paramrefname="phiconSmall"/> are both NULL, the function returns
|
||
/// the total number of icons in the specified file. If the file is an
|
||
/// executable file or DLL, the return value is the number of
|
||
/// RT_GROUP_ICON resources. If the file is an .ico file, the return
|
||
/// value is 1.
|
||
/// </para>
|
||
/// <para>
|
||
/// Windows 95/98/Me, Windows NT 4.0 and later: If this value is a
|
||
/// negative number and either <paramrefname="phiconLarge"/> or
|
||
/// <paramrefname="phiconSmall"/> is not NULL, the function begins by
|
||
/// extracting the icon whose resource identifier is equal to the
|
||
/// absolute value of <paramrefname="nIconIndex"/>. For example, use -3
|
||
/// to extract the icon whose resource identifier is 3.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="phIconLarge">
|
||
/// An array of icon handles that receives handles to the large icons
|
||
/// extracted from the file. If this parameter is NULL, no large icons
|
||
/// are extracted from the file.
|
||
/// </param>
|
||
/// <param name="phIconSmall">
|
||
/// An array of icon handles that receives handles to the small icons
|
||
/// extracted from the file. If this parameter is NULL, no small icons
|
||
/// are extracted from the file.
|
||
/// </param>
|
||
/// <param name="nIcons">
|
||
/// Specifies the number of icons to extract from the file.
|
||
/// </param>
|
||
/// <returns>
|
||
/// If the <paramrefname="nIconIndex"/> parameter is -1, the
|
||
/// <paramrefname="phIconLarge"/> parameter is NULL, and the
|
||
/// <paramrefname="phiconSmall"/> parameter is NULL, then the return
|
||
/// value is the number of icons contained in the specified file.
|
||
/// Otherwise, the return value is the number of icons successfully
|
||
/// extracted from the file.
|
||
/// </returns>
|
||
[DllImport("Shell32", CharSet = CharSet.Auto)]
|
||
public static extern int ExtractIconEx([MarshalAs(UnmanagedType.LPTStr)] string lpszFile, int nIconIndex, nint[] phIconLarge, nint[] phIconSmall, int nIcons);
|
||
|
||
[DllImport("shell32.dll")]
|
||
public static extern nint SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
|
||
|
||
} |