Función LoadIconMetric (commctrl.h)

Carga un recurso de icono especificado con una métrica del sistema especificada por el cliente.

Sintaxis

HRESULT LoadIconMetric(
  [in]  HINSTANCE hinst,
  [in]  PCWSTR    pszName,
  [in]  int       lims,
  [out] HICON     *phico
);

Parámetros

[in] hinst

Tipo: HINSTANCE

Identificador del módulo de un archivo DLL o ejecutable (.exe) que contiene el icono que se va a cargar. Para obtener más información, vea GetModuleHandle.

Para cargar un icono de sistema predefinido o un archivo de icono independiente, establezca este parámetro en NULL.

[in] pszName

Tipo: PCWSTR

Puntero a un búfer Unicode terminado en null que contiene información de ubicación sobre el icono que se va a cargar.

Si hinst no es NULL, pszName especifica el recurso de icono por nombre o ordinal. Este ordinal debe empaquetarse mediante la macro MAKEINTRESOURCE .

Si hinst es NULL, pszName especifica el identificador (empezando por el prefijo IDI_) de un icono de sistema predefinido que se va a cargar.

[in] lims

Tipo: int

Métrica deseada. Uno de los siguientes valores:

Valor Significado
LIM_SMALL
Corresponde a SM_CXSMICON, el ancho de píxel recomendado de un icono pequeño.
LIM_LARGE
Corresponde a SM_CXICON, el ancho de píxel predeterminado de un icono.

[out] phico

Tipo: HICON*

Cuando esta función vuelve, contiene un puntero al identificador del icono cargado.

Valor devuelto

Tipo: HRESULT

Devuelve S_OK si se ejecuta correctamente; de lo contrario, se produce un error, incluido el siguiente valor.

Código devuelto Descripción
E_INVALIDARG
El contenido del búfer al que apunta pszName no se ajusta a ninguna de las interpretaciones esperadas.

Comentarios

LoadIconMetric es similar a LoadIcon, pero con la capacidad de especificar la métrica de icono. Se usa en lugar de LoadIcon cuando la aplicación que realiza la llamada quiere garantizar un icono de alta calidad. Esto es especialmente útil en situaciones de puntos altos por pulgada (ppp).

Los iconos se extraen o crean de la siguiente manera.

  1. Si se encuentra una coincidencia de tamaño exacta en el recurso, se usa ese icono.
  2. Si no se encuentra una coincidencia de tamaño exacta y hay disponible un icono más grande, se crea un nuevo icono mediante el escalado de la versión más grande hasta el tamaño deseado.
  3. Si no se encuentra una coincidencia de tamaño exacta y no hay ningún icono más grande disponible, se crea un nuevo icono mediante el escalado de un icono más pequeño hasta el tamaño deseado.
Las llamadas comparativas se muestran aquí para LoadIconMetric y LoadIcon.
NOTIFYICONDATA  nidIconData  = {0};
nidIconData.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));

// Or...

HRESULT hr = LoadIconMetric(hInstance, MAKEINTRESOURCE(IDI_ICON), LIM_SMALL, &nidIconData.hIcon);

La aplicación es responsable de llamar a DestroyIcon en el icono recuperado.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado commctrl.h
Library Comctl32.lib
Archivo DLL Comctl32.dll