### RARHeaderDataEx structure

    struct RARHeaderDataEx
    {
      char         ArcName[1024];
      wchar_t      ArcNameW[1024];
      char         FileName[1024];
      wchar_t      FileNameW[1024];
      unsigned int Flags;
      unsigned int PackSize;
      unsigned int PackSizeHigh;
      unsigned int UnpSize;
      unsigned int UnpSizeHigh;
      unsigned int HostOS;
      unsigned int FileCRC;
      unsigned int FileTime;
      unsigned int UnpVer;
      unsigned int Method;
      unsigned int FileAttr;
      char         *CmtBuf;
      unsigned int CmtBufSize;
      unsigned int CmtSize;
      unsigned int CmtState;
      unsigned int DictSize;
      unsigned int HashType;
      char         Hash[32];
      unsigned int RedirType;
      wchar_t      *RedirName;
      unsigned int RedirNameSize;
      unsigned int DirTarget;
      unsigned int MtimeLow;
      unsigned int MtimeHigh;
      unsigned int CtimeLow;
      unsigned int CtimeHigh;
      unsigned int AtimeLow;
      unsigned int AtimeHigh;
      unsigned int Reserved[988];
    };

### Description

This structure is used by RARReadHeaderEx function. Please fill either the entire structure or at least its Reserved field with zeroes before passing to RARReadHeaderEx.

### Structure fields

- ArcName

  > Output parameter, which contains a zero terminated string of the current archive name. May be used to determine the current volume name.

- ArcNameW

  > Output parameter, which contains a zero terminated string of the current archive name in Unicode. May be used to determine the current volume name.

- FileName

  > Output parameter, which contains a zero terminated string of the file name in OEM (DOS) encoding.

- FileNameW

  > Output parameter, which contains a zero terminated string of the file name in Unicode.

- Flags

  > Output parameter which contains file flags:

  > RHDF_SPLITBEFORE | 0x01 | File continued from previous volume
  > RHDF_SPLITAFTER | 0x02 | File continued on next volume
  > RHDF_ENCRYPTED | 0x04 | File encrypted with password
  > | 0x08 | Reserved
  > RHDF_SOLID | 0x10 | Previous files data is used (solid flag)
  > RHDF_DIRECTORY | 0x20 | Directory entry

- PackSize

  > Output parameter. Lower 32 bits of packed file size. If file is split between volumes, it contains the lower 32 bits of file part size.

- PackSizeHigh

  > Output parameter. Higher 32 bits of packed file size. If file is split between volumes, it contains the higher 32 bits of file part size.

- UnpSize

  > Output parameter. Lower 32 bits of unpacked file size.

- UnpSizeHigh

  > Output parameter. Higher 32 bits of unpacked file size.

- HostOS

  > Output parameter. Operating system used to create the archive.

  > 0 | MS DOS
  > 1 | OS/2
  > 2 | Windows
  > 3 | Unix

- FileCRC

  > Output parameter, which contains unpacked file CRC32. In case of file parts split between volumes only the last part contains the correct CRC and it is accessible only in RAR_OM_LIST_INCSPLIT listing mode.

- FileTime

  > Output parameter. Contains the file modification date and time in standard MS DOS format.

- UnpVer

  > Output parameter. RAR version needed to extract file. It is encoded as 10 * Major version + minor version.

- Method

  > Output parameter. Packing method.

  > 0x30 | Storing
  > 0x31 | Fastest compression
  > 0x32 | Fast compression
  > 0x33 | Normal compression
  > 0x34 | Good compression
  > 0x35 | Best compression

- FileAttr

  > Output parameter. File attributes.

- CmtBuf

  > Input parameter. Points to the buffer for file comment.

  > File comment support is not implemented in current unrar.dll version. Appropriate parameters are preserved only for compatibility with older versions.

  > Set this field to NULL.

- CmtBufSize

  > Input parameter. Size of buffer for file comments.

  > File comment support is not implemented in current unrar.dll version.

  > Set this field to 0.

- CmtSize

  > Output parameter. Size of file comment read into buffer.

  > File comment support is not implemented in current unrar.dll version.

  > Always equal to 0.

- CmtState

  > Output parameter. State of file comment.

  > File comment support is not implemented in current unrar.dll version.

  > Always equal to 0.

- DictSize

  > Output parameter. Size of file compression dictionary in kilobytes.

- HashType

  > Output parameter. Type of hash function used to protect file data integrity. Can be RAR_HASH_NONE (no checksum or unknown hash function type), RAR_HASH_CRC32 (CRC32) or RAR_HASH_BLAKE2 (BLAKE2sp)

- Hash

  > Output parameter. If HashType is equal to RAR_HASH_BLAKE2, this array contains 32 bytes of file data BLAKE2sp hash.

- RedirType

  > Output parameter. Type of file system redirection.

  > 0 | No redirection, usual file.
  > 1 | Unix symbolic link
  > 2 | Windows symbolic link
  > 3 | Windows junction
  > 4 | Hard link
  > 5 | File reference saved with -oi switch

- RedirName

  > Input/output parameter. Pointer to buffer to receive file system redirection target name, such as target of symbolic link or file reference. It is returned as stored in archive and its value might be not immediately applicable for further use. For example, you may need to remove \??\ or UNC\ prefixes for Windows junctions or prepend the extraction destination path.

  > If you set RedirName to NULL, it is ignored and nothing is returned here.

- RedirNameSize

  > Input parameter. Size of buffer specified in RedirName. Ignored if RedirName is NULL.

- DirTarget

  > Output parameter. Non-zero if RedirType is symbolic link and RedirName points to directory.

- MtimeLow, MtimeHigh, CtimeLow, CtimeHigh, AtimeLow, AtimeHigh

  > Output parameters. Low and high 32 bit values of file modification, creation and last access time in Windows FILETIME format in Coordinated Universal Time (UTC). If appropriate file time is not stored in archive, both low and high values are set to 0.

- Reserved

  > Reserved for future use. The entire array must be filled with zeroes before passing RARHeaderDataEx structure to RARReadHeaderEx.

  ### See also

  > RARReadHeaderEx function.