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

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

?? stormlib.h

?? 骨骼動畫....把魔獸模型解出的代碼..
?? H
?? 第 1 頁 / 共 2 頁
字號:
// MpqAddWaveToArchive quality flags
#define MAWA_QUALITY_HIGH    1
#define MAWA_QUALITY_MEDIUM  0
#define MAWA_QUALITY_LOW     2

// SFileGetFileInfo flags
#define SFILE_INFO_BLOCK_SIZE      0x01 //Block size in MPQ
#define SFILE_INFO_HASH_TABLE_SIZE 0x02 //Hash table size in MPQ
#define SFILE_INFO_NUM_FILES       0x03 //Number of files in MPQ
#define SFILE_INFO_TYPE            0x04 //Is MPQHANDLE a file or an MPQ?
#define SFILE_INFO_SIZE            0x05 //Size of MPQ or uncompressed file
#define SFILE_INFO_COMPRESSED_SIZE 0x06 //Size of compressed file
#define SFILE_INFO_FLAGS           0x07 //File flags (compressed, etc.), file attributes if a file not in an archive
#define SFILE_INFO_PARENT          0x08 //Handle of MPQ that file is in
#define SFILE_INFO_POSITION        0x09 //Position of file pointer in files
#define SFILE_INFO_LOCALEID        0x0A //Locale ID of file in MPQ
#define SFILE_INFO_PRIORITY        0x0B //Priority of open MPQ
#define SFILE_INFO_HASH_INDEX      0x0C //Hash index of file in MPQ

// SFileListFiles flags
#define SFILE_LIST_MEMORY_LIST  0x01 // Specifies that lpFilelists is a file list from memory, rather than being a list of file lists
#define SFILE_LIST_ONLY_KNOWN   0x02 // Only list files that the function finds a name for
#define SFILE_LIST_ONLY_UNKNOWN 0x04 // Only list files that the function does not find a name for

#define SFILE_TYPE_MPQ  0x01
#define SFILE_TYPE_FILE 0x02

#define SFILE_OPEN_HARD_DISK_FILE 0x0000 //Open archive without regard to the drive type it resides on
#define SFILE_OPEN_CD_ROM_FILE    0x0001 //Open the archive only if it is on a CD-ROM
#define SFILE_OPEN_ALLOW_WRITE    0x8000 //Open file with write access

#define SFILE_SEARCH_CURRENT_ONLY 0x00 //Used with SFileOpenFileEx; only the archive with the handle specified will be searched for the file
#define SFILE_SEARCH_ALL_OPEN     0x01 //SFileOpenFileEx will look through all open archives for the file

typedef HANDLE MPQHANDLE;

struct FILELISTENTRY {
	DWORD dwFileExists; // Nonzero if this entry is used
	LCID lcLocale; // Locale ID of file
	DWORD dwCompressedSize; // Compressed size of file
	DWORD dwFullSize; // Uncompressed size of file
	DWORD dwFlags; // Flags for file
	char szFileName[260];
};

struct MPQARCHIVE;
struct MPQFILE;
struct MPQHEADER;
struct BLOCKTABLEENTRY;
struct HASHTABLEENTRY;

struct MPQHEADER {
	DWORD dwMPQID; //"MPQ\x1A" for mpq's, "BN3\x1A" for bncache.dat
	DWORD dwHeaderSize; // Size of this header
	DWORD dwMPQSize; //The size of the mpq archive
	WORD wUnused0C; // Seems to always be 0
	WORD wBlockSize; // Size of blocks in files equals 512 << wBlockSize
	DWORD dwHashTableOffset; // Offset to hash table
	DWORD dwBlockTableOffset; // Offset to block table
	DWORD dwHashTableSize; // Number of entries in hash table
	DWORD dwBlockTableSize; // Number of entries in block table
};

//Archive handles may be typecasted to this struct so you can access
//some of the archive's properties and the decrypted hash table and
//block table directly.
struct MPQARCHIVE {
	// Arranged according to priority with lowest priority first
	MPQARCHIVE * lpNextArc; // Pointer to the next ARCHIVEREC struct. Pointer to addresses of first and last archives if last archive
	MPQARCHIVE * lpPrevArc; // Pointer to the previous ARCHIVEREC struct. 0xEAFC5E23 if first archive
	char szFileName[260]; // Filename of the archive
	HANDLE hFile; // The archive's file handle
	DWORD dwFlags1; // Some flags, bit 1 (0 based) seems to be set when opening an archive from a CD
	DWORD dwPriority; // Priority of the archive set when calling SFileOpenArchive
	MPQFILE * lpLastReadFile; // Pointer to the last read file's FILEREC struct. Only used for incomplete reads of blocks
	DWORD dwUnk; // Seems to always be 0
	DWORD dwBlockSize; // Size of file blocks in bytes
	BYTE * lpLastReadBlock; // Pointer to the read buffer for archive. Only used for incomplete reads of blocks
	DWORD dwBufferSize; // Size of the read buffer for archive. Only used for incomplete reads of blocks
	DWORD dwMPQStart; // The starting offset of the archive
	MPQHEADER * lpMPQHeader; // Pointer to the archive header
	BLOCKTABLEENTRY * lpBlockTable; // Pointer to the start of the block table
	HASHTABLEENTRY * lpHashTable; // Pointer to the start of the hash table
	DWORD dwFileSize; // The size of the file in which the archive is contained
	DWORD dwOpenFiles; // Count of files open in archive + 1
	MPQHEADER MpqHeader;
	DWORD dwFlags; //The only flag that should be changed is MOAU_MAINTAIN_LISTFILE
	LPSTR lpFileName;
};

//Handles to files in the archive may be typecasted to this struct
//so you can access some of the file's properties directly.
struct MPQFILE {
	MPQFILE * lpNextFile; // Pointer to the next FILEREC struct. Pointer to addresses of first and last files if last file
	MPQFILE * lpPrevFile; // Pointer to the previous FILEREC struct. 0xEAFC5E13 if first file
	char szFileName[260]; // Filename of the file
	HANDLE hPlaceHolder; // Always 0xFFFFFFFF
	MPQARCHIVE * lpParentArc; // Pointer to the ARCHIVEREC struct of the archive in which the file is contained
	BLOCKTABLEENTRY * lpBlockEntry; // Pointer to the file's block table entry
	DWORD dwCryptKey; // Decryption key for the file
	DWORD dwFilePointer; // Position of file pointer in the file
	DWORD dwUnk1; // Seems to always be 0
	DWORD dwBlockCount; // Number of blocks in file
	DWORD * lpdwBlockOffsets; // Offsets to blocks in file. There are 1 more of these than the number of blocks
	DWORD dwReadStarted; // Set to 1 after first read
	DWORD dwUnk2; // Seems to always be 0
	BYTE * lpLastReadBlock; // Pointer to the read buffer for file. Only used for incomplete reads of blocks
	DWORD dwBytesRead; // Total bytes read from open file
	DWORD dwBufferSize; // Size of the read buffer for file. Only used for incomplete reads of blocks
	DWORD dwConstant; // Seems to always be 1
	HASHTABLEENTRY *lpHashEntry;
	LPSTR lpFileName;
};

struct BLOCKTABLEENTRY {
	DWORD dwFileOffset; // Offset to file
	DWORD dwCompressedSize; // Compressed size of file
	DWORD dwFullSize; // Uncompressed size of file
	DWORD dwFlags; // Flags for file
};

struct HASHTABLEENTRY {
	DWORD dwNameHashA; // First name hash of file
	DWORD dwNameHashB; // Second name hash of file
	LCID lcLocale; // Locale ID of file
	DWORD dwBlockTableIndex; // Index to the block table entry for the file
};

//Archive handles may be typecasted to this struct so you can access
//some of the archive's properties and the decrypted hash table and
//block table directly.
/*typedef struct {
	MPQHEADER MpqHeader;
	HASHTABLEENTRY *lpHashTable;
	BLOCKTABLEENTRY *lpBlockTable;
	DWORD dwStart; //Offset to the archive's header
	HANDLE hFile; //The archive's file handle
	LPSTR lpFileName;
	DWORD dwPriority; //When searching for a file in open archives, ones with higher priority are checked first
	DWORD dwFlags; //The only flag that should be changed is MOAU_MAINTAIN_LISTFILE
} MPQARCHIVE;

//Handles to files in the archive may be typecasted to this struct
//so you can access some of the file's properties directly.
typedef struct {
	HASHTABLEENTRY *lpHashEntry;
	MPQHANDLE hMPQ;
	LPSTR lpFileName;
	DWORD FilePointer;
	DWORD *dwBlockStart;
	DWORD dwCryptKey;
} MPQFILE;*/

// Defines for backward compatibility with old lmpqapi function names
#define MpqAddFileToArcive MpqAddFileToArchive
#define MpqOpenArchive     SFileOpenArchive
#define MpqOpenFileEx      SFileOpenFileEx
#define MpqGetFileSize     SFileGetFileSize
#define MpqReadFile        SFileReadFile
#define MpqCloseFile       SFileCloseFile
#define MpqCloseArchive    SFileCloseArchive

// Storm functions implemented by this library
BOOL      SFMPQAPI WINAPI SFileOpenArchive(LPCSTR lpFileName, DWORD dwPriority, DWORD dwFlags, MPQHANDLE *hMPQ);
BOOL      SFMPQAPI WINAPI SFileCloseArchive(MPQHANDLE hMPQ);
BOOL      SFMPQAPI WINAPI SFileGetArchiveName(MPQHANDLE hMPQ, LPCSTR lpBuffer, DWORD dwBufferLength);
BOOL      SFMPQAPI WINAPI SFileOpenFile(LPCSTR lpFileName, MPQHANDLE *hFile);
BOOL      SFMPQAPI WINAPI SFileOpenFileEx(MPQHANDLE hMPQ, LPCSTR lpFileName, DWORD dwSearchScope, MPQHANDLE *hFile);
BOOL      SFMPQAPI WINAPI SFileCloseFile(MPQHANDLE hFile);
DWORD     SFMPQAPI WINAPI SFileGetFileSize(MPQHANDLE hFile, LPDWORD lpFileSizeHigh);
BOOL      SFMPQAPI WINAPI SFileGetFileArchive(MPQHANDLE hFile, MPQHANDLE *hMPQ);
BOOL      SFMPQAPI WINAPI SFileGetFileName(MPQHANDLE hFile, LPCSTR lpBuffer, DWORD dwBufferLength);
DWORD     SFMPQAPI WINAPI SFileSetFilePointer(MPQHANDLE hFile, long lDistanceToMove, PLONG lplDistanceToMoveHigh, DWORD dwMoveMethod);
BOOL      SFMPQAPI WINAPI SFileReadFile(MPQHANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,LPOVERLAPPED lpOverlapped);
LCID      SFMPQAPI WINAPI SFileSetLocale(LCID nNewLocale);
BOOL      SFMPQAPI WINAPI SFileGetBasePath(LPCSTR lpBuffer, DWORD dwBufferLength);
BOOL      SFMPQAPI WINAPI SFileSetBasePath(LPCSTR lpNewBasePath);

// Extra storm-related functions
DWORD     SFMPQAPI WINAPI SFileGetFileInfo(MPQHANDLE hFile, DWORD dwInfoType);
BOOL      SFMPQAPI WINAPI SFileSetArchivePriority(MPQHANDLE hMPQ, DWORD dwPriority);
DWORD     SFMPQAPI WINAPI SFileFindMpqHeader(HANDLE hFile);
BOOL      SFMPQAPI WINAPI SFileListFiles(MPQHANDLE hMPQ, LPCSTR lpFileLists, FILELISTENTRY *lpListBuffer, DWORD dwFlags);

// Archive editing functions implemented by this library
MPQHANDLE SFMPQAPI WINAPI MpqOpenArchiveForUpdate(LPCSTR lpFileName, DWORD dwFlags, DWORD dwMaximumFilesInArchive);
DWORD     SFMPQAPI WINAPI MpqCloseUpdatedArchive(MPQHANDLE hMPQ, DWORD dwUnknown2);
BOOL      SFMPQAPI WINAPI MpqAddFileToArchive(MPQHANDLE hMPQ, LPCSTR lpSourceFileName, LPCSTR lpDestFileName, DWORD dwFlags);
BOOL      SFMPQAPI WINAPI MpqAddWaveToArchive(MPQHANDLE hMPQ, LPCSTR lpSourceFileName, LPCSTR lpDestFileName, DWORD dwFlags, DWORD dwQuality);
BOOL      SFMPQAPI WINAPI MpqRenameFile(MPQHANDLE hMPQ, LPCSTR lpcOldFileName, LPCSTR lpcNewFileName);
BOOL      SFMPQAPI WINAPI MpqDeleteFile(MPQHANDLE hMPQ, LPCSTR lpFileName);
BOOL      SFMPQAPI WINAPI MpqCompactArchive(MPQHANDLE hMPQ);

// Extra archive editing functions
BOOL      SFMPQAPI WINAPI MpqAddFileToArchiveEx(MPQHANDLE hMPQ, LPCSTR lpSourceFileName, LPCSTR lpDestFileName, DWORD dwFlags, DWORD dwCompressionType, DWORD dwCompressLevel);
BOOL      SFMPQAPI WINAPI MpqAddFileFromBufferEx(MPQHANDLE hMPQ, LPVOID lpBuffer, DWORD dwLength, LPCSTR lpFileName, DWORD dwFlags, DWORD dwCompressionType, DWORD dwCompressLevel);
BOOL      SFMPQAPI WINAPI MpqAddFileFromBuffer(MPQHANDLE hMPQ, LPVOID lpBuffer, DWORD dwLength, LPCSTR lpFileName, DWORD dwFlags);
BOOL      SFMPQAPI WINAPI MpqAddWaveFromBuffer(MPQHANDLE hMPQ, LPVOID lpBuffer, DWORD dwLength, LPCSTR lpFileName, DWORD dwFlags, DWORD dwQuality);
BOOL      SFMPQAPI WINAPI MpqSetFileLocale(MPQHANDLE hMPQ, LPCSTR lpFileName, LCID nOldLocale, LCID nNewLocale);

// These functions do nothing.  They are only provided for
// compatibility with MPQ extractors that use storm.
BOOL      SFMPQAPI WINAPI SFileDestroy();
void      SFMPQAPI WINAPI StormDestroy();

#ifdef __cplusplus
};  // extern "C" 
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜av在线| 精品日韩在线一区| 7777女厕盗摄久久久| 日韩亚洲欧美中文三级| 国产亚洲一区字幕| 亚洲欧美电影院| 天堂精品中文字幕在线| 国产精品1024| 欧美中文一区二区三区| 日韩精品一区二区三区在线播放 | 亚洲综合色自拍一区| 麻豆高清免费国产一区| 97久久超碰国产精品电影| 欧美日韩中文另类| 国产三级精品视频| 亚洲一区在线观看免费观看电影高清 | 日本不卡视频在线| av一区二区三区| 欧美一区二区福利视频| 国产精品不卡在线| 秋霞国产午夜精品免费视频| 91在线视频官网| 欧美变态tickle挠乳网站| 一区二区三区欧美亚洲| 国产精品99久久久久| 一区二区三区中文在线| 精东粉嫩av免费一区二区三区| 91亚洲国产成人精品一区二区三| 日韩欧美成人午夜| 亚洲精品国产精品乱码不99| 久久这里只精品最新地址| 夜夜爽夜夜爽精品视频| 91黄色免费看| 久久影院午夜片一区| 香蕉影视欧美成人| 538prom精品视频线放| 久久99精品久久久| 久久久99精品久久| 欧美系列亚洲系列| 国产综合久久久久久久久久久久 | 免费成人性网站| 在线播放欧美女士性生活| 亚洲一区二区三区在线播放| 91同城在线观看| 一区二区欧美精品| 欧美艳星brazzers| 亚洲超丰满肉感bbw| 欧美精品亚洲二区| 麻豆专区一区二区三区四区五区| 日韩精品综合一本久道在线视频| 秋霞午夜av一区二区三区| 欧美成人video| 精品一区二区在线播放| 亚洲一区欧美一区| 欧美va在线播放| 久久99精品久久久久久国产越南| 日韩一区二区三区电影| 精品一区二区三区香蕉蜜桃| 久久亚洲综合色一区二区三区| 国产酒店精品激情| 国产精品色哟哟| 91网站在线观看视频| 亚洲亚洲精品在线观看| 欧美高清hd18日本| 国产综合久久久久久鬼色| 国产日产欧美一区二区视频| 99久久精品国产一区| 亚洲精品国产视频| 欧美一级久久久| 国产精品综合一区二区| 亚洲欧美日韩在线播放| 欧美人xxxx| 极品少妇一区二区| 综合中文字幕亚洲| 欧美日韩国产大片| 国产一区二区视频在线播放| 亚洲欧洲成人精品av97| 亚洲精品中文在线影院| 91精品欧美一区二区三区综合在 | 久久日韩精品一区二区五区| 成人动漫在线一区| 午夜视频一区二区三区| 国产亚洲女人久久久久毛片| 一本大道久久精品懂色aⅴ| 日韩av不卡在线观看| 久久精品免费在线观看| 色香色香欲天天天影视综合网| 日韩中文字幕av电影| 国产亚洲欧美日韩俺去了| 欧美在线不卡视频| 国产一区二区三区四区五区美女 | 亚洲国产精品v| 欧美日韩在线三区| 国产精品自拍网站| 亚洲午夜电影网| 国产亚洲欧美日韩俺去了| 欧美性高清videossexo| 国产一区二区三区在线看麻豆| 夜色激情一区二区| 久久伊人中文字幕| 欧美日韩视频一区二区| 国产激情精品久久久第一区二区| 一区二区三区电影在线播| ww亚洲ww在线观看国产| 欧美三级电影在线看| 国产成人免费在线观看| 五月天久久比比资源色| 国产精品剧情在线亚洲| 日韩欧美在线影院| 在线一区二区三区四区五区| 国产成人精品免费在线| 日韩中文字幕一区二区三区| 亚洲欧洲99久久| 久久一日本道色综合| 欧美日韩一区在线观看| 99在线热播精品免费| 国产一区二区伦理| 日韩和欧美一区二区三区| 亚洲柠檬福利资源导航| 久久久午夜精品| 日韩一区二区电影| 欧美日韩成人综合| 色综合天天狠狠| 丁香另类激情小说| 国产毛片精品视频| 日本一区中文字幕| 亚洲香蕉伊在人在线观| 最新国产精品久久精品| 国产喂奶挤奶一区二区三区| 精品少妇一区二区三区在线播放| 欧美日免费三级在线| 91久久线看在观草草青青 | 性久久久久久久| 亚洲免费资源在线播放| 国产精品美女久久久久久久网站| 日韩欧美另类在线| 91精品黄色片免费大全| 欧美午夜寂寞影院| 色噜噜狠狠色综合欧洲selulu| 99久久国产综合精品女不卡| 国产成都精品91一区二区三| 国内不卡的二区三区中文字幕| 人妖欧美一区二区| 日韩电影在线一区| 日本午夜精品视频在线观看| 性做久久久久久久免费看| 亚洲综合激情小说| 亚洲电影一区二区三区| 亚洲综合激情另类小说区| 有码一区二区三区| 一区2区3区在线看| 一区二区欧美精品| 亚洲国产cao| 日韩av不卡在线观看| 麻豆久久久久久| 久久国产欧美日韩精品| 精品系列免费在线观看| 国产一区二区福利| 国产成人亚洲综合色影视| 国产日韩高清在线| 国产精品嫩草久久久久| 国产精品高潮呻吟久久| 亚洲视频 欧洲视频| 一区二区成人在线| 午夜欧美电影在线观看| 日韩精品1区2区3区| 麻豆传媒一区二区三区| 国产精品一区二区免费不卡| 国产成人av一区二区三区在线| 成人中文字幕在线| 91一区二区在线| 欧美综合色免费| 欧美一卡2卡3卡4卡| 精品播放一区二区| 国产欧美一区视频| 亚洲视频一区在线| 五月激情六月综合| 久久99久久精品| 粉嫩一区二区三区性色av| 91免费看片在线观看| 欧美日韩免费电影| 久久这里都是精品| 亚洲人被黑人高潮完整版| 亚洲成人免费av| 狠狠色丁香婷婷综合久久片| 丁香五精品蜜臀久久久久99网站| 91蜜桃网址入口| 欧美精品欧美精品系列| 欧美精品一区二区三区高清aⅴ| 欧美国产日韩在线观看| 洋洋成人永久网站入口| 麻豆精品久久久| 成人免费毛片片v| 欧美在线观看视频一区二区三区| 日韩三级免费观看| 国产精品美女一区二区| 日韩在线观看一区二区| 国产69精品久久99不卡| 欧美综合在线视频| 久久香蕉国产线看观看99|