cabinet.hpp

来自「这个代码用于生成一个能用的用于压缩和解压缩微软CAB格式文件的库。」· HPP 代码 · 共 36 行

HPP
36
字号

#pragma once

#include <windows.h>
#include <stdio.h>
#include <conio.h>         // getch()
#include "resource.h"
#include "Cabinet/ExtractResource.hpp"
#include "Cabinet/ExtractUrl.hpp"
#include "Cabinet/Compress.hpp"

class CMain
{
#define CYAN   (FOREGROUND_GREEN | FOREGROUND_BLUE  | FOREGROUND_INTENSITY)
#define GREY   (FOREGROUND_RED   | FOREGROUND_GREEN | FOREGROUND_BLUE)
#define WHITE  (FOREGROUND_RED   | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY)
#define GREEN  (FOREGROUND_GREEN | FOREGROUND_INTENSITY)
#define RED    (FOREGROUND_RED   | FOREGROUND_INTENSITY)
#define YELLOW (FOREGROUND_RED   | FOREGROUND_GREEN | FOREGROUND_INTENSITY)

public:
	void RunDemo();
	static void PrintA(WORD u16_Color, char* s8_Format, ...);
	static void PrintW(WORD u16_Color, WCHAR* u16_Format, ...);

	// Extract callbacks
	static BOOL OnBeforeCopyFile(Cabinet::CExtract::kCabinetFileInfo *pk_Info, void* p_Param);
	static void OnAfterCopyFile(WCHAR* u16_Path, Cabinet::CMemory* pi_ExtractMem, void* p_Param);
	static void OnCabinetInfo(Cabinet::CExtract::kCabinetInfo *pk_Info, void* p_Param);
	static void OnNextCabinet(Cabinet::CExtract::kCabinetInfo *pk_Info, int s32_Error, void* p_Param);

	// Compress callbacks
	static int  OnFilePlaced(PCCAB pccab, WCHAR* u16_File, int cbFile, BOOL fContinuation, void* p_Param);
	static BOOL OnGetNextCabinet(PCCAB pccab, ULONG cbPrevCab, char* s8_FormatString, void* p_Param);
	static int  OnUpdateStatus(UINT typeStatus, Cabinet::CCompress::kCurStatus *pk_CurStatus, void *p_Param);
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?