iCabinet 캐비닛 집합 내의 캐비닛 번호와 같습니다(첫 번째 캐비닛의 경우 0, 두 번째 캐비닛의 경우 1 등).
애플리케이션은 성공을 나타내기 위해 0을 반환하거나 FDICopy를 중단하는 오류를 나타내는 -1 반환해야 합니다.
fdintCABINET_INFO 알림은 FDICopy;이 여는 각 캐비닛에 대해 한 번 제공됩니다. 여기에는 캐비닛 경계에 걸쳐 있는 파일로 인해 열린 연속 캐비닛이 포함됩니다.
fdintPARTIAL_FILE 알림은 이전 캐비닛에서 계속된 캐비닛의 시작 부분에 있는 파일에 대해 호출됩니다. 이 알림은 이전 캐비닛에서 파일이 계속된 시리즈의 두 번째 또는 후속 캐비닛에서 FDICopy 시작된 경우에만 발생합니다. 애플리케이션은 성공하려면 0을 반환하거나 실패를 나타내는 -1 반환해야 합니다.
attribs 파일의 16비트 MS-DOS 특성과 같습니다. 또한 파일 이름을 UTF-8로 해석하려는 경우 _A_NAME_IS_UTF 플래그가 설정됩니다.
위의 멤버는 캐비닛 파일에서 직접 가져옵니다.
캐비닛 파일이 악성인 경우 이름에 불법 또는 악성 파일 이름 문자가 포함될 수 있습니다.
애플리케이션은 세 가지 값 중 하나를 반환해야 합니다. 파일을 건너뛰려면(즉, 복사하지 않음) 0입니다. FDICopy중단하도록 -1(음수)입니다. 또는 파일을 쓸 위치를 나타내는 0이 아닌(및 음수가 아닌) 파일 핸들입니다. 파일 핸들은 FDICreate제공된 PFNCLOSE 함수와 호환되어야 합니다. 현재 캐비닛 내에서 시작하는 각 파일에 대해 fdintCOPY_FILE 알림이 호출되므로 애플리케이션에서 파일 복사 또는 건너뛰기를 요청할 수 있습니다.
attribs 특성은 파일의 16비트 MS-DOS 특성과 같습니다(_A_EXEC 비트 제외).
cb 추출 후 파일을 실행할지 여부를 나타내는 0 또는 1과 같으며( 0)
cb 1인 경우 파일을 실행하는 것은 애플리케이션의 책임입니다. 모든 데이터가 대상 파일에 기록된 후 fdintCLOSE_FILE_INFO 알림이 호출됩니다. 애플리케이션은 제공된 hf 핸들을 사용하여 파일을 닫고 파일 날짜, 시간 및 특성을 설정해야 합니다. 애플리케이션은 성공하려면 TRUE 반환하고, FALSE 또는 -1 FDICopy중단하도록 . FDI는 이 콜백이 실패를 반환하더라도 대상 파일이 닫혔다고 가정합니다. FDI는 PFNCLOSE 사용하여 파일을 닫으려고 시도하지 않습니다.
이 알림은 후속 캐비닛에서 현재 캐비닛으로 계속되는 파일을 복사하도록 fdintCOPY_FILE 지시된 경우에만 호출됩니다. 애플리케이션에서 캐비닛 이름을 수정할 수 있으므로 psz3표시된 캐비닛 경로 이름은 반환되기 전에 유효성을 검사해야 합니다. 또한 애플리케이션은 캐비닛이 존재하고 반환하기 전에 읽을 수 있는지 확인해야 합니다. 필요한 경우 애플리케이션은 디스크 변경 프롬프트를 실행하여 확인해야 합니다.
이 함수가 FDI로 돌아오면 FDI는 제공된 캐비닛의 setID 및 iCabinet 필드가 해당 캐비닛의 예상 값과 일치하는지 확인합니다. 그렇지 않은 경우 FDI는 올바른 캐비닛 파일이 지정될 때까지 또는 이 함수가 -1 반환하고 FDICopy 호출을 중단할 때까지 fdie 필드가 FDIERROR_WRONG_CABINET설정된 fdintNEXT_CABINET 알림 메시지를 계속 보냅니다. 이 함수에서 반환한 후 캐비닛 파일이 없거나 읽을 수 있거나 손상된 경우 fdie 필드는 다음 값 중 하나와 같습니다.
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
오류가 없으면 fdie FDIERROR_NONE 같습니다. 애플리케이션은 성공을 나타내기 위해 0을 반환하거나 실패를 나타내는 -1 FDICopy중단됩니다.