Método IShellItemImageFactory::GetImage (shobjidl_core.h)
Obtiene un HBITMAP de
Sintaxis
HRESULT GetImage(
[in] SIZE size,
[in] SIIGBF flags,
[out] HBITMAP *phbm
);
Parámetros
[in] size
Tipo:
Estructura que especifica el tamaño de la imagen que se va a recibir.
[in] flags
Tipo:
Uno o varios de los siguientes:
SIIGBF_RESIZETOFIT (0x00000000)
Reduzca el mapa de bits según sea necesario para ajustarse, conservando su relación de aspecto.
SIIGBF_BIGGERSIZEOK (0x00000001)
Los autores de llamadas pasan si quieren ampliar la imagen devuelta. Por ejemplo, si el autor de la llamada pasa un tamaño de icono de 80x80, se podría devolver una miniatura de 96x96. Esta acción se puede usar como optimización del rendimiento si el autor de la llamada espera que necesite ampliar la imagen. Tenga en cuenta que la implementación de Shell de IShellItemImageFactory realiza una función de ajuste de GDI. Si el autor de la llamada desea una extensión de imagen de mayor calidad de la proporcionada a través de ese mecanismo, deben pasar esta marca y realizar el ajuste.
SIIGBF_MEMORYONLY (0x00000002)
Devuelve el elemento solo si ya está en memoria. No acceda al disco incluso si el elemento está almacenado en caché. Tenga en cuenta que esto solo devuelve un icono ya almacenado en caché y puede revertir a un icono por clase si un elemento tiene un icono por instancia que no se ha almacenado en caché. Recuperar una miniatura, incluso si se almacena en caché, siempre requiere que se acceda al disco, por lo que getImage no debe llamarse desde el subproceso de la interfaz de usuario sin pasar SIIGBF_MEMORYONLY.
SIIGBF_ICONONLY (0x00000004)
Devuelve solo el icono, nunca la miniatura.
SIIGBF_THUMBNAILONLY (0x00000008)
Devuelve solo la miniatura, nunca el icono. Tenga en cuenta que no todos los elementos tienen miniaturas, por lo que SIIGBF_THUMBNAILONLY provocará un error en el método en estos casos.
SIIGBF_INCACHEONLY (0x00000010)
Permite el acceso al disco, pero solo para recuperar un elemento almacenado en caché. Devuelve una miniatura almacenada en caché si está disponible. Si no hay ninguna miniatura almacenada en caché, devuelve un icono por instancia almacenado en caché, pero no extrae una miniatura ni un icono.
SIIGBF_CROPTOSQUARE (0x00000020)
introducido en Windows 8. Si es necesario, recorte el mapa de bits a un cuadrado.
SIIGBF_WIDETHUMBNAILS (0x00000040)
introducido en Windows 8. Estirar y recortar el mapa de bits a una relación de aspecto de 0,7.
SIIGBF_ICONBACKGROUND (0x00000080)
introducido en Windows 8. Si devuelve un icono, pinta un fondo con el color de fondo registrado de la aplicación asociada.
SIIGBF_SCALEUP (0x00000100)
introducido en Windows 8. Si es necesario, ajuste el mapa de bits para que el alto y el ancho se ajusten al tamaño especificado.
[out] phbm
Tipo: HBITMAP*
Puntero a un valor que, cuando este método vuelve correctamente, recibe el identificador del mapa de bits recuperado. Es responsabilidad del autor de la llamada liberar este recurso recuperado a través de DeleteObject cuando ya no sea necesario.
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un hrESULT código de error.
Observaciones
La extracción de iconos puede llevar mucho tiempo. Por lo general, no se debe llamar a este método desde un subproceso de interfaz de usuario para evitar que ese subproceso deje de responder. Puede llamar a IShellItemImageFactory::GetImage en un subproceso de interfaz de usuario si establece la marca SIIGBF_INCACHEONLY. Sin embargo, si la imagen no se encuentra en la memoria caché, la aplicación que realiza la llamada debe estar preparada para iniciar un subproceso de fondo para extraer la imagen. Nunca se debe realizar una extracción en un subproceso de interfaz de usuario.
Consulte el ejemplo Using Image Factory para obtener un ejemplo completo de cómo usar este método.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows Server 2008 [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
shobjidl_core.h (incluya Shobjidl.h) |