public static extern bool FCIAddFile(
     int handle,
     [MarshalAs(UnmanagedType.LPStr)]
     string pszSourceFile,
     [MarshalAs(UnmanagedType.LPStr)]
     string pszFileName,
     int fExecute,
     FciGetNextCabinetFn pfnfcignc,
     FciStatusFn pfnfcis,
     FciGetOpenInfoFn pfnfcgoi,
     ushort typeCompress);
 public static extern bool FCIFlushFolder(
     int handle,
     FciGetNextCabinetFn pfnfcignc,
     FciStatusFn pfnfcis);
 public static extern bool FCIFlushCabinet(
     int handle,
     int fGetNextCab,
     FciGetNextCabinetFn pfnfcignc,
     FciStatusFn pfnfcis);