Compartir a través de


Interfaz IFileOperation (shobjidl_core.h)

Expone métodos para copiar, mover, cambiar el nombre, crear y eliminar elementos de Shell, así como métodos para proporcionar diálogos de progreso y error. Esta interfaz reemplaza la función SHFileOperation .

Herencia

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

Métodos

La interfaz IFileOperation tiene estos métodos.

 
IFileOperation::Advise

Permite a un controlador proporcionar información de estado y error para todas las operaciones.
IFileOperation::ApplyPropertiesToItem

Declara un solo elemento cuyos valores de propiedad se van a establecer.
IFileOperation::ApplyPropertiesToItems

Declara un conjunto de elementos para los que se va a aplicar un conjunto común de valores de propiedad.
IFileOperation::CopyItem

Declara un único elemento que se va a copiar en un destino especificado.
IFileOperation::CopyItems

Declara un conjunto de elementos que se van a copiar en un destino especificado.
IFileOperation::D eleteItem

Declara un único elemento que se va a eliminar.
IFileOperation::D eleteItems

Declara un conjunto de elementos que se van a eliminar.
IFileOperation::GetAnyOperationsAborted

Obtiene un valor que indica si se detuvo alguna operación de archivo iniciada por una llamada a IFileOperation::P erformOperations antes de que se completaran. El sistema podría detener las operaciones mediante la acción del usuario o silenciosamente.
IFileOperation::MoveItem

Declara un único elemento que se va a mover a un destino especificado.
IFileOperation::MoveItems

Declara un conjunto de elementos que se van a mover a un destino especificado.
IFileOperation::NewItem

Declara un nuevo elemento que se va a crear en una ubicación especificada.
IFileOperation::P erformOperations

Ejecuta todas las operaciones seleccionadas.
IFileOperation::RenameItem

Declara un único elemento al que se va a asignar un nuevo nombre para mostrar.
IFileOperation::RenameItems

Declara un conjunto de elementos a los que se va a asignar un nuevo nombre para mostrar. Todos los elementos tienen el mismo nombre.
IFileOperation::SetOperationFlags

Establece parámetros para la operación actual.
IFileOperation::SetOwnerWindow

Establece la ventana principal o propietaria para las ventanas de progreso y diálogo.
IFileOperation::SetProgressDialog

Especifica un cuadro de diálogo que se usa para mostrar el progreso de la operación.
IFileOperation::SetProgressMessage

Sin implementar. (IFileOperation.SetProgressMessage)
IFileOperation::SetProperties

Declara un conjunto de propiedades y valores que se van a establecer en un elemento o elementos.
IFileOperation::Unadvise

Finaliza una conexión de asesoramiento establecida previamente a través de IFileOperation::Advise.

Comentarios

Un elemento de Shell puede ser cualquier objeto del espacio de nombres, incluidos objetos del sistema de archivos, como archivos y carpetas, pero también objetos virtuales. En los temas del método IFileOperation , el término "item" se usa para hacer referencia genéricamente a cualquier objeto de espacio de nombres.

IFileOperation ofrece muchas ventajas sobre la función SHFileOperation anterior.

  • Uso de IShellItem para identificar elementos en lugar de rutas de acceso de cadena. SHFileOperation requiere la ruta de acceso y las cadenas de destino para terminar en dos caracteres NULL en lugar del carácter null único estándar, que se usó para delimitar varias rutas de acceso en la cadena. Identificar un elemento mediante IShellItem es más sólido y menos propenso a errores de programación. También permite acceder a elementos del sistema que no son de archivo, como carpetas virtuales. Se pueden pasar varios elementos de una operación como IShellItemArray, IDataObject o una colección a la que se accede a través de IEnumShellItems en lugar de como una cadena.
  • Informes de errores más precisos a través de valores HRESULT junto con una API como FormatMessage. Los códigos de retorno de SHFileOperation podrían ser engañosos o inexactos.
  • Extensibilidad. Como interfaz del Modelo de objetos componentes (COM), IFileOperation puede tener sus funcionalidades extendidas por un tercero para satisfacer sus necesidades específicas, aunque esto debería ser un caso muy poco frecuente. Windows proporciona una implementación predeterminada de IFileOperation que debe satisfacer las necesidades de la mayoría de los usuarios.
  • Mejores comentarios de progreso. El progreso detallado de la operación, incluidas las notificaciones cuando comienzan y finalizan operaciones específicas en elementos individuales, así como el progreso general, se pueden recibir durante la operación. Aunque SHFileOperation proporcionó la interfaz de usuario de progreso, no fue tan detallada.
  • Más funcionalidad. Además de la funcionalidad de copia, eliminación, movimiento y cambio de nombre proporcionada por SHFileOperation, IFileOperation permite aplicar valores de propiedad y crear nuevos elementos.
  • Más control sobre la operación. Además de las marcas de operación reconocidas por SHFileOperation, se reconocen nuevas marcas en IFileOperation::SetOperationFlags que especifican opciones de operación extendidas.
  • Se pueden realizar diferentes operaciones en una llamada. Por ejemplo, puede mover un conjunto de archivos, copiar otros, cambiar el nombre de una carpeta y aplicar propiedades a otro elemento en una sola operación. SHFileOperation solo puede realizar una operación (copiar, mover, cambiar el nombre o eliminar) a la vez.
Para realizar una operación de archivo mediante esta interfaz, se debe realizar una secuencia de llamadas.
  1. Opcional. Configure el receptor de eventos para el estado de progreso y las notificaciones de error a través de Aviso y No recuperación.
  2. Establezca el estado de la operación con lo siguiente según sea necesario:
  3. Especifique qué operaciones se van a realizar en qué elementos se usan los siguientes según sea necesario.
  4. Ejecute las operaciones mediante una llamada a PerformOperations.
IFileOperation solo se puede aplicar en una situación de apartamento de un solo subproceso (STA). No se puede usar para una situación de apartamento multiproceso (MTA). Para MTA, todavía debe usar SHFileOperation.

Un ejemplo completo que muestra la extensión de IFileOperation se incluye en el Kit de desarrollo de software de Windows (SDK). En una instalación predeterminada, se puede encontrar en %ProgramFiles%\Microsoft SDKs\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\FileOperations.

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 shobjidl_core.h (incluya Shobjidl.h)