Compartir a través de


Interfaz IExtractIconW (shlobj_core.h)

Expone métodos que permiten a un cliente recuperar el icono asociado a uno de los objetos de una carpeta.

Herencia

La interfaz IExtractIcon hereda de la interfaz IUnknown . IExtractIcon también tiene estos tipos de miembros:

Métodos

La interfaz IExtractIconW tiene estos métodos.

 
IExtractIconW::Extract

Extrae una imagen de icono de la ubicación especificada. (Unicode)
IExtractIconW::GetIconLocation

Obtiene la ubicación y el índice de un icono. (Unicode)

Comentarios

Hay dos maneras de recuperar el icono de un objeto. La manera más sencilla es llamar a SHGetFileInfo. Sin embargo, este enfoque es inflexible y puede ser lento. Una manera más flexible y eficaz de recuperar el icono de un elemento es usar IExtractIcon. El Shell usa IExtractIcon para recuperar iconos cuando muestra el contenido de una carpeta. Para usar IExtractIcon para recuperar el icono de un objeto, haga lo siguiente:

  1. Obtenga un puntero a la interfaz IShellFolder de la carpeta que contiene el objeto .
  2. Llame a IShellFolder::GetUIObjectOf con el puntero a una lista de identificadores de elemento (PIDL) del objeto y el identificador de interfaz de IExtractIcon (IID_IExtractIcon). La carpeta crea un objeto para controlar la extracción de iconos y devuelve el puntero de interfaz IExtractIcon del objeto.
  3. Llame a IExtractIcon::GetIconLocation para recuperar la ubicación del icono.
  4. Llame a IExtractIcon::Extract para recuperar el identificador del icono.
También puede extraer iconos de forma asincrónica en un subproceso en segundo plano. Este enfoque es útil cuando la extracción es una operación que consume mucho tiempo. Para obtener más información, consulte IExtractIcon::GetIconLocation.

Las extensiones de espacio de nombresimplementan IExtractIcon para proporcionar iconos para sus objetos. Un cliente obtiene un puntero de interfaz IExtractIcon para un objeto de una carpeta mediante una llamada al método IShellFolder::GetUIObjectOf de la carpeta. La implementación IShellFolder::GetUIObjectOf debe crear un objeto para controlar la extracción de iconos y devolver un puntero a la interfaz IExtractIcon del objeto.

Los controladores de iconos también implementan IExtractIcon. Un controlador de iconos es un tipo de controlador de extensión de Shell que permite asignar iconos dinámicamente a los miembros de un tipo de archivo.

Llame a esta interfaz si la aplicación necesita una manera más flexible de recuperar el icono de un objeto que SHGetFileInfo.

Nota

El encabezado shlobj_core.h define IExtractIcon como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlobj_core.h