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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fci.h

?? 使用的制作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一区二区三区免费野_久草精品视频
欧洲精品一区二区三区在线观看| 欧美日韩成人综合天天影院 | 成人免费一区二区三区视频| 91视频在线看| 在线电影院国产精品| 国产精品456露脸| 日日夜夜精品视频免费| 国产精品久久久久久久久免费樱桃 | 国产一区久久久| 欧美日韩国产经典色站一区二区三区| 国产精品一级黄| 日一区二区三区| 欧美精品一区二区久久久| 91在线云播放| 日韩电影在线看| 亚洲精品视频在线| 久久精品一区八戒影视| 7799精品视频| 成人网页在线观看| 国产精品一线二线三线| 欧美国产成人在线| 欧美日韩aaaaa| 日韩精品一区二区三区三区免费| 色哟哟欧美精品| 国产高清在线精品| 久久99九九99精品| 免费av网站大全久久| 一区二区三区四区乱视频| 欧美日韩国产美| 色老汉av一区二区三区| 99视频在线精品| 精一区二区三区| 激情综合网激情| 奇米四色…亚洲| 理论电影国产精品| 国产精品电影一区二区| 国产亚洲综合av| 精品国产区一区| 精品久久久久久久久久久久久久久久久| 在线播放视频一区| 91精品视频网| 在线不卡免费av| 亚洲欧美偷拍三级| 黑人精品欧美一区二区蜜桃| 色视频欧美一区二区三区| 欧美电视剧在线观看完整版| 亚洲乱码中文字幕| 亚洲制服欧美中文字幕中文字幕| 日韩毛片一二三区| 亚洲激情av在线| 午夜精品123| 中文字幕一区二区三区不卡| 自拍偷拍国产亚洲| 亚洲乱码中文字幕| 三级在线观看一区二区| 青青草国产成人av片免费| 久久激情五月激情| 国产激情一区二区三区四区 | 亚洲免费在线视频一区 二区| 中文字幕一区二区三区在线播放| 狠狠色丁香婷综合久久| 欧美精品 国产精品| 精品国产乱码久久久久久老虎| 亚洲一二三区不卡| 国产亚洲成aⅴ人片在线观看| 欧美精品一区二区在线播放| 一区2区3区在线看| av一区二区三区四区| 国产亚洲一区二区三区在线观看| 青娱乐精品视频| 日韩写真欧美这视频| 亚洲aaa精品| 欧美性大战久久久| 亚洲麻豆国产自偷在线| 成人精品小蝌蚪| 国产精品色眯眯| 丰满少妇在线播放bd日韩电影| 2023国产精华国产精品| 久99久精品视频免费观看| 欧美成人三级电影在线| 久久精品国产秦先生| 欧美一区二区三区在线| 美女mm1313爽爽久久久蜜臀| 91精品国产91久久综合桃花| 美女一区二区在线观看| 日韩欧美亚洲一区二区| 激情成人午夜视频| 久久久欧美精品sm网站| 国产一区二区视频在线播放| 亚洲精品一区二区三区在线观看 | 日韩av不卡一区二区| 欧美日韩国产美女| 蜜桃视频免费观看一区| 精品国产乱码久久| 国产盗摄一区二区| 亚洲免费观看高清完整| 欧美日韩美少妇| 久久精品国产秦先生| 国产精品福利av| 欧美日韩一级黄| 韩国精品主播一区二区在线观看 | 日韩成人伦理电影在线观看| 欧美一二三四区在线| 国产精品一二三四| 亚洲欧美激情一区二区| 欧美日本一道本| 国产激情一区二区三区| 一区二区三区精品视频| 日韩午夜精品视频| 成人99免费视频| 婷婷久久综合九色国产成人 | ●精品国产综合乱码久久久久| 在线免费不卡电影| 久久国产麻豆精品| 亚洲男人的天堂在线观看| 91精品婷婷国产综合久久性色| 国产成人亚洲精品青草天美| 亚洲激情在线播放| 欧美精品一区二区蜜臀亚洲| 欧美亚洲国产一卡| 国产精品456露脸| 日本欧美一区二区三区| 中文字幕欧美国产| 欧美一区二区三区在线电影| 91在线免费播放| 国产一区二区免费视频| 亚洲二区在线观看| 国产精品久久福利| 欧美大片在线观看一区二区| 色婷婷精品大在线视频| 国产露脸91国语对白| 琪琪一区二区三区| 亚洲最新在线观看| 中文字幕在线观看不卡| 精品久久久久久久久久久久久久久久久| 色综合色狠狠天天综合色| 国产成人免费视频网站高清观看视频 | 国产麻豆精品久久一二三| 无吗不卡中文字幕| 亚洲欧洲综合另类在线| 欧美国产日韩在线观看| 日韩视频免费观看高清完整版| 在线欧美一区二区| 91在线精品一区二区| 国产精品456| 国产麻豆精品视频| 国产一区二区免费在线| 久久国产乱子精品免费女| 日本va欧美va瓶| 日本va欧美va瓶| 日本欧美在线看| 麻豆国产精品官网| 免费三级欧美电影| 免费观看久久久4p| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩vs国产vs欧美| 青青草视频一区| 国产综合色在线视频区| 精品一区免费av| 国产盗摄女厕一区二区三区| 国产一区二区中文字幕| 国产麻豆精品95视频| 粉嫩欧美一区二区三区高清影视 | 中文字幕日韩av资源站| 国产精品久久久一区麻豆最新章节| 国产婷婷色一区二区三区四区| 欧美电影免费观看高清完整版在| 日韩欧美另类在线| 精品少妇一区二区三区视频免付费 | 国产毛片精品视频| 国产一区二区免费看| 成人毛片老司机大片| 成人免费视频国产在线观看| 国产精品一区专区| av电影在线观看一区| 欧美图区在线视频| 欧美肥大bbwbbw高潮| 久久免费午夜影院| 亚洲欧美日韩国产成人精品影院| 亚洲香蕉伊在人在线观| 久久99国产精品久久99| 丁香五精品蜜臀久久久久99网站 | 99国产欧美久久久精品| 91欧美一区二区| 欧美精品自拍偷拍| 久久一二三国产| 亚洲精选视频免费看| 视频一区二区欧美| 国产91高潮流白浆在线麻豆| 91传媒视频在线播放| 欧美mv日韩mv国产| 亚洲人成网站影音先锋播放| 日本欧美大码aⅴ在线播放| 国产精品亚洲а∨天堂免在线| 色一情一乱一乱一91av| 日韩欧美国产小视频| 亚洲激情图片qvod| 国产成人日日夜夜| 91精品国产综合久久福利| 国产精品超碰97尤物18|