亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fci.h

?? Microsoft CAB庫壓縮文件
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*
 *  FCI.H -- File Compression Interface
 *
 *  Copyright (C) Microsoft Corporation 1993-1997
 *  All Rights Reserved.
 */

#ifdef  __cplusplus
extern "C" {
#endif

#ifndef INCLUDED_TYPES_FCI_FDI
#define INCLUDED_TYPES_FCI_FDI 1

#ifndef HUGE
#define HUGE
#endif

#ifndef FAR
#define FAR
#endif

#ifndef DIAMONDAPI
#define DIAMONDAPI __cdecl
#endif


//** Specify structure packing explicitly for clients of FCI
#pragma pack(4)

//** Don't redefine types defined in Win16 WINDOWS.H (_INC_WINDOWS)
//   or Win32 WINDOWS.H (_WINDOWS_)
//
#if !defined(_INC_WINDOWS) && !defined(_WINDOWS_)
typedef int            BOOL;     /* f */
typedef unsigned char  BYTE;     /* b */
typedef unsigned int   UINT;     /* ui */
typedef unsigned short USHORT;   /* us */
typedef unsigned long  ULONG;    /* ul */
#endif   // _INC_WINDOWS

typedef unsigned long  CHECKSUM; /* csum */

typedef unsigned long  UOFF;     /* uoff - uncompressed offset */
typedef unsigned long  COFF;     /* coff - cabinet file offset */


#ifndef TRUE
#define TRUE    1
#endif

#ifndef FALSE
#define FALSE   0
#endif

#ifndef NULL
#define NULL    0
#endif


/***    ERF - Error structure
 *
 *  This structure returns error information from FCI/FDI.  The caller should
 *  not modify this structure.
 */
typedef struct {
    int     erfOper;            // FCI/FDI error code -- see FDIERROR_XXX
                                //  and FCIERR_XXX equates for details.

    int     erfType;            // Optional error value filled in by FCI/FDI.
                                // For FCI, this is usually the C run-time
                                // *errno* value.

    BOOL    fError;             // TRUE => error present
} ERF;      /* erf */
typedef ERF FAR *PERF;  /* perf */

#ifdef _DEBUG
// don't hide statics from map during debugging
#define STATIC      
#else // !DEBUG
#define STATIC static
#endif // !DEBUG

#define CB_MAX_CHUNK            32768U
#define CB_MAX_DISK         0x7ffffffL
#define CB_MAX_FILENAME            256
#define CB_MAX_CABINET_NAME        256
#define CB_MAX_CAB_PATH            256
#define CB_MAX_DISK_NAME           256

/***    tcompXXX - Compression types
 *
 *  These are passed to FCIAddFile(), and are also stored in the CFFOLDER
 *  structures in cabinet files.
 *
 *  NOTE: We reserve bits for the TYPE, QUANTUM_LEVEL, and QUANTUM_MEM
 *        to provide room for future expansion.  Since this value is stored
 *        in the CFDATA records in the cabinet file, we don't want to
 *        have to change the format for existing compression configurations
 *        if we add new ones in the future.  This will allows us to read
 *        old cabinet files in the future.
 */

typedef unsigned short TCOMP; /* tcomp */

#define tcompMASK_TYPE          0x000F  // Mask for compression type
#define tcompTYPE_NONE          0x0000  // No compression
#define tcompTYPE_MSZIP         0x0001  // MSZIP
#define tcompTYPE_QUANTUM       0x0002  // Quantum
#define tcompTYPE_LZX           0x0003  // LZX
#define tcompBAD                0x000F  // Unspecified compression type

#define tcompMASK_LZX_WINDOW    0x1F00  // Mask for LZX Compression Memory
#define tcompLZX_WINDOW_LO      0x0F00  // Lowest LZX Memory (15)
#define tcompLZX_WINDOW_HI      0x1500  // Highest LZX Memory (21)
#define tcompSHIFT_LZX_WINDOW        8  // Amount to shift over to get int

#define tcompMASK_QUANTUM_LEVEL 0x00F0  // Mask for Quantum Compression Level
#define tcompQUANTUM_LEVEL_LO   0x0010  // Lowest Quantum Level (1)
#define tcompQUANTUM_LEVEL_HI   0x0070  // Highest Quantum Level (7)
#define tcompSHIFT_QUANTUM_LEVEL     4  // Amount to shift over to get int

#define tcompMASK_QUANTUM_MEM   0x1F00  // Mask for Quantum Compression Memory
#define tcompQUANTUM_MEM_LO     0x0A00  // Lowest Quantum Memory (10)
#define tcompQUANTUM_MEM_HI     0x1500  // Highest Quantum Memory (21)
#define tcompSHIFT_QUANTUM_MEM       8  // Amount to shift over to get int

#define tcompMASK_RESERVED      0xE000  // Reserved bits (high 3 bits)



#define CompressionTypeFromTCOMP(tc) \
            ((tc) & tcompMASK_TYPE)

#define CompressionLevelFromTCOMP(tc) \
            (((tc) & tcompMASK_QUANTUM_LEVEL) >> tcompSHIFT_QUANTUM_LEVEL)

#define CompressionMemoryFromTCOMP(tc) \
            (((tc) & tcompMASK_QUANTUM_MEM) >> tcompSHIFT_QUANTUM_MEM)

#define TCOMPfromTypeLevelMemory(t,l,m)           \
            (((m) << tcompSHIFT_QUANTUM_MEM  ) |  \
             ((l) << tcompSHIFT_QUANTUM_LEVEL) |  \
             ( t                             ))

#define LZXCompressionWindowFromTCOMP(tc) \
            (((tc) & tcompMASK_LZX_WINDOW) >> tcompSHIFT_LZX_WINDOW)

#define TCOMPfromLZXWindow(w)      \
            (((w) << tcompSHIFT_LZX_WINDOW ) |  \
             ( tcompTYPE_LZX ))


//** Revert to default structure packing
#pragma pack()

#endif // !INCLUDED_TYPES_FCI_FDI

#ifndef INCLUDED_FCI
#define INCLUDED_FCI 1

//** Specify structure packing explicitly for clients of FCI
#pragma pack(4)


/***    FCIERROR - Error codes returned in erf.erfOper field
 *
 */
typedef enum {
FCIERR_NONE,                // No error

FCIERR_OPEN_SRC,            // Failure opening file to be stored in cabinet
                            //  erf.erfTyp has C run-time *errno* value

FCIERR_READ_SRC,            // Failure reading file to be stored in cabinet
                            //  erf.erfTyp has C run-time *errno* value

FCIERR_ALLOC_FAIL,          // Out of memory in FCI

FCIERR_TEMP_FILE,           // Could not create a temporary file
                            //  erf.erfTyp has C run-time *errno* value

FCIERR_BAD_COMPR_TYPE,      // Unknown compression type

FCIERR_CAB_FILE,            // Could not create cabinet file
                            //  erf.erfTyp has C run-time *errno* value

FCIERR_USER_ABORT,          // Client requested abort

FCIERR_MCI_FAIL,            // Failure compressing data

} FCIERROR;


/*
 * FAT file attribute flag used by FCI/FDI to indicate that
 * the filename in the CAB is a UTF string
 */
#ifndef _A_NAME_IS_UTF
#define _A_NAME_IS_UTF  0x80
#endif

/*
 * FAT file attribute flag used by FCI/FDI to indicate that
 * the file should be executed after extraction
 */
#ifndef _A_EXEC
#define _A_EXEC         0x40
#endif


/***    HFCI - Handle to an FCI Context
 *
 */
typedef void * HFCI;


/***    CCAB - Current Cabinet
 *
 *  This structure is used for passing in the cabinet parameters to FCI,
 *  and is passed back on certain FCI callbacks to provide cabinet
 *  information to the client.
 */
typedef struct {
// longs first
    ULONG  cb;                  // size available for cabinet on this media
    ULONG  cbFolderThresh;      // Thresshold for forcing a new Folder

// then ints
    UINT   cbReserveCFHeader;   // Space to reserve in CFHEADER
    UINT   cbReserveCFFolder;   // Space to reserve in CFFOLDER
    UINT   cbReserveCFData;     // Space to reserve in CFDATA
    int    iCab;                // sequential numbers for cabinets
    int    iDisk;               // Disk number
#ifndef REMOVE_CHICAGO_M6_HACK
    int    fFailOnIncompressible; // TRUE => Fail if a block is incompressible
#endif

//  then shorts
    USHORT setID;               // Cabinet set ID

// then chars
    char   szDisk[CB_MAX_DISK_NAME];    // current disk name
    char   szCab[CB_MAX_CABINET_NAME];  // current cabinet name
    char   szCabPath[CB_MAX_CAB_PATH];  // path for creating cabinet
} CCAB; /* ccab */
typedef CCAB *PCCAB; /* pccab */


/***    FNFCIALLOC - Memory Allocation
 *      FNFCIFREE  - Memory Free
 *
 *  These are modeled after the C run-time routines malloc() and free()
 *  FCI expects error handling to be identical to these C run-time routines.
 *
 *  As long as you faithfully copy the semantics of malloc() and free(),
 *  you can supply any functions you like!
 *
 *  WARNING: You should never assume anything about the sequence of
 *           FNFCIALLOC and FNFCIFREE calls -- incremental releases of
 *           FCI may have radically different numbers of
 *           FNFCIALLOC calls and allocation sizes!
 */
//** Memory functions for FCI
typedef void HUGE * (FAR DIAMONDAPI *PFNFCIALLOC)(ULONG cb); /* pfna */
#define FNFCIALLOC(fn) void HUGE * FAR DIAMONDAPI fn(ULONG cb)

typedef void (FAR DIAMONDAPI *PFNFCIFREE)(void HUGE *memory); /* pfnf */
#define FNFCIFREE(fn) void FAR DIAMONDAPI fn(void HUGE *memory)


/***    PFNFCIOPEN  - File I/O callbacks for FCI
 *      PFNFCIREAD
 *      PFNFCIWRITE
 *      PFNFCICLOSE
 *      PFNFCISEEK
 *
 *  These are modeled after the C run-time routines _open, _read,
 *  _write, _close, and _lseek.  The values for the PFNFCIOPEN oflag
 *  and pmode calls are those defined for _open.  FCI expects error
 *  handling to be identical to these C run-time routines, except that
 *  the value of errno should be returned via *err.
 *
 *  As long as you faithfully copy these aspects, you can supply
 *  any functions you like!
 *
 *  WARNING: You should never assume you know what file is being
 *           opened at any one point in time!  It is possible
 *           that in a future implementations it may open temporary
 *           files or cabinet files in a different order.
 */
//** File I/O functions for FCI
typedef int  (FAR DIAMONDAPI *PFNFCIOPEN) (char FAR *pszFile, int oflag, int pmode, int FAR *err, void FAR *pv);
typedef UINT (FAR DIAMONDAPI *PFNFCIREAD) (int hf, void FAR *memory, UINT cb, int FAR *err, void FAR *pv);
typedef UINT (FAR DIAMONDAPI *PFNFCIWRITE)(int hf, void FAR *memory, UINT cb, int FAR *err, void FAR *pv);
typedef int  (FAR DIAMONDAPI *PFNFCICLOSE)(int hf, int FAR *err, void FAR *pv);
typedef long (FAR DIAMONDAPI *PFNFCISEEK) (int hf, long dist, int seektype, int FAR *err, void FAR *pv);
typedef int  (FAR DIAMONDAPI *PFNFCIDELETE) (char FAR *pszFile, int FAR *err, void FAR *pv);

#define FNFCIOPEN(fn) int FAR DIAMONDAPI fn(char FAR *pszFile, int oflag, int pmode, int FAR *err, void FAR *pv)
#define FNFCIREAD(fn) UINT FAR DIAMONDAPI fn(int hf, void FAR *memory, UINT cb, int FAR *err, void FAR *pv)
#define FNFCIWRITE(fn) UINT FAR DIAMONDAPI fn(int hf, void FAR *memory, UINT cb, int FAR *err, void FAR *pv)
#define FNFCICLOSE(fn) int FAR DIAMONDAPI fn(int hf, int FAR *err, void FAR *pv)
#define FNFCISEEK(fn) long FAR DIAMONDAPI fn(int hf, long dist, int seektype, int FAR *err, void FAR *pv)
#define FNFCIDELETE(fn) int FAR DIAMONDAPI fn(char FAR *pszFile, int FAR *err, void FAR *pv)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品成人一区二区三区| 亚洲黄色片在线观看| 精品久久一二三区| 国产三级一区二区三区| 国产精品传媒视频| 美国精品在线观看| 成人涩涩免费视频| 欧美色图片你懂的| 欧美va亚洲va在线观看蝴蝶网| 国产人成亚洲第一网站在线播放| 欧美经典一区二区三区| 亚洲一区影音先锋| 福利一区二区在线| 欧美美女网站色| 免费成人在线观看视频| 日本韩国精品在线| 国产农村妇女精品| 九色综合狠狠综合久久| 欧美电影一区二区三区| 中文字幕中文字幕一区二区| 日本亚洲最大的色成网站www| jizzjizzjizz欧美| 国产精品沙发午睡系列990531| 精品在线一区二区| 欧美三区在线视频| 亚洲男同1069视频| 色婷婷国产精品综合在线观看| 久久久精品欧美丰满| 国产一区二区不卡| 日韩精品一区二区三区中文精品| 亚洲大片免费看| 欧美日韩国产中文| 视频在线观看国产精品| 91久久精品一区二区| 一区二区三区四区高清精品免费观看 | 免费观看在线色综合| 91啪亚洲精品| 亚洲激情中文1区| 欧美吻胸吃奶大尺度电影| 亚洲午夜电影网| 日韩女优av电影在线观看| 九九热在线视频观看这里只有精品| 日韩视频在线观看一区二区| 捆绑调教一区二区三区| 国产亚洲精久久久久久| 91视频国产资源| 五月天亚洲婷婷| 国产欧美日韩不卡免费| 色悠久久久久综合欧美99| 日精品一区二区三区| 欧美国产1区2区| 欧美日韩黄色影视| 国产精品综合在线视频| 一区二区三区丝袜| 亚洲精品在线观| 制服丝袜亚洲播放| 91亚洲国产成人精品一区二三| 天天亚洲美女在线视频| 国产色一区二区| 欧美在线看片a免费观看| 国产一区二区三区视频在线播放| 亚洲欧洲色图综合| 国产亚洲精品aa| 一区二区成人在线| 精品国产伦理网| 欧美日韩亚洲另类| 在线视频你懂得一区二区三区| 狠狠色丁香久久婷婷综合_中| 亚洲二区视频在线| 亚洲免费观看视频| 中文字幕五月欧美| 欧美国产精品中文字幕| 国产视频一区在线观看| 亚洲精品在线观看网站| 久久这里只有精品首页| 精品成人免费观看| 久久亚洲精品国产精品紫薇| 日韩视频不卡中文| 欧美成人video| 欧美va亚洲va在线观看蝴蝶网| 91精品福利在线一区二区三区 | 五月天精品一区二区三区| 国产精品免费网站在线观看| 欧美激情综合五月色丁香小说| 国产欧美一区二区精品性色超碰| 欧美一区二区三区四区五区| 91精品国产91久久综合桃花| 精品国产一区二区三区久久影院 | 亚洲成人免费看| 偷拍自拍另类欧美| 久久电影国产免费久久电影| 国产成人av在线影院| 国产91精品久久久久久久网曝门| 国产一区二区精品在线观看| 成人三级伦理片| 在线这里只有精品| 26uuu欧美| 亚洲一区二区三区在线播放| 手机精品视频在线观看| 国产成人午夜视频| 欧美电影一区二区| 国产精品久久午夜夜伦鲁鲁| 亚洲精品一二三区| 美脚の诱脚舐め脚责91 | 国产喂奶挤奶一区二区三区| 亚洲免费伊人电影| 国产精品白丝av| 欧美老年两性高潮| 亚洲一区二区三区四区在线观看| 日韩精品成人一区二区在线| 99久久久无码国产精品| 久久午夜羞羞影院免费观看| 亚洲亚洲精品在线观看| 国产激情一区二区三区| 亚洲国产精品ⅴa在线观看| 日韩主播视频在线| 欧美亚洲高清一区| 成人免费一区二区三区在线观看| 国内精品在线播放| 日韩午夜三级在线| 久久99热99| 337p粉嫩大胆噜噜噜噜噜91av | 久久九九久精品国产免费直播| 奇米影视在线99精品| 欧美乱妇15p| 日韩精品欧美精品| 7777精品伊人久久久大香线蕉的| 亚洲一区免费观看| 欧美三区在线观看| 日韩vs国产vs欧美| 日韩一区二区三区免费观看| 麻豆91精品91久久久的内涵| 欧美一级日韩一级| 久久激情综合网| 久久久国产精品不卡| 国产在线看一区| 国产精品午夜电影| 99久久国产综合精品麻豆| 一区二区成人在线观看| 9191成人精品久久| 国产精品一区在线| 亚洲日本在线看| 91精品啪在线观看国产60岁| 国产成人8x视频一区二区| 日韩码欧中文字| 日韩精品专区在线| 91在线看国产| 奇米影视7777精品一区二区| 国产日韩欧美不卡在线| 国产精品乱人伦中文| 欧美日韩不卡在线| 99国产精品久久久| 青青青爽久久午夜综合久久午夜| 国产婷婷色一区二区三区| 欧美午夜精品一区二区蜜桃| 国产美女娇喘av呻吟久久| 亚洲电影你懂得| 亚洲狠狠丁香婷婷综合久久久| 久久亚洲私人国产精品va媚药| 欧美日韩精品是欧美日韩精品| 色综合天天性综合| 激情欧美一区二区三区在线观看| 亚洲另类在线一区| 中文字幕一区二区三区四区不卡| 欧美一区二区三区不卡| 欧美日韩日日摸| 91精品视频网| 亚洲欧美日韩国产另类专区| 亚洲日本在线看| 毛片av一区二区三区| 久久精品av麻豆的观看方式| 日韩中文字幕区一区有砖一区 | 色婷婷综合久久久| 日本国产一区二区| 欧美在线观看视频在线| 欧美日韩在线不卡| 91精品国产欧美一区二区18| 欧美xxx久久| 国产网红主播福利一区二区| 国产三级三级三级精品8ⅰ区| 日本一区二区在线不卡| 中文字幕一区在线观看| 亚洲免费观看高清完整版在线 | 欧美日韩国产色站一区二区三区| 欧美日韩视频专区在线播放| 欧美一级欧美三级在线观看| 精品国产成人在线影院| 18欧美亚洲精品| 蜜臀a∨国产成人精品| 成人在线视频一区| 在线观看91av| 国产精品热久久久久夜色精品三区| 亚洲人精品一区| 久久精品国产网站| 国产欧美精品一区二区色综合朱莉| 亚洲视频资源在线| 国产一区不卡视频| 欧美日韩的一区二区| 中文字幕第一区二区| 青娱乐精品在线视频|