Wert |
Bedeutung |
-
fdintCABINET_INFO
- 0x00
|
Allgemeine Informationen zum Kabinett.
Wenn dieser Wert festgelegt wird, wird die FDINOTIFICATION Struktur mit den folgenden Informationen aufgefüllt:
-
psz1 verweist auf den Namen der nächsten Kabinett (ohne Pfadinformationen)
-
psz2 zeigt auf den Namen des nächsten Datenträgers.
-
psz3 verweist auf den Cab-Pfadnamen
-
setID- entspricht der Satz-ID des aktuellen Cabinets.
-
iCabinet- entspricht der Kabinettsnummer innerhalb des Cabets (0 für den ersten Schrank, 1 für den zweiten Schrank usw.)
Die Anwendung sollte 0 zurückgeben, um den Erfolg anzugeben, oder -1, um fehler anzugeben, wodurch FDICopy abgebrochen wird. Eine fdintCABINET_INFO Benachrichtigung wird einmal für jede Kabinette bereitgestellt, die von FDICopygeöffnet wird; dies schließt Fortsetzungsschränke ein, die aufgrund von Dateien geöffnet werden, die sich über Schrankgrenzen erstrecken.
|
-
fdintPARTIAL_FILE
- 0x01
|
Die erste Datei in der Cab-Datei ist eine Fortsetzung einer Datei aus der vorherigen Cab-Datei.
Wenn dieser Wert festgelegt wird, wird die FDINOTIFICATION Struktur mit den folgenden Informationen aufgefüllt:
-
psz1 zeigt auf den Namen der Datei, die von einer vorherigen Cab-Datei fortgesetzt wurde.
-
psz2 verweist auf den Namen des Schranks, auf dem das erste Segment der Datei vorhanden ist
-
psz3 verweist auf den Namen des Datenträgers, auf dem das erste Segment der Datei vorhanden ist.
Die fdintPARTIAL_FILE-Benachrichtigung wird zu Beginn einer Cab-Datei aufgerufen, die von einer vorherigen Cab-Datei fortgesetzt wurde. Diese Benachrichtigung tritt nur auf, wenn FDICopy- auf dem zweiten oder nachfolgenden Cabt in einer Reihe gestartet wird, die Dateien aus einer vorherigen Cab-Datei fortgesetzt hat. Die Anwendung sollte 0 für Erfolg zurückgeben oder -1, um fehler anzuzeigen.
|
-
fdintCOPY_FILE
- 0x02
|
Informationen, die die zu kopierende Datei identifizieren.
Wenn dieser Wert festgelegt wird, wird die FDINOTIFICATION Struktur mit den folgenden Informationen aufgefüllt:
-
psz1 verweist auf den Namen einer Datei im Cab-
-
cb entspricht der nicht komprimierten Größe der Datei.
-
Datum entspricht dem 16-Bit-MS-DOS Datum der Datei.
-
Zeit entspricht der 16-Bit-MS-DOS Zeit der Datei.
-
Attribs entspricht den 16-Bit-MS-DOS Attributen der Datei. Darüber hinaus wird das _A_NAME_IS_UTF Flag festgelegt, wenn der Dateiname als UTF-8 interpretiert werden soll.
Beachten Sie, dass die oben genannten Mitglieder direkt aus der Cab-Datei stammen.
Wenn die Cab-Datei bösartig ist, kann der Name unzulässige oder schädliche Dateinamenzeichen enthalten.
Die Anwendung sollte einen von drei Werten zurückgeben; 0, um die Datei zu überspringen (d. h. nicht zu kopieren); -1 (negativ), um FDICopyabzubrechen; oder ein Nichtzero-Dateihandle (und nicht negativ-eins), das angibt, wo die Datei geschrieben werden soll. Das Dateihandle muss mit der PFNCLOSE--Funktion kompatibel sein, die für FDICreatebereitgestellt wird. Die fdintCOPY_FILE Benachrichtigung wird für jede Datei aufgerufen, die im aktuellen Cab-Format beginnt, und bietet die Möglichkeit, dass die Anwendung anfordern kann, dass die Datei kopiert oder übersprungen wird.
|
-
fdintCLOSE_FILE_INFO
- 0x03
|
Schließen Sie die Datei, legen Sie relevante Informationen fest.
Wenn dieser Wert festgelegt wird, wird die FDINOTIFICATION Struktur mit den folgenden Informationen aufgefüllt:
-
psz1 verweist auf den Namen einer Datei im Cab-
-
hf ist ein Dateihandle (das von fdintCOPY_FILEstammt)
-
Datum Datum entspricht dem 16-Bit-MS-DOS Datum der Datei.
-
Zeit Zeit entspricht der 16-Bit-MS-DOS Zeit der Datei.
-
Attribs Attribute entsprechen den 16-Bit-MS-DOS Attributen der Datei (minus der _A_EXEC Bit)
-
cb entspricht entweder 0 oder 1, und gibt an, ob die Datei nach dem Extrahieren (1) oder nicht (0) ausgeführt werden soll.
Es liegt in der Verantwortung der Anwendung, die Datei auszuführen, wenn cb gleich 1 ist. Die fdintCLOSE_FILE_INFO Benachrichtigung wird aufgerufen, nachdem alle Daten in eine Zieldatei geschrieben wurden. Die Anwendung muss die Datei schließen (mit dem bereitgestellten hf Handle) und das Datum, die Uhrzeit und die Attribute der Datei festlegen. Die Anwendung sollte TRUE- für den Erfolg zurückgeben und FALSE- oder -1, um FDICopy-abzubrechen. FDI geht davon aus, dass die Zieldatei geschlossen wurde, auch wenn dieser Rückruf einen Fehler zurückgibt; FDI versucht nicht, PFNCLOSE- zum Schließen der Datei zu verwenden.
|
-
fdintNEXT_CABINET
- 0x04
|
Die Datei wurde in der nächsten Cab-Datei fortgesetzt.
Wenn dieser Wert festgelegt wird, wird die FDINOTIFICATION Struktur mit den folgenden Informationen aufgefüllt:
-
psz1 zeigt auf den Namen des nächsten Cabes, auf dem die aktuelle Datei fortgesetzt wird.
-
psz2 ist ein Dateihandle (das von fdintCOPY_FILEstammt)
-
psz3 verweist auf die Informationen zum Cab-Pfad
-
fdie entspricht einem Erfolgs- oder Fehlerwert.
Diese Benachrichtigung wird nur aufgerufen, wenn fdintCOPY_FILE angewiesen wird, eine Datei zu kopieren, die von einer nachfolgenden Kabinette fortgesetzt wird, in die aktuelle Kabinett. Da es für die Anwendung möglich ist, den Cab-Namen zu ändern, ist es wichtig, dass der name des Cab-Pfads, der durch psz3angegeben ist, überprüft werden, bevor er zurückgegeben wird. Darüber hinaus sollte die Anwendung sicherstellen, dass der Schrank vorhanden ist und vor der Rückgabe lesbar ist; Bei Bedarf sollte die Anwendung eine Datenträgeränderungsaufforderung ausgeben, um dies zu bestätigen.
Wenn diese Funktion an FDI zurückgibt, überprüft FDI, ob die setID- und iCabinet- Felder des bereitgestellten Schranks mit den erwarteten Werten für diese Kabinett übereinstimmen. Andernfalls sendet FDI weiterhin fdintNEXT_CABINET Benachrichtigungen mit dem feld "fdie" auf FDIERROR_WRONG_CABINETfestgelegt ist, bis die richtige CAB-Datei angegeben ist, oder bis diese Funktion -1 zurückgibt und den FDICopy Aufruf abbricht. Wenn die CAB-Datei nach der Rückgabe von dieser Funktion nicht vorhanden, lesbar oder beschädigt ist, entspricht das feld fdie einem der folgenden Werte:
-
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
Wenn kein Fehler aufgetreten ist, entspricht fdie FDIERROR_NONE. Die Anwendung sollte 0 zurückgeben, um den Erfolg anzugeben, oder -1, um fehler anzugeben, wodurch FDICopy-abgebrochen wird.
|
-
fdintENUMERATE
- 0x05
|
Enumerationsstatus.
|