1 /******************************************************************************
2 *
3 * Copyright (C) 2009, The Gentee Group. All rights reserved.
4 * This file is part of the Gentee open source project - http://www.gentee.com.
5 *
6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT").
7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS
8 * ACCEPTANCE OF THE AGREEMENT.
9 *
10 * Author: Alexey Krivonogov ( gentee )
11 *
12 ******************************************************************************/
13
14 type ERF
15 {
16 int erfOper
17 int erfType
18 uint fError
19 }
20
21 import "kernel32"
22 {
23 uint DosDateTimeToFileTime( ushort, ushort, filetime )
24 }
25
26 type cabinfo
27 {
28 ERF erf
29 uint lztype
30
31 uint call
32 uint pattern
33
34 uint fnctempfile
35 uint fncnotify
36 uint fncsysnotify
37
38 uint finish // 1 if finish for progress
39 uint cabsize
40 uint filesize
41 uint percent
42 }
43
44 define
45 {
46 // Notify codes
47 FLN_ERROR = 1
48 FLN_FILEBEGIN = 2
49 FLN_FILEEND = 3
50 FLN_ERROPEN = 4
51 FLN_PROGRESS = 5
52 FLN_NOTVALID = 6 // Not CAB file
53 FLN_NEXTVOLUME = 7
54 }
55
56 import "cab2g.dll"<link>
57 {
58 uint gcabe_addfile( uint, uint, uint, cabinfo )
59 uint gcabe_close( uint )
60 uint gcabe_create( uint, uint )
61 uint gcabe_flushfolder( uint )
62 uint gcabd_create( uint )
63 uint gcabd_destroy( uint )
64 uint gcabd_iscabinet( uint, uint, uint )
65 uint gcabd_copy( uint, uint, uint, uint )
66 }
67
68 include : $"cabencode.g"
69 include : $"cabdecode.g"
70
71