Macro FNFDINOTIFY (fdi.h)

La macro FNFDINOTIFY proporciona la declaración de la función de notificación de devolución de llamada definida por la aplicación para actualizar la aplicación en el estado del descodificador.

Sintaxis

void FNFDINOTIFY(
   fn
);

Parámetros

fn

Tipo de notificación.

Valor Significado
fdintCABINET_INFO
0x00
Información general sobre el gabinete.

Cuando se establece este valor, la estructura IDFNOTIFICATION se rellena con la siguiente información:

  • psz1 señalará el nombre del siguiente gabinete (excepto la información de ruta de acceso)
  • psz2 apuntará al nombre del siguiente disco.
  • psz3 apuntará al nombre de la ruta de acceso del gabinete.
  • setID será igual al identificador de conjunto del gabinete actual.
  • iCabinet será igual al número de gabinete dentro del conjunto de gabinetes (0 para el primer gabinete, 1 para el segundo gabinete, etc.)
La aplicación debe devolver 0 para indicar que la operación se ha realizado correctamente o -1 para indicar un error, lo que anulará LA IEDCopy. Se proporcionará una notificación fdintCABINET_INFO una vez para cada gabinete abierto por IDFCopy; esto incluye los gabinetes de continuación abiertos debido a archivos que abarcan los límites del gabinete.
fdintPARTIAL_FILE
0x01
El primer archivo del gabinete es una continuación de un archivo del archivador anterior.

Cuando se establece este valor, la estructura IDFNOTIFICATION se rellena con la siguiente información:

  • psz1 apuntará al nombre del archivo que continuó desde un gabinete anterior.
  • psz2 apuntará al nombre del gabinete en el que existe el primer segmento del archivo.
  • psz3 apuntará al nombre del disco en el que existe el primer segmento del archivo.
Se llama a la notificación fdintPARTIAL_FILE para los archivos al principio de un gabinete que ha continuado desde un gabinete anterior. Esta notificación solo se producirá cuando se inicie IDFCopy en el segundo o posterior gabinete de una serie, que tiene archivos continuados de un gabinete anterior. La aplicación debe devolver 0 para que se realice correctamente o -1 para indicar un error.
fdintCOPY_FILE
0x02
Información que identifica el archivo que se va a copiar.

Cuando se establece este valor, la estructura IDFNOTIFICATION se rellena con la siguiente información:

  • psz1 señalará el nombre de un archivo en el gabinete; cb será igual al tamaño sin comprimir del archivo.
  • date será igual a la fecha de MS-DOS de 16 bits del archivo.
  • time será igual al tiempo de MS-DOS de 16 bits del archivo.
  • attribs será igual a los atributos ms-DOS de 16 bits del archivo.
La aplicación debe devolver uno de los tres valores; 0 para omitir (es decir, no copiar) el archivo; -1 (negativo) para anular la IEDCopy; o un identificador de archivo distinto de cero (y distinto de negativo) que indica dónde escribir el archivo. El identificador de archivo debe ser compatible con la función PFNCLOSE proporcionada a IDFCreate. Se llama a la notificación fdintCOPY_FILE para cada archivo que se inicia en el gabinete actual, lo que proporciona la oportunidad de que la aplicación solicite que se copie o omita el archivo.
fdintCLOSE_FILE_INFO
0x03
Cierre el archivo y establezca la información pertinente.

Cuando se establece este valor, la estructura IDFNOTIFICATION se rellena con la siguiente información:

  • psz1 apuntará al nombre de un archivo en el archivador.
  • Hf será un identificador de archivo (que se originó en fdintCOPY_FILE)
  • date date será igual a la fecha de MS-DOS de 16 bits del archivo.
  • time time será igual a la hora de MS-DOS de 16 bits del archivo.
  • Los atributos attribs serán iguales a los atributos ms-DOS de 16 bits del archivo (menos el bit de _A_EXEC)
  • cb será igual a 0 o 1, lo que indica si el archivo se debe ejecutar después de la extracción (1) o no (0)
Es responsabilidad de la aplicación ejecutar el archivo si cb es igual a 1. Se llama a la notificación fdintCLOSE_FILE_INFO después de que todos los datos se hayan escrito en un archivo de destino. La aplicación debe cerrar el archivo (mediante el identificador hf proporcionado) y establecer la fecha, hora y atributos del archivo. La aplicación debe devolver TRUE para que se realice correctamente y FALSE o -1 para anular LA IEDCopy. LA IED supone que se cerró el archivo de destino, incluso si esta devolución de llamada devuelve un error; LA IED no intentará usar PFNCLOSE para cerrar el archivo.
fdintNEXT_CABINET
0x04
El archivo continuó hasta el siguiente gabinete.

Cuando se establece este valor, la estructura IDFNOTIFICATION se rellena con la siguiente información:

  • psz1 señalará el nombre del siguiente gabinete en el que se continúa el archivo actual.
  • psz2 será un identificador de archivo (que se originó en fdintCOPY_FILE)
  • psz3 apuntará a la información de la ruta de acceso del gabinete
  • idfe será igual a un valor correcto o de error.
Solo se llama a esta notificación si se indica a fdintCOPY_FILE copiar un archivo, que continúa desde un gabinete posterior, al gabinete actual. Puesto que es posible que la aplicación modifique el nombre del gabinete, es importante que el nombre de la ruta de acceso del gabinete, indicado por psz3, se valide antes de que se devuelva. Además, la aplicación debe asegurarse de que el gabinete existe y es legible antes de devolver; si es necesario, la aplicación debe emitir un mensaje de cambio de disco para confirmarlo.

Cuando esta función vuelve a la IED, la IED comprobará que los campos setID e iCabinet del gabinete proporcionado coinciden con los valores esperados para ese gabinete. Si no es así, la IED seguirá enviando mensajes de notificación fdintNEXT_CABINET con el campo iede establecido en FDIERROR_WRONG_CABINET, hasta que se especifique el archivo de gabinete correcto, o hasta que esta función devuelva -1 y anule la llamada a IDFCopy . Si, después de volver de esta función, el archivo del gabinete no está presente, legible o ha sido dañado, el campo de iede será igual a uno de los siguientes valores:

  • FDIERROR_CABINET_NOT_FOUND
  • FDIERROR_NOT_A_CABINET
  • FDIERROR_UNKNOWN_CABINET_VERSION
  • FDIERROR_CORRUPT_CABINET
  • FDIERROR_BAD_COMPR_TYPE
  • FDIERROR_RESERVE_MISMATCH
  • FDIERROR_WRONG_CABINET
Si no se ha producido ningún error, el iede será igual a FDIERROR_NONE. La aplicación debe devolver 0 para indicar que la operación se ha realizado correctamente o -1 para indicar un error, lo que anulará LA IEDCopy.
idfntENUMERATE
0x05
Estado de enumeración.

Valor devuelto

None

Requisitos

   
Plataforma de destino Windows
Encabezado idf.h

Consulte también

IDFCopy

IDFNOTIFICATION