Compartilhar via


Macro FNFDINOTIFY (fdi.h)

A macro FNFDINOTIFY fornece a declaração da função de notificação de retorno de chamada definida pelo aplicativo para atualizar o aplicativo no status do decodificador.

Sintaxe

void FNFDINOTIFY(
   fn
);

Parâmetros

fn

O tipo de notificação.

Valor Significado
fdintCABINET_INFO
0x00
Informações gerais sobre o gabinete.

Quando esse valor é definido, a estrutura FDINOTIFICATION é preenchida com as seguintes informações:

  • psz1 apontará para o nome do próximo gabinete (excluindo informações de caminho)
  • psz2 apontará para o nome do próximo disco
  • psz3 apontará para o nome do caminho do gabinete
  • setID será igual à ID definida do gabinete atual
  • iCabinet será igual ao número do gabinete dentro do conjunto de gabinetes (0 para o primeiro gabinete, 1 para o segundo gabinete, etc.)
O aplicativo deve retornar 0 para indicar êxito ou -1 para indicar falha, o que anulará FDICopy. Uma notificação fdintCABINET_INFO será fornecida uma vez para cada gabinete aberto pelo FDICopy; isso inclui gabinetes de continuação abertos devido a arquivos que abrangem os limites do gabinete.
fdintPARTIAL_FILE
0x01
O primeiro arquivo no gabinete é uma continuação de um arquivo do gabinete anterior.

Quando esse valor é definido, a estrutura FDINOTIFICATION é preenchida com as seguintes informações:

  • psz1 apontará para o nome do arquivo continuado de um gabinete anterior
  • psz2 apontará para o nome do gabinete no qual o primeiro segmento do arquivo existe
  • psz3 apontará para o nome do disco no qual o primeiro segmento do arquivo existe
A notificação fdintPARTIAL_FILE é chamada para arquivos no início de um gabinete que continuaram de um gabinete anterior. Essa notificação ocorrerá somente quando FDICopy for iniciado no segundo ou posterior gabinete de uma série, que tem arquivos continuados de um gabinete anterior. O aplicativo deve retornar 0 para êxito ou -1 para indicar falha.
fdintCOPY_FILE
0x02
Informações que identificam o arquivo a ser copiado.

Quando esse valor é definido, a estrutura FDINOTIFICATION é preenchida com as seguintes informações:

  • psz1 apontará para o nome de um arquivo no gabinete; cb será igual ao tamanho não compactado do arquivo
  • date será igual à data do MS-DOS de 16 bits do arquivo
  • time será igual ao tempo MS-DOS de 16 bits do arquivo
  • attribs será igual aos atributos MS-DOS de 16 bits do arquivo
O aplicativo deve retornar um dos três valores; 0 para ignorar (ou seja, não copiar) o arquivo; -1 (negativo) para anular FDICopy; ou um identificador de arquivo diferente de zero (e não negativo) que indica onde gravar o arquivo. O identificador de arquivo deve ser compatível com a função PFNCLOSE fornecida para FDICreate. A notificação fdintCOPY_FILE é chamada para cada arquivo que começa dentro do gabinete atual, fornecendo a oportunidade para o aplicativo solicitar que o arquivo seja copiado ou ignorado.
fdintCLOSE_FILE_INFO
0x03
Feche o arquivo, defina informações relevantes.

Quando esse valor é definido, a estrutura FDINOTIFICATION é preenchida com as seguintes informações:

  • psz1 apontará para o nome de um arquivo no gabinete
  • hf será um identificador de arquivo (originado de fdintCOPY_FILE)
  • date date will equal the file's 16-bits MS-DOS date
  • time time will equal the file's 16-bits MS-DOS time
  • Os atributos attribs serão iguais aos atributos MS-DOS de 16 bits do arquivo (menos o bit _A_EXEC)
  • cb será igual a 0 ou 1, indicando se o arquivo deve ser executado após extração (1) ou não (0)
É responsabilidade do aplicativo executar o arquivo se cb for igual a 1. A notificação de fdintCLOSE_FILE_INFO é chamada depois que todos os dados são gravados em um arquivo de destino. O aplicativo deve fechar o arquivo (usando o identificador hf fornecido) e definir a data, a hora e os atributos do arquivo. O aplicativo deve retornar TRUE para êxito e FALSE ou -1 para anular FDICopy. A FDI pressupõe que o arquivo de destino foi fechado, mesmo que esse retorno de chamada retorne uma falha; A FDI não tentará usar PFNCLOSE para fechar o arquivo.
fdintNEXT_CABINET
0x04
O arquivo continuou para o próximo gabinete.

Quando esse valor é definido, a estrutura FDINOTIFICATION é preenchida com as seguintes informações:

  • psz1 apontará para o nome do próximo gabinete no qual o arquivo atual continua
  • psz2 será um identificador de arquivo (que se originou de fdintCOPY_FILE)
  • psz3 apontará para as informações do caminho do gabinete
  • fdie será igual a um valor de erro ou êxito
Essa notificação será chamada somente se fdintCOPY_FILE for instruído a copiar um arquivo, que continua de um gabinete subsequente, para o gabinete atual. Como é possível que o aplicativo modifique o nome do gabinete, é importante que o nome do caminho do gabinete, indicado pelo psz3, seja validado antes de ser retornado. Além disso, o aplicativo deve garantir que o gabinete exista e seja legível antes de retornar; se necessário, o aplicativo deve emitir um prompt de alteração de disco para confirmar.

Quando essa função retornar à FDI, a FDI verificará se os campos setID e iCabinet do gabinete fornecido correspondem aos valores esperados para esse gabinete. Caso contrário, a FDI continuará a enviar mensagens de notificação fdintNEXT_CABINET com o campo fdie definido como FDIERROR_WRONG_CABINET, até que o arquivo de gabinete correto seja especificado ou até que essa função retorne -1 e anule a chamada FDICopy . Se, depois de retornar dessa função, o arquivo de gabinete não estiver presente, legível ou tiver sido danificado, o campo fdie será igual a um dos seguintes 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
Se não houver erro, fdie será igual a FDIERROR_NONE. O aplicativo deve retornar 0 para indicar êxito ou -1 para indicar falha, o que anulará FDICopy.
fdintENUMERATE
0x05
Enumeração status.

Valor retornado

Nenhum

Requisitos

   
Plataforma de Destino Windows
Cabeçalho fdi.h

Confira também

FDICopy

FDINOTIFICATION