⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 package.hpp

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 HPP
字号:
////////////////////////////////////////////////
//
// package.hpp
//					Package C++ Header
////////////////////////////////////////////////

#include <windows.h>
#include <vector>
#include "error.h"

using namespace std;


/* Callbacks */

typedef int (*PML_AddItem)		(int id, const char* name, int parent, int icon);
typedef int (*PML_SetStatus)	(int status1, int status2, WCHAR* text);
typedef int (*PML_SetButton)	(DWORD dwID, BOOL state);
typedef int (*PML_SetIcon)		(int id, int icon);
typedef int (*PML_SetText)		(const char* text);
typedef int (*PML_Ask)			(const WCHAR* text);


/* Structs */

typedef struct
{
  char*			path;
  char*			name;
  char*			description;
  char**		field;

  BOOL			icon;
  BOOL			loaded;
  vector<int>	neededBy;
  vector<int>	children;
  vector<char*>	depencies;
  
  int			action;
  char*			files [4];

  union //which actions are possible
  {
    struct { BOOL none, inst, src_inst, update, uninstall; };
    BOOL actions [4];
  };

} PACKAGE;

typedef struct
{
  char**		field;

  vector<char*>		todo;
  vector<char*>		sources;
  vector<char*>		descriptionPath;
  vector<PACKAGE>	packages;

  PML_AddItem		addItem;
  PML_SetButton		setButton;
  PML_SetStatus		setStatus;
  PML_SetIcon		setIcon;
  PML_SetText		setText;

} TREE, *pTree;

#define MAXNODES 10000


/* Prototypes */

extern "C" 
{
  void PML_Abort (void);
  WCHAR* PML_TransError (int code, WCHAR* string, INT maxchar);

  int PML_LoadTree (pTree*, char* url, PML_AddItem);
  int PML_FindItem (TREE* tree, const char* what);
  int PML_LoadPackage (pTree, int id, PML_SetButton);
  char* PML_GetDescription (TREE* tree, int id);
  int PML_SetAction (pTree, int package, int action, PML_SetIcon, PML_Ask);
  int PML_DoIt (pTree, PML_SetStatus, PML_Ask);

  void PML_CloseTree (pTree);
}


/* Version */ 

#define PACKMGR_VERSION_MAJOR		0
#define PACKMGR_VERSION_MINOR		3
#define PACKMGR_VERSION_PATCH_LEVEL	1

⌨️ 快捷键说明

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