--- /dev/null
+////////////////////////////////////////////////\r
+//\r
+// package.hpp\r
+// Package C++ Header\r
+////////////////////////////////////////////////\r
+\r
+#include <windows.h>\r
+#include "error.h"\r
+\r
+\r
+/* Callbacks */\r
+\r
+typedef int (*PML_AddItem) (int id, const char* name, int parent, int icon);\r
+typedef int (*PML_SetStatus) (int status1, int status2, WCHAR* text);\r
+typedef int (*PML_SetButton) (DWORD dwID, BOOL state);\r
+typedef int (*PML_SetIcon) (int id, int icon);\r
+typedef int (*PML_SetText) (const char* text);\r
+typedef int (*PML_Ask) (const WCHAR* text);\r
+\r
+\r
+/* Structs */\r
+\r
+typedef void* pTree;\r
+\r
+#define MAXNODES 10000\r
+\r
+\r
+/* Prototypes */\r
+\r
+void PML_Abort (void);\r
+WCHAR* PML_TransError (int code);\r
+\r
+int PML_LoadTree (pTree*, char* url, PML_AddItem);\r
+int PML_FindItem (pTree tree, const char* what);\r
+int PML_LoadPackage (pTree, int id, PML_SetButton);\r
+char* PML_GetDescription (pTree tree, int id);\r
+int PML_SetAction (pTree, int package, int action, PML_SetIcon, PML_Ask);\r
+int PML_DoIt (pTree, PML_SetStatus, PML_Ask);\r
+\r
+void PML_CloseTree (pTree);\r
+\r
+\r
+/* Version */ \r
+\r
+#define PACKMGR_VERSION_MAJOR 0\r
+#define PACKMGR_VERSION_MINOR 3\r
+#define PACKMGR_VERSION_PATCH_LEVEL 1\r