diff --git a/(version) b/(version)
new file mode 100644
index 0000000..900cfb5
--- /dev/null
+++ b/(version)
@@ -0,0 +1 @@
+3.80.0004
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 1e2b443..9e7b8a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,3 +44,5 @@
*.idb
*.pdb
*.ilk
+Patch/Version5.zip
+Patch/Version5.zip.sav
diff --git a/LaunchHome/(LaunchVersion) b/LaunchHome/(LaunchVersion)
new file mode 100644
index 0000000..f9cbc01
--- /dev/null
+++ b/LaunchHome/(LaunchVersion)
@@ -0,0 +1 @@
+1.0.7
\ No newline at end of file
diff --git a/LaunchHome/CExplorer.cpp b/LaunchHome/CExplorer.cpp
new file mode 100644
index 0000000..9a53992
--- /dev/null
+++ b/LaunchHome/CExplorer.cpp
@@ -0,0 +1,4 @@
+#include "stdafx.h"
+#include "CExplorer.h"
+
+IMPLEMENT_DYNCREATE(CExplorer, CWnd)
\ No newline at end of file
diff --git a/LaunchHome/CExplorer.h b/LaunchHome/CExplorer.h
new file mode 100644
index 0000000..38ad8ad
--- /dev/null
+++ b/LaunchHome/CExplorer.h
@@ -0,0 +1,528 @@
+#pragma once
+#include "stdafx.h"
+
+class CExplorer : public CWnd
+{
+protected:
+ DECLARE_DYNCREATE(CExplorer)
+public:
+ CLSID const& GetClsid()
+ {
+ static CLSID const clsid
+ = { 0x8856F961, 0x340A, 0x11D0, { 0xA9, 0x6B, 0x0, 0xC0, 0x4F, 0xD7, 0x5, 0xA2 } };
+ return clsid;
+ }
+ virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
+ const RECT& rect, CWnd* pParentWnd, UINT nID,
+ CCreateContext* pContext = NULL)
+ {
+ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
+ }
+
+ BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,
+ UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
+ BSTR bstrLicKey = NULL)
+ {
+ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
+ pPersist, bStorage, bstrLicKey);
+ }
+
+
+public:
+ enum
+ {
+ CSC_UPDATECOMMANDS = -1,
+ CSC_NAVIGATEFORWARD = 1,
+ CSC_NAVIGATEBACK = 2
+ }CommandStateChangeConstants;
+ enum
+ {
+ OLECMDID_OPEN = 1,
+ OLECMDID_NEW = 2,
+ OLECMDID_SAVE = 3,
+ OLECMDID_SAVEAS = 4,
+ OLECMDID_SAVECOPYAS = 5,
+ OLECMDID_PRINT = 6,
+ OLECMDID_PRINTPREVIEW = 7,
+ OLECMDID_PAGESETUP = 8,
+ OLECMDID_SPELL = 9,
+ OLECMDID_PROPERTIES = 10,
+ OLECMDID_CUT = 11,
+ OLECMDID_COPY = 12,
+ OLECMDID_PASTE = 13,
+ OLECMDID_PASTESPECIAL = 14,
+ OLECMDID_UNDO = 15,
+ OLECMDID_REDO = 16,
+ OLECMDID_SELECTALL = 17,
+ OLECMDID_CLEARSELECTION = 18,
+ OLECMDID_ZOOM = 19,
+ OLECMDID_GETZOOMRANGE = 20,
+ OLECMDID_UPDATECOMMANDS = 21,
+ OLECMDID_REFRESH = 22,
+ OLECMDID_STOP = 23,
+ OLECMDID_HIDETOOLBARS = 24,
+ OLECMDID_SETPROGRESSMAX = 25,
+ OLECMDID_SETPROGRESSPOS = 26,
+ OLECMDID_SETPROGRESSTEXT = 27,
+ OLECMDID_SETTITLE = 28,
+ OLECMDID_SETDOWNLOADSTATE = 29,
+ OLECMDID_STOPDOWNLOAD = 30,
+ OLECMDID_ONTOOLBARACTIVATED = 31,
+ OLECMDID_FIND = 32,
+ OLECMDID_DELETE = 33,
+ OLECMDID_HTTPEQUIV = 34,
+ OLECMDID_HTTPEQUIV_DONE = 35,
+ OLECMDID_ENABLE_INTERACTION = 36,
+ OLECMDID_ONUNLOAD = 37,
+ OLECMDID_PROPERTYBAG2 = 38,
+ OLECMDID_PREREFRESH = 39,
+ OLECMDID_SHOWSCRIPTERROR = 40,
+ OLECMDID_SHOWMESSAGE = 41,
+ OLECMDID_SHOWFIND = 42,
+ OLECMDID_SHOWPAGESETUP = 43,
+ OLECMDID_SHOWPRINT = 44,
+ OLECMDID_CLOSE = 45,
+ OLECMDID_ALLOWUILESSSAVEAS = 46,
+ OLECMDID_DONTDOWNLOADCSS = 47,
+ OLECMDID_UPDATEPAGESTATUS = 48,
+ OLECMDID_PRINT2 = 49,
+ OLECMDID_PRINTPREVIEW2 = 50,
+ OLECMDID_SETPRINTTEMPLATE = 51,
+ OLECMDID_GETPRINTTEMPLATE = 52,
+ OLECMDID_PAGEACTIONBLOCKED = 55,
+ OLECMDID_PAGEACTIONUIQUERY = 56,
+ OLECMDID_FOCUSVIEWCONTROLS = 57,
+ OLECMDID_FOCUSVIEWCONTROLSQUERY = 58,
+ OLECMDID_SHOWPAGEACTIONMENU = 59,
+ OLECMDID_ADDTRAVELENTRY = 60,
+ OLECMDID_UPDATETRAVELENTRY = 61,
+ OLECMDID_UPDATEBACKFORWARDSTATE = 62,
+ OLECMDID_OPTICAL_ZOOM = 63,
+ OLECMDID_OPTICAL_GETZOOMRANGE = 64,
+ OLECMDID_WINDOWSTATECHANGED = 65,
+ OLECMDID_ACTIVEXINSTALLSCOPE = 66,
+ OLECMDID_UPDATETRAVELENTRY_DATARECOVERY = 67,
+ OLECMDID_SHOWTASKDLG = 68,
+ OLECMDID_POPSTATEEVENT = 69,
+ OLECMDID_VIEWPORT_MODE = 70,
+ OLECMDID_LAYOUT_VIEWPORT_WIDTH = 71,
+ OLECMDID_VISUAL_VIEWPORT_EXCLUDE_BOTTOM = 72,
+ OLECMDID_USER_OPTICAL_ZOOM = 73,
+ OLECMDID_PAGEAVAILABLE = 74,
+ OLECMDID_GETUSERSCALABLE = 75,
+ OLECMDID_UPDATE_CARET = 76,
+ OLECMDID_ENABLE_VISIBILITY = 77,
+ OLECMDID_MEDIA_PLAYBACK = 78,
+ OLECMDID_SETFAVICON = 79,
+ OLECMDID_SET_HOST_FULLSCREENMODE = 80,
+ OLECMDID_EXITFULLSCREEN = 81,
+ OLECMDID_SCROLLCOMPLETE = 82,
+ OLECMDID_ONBEFOREUNLOAD = 83,
+ OLECMDID_SHOWMESSAGE_BLOCKABLE = 84,
+ OLECMDID_SHOWTASKDLG_BLOCKABLE = 85
+ }OLECMDID;
+ enum
+ {
+ OLECMDF_SUPPORTED = 1,
+ OLECMDF_ENABLED = 2,
+ OLECMDF_LATCHED = 4,
+ OLECMDF_NINCHED = 8,
+ OLECMDF_INVISIBLE = 16,
+ OLECMDF_DEFHIDEONCTXTMENU = 32
+ }OLECMDF;
+ enum
+ {
+ OLECMDEXECOPT_DODEFAULT = 0,
+ OLECMDEXECOPT_PROMPTUSER = 1,
+ OLECMDEXECOPT_DONTPROMPTUSER = 2,
+ OLECMDEXECOPT_SHOWHELP = 3
+ }OLECMDEXECOPT;
+ enum
+ {
+ READYSTATE_UNINITIALIZED = 0,
+ READYSTATE_LOADING = 1,
+ READYSTATE_LOADED = 2,
+ READYSTATE_INTERACTIVE = 3,
+ READYSTATE_COMPLETE = 4
+ }tagREADYSTATE;
+ enum
+ {
+ secureLockIconUnsecure = 0,
+ secureLockIconMixed = 1,
+ secureLockIconSecureUnknownBits = 2,
+ secureLockIconSecure40Bit = 3,
+ secureLockIconSecure56Bit = 4,
+ secureLockIconSecureFortezza = 5,
+ secureLockIconSecure128Bit = 6
+ }SecureLockIconConstants;
+ enum
+ {
+ ProtectedModeRedirect = 1
+ }NewProcessCauseConstants;
+ enum
+ {
+ SWC_EXPLORER = 0,
+ SWC_BROWSER = 1,
+ SWC_3RDPARTY = 2,
+ SWC_CALLBACK = 4,
+ SWC_DESKTOP = 8
+ }ShellWindowTypeConstants;
+ enum
+ {
+ SWFO_NEEDDISPATCH = 1,
+ SWFO_INCLUDEPENDING = 2,
+ SWFO_COOKIEPASSED = 4
+ }ShellWindowFindWindowOptions;
+
+
+public:
+
+ void GoBack()
+ {
+ InvokeHelper(0x64, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
+ }
+ void GoForward()
+ {
+ InvokeHelper(0x65, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
+ }
+ void GoHome()
+ {
+ InvokeHelper(0x66, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
+ }
+ void GoSearch()
+ {
+ InvokeHelper(0x67, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
+ }
+ void Navigate(LPCTSTR URL, VARIANT * Flags, VARIANT * TargetFrameName, VARIANT * PostData, VARIANT * Headers)
+ {
+ static BYTE parms[] = VTS_BSTR VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT;
+ InvokeHelper(0x68, DISPATCH_METHOD, VT_EMPTY, NULL, parms, URL, Flags, TargetFrameName, PostData, Headers);
+ }
+ void Refresh()
+ {
+ InvokeHelper(DISPID_REFRESH, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
+ }
+ void Refresh2(VARIANT * Level)
+ {
+ static BYTE parms[] = VTS_PVARIANT;
+ InvokeHelper(0x69, DISPATCH_METHOD, VT_EMPTY, NULL, parms, Level);
+ }
+ void Stop()
+ {
+ InvokeHelper(0x6a, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
+ }
+ LPDISPATCH get_Application()
+ {
+ LPDISPATCH result;
+ InvokeHelper(0xc8, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
+ return result;
+ }
+ LPDISPATCH get_Parent()
+ {
+ LPDISPATCH result;
+ InvokeHelper(0xc9, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
+ return result;
+ }
+ LPDISPATCH get_Container()
+ {
+ LPDISPATCH result;
+ InvokeHelper(0xca, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
+ return result;
+ }
+ LPDISPATCH get_Document()
+ {
+ LPDISPATCH result;
+ InvokeHelper(0xcb, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
+ return result;
+ }
+ BOOL get_TopLevelContainer()
+ {
+ BOOL result;
+ InvokeHelper(0xcc, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ CString get_Type()
+ {
+ CString result;
+ InvokeHelper(0xcd, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
+ return result;
+ }
+ long get_Left()
+ {
+ long result;
+ InvokeHelper(0xce, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
+ return result;
+ }
+ void put_Left(long newValue)
+ {
+ static BYTE parms[] = VTS_I4;
+ InvokeHelper(0xce, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ long get_Top()
+ {
+ long result;
+ InvokeHelper(0xcf, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
+ return result;
+ }
+ void put_Top(long newValue)
+ {
+ static BYTE parms[] = VTS_I4;
+ InvokeHelper(0xcf, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ long get_Width()
+ {
+ long result;
+ InvokeHelper(0xd0, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
+ return result;
+ }
+ void put_Width(long newValue)
+ {
+ static BYTE parms[] = VTS_I4;
+ InvokeHelper(0xd0, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ long get_Height()
+ {
+ long result;
+ InvokeHelper(0xd1, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
+ return result;
+ }
+ void put_Height(long newValue)
+ {
+ static BYTE parms[] = VTS_I4;
+ InvokeHelper(0xd1, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ CString get_LocationName()
+ {
+ CString result;
+ InvokeHelper(0xd2, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
+ return result;
+ }
+ CString get_LocationURL()
+ {
+ CString result;
+ InvokeHelper(0xd3, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
+ return result;
+ }
+ BOOL get_Busy()
+ {
+ BOOL result;
+ InvokeHelper(0xd4, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void Quit()
+ {
+ InvokeHelper(0x12c, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
+ }
+ void ClientToWindow(long * pcx, long * pcy)
+ {
+ static BYTE parms[] = VTS_PI4 VTS_PI4;
+ InvokeHelper(0x12d, DISPATCH_METHOD, VT_EMPTY, NULL, parms, pcx, pcy);
+ }
+ void PutProperty(LPCTSTR Property, VARIANT vtValue)
+ {
+ static BYTE parms[] = VTS_BSTR VTS_VARIANT;
+ InvokeHelper(0x12e, DISPATCH_METHOD, VT_EMPTY, NULL, parms, Property, &vtValue);
+ }
+ VARIANT GetProperty(LPCTSTR Property)
+ {
+ VARIANT result;
+ static BYTE parms[] = VTS_BSTR;
+ InvokeHelper(0x12f, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, Property);
+ return result;
+ }
+ CString get_Name()
+ {
+ CString result;
+ InvokeHelper(0x0, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
+ return result;
+ }
+ long get_HWND()
+ {
+ long result;
+ InvokeHelper(DISPID_HWND, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
+ return result;
+ }
+ CString get_FullName()
+ {
+ CString result;
+ InvokeHelper(0x190, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
+ return result;
+ }
+ CString get_Path()
+ {
+ CString result;
+ InvokeHelper(0x191, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
+ return result;
+ }
+ BOOL get_Visible()
+ {
+ BOOL result;
+ InvokeHelper(0x192, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_Visible(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x192, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ BOOL get_StatusBar()
+ {
+ BOOL result;
+ InvokeHelper(0x193, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_StatusBar(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x193, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ CString get_StatusText()
+ {
+ CString result;
+ InvokeHelper(0x194, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
+ return result;
+ }
+ void put_StatusText(LPCTSTR newValue)
+ {
+ static BYTE parms[] = VTS_BSTR;
+ InvokeHelper(0x194, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ long get_ToolBar()
+ {
+ long result;
+ InvokeHelper(0x195, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
+ return result;
+ }
+ void put_ToolBar(long newValue)
+ {
+ static BYTE parms[] = VTS_I4;
+ InvokeHelper(0x195, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ BOOL get_MenuBar()
+ {
+ BOOL result;
+ InvokeHelper(0x196, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_MenuBar(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x196, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ BOOL get_FullScreen()
+ {
+ BOOL result;
+ InvokeHelper(0x197, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_FullScreen(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x197, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ void Navigate2(VARIANT * URL, VARIANT * Flags, VARIANT * TargetFrameName, VARIANT * PostData, VARIANT * Headers)
+ {
+ static BYTE parms[] = VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT;
+ InvokeHelper(0x1f4, DISPATCH_METHOD, VT_EMPTY, NULL, parms, URL, Flags, TargetFrameName, PostData, Headers);
+ }
+ long QueryStatusWB(long cmdID)
+ {
+ long result;
+ static BYTE parms[] = VTS_I4;
+ InvokeHelper(0x1f5, DISPATCH_METHOD, VT_I4, (void*)&result, parms, cmdID);
+ return result;
+ }
+ void ExecWB(long cmdID, long cmdexecopt, VARIANT * pvaIn, VARIANT * pvaOut)
+ {
+ static BYTE parms[] = VTS_I4 VTS_I4 VTS_PVARIANT VTS_PVARIANT;
+ InvokeHelper(0x1f6, DISPATCH_METHOD, VT_EMPTY, NULL, parms, cmdID, cmdexecopt, pvaIn, pvaOut);
+ }
+ void ShowBrowserBar(VARIANT * pvaClsid, VARIANT * pvarShow, VARIANT * pvarSize)
+ {
+ static BYTE parms[] = VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT;
+ InvokeHelper(0x1f7, DISPATCH_METHOD, VT_EMPTY, NULL, parms, pvaClsid, pvarShow, pvarSize);
+ }
+ long get_ReadyState()
+ {
+ long result;
+ InvokeHelper(DISPID_READYSTATE, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
+ return result;
+ }
+ BOOL get_Offline()
+ {
+ BOOL result;
+ InvokeHelper(0x226, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_Offline(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x226, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ BOOL get_Silent()
+ {
+ BOOL result;
+ InvokeHelper(0x227, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_Silent(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x227, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ BOOL get_RegisterAsBrowser()
+ {
+ BOOL result;
+ InvokeHelper(0x228, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_RegisterAsBrowser(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x228, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ BOOL get_RegisterAsDropTarget()
+ {
+ BOOL result;
+ InvokeHelper(0x229, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_RegisterAsDropTarget(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x229, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ BOOL get_TheaterMode()
+ {
+ BOOL result;
+ InvokeHelper(0x22a, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_TheaterMode(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x22a, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ BOOL get_AddressBar()
+ {
+ BOOL result;
+ InvokeHelper(0x22b, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_AddressBar(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x22b, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+ BOOL get_Resizable()
+ {
+ BOOL result;
+ InvokeHelper(0x22c, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
+ return result;
+ }
+ void put_Resizable(BOOL newValue)
+ {
+ static BYTE parms[] = VTS_BOOL;
+ InvokeHelper(0x22c, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
+ }
+};
\ No newline at end of file
diff --git a/LaunchHome/LaunchHome.aps b/LaunchHome/LaunchHome.aps
index ef9702a..6d59516 100644
Binary files a/LaunchHome/LaunchHome.aps and b/LaunchHome/LaunchHome.aps differ
diff --git a/LaunchHome/LaunchHome.rc b/LaunchHome/LaunchHome.rc
index 096be14..a1adb75 100644
Binary files a/LaunchHome/LaunchHome.rc and b/LaunchHome/LaunchHome.rc differ
diff --git a/LaunchHome/LaunchHome.vcxproj b/LaunchHome/LaunchHome.vcxproj
index fc97e6e..35629fc 100644
--- a/LaunchHome/LaunchHome.vcxproj
+++ b/LaunchHome/LaunchHome.vcxproj
@@ -179,10 +179,12 @@
+
+
@@ -191,6 +193,7 @@
+
@@ -232,9 +235,19 @@
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
\ No newline at end of file
diff --git a/LaunchHome/LaunchHome.vcxproj.filters b/LaunchHome/LaunchHome.vcxproj.filters
index 03db141..8cc2836 100644
--- a/LaunchHome/LaunchHome.vcxproj.filters
+++ b/LaunchHome/LaunchHome.vcxproj.filters
@@ -45,6 +45,12 @@
Header Files
+
+ Header Files
+
+
+ Header Files
+
@@ -68,6 +74,9 @@
Source Files
+
+ Source Files
+
@@ -146,5 +155,6 @@
Header Files
+
\ No newline at end of file
diff --git a/LaunchHome/LaunchHomeDlg.cpp b/LaunchHome/LaunchHomeDlg.cpp
index b01cac9..0911fd7 100644
Binary files a/LaunchHome/LaunchHomeDlg.cpp and b/LaunchHome/LaunchHomeDlg.cpp differ
diff --git a/LaunchHome/LaunchHomeDlg.h b/LaunchHome/LaunchHomeDlg.h
index 7c7a02f..8a4010c 100644
Binary files a/LaunchHome/LaunchHomeDlg.h and b/LaunchHome/LaunchHomeDlg.h differ
diff --git a/LaunchHome/MyParam.h b/LaunchHome/MyParam.h
new file mode 100644
index 0000000..e3f08d6
--- /dev/null
+++ b/LaunchHome/MyParam.h
@@ -0,0 +1,10 @@
+#pragma once
+#include"SingleThreadFileDownload.h"
+#include "stdafx.h"
+
+class MyParam
+{
+public:
+ SingleThreadFileDownload *thread;
+ CProgressCtrl* progessDowload;
+};
\ No newline at end of file
diff --git a/LaunchHome/MySettings.cpp b/LaunchHome/MySettings.cpp
index 8dac266..50ade74 100644
--- a/LaunchHome/MySettings.cpp
+++ b/LaunchHome/MySettings.cpp
@@ -1,19 +1,21 @@
#include "stdafx.h"
#include "MySettings.h"
MySettings* MySettings::instance;
-
MySettings::MySettings()
{
+
+
this->homeUrl = L"https://www.facebook.com/nguyenhongphuc1998";
this->registerUrl = L"https://www.facebook.com/nguyenhongphuc1998";
this->tokenUrl = L"https://www.facebook.com/nguyenhongphuc1998";
this->groupUrl = L"https://www.facebook.com/nguyenhongphuc1998";
- this->PatchInfo = new char[260];
- this->NewLauncher = new char[260];
+ this->PatchInfo = new wchar_t[260];
+ this->NewLauncher = new wchar_t[260];
+ this->URL1 = new wchar_t[260];
- this->PatchInfo = "http://45.119.212.250/tlbb/patchinfo.txt";
- this->NewLauncher = "http://45.119.212.250/tlbb/newlaunch.zip";
+ this->PatchInfo = L"http://45.119.212.250/tlbb/patchinfo.txt";
+ this->NewLauncher = L"http://45.119.212.250/tlbb/newlaunch.zip";
this->Help_URL = new char[260];
this->LoginServer = new char[260];
@@ -33,3 +35,8 @@ MySettings * MySettings::Instance()
MySettings::~MySettings()
{
}
+
+void MySettings::SetUrl1(wchar_t* url)
+{
+ this->URL1 = url;
+}
diff --git a/LaunchHome/MySettings.h b/LaunchHome/MySettings.h
index d338ae6..1805b28 100644
--- a/LaunchHome/MySettings.h
+++ b/LaunchHome/MySettings.h
@@ -15,12 +15,21 @@ class MySettings
LPWSTR groupUrl;
LPWSTR exitUrl;
- char* PatchInfo;
- char* NewLauncher;
+ wchar_t* PatchInfo;
+ wchar_t* NewLauncher;
char* LoginServer;
char* Help_URL;
char *FVersion = "..\\(version)"; // File (version)
- char *FPatchInfo = "..\\Patch\\patchinfo.txt"; // File patchinfo.txt
+ //wchar_t* FPatchInfo = L"..\\Patch\\patchinfo.txt"; // File patchinfo.txt
+ char* FPatchInfo = "..\\Patch\\patchinfo.txt";
+ wchar_t* FPatchLaucher = L"..\\Patch\\newlaunch.zip";
+ wchar_t* PathFolder = L"..\\Patch";
+ char* FLaunchVersion = "./(LaunchVersion)"; // File (LaunchVersion)
+
+ wchar_t* URL1;
+
+ void SetUrl1(wchar_t*);
+
};
diff --git a/LaunchHome/MyText.cpp b/LaunchHome/MyText.cpp
index a36bf1b..e9b024f 100644
--- a/LaunchHome/MyText.cpp
+++ b/LaunchHome/MyText.cpp
@@ -19,6 +19,7 @@ MyText::MyText()
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
_T("Arial")); // lpszFacename
+
}
@@ -33,6 +34,7 @@ void MyText::SetTextColor(COLORREF color)
BEGIN_MESSAGE_MAP(MyText, CStatic)
ON_WM_CTLCOLOR_REFLECT()
ON_WM_PAINT()
+ ON_MESSAGE(WM_SETTEXT, &MyText::OnSettext)
END_MESSAGE_MAP()
@@ -52,7 +54,20 @@ HBRUSH MyText::CtlColor(CDC* pDC, UINT /*nCtlColor*/)
void MyText::OnPaint()
{
this->SetFont(&font, false);
+
CStatic::OnPaint(); // device context for painting
// TODO: Add your message handler code here
// Do not call CStatic::OnPaint() for painting messages
}
+
+
+afx_msg LRESULT MyText::OnSettext(WPARAM wParam, LPARAM lParam)
+{
+ LRESULT Result = Default();
+ CRect Rect;
+ GetWindowRect(&Rect);
+ GetParent()->ScreenToClient(&Rect);
+ GetParent()->InvalidateRect(&Rect);
+ GetParent()->UpdateWindow();
+ return Result;
+}
diff --git a/LaunchHome/MyText.h b/LaunchHome/MyText.h
index de20442..309b70e 100644
--- a/LaunchHome/MyText.h
+++ b/LaunchHome/MyText.h
@@ -19,11 +19,14 @@ class MyText :
public:
int index=-1;
- int height_line=20;
+ int height_line=15;
CFont font;
protected:
public:
afx_msg void OnPaint();
+
+protected:
+ afx_msg LRESULT OnSettext(WPARAM wParam, LPARAM lParam);
};
diff --git a/LaunchHome/SingleThreadFileDownload.cpp b/LaunchHome/SingleThreadFileDownload.cpp
index 4e2b4c7..e390447 100644
--- a/LaunchHome/SingleThreadFileDownload.cpp
+++ b/LaunchHome/SingleThreadFileDownload.cpp
@@ -1,50 +1,51 @@
#include "stdafx.h"
#include "SingleThreadFileDownload.h"
-
-//Biến lưu giữ các event đánh dấu trạng thái.
-std::unordered_map hConnectEvent;
-std::unordered_map hRequestOpenEvent;
-std::unordered_map hRequestCompleteEvent;
-
-HANDLE globalHConnectEvent;
-HANDLE globalHRequestOpenEvent;
-HANDLE globalHRequestCompleteEvent;
-
-//Biến lưu giữ trạng thái handle.
-INTERNET_ASYNC_RESULT* asyncResult;
-
-void CALLBACK CallBack(
- __in HINTERNET hInternet,
- __in DWORD_PTR dwContext,
- __in DWORD dwInternetStatus,
- __in_bcount(dwStatusInformationLength) LPVOID lpvStatusInformation,
- __in DWORD dwStatusInformationLength
-)
-{
- InternetCookieHistory cookieHistory;
-
- /*cout << "\nOK\n";*/
- UNREFERENCED_PARAMETER(dwStatusInformationLength);
- //fprintf(stderr, "\nCallback Received for Handle %p \t", hInternet);
- if (hConnectEvent[hInternet] == NULL)
- hConnectEvent[hInternet] = CreateEvent(NULL, FALSE, FALSE, NULL);
- switch (dwInternetStatus)
- {
- case INTERNET_STATUS_HANDLE_CREATED:
- {
- SetEvent(globalHConnectEvent);
- SetEvent(hConnectEvent[hInternet]);
- break;
- }
- case INTERNET_STATUS_REQUEST_COMPLETE:
- {
- SetEvent(globalHRequestCompleteEvent);
- SetEvent(hRequestCompleteEvent[hInternet]);
- asyncResult = (INTERNET_ASYNC_RESULT*)lpvStatusInformation;
- break;
- }
- }
-}
+#include
+#define _WIN32
+////Biến lưu giữ các event đánh dấu trạng thái.
+//std::unordered_map hConnectEvent;
+//std::unordered_map hRequestOpenEvent;
+//std::unordered_map hRequestCompleteEvent;
+//
+//HANDLE globalHConnectEvent;
+//HANDLE globalHRequestOpenEvent;
+//HANDLE globalHRequestCompleteEvent;
+
+////Biến lưu giữ trạng thái handle.
+//INTERNET_ASYNC_RESULT* asyncResult;
+
+//void CALLBACK CallBack(
+// __in HINTERNET hInternet,
+// __in DWORD_PTR dwContext,
+// __in DWORD dwInternetStatus,
+// __in_bcount(dwStatusInformationLength) LPVOID lpvStatusInformation,
+// __in DWORD dwStatusInformationLength
+//)
+//{
+// InternetCookieHistory cookieHistory;
+//
+// /*cout << "\nOK\n";*/
+// UNREFERENCED_PARAMETER(dwStatusInformationLength);
+// //fprintf(stderr, "\nCallback Received for Handle %p \t", hInternet);
+// if (hConnectEvent[hInternet] == NULL)
+// hConnectEvent[hInternet] = CreateEvent(NULL, FALSE, FALSE, NULL);
+// switch (dwInternetStatus)
+// {
+// case INTERNET_STATUS_HANDLE_CREATED:
+// {
+// SetEvent(globalHConnectEvent);
+// SetEvent(hConnectEvent[hInternet]);
+// break;
+// }
+// case INTERNET_STATUS_REQUEST_COMPLETE:
+// {
+// SetEvent(globalHRequestCompleteEvent);
+// SetEvent(hRequestCompleteEvent[hInternet]);
+// asyncResult = (INTERNET_ASYNC_RESULT*)lpvStatusInformation;
+// break;
+// }
+// }
+//}
SingleThreadFileDownload::SingleThreadFileDownload(HINTERNET _internet, const wchar_t* _url, const wchar_t* _pathToFile,
ULONGLONG _beginRange, ULONGLONG _endRange
@@ -68,31 +69,32 @@ SingleThreadFileDownload::SingleThreadFileDownload(HINTERNET _internet, const wc
sprintf_s(agentStr, "Agent%ld", timeGetTime());
if ((internetFlag & INTERNET_CONNECTION_PROXY))
{
- _internet = InternetOpenA(agentStr, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, INTERNET_FLAG_ASYNC);
+ _internet = InternetOpenA(agentStr, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
}
else
{
- _internet = InternetOpenA(agentStr, INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, NULL, NULL, INTERNET_FLAG_ASYNC);
+ _internet = InternetOpenA(agentStr, INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, NULL, NULL, 0);
}
}
if (!_internet)
{
_internet = NULL;
+ timedOutSomewhere = true;
}
internet = _internet;
- globalHConnectEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
- globalHRequestOpenEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
- globalHRequestCompleteEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
+ //globalHConnectEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
+ //globalHRequestOpenEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
+ //globalHRequestCompleteEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
- INTERNET_STATUS_CALLBACK CallbackPointer;
+ /*INTERNET_STATUS_CALLBACK CallbackPointer;
CallbackPointer = InternetSetStatusCallback(internet, (INTERNET_STATUS_CALLBACK)CallBack);
if (CallbackPointer == INTERNET_INVALID_STATUS_CALLBACK)
{
fprintf(stderr, "InternetSetStatusCallback failed with INTERNET_INVALID_STATUS_CALLBACK\n");
}
-
+*/
//Lấy dung lượng cần tải về (sau khi tạo header).
GetFileSize();
@@ -126,42 +128,24 @@ bool SingleThreadFileDownload::TerminateDownload()
bool SingleThreadFileDownload::UnpackDownloadedFile(wchar_t* pathToZippedFile, wchar_t* pathToUnzipFolder)
{
- //CString cstring;
- //CT2A ascii(cstring);
- //char *url = ascii.m_psz;
- //char *file_name = strrchr(url, '/') + 1;
- //cstring = _T("Extracting file... ");
- //cstring += file_name;
-
- //CString unpack_path;
- // Giải nén file .zip
- SHELLEXECUTEINFO ShExecInfo = { 0 };
- ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
- ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
- ShExecInfo.hwnd = NULL;
- ShExecInfo.lpVerb = NULL;
- ShExecInfo.lpFile = _T("Unpack.exe");
-
- //Command extract
- WCHAR cmd[MAX_PATH + MAX_PATH];
- wcscpy(cmd, L" x ");
- wcscat(cmd, pathToZippedFile);
- wcscat(cmd, L" -o ");
- wcscat(cmd, pathToUnzipFolder);
- wcscat(cmd, L" -aoa");
-
- //mbstowcs(wtext, text, strlen(text)+1);
- ShExecInfo.lpParameters = cmd;
-
- ShExecInfo.lpDirectory = NULL;
- ShExecInfo.nShow = SW_HIDE;
- ShExecInfo.hInstApp = NULL;
- ShellExecuteEx(&ShExecInfo);
- WaitForSingleObject(ShExecInfo.hProcess, INFINITE);
- /*cstring = unpack_path;*/
- DeleteFile(pathToZippedFile);
-
- //Reset busy status
+ wchar_t pathToUnpackEXE[] = L"Utilities\\Unpack\\7za.exe";
+ //wchar_t pathToUnpackEXE[] = L"\"C:\\Users\\Nguyen Hong Phuc\\Downloads\\7z\\7za.exe\"";
+ wchar_t parameter[250];
+ wcscpy(parameter, L" x ");
+ wcscat(parameter, L"\"");
+ wcscat(parameter, pathToZippedFile);
+ wcscat(parameter, L"\"");
+ wcscat(parameter, L" -aoa");
+ wcscat(parameter, L" -o");
+ wcscat(parameter, L"\"");
+ wcscat(parameter, pathToUnzipFolder);
+ wcscat(parameter, L"\"");
+
+/* ShellExecute(NULL, L"open",
+ L"C:\\;Users\\Nguyen Hong Phuc\\Downloads\\7z\\7za.exe",
+ L" x \"D:\\IT\\Project customer\\LaunchGame\\GameLaucher\\Patch\\Version5.zip\" -aoa -o\"D:\\IT\\Project customer\\LaunchGame\\GameLaucher\\Patch\\", 0, SW_NORMAL);
+ */
+ ShellExecute(NULL, L"open", pathToUnpackEXE, parameter, NULL, SW_HIDE);
return TRUE;
}
@@ -193,40 +177,32 @@ void SingleThreadFileDownload::GetFileSize()
//Options cho việc mở kết nối với URL.
DWORD connectionOptions = INTERNET_FLAG_NEED_FILE | INTERNET_FLAG_HYPERLINK | INTERNET_FLAG_RESYNCHRONIZE | INTERNET_FLAG_RELOAD;
retryGetFileSize:
- bool connectionResult = tempConn = InternetOpenUrlW(internet, url, NULL, NULL, connectionOptions, 1);
+ bool connectionResult = tempConn = InternetOpenUrlW(internet, url, NULL, NULL, connectionOptions, 0);
DWORD error = GetLastError();
//Chờ đến khi nào nhận được handle connection.
- if (!connectionResult && error == ERROR_IO_PENDING)
+ if (!connectionResult)//&& error == ERROR_IO_PENDING)
{
- if (WaitForSingleObject(globalHRequestCompleteEvent, dwDefaultTimeout) == WAIT_TIMEOUT)
- {
- std::cout << "\nRequest timeout for getting content length !";
- goto retryGetFileSize;
- }
- else
- {
- std::cout << "\nRequest completed successfully !";
- tempConn = (HINTERNET)(asyncResult->dwResult);
- }
+ std::cout << "\nConnect error !";
+ timedOutSomewhere = true;
}
-
wchar_t headerBuffer[250];
+ wchar_t* pointerToHeaderBuffer = headerBuffer;
DWORD sizeOfFileSize = sizeof(headerBuffer); //Int.
- while (!HttpQueryInfo(tempConn, HTTP_QUERY_CONTENT_LENGTH, headerBuffer, &sizeOfFileSize, NULL))
+ while (!HttpQueryInfo(tempConn, HTTP_QUERY_CONTENT_LENGTH, pointerToHeaderBuffer, &sizeOfFileSize, NULL))
{
DWORD errorCode = GetLastError();
if (errorCode == ERROR_INSUFFICIENT_BUFFER)
{
std::cout << "\nInsufficent File Size Buffer !";
- downloadSize = 0;
- break;
+ pointerToHeaderBuffer = new wchar_t[sizeOfFileSize];
}
else
{
downloadSize = 0;
+ timedOutSomewhere = true;
break;
}
}
@@ -247,7 +223,9 @@ void SingleThreadFileDownload::GetFileSize()
downloadSize = 0;
break;
}
+ timedOutSomewhere = true;
}
+
wchar_t rangeAcceptResponse[250];
DWORD sizeOfAcceptResponse = sizeof(rangeAcceptResponse);
while (!HttpQueryInfo(tempConn, HTTP_QUERY_ACCEPT_RANGES, rangeAcceptResponse, &sizeOfAcceptResponse, NULL))
@@ -264,6 +242,7 @@ void SingleThreadFileDownload::GetFileSize()
downloadSize = 0;
break;
}
+ timedOutSomewhere = true;
}
DWORD sizeOfLastModified = sizeof(lastModified);
while (!HttpQueryInfo(tempConn, HTTP_QUERY_LAST_MODIFIED, lastModified, &sizeOfLastModified, NULL))
@@ -280,6 +259,7 @@ void SingleThreadFileDownload::GetFileSize()
downloadSize = 0;
break;
}
+ timedOutSomewhere = true;
}
//Nếu server không hỗ trợ resume thì chỉnh biến cờ.
@@ -301,31 +281,35 @@ void SingleThreadFileDownload::MakeConnection()
bool connectionResult;
retryMakeConnection:
if (header != NULL)
- connectionResult = connection = InternetOpenUrlW(internet, url, header, -1L, connectionOptions, 1);
+ connectionResult = connection = InternetOpenUrlW(internet, url, header, -1L, connectionOptions, 0);
else
- connectionResult = connection = InternetOpenUrlW(internet, url, NULL, NULL, connectionOptions, 1);
+ connectionResult = connection = InternetOpenUrlW(internet, url, NULL, NULL, connectionOptions, 0);
//Biến lưu lại lỗi.
- DWORD error = GetLastError();
- if (!connectionResult && error == ERROR_IO_PENDING)
+ //DWORD error = GetLastError();
+ //if (!connectionResult && error == ERROR_IO_PENDING)
+ //{
+ // if (WaitForSingleObject(globalHConnectEvent, dwDefaultTimeout) == WAIT_TIMEOUT)
+ // {
+ // std::cout << "\nTimeout for connection " << " in connecting event !";
+ // }
+ // if (WaitForSingleObject(globalHRequestCompleteEvent, dwDefaultTimeout) == WAIT_TIMEOUT)
+ // {
+ // std::cout << "\nTimeout for connection " << " in completing request event !";
+ // goto retryMakeConnection;
+ // }
+ // else
+ // {
+ // connection = (HINTERNET)(asyncResult->dwResult);
+ // std::cout << "\nConnection " << " : " << connection << "\n\n\n";
+ // }
+ //}
+ if (!connectionResult)
{
- if (WaitForSingleObject(globalHConnectEvent, dwDefaultTimeout) == WAIT_TIMEOUT)
- {
- std::cout << "\nTimeout for connection " << " in connecting event !";
- }
- if (WaitForSingleObject(globalHRequestCompleteEvent, dwDefaultTimeout) == WAIT_TIMEOUT)
- {
- std::cout << "\nTimeout for connection " << " in completing request event !";
- goto retryMakeConnection;
- }
- else
- {
- connection = (HINTERNET)(asyncResult->dwResult);
- std::cout << "\nConnection " << " : " << connection << "\n\n\n";
- }
- }
- else
+ std::cout << "\nConnection error !";
connection = NULL;
+ invalidURL = true;
+ }
}
void SingleThreadFileDownload::ProcessRange()
@@ -424,26 +408,24 @@ InternetDownloadStatus SingleThreadFileDownload::CheckStatusAndReadData()
//Vòng lặp dùng để lấy dữ liệu về và ghi vào file.
bool result;
- INTERNET_BUFFERS buffer;
- memset(&buffer, 0, sizeof(buffer));
- buffer.dwStructSize = sizeof(buffer);
- buffer.lpvBuffer = lpBuffer;
- buffer.dwBufferLength = dwSize - 1;
- if (!(result = InternetReadFileEx(connection, &buffer, IRF_ASYNC, 1)))
+ DWORD readedBytes = 0;
+
+ if (!(result = InternetReadFile(connection, lpBuffer, dwSize, &readedBytes)))
{
DWORD error = GetLastError();
if (error == ERROR_IO_PENDING)
{
- if (WaitForSingleObject(globalHRequestCompleteEvent, dwDefaultTimeout) == WAIT_TIMEOUT)
- {
- std::cout << "\nTimeout at downloading at connection : " + 0 << " ! ";
- returnResult.statusCode = StatusCode::TimedOutReadingData;
- return returnResult;
- }
- else
- {
- std::cout << "\nNOOOOOOOOOOOO\n\n\n";
- }
+ //if (WaitForSingleObject(globalHRequestCompleteEvent, dwDefaultTimeout) == WAIT_TIMEOUT)
+ //{
+ // std::cout << "\nTimeout at downloading at connection : " + 0 << " ! ";
+ //
+ //}
+ //else
+ //{
+ // std::cout << "\nNOOOOOOOOOOOO\n\n\n";
+ //}
+ returnResult.statusCode = StatusCode::TimedOutReadingData;
+ return returnResult;
}
else
{
@@ -455,7 +437,7 @@ InternetDownloadStatus SingleThreadFileDownload::CheckStatusAndReadData()
//Tải được rồi thì phải reset đi chớ.
//ResetEvent(hRequestCompleteEvent[connection]);
- if (!result && buffer.dwBufferLength == 0)
+ if (!result && readedBytes == 0)
{
returnResult.downloadedBytes = returnResult.totalBytes;
returnResult.downloadedPercent = 100.0;
@@ -466,13 +448,13 @@ InternetDownloadStatus SingleThreadFileDownload::CheckStatusAndReadData()
//Ghi vào file.
try
{
- file.Write(lpBuffer, buffer.dwBufferLength);
+ file.Write(lpBuffer, readedBytes);
}
catch (...)
{
std::cout << "\nCannot write file. Maybe disk full ?\n";
}
- downloadedBytes += buffer.dwBufferLength;
+ downloadedBytes += readedBytes;
returnResult.totalBytes = downloadSize;
returnResult.downloadedBytes = downloadedBytes;
returnResult.downloadedPercent = 100 * (double)returnResult.downloadedBytes / (double)returnResult.totalBytes;
@@ -512,5 +494,5 @@ bool SingleThreadFileDownload::SetupDownload()
file.SeekToEnd();
else
file.SeekToBegin();
- return true & invalidURL;
+ return (true && !invalidURL && !timedOutSomewhere);
}
\ No newline at end of file
diff --git a/LaunchHome/SingleThreadFileDownload.h b/LaunchHome/SingleThreadFileDownload.h
index edcdd08..5bb2ea7 100644
--- a/LaunchHome/SingleThreadFileDownload.h
+++ b/LaunchHome/SingleThreadFileDownload.h
@@ -38,9 +38,12 @@ class SingleThreadFileDownload
//Biến lưu giữ URL cần tải về.
wchar_t * url = nullptr;
- //Biến báo hiệu URL không hợp lệ.
+ //Biến báo hiệu URL không hợp lệ. Chỉ được set = true, không được set = false.
bool invalidURL = false;
+ //Biến báo hiệu đã bị lỗi ở chỗ nào đó trong quá trình connect và không thể tiếp tục. Chỉ được set = true, không được set = false.
+ bool timedOutSomewhere = false;
+
//Biến lưu giữ kết nối đến URL.
HINTERNET connection;
diff --git a/LaunchHome/hehe b/LaunchHome/hehe
new file mode 100644
index 0000000..e69de29
diff --git a/LaunchHome/packages.config b/LaunchHome/packages.config
new file mode 100644
index 0000000..8eb1877
--- /dev/null
+++ b/LaunchHome/packages.config
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/LaunchHome/res/LaunchHome.ico b/LaunchHome/res/LaunchHome.ico
index d56fbcd..e9af037 100644
Binary files a/LaunchHome/res/LaunchHome.ico and b/LaunchHome/res/LaunchHome.ico differ
diff --git a/LaunchHome/resource.h b/LaunchHome/resource.h
index 4b8b861..8dd6f43 100644
Binary files a/LaunchHome/resource.h and b/LaunchHome/resource.h differ
diff --git a/LaunchHome/x64/Debug/LaunchHome.log b/LaunchHome/x64/Debug/LaunchHome.log
index 620416c..9787492 100644
--- a/LaunchHome/x64/Debug/LaunchHome.log
+++ b/LaunchHome/x64/Debug/LaunchHome.log
@@ -1,22 +1,27 @@
- SingleThreadFileDownload.cpp
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.h(2): warning C4005: '_AFXDLL': macro redefinition
- d:\github\gamelaucher\launchhome\stdafx.cpp: note: see previous definition of '_AFXDLL'
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.cpp(25): warning C4101: 'cookieHistory': unreferenced local variable
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.cpp(60): warning C4996: 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\corecrt_wstring.h(123): note: see declaration of 'wcscpy'
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.cpp(61): warning C4996: 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\corecrt_wstring.h(123): note: see declaration of 'wcscpy'
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.cpp(149): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\string.h(133): note: see declaration of 'strcpy'
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.cpp(150): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ LaunchHomeDlg.cpp
+d:\it\project customer\launchgame\gamelaucher\launchhome\singlethreadfiledownload.h(2): warning C4005: '_AFXDLL': macro redefinition
+ d:\it\project customer\launchgame\gamelaucher\launchhome\stdafx.cpp: note: see previous definition of '_AFXDLL'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(114): warning C4244: 'argument': conversion from 'double' to 'int', possible loss of data
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(85): warning C4996: 'mbstowcs': This function or variable may be unsafe. Consider using mbstowcs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdlib.h(927): note: see declaration of 'mbstowcs'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(211): warning C4244: 'argument': conversion from 'double' to 'int', possible loss of data
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(274): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdio.h(208): note: see declaration of 'fopen'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(271): warning C4101: 'v': unreferenced local variable
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(291): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdio.h(208): note: see declaration of 'fopen'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(389): warning C4244: 'argument': conversion from 'double' to 'int', possible loss of data
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(337): warning C4996: 'mbstowcs': This function or variable may be unsafe. Consider using mbstowcs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdlib.h(927): note: see declaration of 'mbstowcs'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(346): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\string.h(90): note: see declaration of 'strcat'
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.cpp(151): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\string.h(90): note: see declaration of 'strcat'
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.cpp(279): warning C4996: 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\corecrt_wstring.h(123): note: see declaration of 'wcscpy'
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.cpp(280): warning C4996: 'wcscat': This function or variable may be unsafe. Consider using wcscat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\corecrt_wstring.h(100): note: see declaration of 'wcscat'
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.cpp(331): warning C4996: '_snwprintf': This function or variable may be unsafe. Consider using _snwprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\corecrt_wstdio.h(1667): note: see declaration of '_snwprintf'
-d:\github\gamelaucher\launchhome\singlethreadfiledownload.cpp(126): warning C4715: 'SingleThreadFileDownload::TerminateDownload': not all control paths return a value
- LaunchHome.vcxproj -> D:\GitHub\GameLaucher\x64\Debug\LaunchHome.exe
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(350): warning C4996: 'mbstowcs': This function or variable may be unsafe. Consider using mbstowcs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdlib.h(927): note: see declaration of 'mbstowcs'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(374): warning C4996: 'mbstowcs': This function or variable may be unsafe. Consider using mbstowcs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdlib.h(927): note: see declaration of 'mbstowcs'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(491): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdio.h(208): note: see declaration of 'fopen'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(488): warning C4101: 'v': unreferenced local variable
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(510): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdio.h(208): note: see declaration of 'fopen'
+ LaunchHome.vcxproj -> D:\IT\Project customer\LaunchGame\GameLaucher\x64\Debug\LaunchHome.exe
diff --git a/LaunchHome/x64/Debug/LaunchHome.res b/LaunchHome/x64/Debug/LaunchHome.res
index d5eae73..a8b6fb2 100644
Binary files a/LaunchHome/x64/Debug/LaunchHome.res and b/LaunchHome/x64/Debug/LaunchHome.res differ
diff --git a/LaunchHome/x64/Debug/LaunchHome.tlog/CL.command.1.tlog b/LaunchHome/x64/Debug/LaunchHome.tlog/CL.command.1.tlog
index 83fdd74..9026c85 100644
Binary files a/LaunchHome/x64/Debug/LaunchHome.tlog/CL.command.1.tlog and b/LaunchHome/x64/Debug/LaunchHome.tlog/CL.command.1.tlog differ
diff --git a/LaunchHome/x64/Debug/LaunchHome.tlog/CL.read.1.tlog b/LaunchHome/x64/Debug/LaunchHome.tlog/CL.read.1.tlog
index a4810d6..7ba9257 100644
Binary files a/LaunchHome/x64/Debug/LaunchHome.tlog/CL.read.1.tlog and b/LaunchHome/x64/Debug/LaunchHome.tlog/CL.read.1.tlog differ
diff --git a/LaunchHome/x64/Debug/LaunchHome.tlog/CL.write.1.tlog b/LaunchHome/x64/Debug/LaunchHome.tlog/CL.write.1.tlog
index acd9221..db87b39 100644
Binary files a/LaunchHome/x64/Debug/LaunchHome.tlog/CL.write.1.tlog and b/LaunchHome/x64/Debug/LaunchHome.tlog/CL.write.1.tlog differ
diff --git a/LaunchHome/x64/Debug/LaunchHome.tlog/LaunchHome.lastbuildstate b/LaunchHome/x64/Debug/LaunchHome.tlog/LaunchHome.lastbuildstate
index 4ffff7e..f11858a 100644
--- a/LaunchHome/x64/Debug/LaunchHome.tlog/LaunchHome.lastbuildstate
+++ b/LaunchHome/x64/Debug/LaunchHome.tlog/LaunchHome.lastbuildstate
@@ -1,2 +1,2 @@
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17134.0
-Debug|x64|D:\GitHub\GameLaucher\|
+Debug|x64|D:\IT\Project customer\LaunchGame\GameLaucher\|
diff --git a/LaunchHome/x64/Debug/LaunchHome.tlog/link.command.1.tlog b/LaunchHome/x64/Debug/LaunchHome.tlog/link.command.1.tlog
index ff080b5..746ce62 100644
Binary files a/LaunchHome/x64/Debug/LaunchHome.tlog/link.command.1.tlog and b/LaunchHome/x64/Debug/LaunchHome.tlog/link.command.1.tlog differ
diff --git a/LaunchHome/x64/Debug/LaunchHome.tlog/link.read.1.tlog b/LaunchHome/x64/Debug/LaunchHome.tlog/link.read.1.tlog
index 9ce6588..687338e 100644
Binary files a/LaunchHome/x64/Debug/LaunchHome.tlog/link.read.1.tlog and b/LaunchHome/x64/Debug/LaunchHome.tlog/link.read.1.tlog differ
diff --git a/LaunchHome/x64/Debug/LaunchHome.tlog/link.write.1.tlog b/LaunchHome/x64/Debug/LaunchHome.tlog/link.write.1.tlog
index 236f9e1..44df199 100644
Binary files a/LaunchHome/x64/Debug/LaunchHome.tlog/link.write.1.tlog and b/LaunchHome/x64/Debug/LaunchHome.tlog/link.write.1.tlog differ
diff --git a/LaunchHome/x64/Debug/LaunchHome.tlog/rc.command.1.tlog b/LaunchHome/x64/Debug/LaunchHome.tlog/rc.command.1.tlog
index ff11d57..1e42c17 100644
Binary files a/LaunchHome/x64/Debug/LaunchHome.tlog/rc.command.1.tlog and b/LaunchHome/x64/Debug/LaunchHome.tlog/rc.command.1.tlog differ
diff --git a/LaunchHome/x64/Debug/LaunchHome.tlog/rc.read.1.tlog b/LaunchHome/x64/Debug/LaunchHome.tlog/rc.read.1.tlog
index dd6bfc7..a3605b1 100644
Binary files a/LaunchHome/x64/Debug/LaunchHome.tlog/rc.read.1.tlog and b/LaunchHome/x64/Debug/LaunchHome.tlog/rc.read.1.tlog differ
diff --git a/LaunchHome/x64/Debug/LaunchHome.tlog/rc.write.1.tlog b/LaunchHome/x64/Debug/LaunchHome.tlog/rc.write.1.tlog
index da48f94..0d0ab2b 100644
Binary files a/LaunchHome/x64/Debug/LaunchHome.tlog/rc.write.1.tlog and b/LaunchHome/x64/Debug/LaunchHome.tlog/rc.write.1.tlog differ
diff --git a/LaunchHome/x64/Debug/vc141.idb b/LaunchHome/x64/Debug/vc141.idb
index a5b7808..5850891 100644
Binary files a/LaunchHome/x64/Debug/vc141.idb and b/LaunchHome/x64/Debug/vc141.idb differ
diff --git a/LaunchHome/x64/Debug/vc141.pdb b/LaunchHome/x64/Debug/vc141.pdb
index 374c41a..849f5a2 100644
Binary files a/LaunchHome/x64/Debug/vc141.pdb and b/LaunchHome/x64/Debug/vc141.pdb differ
diff --git a/LaunchHome/x64/Release/LaunchHome.log b/LaunchHome/x64/Release/LaunchHome.log
index 4825013..4c755c4 100644
--- a/LaunchHome/x64/Release/LaunchHome.log
+++ b/LaunchHome/x64/Release/LaunchHome.log
@@ -1,7 +1,37 @@
- LaunchHomeDlg.cpp
+ LaunchHome.cpp
+d:\it\project customer\launchgame\gamelaucher\launchhome\singlethreadfiledownload.h(2): warning C4005: '_AFXDLL': macro redefinition
+ d:\it\project customer\launchgame\gamelaucher\launchhome\stdafx.cpp: note: see previous definition of '_AFXDLL'
+ LaunchHomeDlg.cpp
+d:\it\project customer\launchgame\gamelaucher\launchhome\singlethreadfiledownload.h(2): warning C4005: '_AFXDLL': macro redefinition
+ d:\it\project customer\launchgame\gamelaucher\launchhome\stdafx.cpp: note: see previous definition of '_AFXDLL'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(113): warning C4244: 'argument': conversion from 'double' to 'int', possible loss of data
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(84): warning C4996: 'mbstowcs': This function or variable may be unsafe. Consider using mbstowcs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdlib.h(927): note: see declaration of 'mbstowcs'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(210): warning C4244: 'argument': conversion from 'double' to 'int', possible loss of data
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(273): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdio.h(208): note: see declaration of 'fopen'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(270): warning C4101: 'v': unreferenced local variable
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(290): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdio.h(208): note: see declaration of 'fopen'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(345): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\string.h(90): note: see declaration of 'strcat'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(388): warning C4244: 'argument': conversion from 'double' to 'int', possible loss of data
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(336): warning C4996: 'mbstowcs': This function or variable may be unsafe. Consider using mbstowcs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdlib.h(927): note: see declaration of 'mbstowcs'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(349): warning C4996: 'mbstowcs': This function or variable may be unsafe. Consider using mbstowcs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdlib.h(927): note: see declaration of 'mbstowcs'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(373): warning C4996: 'mbstowcs': This function or variable may be unsafe. Consider using mbstowcs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdlib.h(927): note: see declaration of 'mbstowcs'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(490): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdio.h(208): note: see declaration of 'fopen'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(487): warning C4101: 'v': unreferenced local variable
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(509): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\stdio.h(208): note: see declaration of 'fopen'
+d:\it\project customer\launchgame\gamelaucher\launchhome\launchhomedlg.cpp(682): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\program files (x86)\windows kits\10\include\10.0.17134.0\ucrt\time.h(506): note: see declaration of 'localtime'
Generating code
- 2 of 240 functions ( 0.8%) were compiled, the rest were copied from previous compilation.
- 1 functions were new in current compilation
- 0 functions had inline decision re-evaluated but remain unchanged
+ 17 of 511 functions ( 3.3%) were compiled, the rest were copied from previous compilation.
+ 2 functions were new in current compilation
+ 12 functions had inline decision re-evaluated but remain unchanged
Finished generating code
LaunchHome.vcxproj -> D:\IT\Project customer\LaunchGame\GameLaucher\x64\Release\LaunchHome.exe
diff --git a/LaunchHome/x64/Release/LaunchHome.res b/LaunchHome/x64/Release/LaunchHome.res
index ab25292..6ff984c 100644
Binary files a/LaunchHome/x64/Release/LaunchHome.res and b/LaunchHome/x64/Release/LaunchHome.res differ
diff --git a/LaunchHome/x64/Release/LaunchHome.tlog/CL.command.1.tlog b/LaunchHome/x64/Release/LaunchHome.tlog/CL.command.1.tlog
index 5e7af00..6ad4b5c 100644
Binary files a/LaunchHome/x64/Release/LaunchHome.tlog/CL.command.1.tlog and b/LaunchHome/x64/Release/LaunchHome.tlog/CL.command.1.tlog differ
diff --git a/LaunchHome/x64/Release/LaunchHome.tlog/CL.read.1.tlog b/LaunchHome/x64/Release/LaunchHome.tlog/CL.read.1.tlog
index 4762f90..5d6851c 100644
Binary files a/LaunchHome/x64/Release/LaunchHome.tlog/CL.read.1.tlog and b/LaunchHome/x64/Release/LaunchHome.tlog/CL.read.1.tlog differ
diff --git a/LaunchHome/x64/Release/LaunchHome.tlog/CL.write.1.tlog b/LaunchHome/x64/Release/LaunchHome.tlog/CL.write.1.tlog
index d03dc1e..fa2ee70 100644
Binary files a/LaunchHome/x64/Release/LaunchHome.tlog/CL.write.1.tlog and b/LaunchHome/x64/Release/LaunchHome.tlog/CL.write.1.tlog differ
diff --git a/LaunchHome/x64/Release/LaunchHome.tlog/LaunchHome.write.1u.tlog b/LaunchHome/x64/Release/LaunchHome.tlog/LaunchHome.write.1u.tlog
index 0541db6..5cf2a20 100644
Binary files a/LaunchHome/x64/Release/LaunchHome.tlog/LaunchHome.write.1u.tlog and b/LaunchHome/x64/Release/LaunchHome.tlog/LaunchHome.write.1u.tlog differ
diff --git a/LaunchHome/x64/Release/LaunchHome.tlog/link.command.1.tlog b/LaunchHome/x64/Release/LaunchHome.tlog/link.command.1.tlog
index 89a473a..5e082d8 100644
Binary files a/LaunchHome/x64/Release/LaunchHome.tlog/link.command.1.tlog and b/LaunchHome/x64/Release/LaunchHome.tlog/link.command.1.tlog differ
diff --git a/LaunchHome/x64/Release/LaunchHome.tlog/link.read.1.tlog b/LaunchHome/x64/Release/LaunchHome.tlog/link.read.1.tlog
index 7108baa..7dcdd20 100644
Binary files a/LaunchHome/x64/Release/LaunchHome.tlog/link.read.1.tlog and b/LaunchHome/x64/Release/LaunchHome.tlog/link.read.1.tlog differ
diff --git a/LaunchHome/x64/Release/LaunchHome.tlog/link.write.1.tlog b/LaunchHome/x64/Release/LaunchHome.tlog/link.write.1.tlog
index dd7862d..2894ee3 100644
Binary files a/LaunchHome/x64/Release/LaunchHome.tlog/link.write.1.tlog and b/LaunchHome/x64/Release/LaunchHome.tlog/link.write.1.tlog differ
diff --git a/LaunchHome/x64/Release/LaunchHome.tlog/rc.command.1.tlog b/LaunchHome/x64/Release/LaunchHome.tlog/rc.command.1.tlog
index f23da2a..f13239b 100644
Binary files a/LaunchHome/x64/Release/LaunchHome.tlog/rc.command.1.tlog and b/LaunchHome/x64/Release/LaunchHome.tlog/rc.command.1.tlog differ
diff --git a/LaunchHome/x64/Release/vc141.pdb b/LaunchHome/x64/Release/vc141.pdb
index 74d24d4..c967a9b 100644
Binary files a/LaunchHome/x64/Release/vc141.pdb and b/LaunchHome/x64/Release/vc141.pdb differ
diff --git a/Patch/Version5.zip b/Patch/Version5.zip
new file mode 100644
index 0000000..bed6872
Binary files /dev/null and b/Patch/Version5.zip differ
diff --git a/Patch/patchinfo.txt b/Patch/patchinfo.txt
new file mode 100644
index 0000000..601172e
--- /dev/null
+++ b/Patch/patchinfo.txt
@@ -0,0 +1,23 @@
+[Version]
+Latest=3.80.0005
+NewLaunch=1.0.7
+
+[Patch_0]
+VersionFrom=3.80.0001
+VersionTo=3.80.0002
+URL_1=http://45.119.212.250/tlbb/update/Version1.zip
+
+[Patch_1]
+VersionFrom=3.80.0002
+VersionTo=3.80.0003
+URL_1=http://45.119.212.250/tlbb/update/Version2.zip
+
+[Patch_2]
+VersionFrom=3.80.0003
+VersionTo=3.80.0004
+URL_1=http://45.119.212.250/tlbb/update/Version3.zip
+
+[Patch_3]
+VersionFrom=3.80.0004
+VersionTo=3.80.0005
+URL_1=http://45.119.212.250/tlbb/update/Version5.zip
diff --git a/Patch/patchinfo.txt.sav b/Patch/patchinfo.txt.sav
new file mode 100644
index 0000000..3187b7e
--- /dev/null
+++ b/Patch/patchinfo.txt.sav
@@ -0,0 +1,2 @@
+467
+Sun, 08 Sep 2019 15:00:24 GMT
\ No newline at end of file
diff --git a/packages/libzip.1.1.2.7/.signature.p7s b/packages/libzip.1.1.2.7/.signature.p7s
new file mode 100644
index 0000000..e02b06f
Binary files /dev/null and b/packages/libzip.1.1.2.7/.signature.p7s differ
diff --git a/packages/libzip.1.1.2.7/build/configurations.autopkg b/packages/libzip.1.1.2.7/build/configurations.autopkg
new file mode 100644
index 0000000..72d698d
--- /dev/null
+++ b/packages/libzip.1.1.2.7/build/configurations.autopkg
@@ -0,0 +1,16 @@
+configurations {
+ Toolset {
+ key : "PlatformToolset";
+ choices : { v140 };
+ };
+ Platform {
+ key : "Platform";
+ choices : { Win32, x64 };
+ Win32.aliases : { x86, win32, ia32, 386 };
+ x64.aliases : { x64, amd64, em64t, intel64, x86-64, x86_64 };
+ };
+ Configuration {
+ key : "Configuration";
+ choices : { Release, Debug };
+ };
+};
diff --git a/packages/libzip.1.1.2.7/build/native/default-propertiesui.xml b/packages/libzip.1.1.2.7/build/native/default-propertiesui.xml
new file mode 100644
index 0000000..8556c8e
--- /dev/null
+++ b/packages/libzip.1.1.2.7/build/native/default-propertiesui.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/libzip.1.1.2.7/build/native/include/zip.h b/packages/libzip.1.1.2.7/build/native/include/zip.h
new file mode 100644
index 0000000..27141b3
--- /dev/null
+++ b/packages/libzip.1.1.2.7/build/native/include/zip.h
@@ -0,0 +1,422 @@
+#ifndef _HAD_ZIP_H
+#define _HAD_ZIP_H
+
+/*
+ zip.h -- exported declarations.
+ Copyright (C) 1999-2015 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+#ifndef ZIP_EXTERN
+# ifndef ZIP_STATIC
+# ifdef _WIN32
+# define ZIP_EXTERN __declspec(dllimport)
+# elif defined(__GNUC__) && __GNUC__ >= 4
+# define ZIP_EXTERN __attribute__ ((visibility ("default")))
+# else
+# define ZIP_EXTERN
+# endif
+# else
+# define ZIP_EXTERN
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* fix autoindent */
+#endif
+#endif
+
+#include
+
+#include
+#include
+#include
+
+/* flags for zip_open */
+
+#define ZIP_CREATE 1
+#define ZIP_EXCL 2
+#define ZIP_CHECKCONS 4
+#define ZIP_TRUNCATE 8
+#define ZIP_RDONLY 16
+
+
+/* flags for zip_name_locate, zip_fopen, zip_stat, ... */
+
+#define ZIP_FL_NOCASE 1u /* ignore case on name lookup */
+#define ZIP_FL_NODIR 2u /* ignore directory component */
+#define ZIP_FL_COMPRESSED 4u /* read compressed data */
+#define ZIP_FL_UNCHANGED 8u /* use original data, ignoring changes */
+#define ZIP_FL_RECOMPRESS 16u /* force recompression of data */
+#define ZIP_FL_ENCRYPTED 32u /* read encrypted data (implies ZIP_FL_COMPRESSED) */
+#define ZIP_FL_ENC_GUESS 0u /* guess string encoding (is default) */
+#define ZIP_FL_ENC_RAW 64u /* get unmodified string */
+#define ZIP_FL_ENC_STRICT 128u /* follow specification strictly */
+#define ZIP_FL_LOCAL 256u /* in local header */
+#define ZIP_FL_CENTRAL 512u /* in central directory */
+/* 1024u reserved for internal use */
+#define ZIP_FL_ENC_UTF_8 2048u /* string is UTF-8 encoded */
+#define ZIP_FL_ENC_CP437 4096u /* string is CP437 encoded */
+#define ZIP_FL_OVERWRITE 8192u /* zip_file_add: if file with name exists, overwrite (replace) it */
+
+/* archive global flags flags */
+
+#define ZIP_AFL_RDONLY 2u /* read only -- cannot be cleared */
+
+
+/* create a new extra field */
+
+#define ZIP_EXTRA_FIELD_ALL ZIP_UINT16_MAX
+#define ZIP_EXTRA_FIELD_NEW ZIP_UINT16_MAX
+
+
+/* libzip error codes */
+
+#define ZIP_ER_OK 0 /* N No error */
+#define ZIP_ER_MULTIDISK 1 /* N Multi-disk zip archives not supported */
+#define ZIP_ER_RENAME 2 /* S Renaming temporary file failed */
+#define ZIP_ER_CLOSE 3 /* S Closing zip archive failed */
+#define ZIP_ER_SEEK 4 /* S Seek error */
+#define ZIP_ER_READ 5 /* S Read error */
+#define ZIP_ER_WRITE 6 /* S Write error */
+#define ZIP_ER_CRC 7 /* N CRC error */
+#define ZIP_ER_ZIPCLOSED 8 /* N Containing zip archive was closed */
+#define ZIP_ER_NOENT 9 /* N No such file */
+#define ZIP_ER_EXISTS 10 /* N File already exists */
+#define ZIP_ER_OPEN 11 /* S Can't open file */
+#define ZIP_ER_TMPOPEN 12 /* S Failure to create temporary file */
+#define ZIP_ER_ZLIB 13 /* Z Zlib error */
+#define ZIP_ER_MEMORY 14 /* N Malloc failure */
+#define ZIP_ER_CHANGED 15 /* N Entry has been changed */
+#define ZIP_ER_COMPNOTSUPP 16 /* N Compression method not supported */
+#define ZIP_ER_EOF 17 /* N Premature end of file */
+#define ZIP_ER_INVAL 18 /* N Invalid argument */
+#define ZIP_ER_NOZIP 19 /* N Not a zip archive */
+#define ZIP_ER_INTERNAL 20 /* N Internal error */
+#define ZIP_ER_INCONS 21 /* N Zip archive inconsistent */
+#define ZIP_ER_REMOVE 22 /* S Can't remove file */
+#define ZIP_ER_DELETED 23 /* N Entry has been deleted */
+#define ZIP_ER_ENCRNOTSUPP 24 /* N Encryption method not supported */
+#define ZIP_ER_RDONLY 25 /* N Read-only archive */
+#define ZIP_ER_NOPASSWD 26 /* N No password provided */
+#define ZIP_ER_WRONGPASSWD 27 /* N Wrong password provided */
+#define ZIP_ER_OPNOTSUPP 28 /* N Operation not supported */
+#define ZIP_ER_INUSE 29 /* N Resource still in use */
+#define ZIP_ER_TELL 30 /* S Tell error */
+
+/* type of system error value */
+
+#define ZIP_ET_NONE 0 /* sys_err unused */
+#define ZIP_ET_SYS 1 /* sys_err is errno */
+#define ZIP_ET_ZLIB 2 /* sys_err is zlib error code */
+
+/* compression methods */
+
+#define ZIP_CM_DEFAULT -1 /* better of deflate or store */
+#define ZIP_CM_STORE 0 /* stored (uncompressed) */
+#define ZIP_CM_SHRINK 1 /* shrunk */
+#define ZIP_CM_REDUCE_1 2 /* reduced with factor 1 */
+#define ZIP_CM_REDUCE_2 3 /* reduced with factor 2 */
+#define ZIP_CM_REDUCE_3 4 /* reduced with factor 3 */
+#define ZIP_CM_REDUCE_4 5 /* reduced with factor 4 */
+#define ZIP_CM_IMPLODE 6 /* imploded */
+/* 7 - Reserved for Tokenizing compression algorithm */
+#define ZIP_CM_DEFLATE 8 /* deflated */
+#define ZIP_CM_DEFLATE64 9 /* deflate64 */
+#define ZIP_CM_PKWARE_IMPLODE 10 /* PKWARE imploding */
+/* 11 - Reserved by PKWARE */
+#define ZIP_CM_BZIP2 12 /* compressed using BZIP2 algorithm */
+/* 13 - Reserved by PKWARE */
+#define ZIP_CM_LZMA 14 /* LZMA (EFS) */
+/* 15-17 - Reserved by PKWARE */
+#define ZIP_CM_TERSE 18 /* compressed using IBM TERSE (new) */
+#define ZIP_CM_LZ77 19 /* IBM LZ77 z Architecture (PFS) */
+#define ZIP_CM_WAVPACK 97 /* WavPack compressed data */
+#define ZIP_CM_PPMD 98 /* PPMd version I, Rev 1 */
+
+/* encryption methods */
+
+#define ZIP_EM_NONE 0 /* not encrypted */
+#define ZIP_EM_TRAD_PKWARE 1 /* traditional PKWARE encryption */
+#if 0 /* Strong Encryption Header not parsed yet */
+#define ZIP_EM_DES 0x6601 /* strong encryption: DES */
+#define ZIP_EM_RC2_OLD 0x6602 /* strong encryption: RC2, version < 5.2 */
+#define ZIP_EM_3DES_168 0x6603
+#define ZIP_EM_3DES_112 0x6609
+#define ZIP_EM_AES_128 0x660e
+#define ZIP_EM_AES_192 0x660f
+#define ZIP_EM_AES_256 0x6610
+#define ZIP_EM_RC2 0x6702 /* strong encryption: RC2, version >= 5.2 */
+#define ZIP_EM_RC4 0x6801
+#endif
+#define ZIP_EM_UNKNOWN 0xffff /* unknown algorithm */
+
+#define ZIP_OPSYS_DOS 0x00u
+#define ZIP_OPSYS_AMIGA 0x01u
+#define ZIP_OPSYS_OPENVMS 0x02u
+#define ZIP_OPSYS_UNIX 0x03u
+#define ZIP_OPSYS_VM_CMS 0x04u
+#define ZIP_OPSYS_ATARI_ST 0x05u
+#define ZIP_OPSYS_OS_2 0x06u
+#define ZIP_OPSYS_MACINTOSH 0x07u
+#define ZIP_OPSYS_Z_SYSTEM 0x08u
+#define ZIP_OPSYS_CPM 0x09u
+#define ZIP_OPSYS_WINDOWS_NTFS 0x0au
+#define ZIP_OPSYS_MVS 0x0bu
+#define ZIP_OPSYS_VSE 0x0cu
+#define ZIP_OPSYS_ACORN_RISC 0x0du
+#define ZIP_OPSYS_VFAT 0x0eu
+#define ZIP_OPSYS_ALTERNATE_MVS 0x0fu
+#define ZIP_OPSYS_BEOS 0x10u
+#define ZIP_OPSYS_TANDEM 0x11u
+#define ZIP_OPSYS_OS_400 0x12u
+#define ZIP_OPSYS_OS_X 0x13u
+
+#define ZIP_OPSYS_DEFAULT ZIP_OPSYS_UNIX
+
+
+enum zip_source_cmd {
+ ZIP_SOURCE_OPEN, /* prepare for reading */
+ ZIP_SOURCE_READ, /* read data */
+ ZIP_SOURCE_CLOSE, /* reading is done */
+ ZIP_SOURCE_STAT, /* get meta information */
+ ZIP_SOURCE_ERROR, /* get error information */
+ ZIP_SOURCE_FREE, /* cleanup and free resources */
+ ZIP_SOURCE_SEEK, /* set position for reading */
+ ZIP_SOURCE_TELL, /* get read position */
+ ZIP_SOURCE_BEGIN_WRITE, /* prepare for writing */
+ ZIP_SOURCE_COMMIT_WRITE, /* writing is done */
+ ZIP_SOURCE_ROLLBACK_WRITE, /* discard written changes */
+ ZIP_SOURCE_WRITE, /* write data */
+ ZIP_SOURCE_SEEK_WRITE, /* set position for writing */
+ ZIP_SOURCE_TELL_WRITE, /* get write position */
+ ZIP_SOURCE_SUPPORTS, /* check whether source supports command */
+ ZIP_SOURCE_REMOVE /* remove file */
+};
+typedef enum zip_source_cmd zip_source_cmd_t;
+
+#define ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd) (1<<(cmd))
+
+#define ZIP_SOURCE_SUPPORTS_READABLE (ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_OPEN) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_READ) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_CLOSE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_STAT) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ERROR) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_FREE))
+
+#define ZIP_SOURCE_SUPPORTS_SEEKABLE (ZIP_SOURCE_SUPPORTS_READABLE \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SUPPORTS))
+
+#define ZIP_SOURCE_SUPPORTS_WRITABLE (ZIP_SOURCE_SUPPORTS_SEEKABLE \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_BEGIN_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_COMMIT_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ROLLBACK_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_REMOVE))
+
+/* for use by sources */
+struct zip_source_args_seek {
+ zip_int64_t offset;
+ int whence;
+};
+
+typedef struct zip_source_args_seek zip_source_args_seek_t;
+#define ZIP_SOURCE_GET_ARGS(type, data, len, error) ((len) < sizeof(type) ? zip_error_set((error), ZIP_ER_INVAL, 0), (type *)NULL : (type *)(data))
+
+
+/* error information */
+/* use zip_error_*() to access */
+struct zip_error {
+ int zip_err; /* libzip error code (ZIP_ER_*) */
+ int sys_err; /* copy of errno (E*) or zlib error code */
+ char *str; /* string representation or NULL */
+};
+
+#define ZIP_STAT_NAME 0x0001u
+#define ZIP_STAT_INDEX 0x0002u
+#define ZIP_STAT_SIZE 0x0004u
+#define ZIP_STAT_COMP_SIZE 0x0008u
+#define ZIP_STAT_MTIME 0x0010u
+#define ZIP_STAT_CRC 0x0020u
+#define ZIP_STAT_COMP_METHOD 0x0040u
+#define ZIP_STAT_ENCRYPTION_METHOD 0x0080u
+#define ZIP_STAT_FLAGS 0x0100u
+
+struct zip_stat {
+ zip_uint64_t valid; /* which fields have valid values */
+ const char *name; /* name of the file */
+ zip_uint64_t index; /* index within archive */
+ zip_uint64_t size; /* size of file (uncompressed) */
+ zip_uint64_t comp_size; /* size of file (compressed) */
+ time_t mtime; /* modification time */
+ zip_uint32_t crc; /* crc of file data */
+ zip_uint16_t comp_method; /* compression method used */
+ zip_uint16_t encryption_method; /* encryption method used */
+ zip_uint32_t flags; /* reserved for future use */
+};
+
+struct zip;
+struct zip_file;
+struct zip_source;
+
+typedef struct zip zip_t;
+typedef struct zip_error zip_error_t;
+typedef struct zip_file zip_file_t;
+typedef struct zip_source zip_source_t;
+typedef struct zip_stat zip_stat_t;
+
+typedef zip_uint32_t zip_flags_t;
+
+typedef zip_int64_t (*zip_source_callback)(void *, void *, zip_uint64_t, zip_source_cmd_t);
+
+
+#ifndef ZIP_DISABLE_DEPRECATED
+ZIP_EXTERN zip_int64_t zip_add(zip_t *, const char *, zip_source_t *); /* use zip_file_add */
+ZIP_EXTERN zip_int64_t zip_add_dir(zip_t *, const char *); /* use zip_dir_add */
+ZIP_EXTERN const char *zip_get_file_comment(zip_t *, zip_uint64_t, int *, int); /* use zip_file_get_comment */
+ZIP_EXTERN int zip_get_num_files(zip_t *); /* use zip_get_num_entries instead */
+ZIP_EXTERN int zip_rename(zip_t *, zip_uint64_t, const char *); /* use zip_file_rename */
+ZIP_EXTERN int zip_replace(zip_t *, zip_uint64_t, zip_source_t *); /* use zip_file_replace */
+ZIP_EXTERN int zip_set_file_comment(zip_t *, zip_uint64_t, const char *, int); /* use zip_file_set_comment */
+ZIP_EXTERN int zip_error_get_sys_type(int); /* use zip_error_system_type */
+ZIP_EXTERN void zip_error_get(zip_t *, int *, int *); /* use zip_get_error, zip_error_code_zip / zip_error_code_system */
+ZIP_EXTERN int zip_error_to_str(char *, zip_uint64_t, int, int);
+ZIP_EXTERN void zip_file_error_get(zip_file_t *, int *, int *); /* use zip_file_get_error, zip_error_code_zip / zip_error_code_system */
+#endif
+
+ZIP_EXTERN int zip_archive_set_tempdir(zip_t *, const char *);
+ZIP_EXTERN int zip_close(zip_t *);
+ZIP_EXTERN int zip_delete(zip_t *, zip_uint64_t);
+ZIP_EXTERN zip_int64_t zip_dir_add(zip_t *, const char *, zip_flags_t);
+ZIP_EXTERN void zip_discard(zip_t *);
+
+ZIP_EXTERN zip_error_t *zip_get_error(zip_t *);
+ZIP_EXTERN void zip_error_clear(zip_t *);
+ZIP_EXTERN int zip_error_code_zip(const zip_error_t *);
+ZIP_EXTERN int zip_error_code_system(const zip_error_t *);
+ZIP_EXTERN void zip_error_fini(zip_error_t *);
+ZIP_EXTERN void zip_error_init(zip_error_t *);
+ZIP_EXTERN void zip_error_init_with_code(zip_error_t *, int);
+ZIP_EXTERN void zip_error_set(zip_error_t *, int, int);
+ZIP_EXTERN const char *zip_error_strerror(zip_error_t *);
+ZIP_EXTERN int zip_error_system_type(const zip_error_t *);
+ZIP_EXTERN zip_int64_t zip_error_to_data(const zip_error_t *, void *, zip_uint64_t);
+
+ZIP_EXTERN int zip_fclose(zip_file_t *);
+ZIP_EXTERN zip_t *zip_fdopen(int, int, int *);
+ZIP_EXTERN zip_int64_t zip_file_add(zip_t *, const char *, zip_source_t *, zip_flags_t);
+ZIP_EXTERN void zip_file_error_clear(zip_file_t *);
+ZIP_EXTERN int zip_file_extra_field_delete(zip_t *, zip_uint64_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_extra_field_delete_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_extra_field_set(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, const zip_uint8_t *, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN zip_int16_t zip_file_extra_fields_count(zip_t *, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_int16_t zip_file_extra_fields_count_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t *, zip_uint16_t *, zip_flags_t);
+ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t *, zip_flags_t);
+ZIP_EXTERN const char *zip_file_get_comment(zip_t *, zip_uint64_t, zip_uint32_t *, zip_flags_t);
+ZIP_EXTERN zip_error_t *zip_file_get_error(zip_file_t *);
+ZIP_EXTERN int zip_file_get_external_attributes(zip_t *, zip_uint64_t, zip_flags_t, zip_uint8_t *, zip_uint32_t *);
+ZIP_EXTERN int zip_file_rename(zip_t *, zip_uint64_t, const char *, zip_flags_t);
+ZIP_EXTERN int zip_file_replace(zip_t *, zip_uint64_t, zip_source_t *, zip_flags_t);
+ZIP_EXTERN int zip_file_set_comment(zip_t *, zip_uint64_t, const char *, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_set_external_attributes(zip_t *, zip_uint64_t, zip_flags_t, zip_uint8_t, zip_uint32_t);
+ZIP_EXTERN int zip_file_set_mtime(zip_t *, zip_uint64_t, time_t, zip_flags_t);
+ZIP_EXTERN const char *zip_file_strerror(zip_file_t *);
+ZIP_EXTERN zip_file_t *zip_fopen(zip_t *, const char *, zip_flags_t);
+ZIP_EXTERN zip_file_t *zip_fopen_encrypted(zip_t *, const char *, zip_flags_t, const char *);
+ZIP_EXTERN zip_file_t *zip_fopen_index(zip_t *, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_file_t *zip_fopen_index_encrypted(zip_t *, zip_uint64_t, zip_flags_t, const char *);
+ZIP_EXTERN zip_int64_t zip_fread(zip_file_t *, void *, zip_uint64_t);
+ZIP_EXTERN const char *zip_get_archive_comment(zip_t *, int *, zip_flags_t);
+ZIP_EXTERN int zip_get_archive_flag(zip_t *, zip_flags_t, zip_flags_t);
+ZIP_EXTERN const char *zip_get_name(zip_t *, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_int64_t zip_get_num_entries(zip_t *, zip_flags_t);
+ZIP_EXTERN zip_int64_t zip_name_locate(zip_t *, const char *, zip_flags_t);
+ZIP_EXTERN zip_t *zip_open(const char *, int, int *);
+ZIP_EXTERN zip_t *zip_open_from_source(zip_source_t *, int, zip_error_t *);
+ZIP_EXTERN int zip_set_archive_comment(zip_t *, const char *, zip_uint16_t);
+ZIP_EXTERN int zip_set_archive_flag(zip_t *, zip_flags_t, int);
+ZIP_EXTERN int zip_set_default_password(zip_t *, const char *);
+ZIP_EXTERN int zip_set_file_compression(zip_t *, zip_uint64_t, zip_int32_t, zip_uint32_t);
+ZIP_EXTERN int zip_source_begin_write(zip_source_t *);
+ZIP_EXTERN zip_source_t *zip_source_buffer(zip_t *, const void *, zip_uint64_t, int);
+ZIP_EXTERN zip_source_t *zip_source_buffer_create(const void *, zip_uint64_t, int, zip_error_t *);
+ZIP_EXTERN int zip_source_close(zip_source_t *);
+ZIP_EXTERN int zip_source_commit_write(zip_source_t *);
+ZIP_EXTERN zip_error_t *zip_source_error(zip_source_t *src);
+ZIP_EXTERN zip_source_t *zip_source_file(zip_t *, const char *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t *zip_source_file_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *);
+ZIP_EXTERN zip_source_t *zip_source_filep(zip_t *, FILE *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t *zip_source_filep_create(FILE *, zip_uint64_t, zip_int64_t, zip_error_t *);
+ZIP_EXTERN void zip_source_free(zip_source_t *);
+ZIP_EXTERN zip_source_t *zip_source_function(zip_t *, zip_source_callback, void *);
+ZIP_EXTERN zip_source_t *zip_source_function_create(zip_source_callback, void *, zip_error_t *);
+ZIP_EXTERN int zip_source_is_deleted(zip_source_t *);
+ZIP_EXTERN void zip_source_keep(zip_source_t *);
+ZIP_EXTERN zip_int64_t zip_source_make_command_bitmap(zip_source_cmd_t, ...);
+ZIP_EXTERN int zip_source_open(zip_source_t *);
+ZIP_EXTERN zip_int64_t zip_source_read(zip_source_t *, void *, zip_uint64_t);
+ZIP_EXTERN void zip_source_rollback_write(zip_source_t *);
+ZIP_EXTERN int zip_source_seek(zip_source_t *, zip_int64_t, int);
+ZIP_EXTERN zip_int64_t zip_source_seek_compute_offset(zip_uint64_t, zip_uint64_t, void *, zip_uint64_t, zip_error_t *);
+ZIP_EXTERN int zip_source_seek_write(zip_source_t *, zip_int64_t, int);
+ZIP_EXTERN int zip_source_stat(zip_source_t *, zip_stat_t *);
+ZIP_EXTERN zip_int64_t zip_source_tell(zip_source_t *);
+ZIP_EXTERN zip_int64_t zip_source_tell_write(zip_source_t *);
+#ifdef _WIN32
+ZIP_EXTERN zip_source_t *zip_source_win32a(zip_t *, const char *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t *zip_source_win32a_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *);
+ZIP_EXTERN zip_source_t *zip_source_win32handle(zip_t *, void *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t *zip_source_win32handle_create(void *, zip_uint64_t, zip_int64_t, zip_error_t *);
+ZIP_EXTERN zip_source_t *zip_source_win32w(zip_t *, const wchar_t *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t *zip_source_win32w_create(const wchar_t *, zip_uint64_t, zip_int64_t, zip_error_t *);
+#endif
+ZIP_EXTERN zip_int64_t zip_source_write(zip_source_t *, const void *, zip_uint64_t);
+ZIP_EXTERN zip_source_t *zip_source_zip(zip_t *, zip_t *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN int zip_stat(zip_t *, const char *, zip_flags_t, zip_stat_t *);
+ZIP_EXTERN int zip_stat_index(zip_t *, zip_uint64_t, zip_flags_t, zip_stat_t *);
+ZIP_EXTERN void zip_stat_init(zip_stat_t *);
+ZIP_EXTERN const char *zip_strerror(zip_t *);
+ZIP_EXTERN int zip_unchange(zip_t *, zip_uint64_t);
+ZIP_EXTERN int zip_unchange_all(zip_t *);
+ZIP_EXTERN int zip_unchange_archive(zip_t *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HAD_ZIP_H */
diff --git a/packages/libzip.1.1.2.7/build/native/include/zipconf.h b/packages/libzip.1.1.2.7/build/native/include/zipconf.h
new file mode 100644
index 0000000..38d8ff8
--- /dev/null
+++ b/packages/libzip.1.1.2.7/build/native/include/zipconf.h
@@ -0,0 +1,121 @@
+#ifndef _HAD_ZIPCONF_H
+#define _HAD_ZIPCONF_H
+
+/*
+ zipconf.h -- platform specific include file
+
+ This file was generated automatically by CMake
+ based on ../cmake-zipconf.h.in.
+ */
+
+#define HAVE_INTTYPES_H_LIBZIP
+#define HAVE_STDINT_H_LIBZIP
+#define HAVE_SYS_TYPES_H_LIBZIP
+#define HAVE___INT8_LIBZIP
+#define HAVE_INT8_T_LIBZIP
+#define HAVE_UINT8_T_LIBZIP
+#define HAVE___INT16_LIBZIP
+#define HAVE_INT16_T_LIBZIP
+#define HAVE_UINT16_T_LIBZIP
+#define HAVE___INT32_LIBZIP
+#define HAVE_INT32_T_LIBZIP
+#define HAVE_UINT32_T_LIBZIP
+#define HAVE___INT64_LIBZIP
+#define HAVE_INT64_T_LIBZIP
+#define HAVE_UINT64_T_LIBZIP
+/* #undef HAVE_SSIZE_T_LIBZIP */
+#define SHORT_LIBZIP 2
+#define INT_LIBZIP 4
+#define LONG_LIBZIP 4
+#define LONG_LONG_LIBZIP 8
+
+#if defined(HAVE_STDINT_H_LIBZIP)
+#include
+#elif defined(HAVE_INTTYPES_H_LIBZIP)
+#include
+#elif defined(HAVE_SYS_TYPES_H_LIBZIP)
+#include
+#endif
+
+#if defined(HAVE_INT8_T_LIBZIP)
+typedef int8_t zip_int8_t;
+#elif defined(HAVE___INT8_LIBZIP)
+typedef __int8 zip_int8_t;
+#else
+typedef signed char zip_int8_t;
+#endif
+#if defined(HAVE_UINT8_T_LIBZIP)
+typedef uint8_t zip_uint8_t;
+#elif defined(HAVE___INT8_LIBZIP)
+typedef unsigned __int8 zip_uint8_t;
+#else
+typedef unsigned char zip_uint8_t;
+#endif
+#if defined(HAVE_INT16_T_LIBZIP)
+typedef int16_t zip_int16_t;
+#elif defined(HAVE___INT16_LIBZIP)
+typedef __int16 zip_int16_t;
+#elif defined(SHORT_LIBZIP) && SHORT_LIBZIP == 2
+typedef signed short zip_int16_t;
+#endif
+#if defined(HAVE_UINT16_T_LIBZIP)
+typedef uint16_t zip_uint16_t;
+#elif defined(HAVE___INT16_LIBZIP)
+typedef unsigned __int16 zip_uint16_t;
+#elif defined(SHORT_LIBZIP) && SHORT_LIBZIP == 2
+typedef unsigned short zip_uint16_t;
+#endif
+#if defined(HAVE_INT32_T_LIBZIP)
+typedef int32_t zip_int32_t;
+#elif defined(HAVE___INT32_LIBZIP)
+typedef __int32 zip_int32_t;
+#elif defined(INT_LIBZIP) && INT_LIBZIP == 4
+typedef signed int zip_int32_t;
+#elif defined(LONG_LIBZIP) && LONG_LIBZIP == 4
+typedef signed long zip_int32_t;
+#endif
+#if defined(HAVE_UINT32_T_LIBZIP)
+typedef uint32_t zip_uint32_t;
+#elif defined(HAVE___INT32_LIBZIP)
+typedef unsigned __int32 zip_uint32_t;
+#elif defined(INT_LIBZIP) && INT_LIBZIP == 4
+typedef unsigned int zip_uint32_t;
+#elif defined(LONG_LIBZIP) && LONG_LIBZIP == 4
+typedef unsigned long zip_uint32_t;
+#endif
+#if defined(HAVE_INT64_T_LIBZIP)
+typedef int64_t zip_int64_t;
+#elif defined(HAVE___INT64_LIBZIP)
+typedef __int64 zip_int64_t;
+#elif defined(LONG_LIBZIP) && LONG_LIBZIP == 8
+typedef signed long zip_int64_t;
+#elif defined(LONG_LONG_LIBZIP) && LONG_LONG_LIBZIP == 8
+typedef signed long long zip_int64_t;
+#endif
+#if defined(HAVE_UINT64_T_LIBZIP)
+typedef uint64_t zip_uint64_t;
+#elif defined(HAVE___INT64_LIBZIP)
+typedef unsigned __int64 zip_uint64_t;
+#elif defined(LONG_LIBZIP) && LONG_LONG_LIBZIP == 8
+typedef unsigned long zip_uint64_t;
+#elif defined(LONG_LONG_LIBZIP) && LONG_LONG_LIBZIP == 8
+typedef unsigned long long zip_uint64_t;
+#endif
+
+#define ZIP_INT8_MIN -0x80
+#define ZIP_INT8_MAX 0x7f
+#define ZIP_UINT8_MAX 0xff
+
+#define ZIP_INT16_MIN -0x8000
+#define ZIP_INT16_MAX 0x7fff
+#define ZIP_UINT16_MAX 0xffff
+
+#define ZIP_INT32_MIN -0x80000000L
+#define ZIP_INT32_MAX 0x7fffffffL
+#define ZIP_UINT32_MAX 0xffffffffLU
+
+#define ZIP_INT64_MIN (-ZIP_INT64_MAX-1LL)
+#define ZIP_INT64_MAX 0x7fffffffffffffffLL
+#define ZIP_UINT64_MAX 0xffffffffffffffffULL
+
+#endif /* zipconf.h */
diff --git a/packages/libzip.1.1.2.7/build/native/include/zipint.h b/packages/libzip.1.1.2.7/build/native/include/zipint.h
new file mode 100644
index 0000000..40f75c4
--- /dev/null
+++ b/packages/libzip.1.1.2.7/build/native/include/zipint.h
@@ -0,0 +1,583 @@
+#ifndef _HAD_ZIPINT_H
+#define _HAD_ZIPINT_H
+
+/*
+ zipint.h -- internal declarations.
+ Copyright (C) 1999-2016 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* to have *_MAX definitions for all types when compiling with g++ */
+#define __STDC_LIMIT_MACROS
+
+#include
+
+#ifdef _WIN32
+#define ZIP_EXTERN __declspec(dllexport)
+/* for dup(), close(), etc. */
+#include
+#endif
+
+#ifndef _ZIP_COMPILING_DEPRECATED
+#define ZIP_DISABLE_DEPRECATED
+#endif
+
+#include "zip.h"
+
+#ifdef HAVE_STDBOOL_H
+#include
+#else
+typedef char bool;
+#define true 1
+#define false 0
+#endif
+
+#include
+
+/* at least MinGW does not provide EOPNOTSUPP, see
+ * http://sourceforge.net/p/mingw/bugs/263/
+ */
+#ifndef EOPNOTSUPP
+#define EOPNOTSUPP EINVAL
+#endif
+
+/* at least MinGW does not provide EOVERFLOW, see
+ * http://sourceforge.net/p/mingw/bugs/242/
+ */
+#ifndef EOVERFLOW
+#define EOVERFLOW EFBIG
+#endif
+
+#ifdef _WIN32
+#if defined(HAVE__CLOSE)
+#define close _close
+#endif
+#if defined(HAVE__DUP)
+#define dup _dup
+#endif
+/* crashes reported when using fdopen instead of _fdopen on Windows/Visual Studio 10/Win64 */
+#if defined(HAVE__FDOPEN)
+#define fdopen _fdopen
+#endif
+#if !defined(HAVE_FILENO) && defined(HAVE__FILENO)
+#define fileno _fileno
+#endif
+/* Windows' open() doesn't understand Unix permissions */
+#if defined(HAVE__OPEN)
+#define open(a, b, c) _open((a), (b))
+#endif
+#if defined(HAVE__SNPRINTF)
+#define snprintf _snprintf
+#endif
+#if defined(HAVE__STRDUP)
+#if !defined(HAVE_STRDUP) || defined(_WIN32)
+#undef strdup
+#define strdup _strdup
+#endif
+#endif
+#if !defined(HAVE__SETMODE) && defined(HAVE_SETMODE)
+#define _setmode setmode
+#endif
+#endif
+
+#ifndef HAVE_FSEEKO
+#define fseeko(s, o, w) (fseek((s), (long int)(o), (w)))
+#endif
+
+#ifndef HAVE_FTELLO
+#define ftello(s) ((long)ftell((s)))
+#endif
+
+#ifndef HAVE_MKSTEMP
+int _zip_mkstemp(char *);
+#define mkstemp _zip_mkstemp
+#endif
+
+#if !defined(HAVE_STRCASECMP)
+#if defined(HAVE__STRICMP)
+#define strcasecmp _stricmp
+#elif defined(HAVE_STRICMP)
+#define strcasecmp stricmp
+#endif
+#endif
+
+#if SIZEOF_OFF_T == 8
+#define ZIP_OFF_MAX ZIP_INT64_MAX
+#define ZIP_OFF_MIN ZIP_INT64_MIN
+#elif SIZEOF_OFF_T == 4
+#define ZIP_OFF_MAX ZIP_INT32_MAX
+#define ZIP_OFF_MIN ZIP_INT32_MIN
+#elif SIZEOF_OFF_T == 2
+#define ZIP_OFF_MAX ZIP_INT16_MAX
+#define ZIP_OFF_MIN ZIP_INT16_MIN
+#else
+#error unsupported size of off_t
+#endif
+
+#if defined(HAVE_FTELLO) && defined(HAVE_FSEEKO)
+#define ZIP_FSEEK_MAX ZIP_OFF_MAX
+#define ZIP_FSEEK_MIN ZIP_OFF_MIN
+#else
+#include
+#define ZIP_FSEEK_MAX LONG_MAX
+#define ZIP_FSEEK_MIN LONG_MIN
+#endif
+
+#ifndef SIZE_MAX
+#if SIZEOF_SIZE_T == 8
+#define SIZE_MAX ZIP_INT64_MAX
+#elif SIZEOF_SIZE_T == 4
+#define SIZE_MAX ZIP_INT32_MAX
+#elif SIZEOF_SIZE_T == 2
+#define SIZE_MAX ZIP_INT16_MAX
+#else
+#error unsupported size of size_t
+#endif
+#endif
+
+#define CENTRAL_MAGIC "PK\1\2"
+#define LOCAL_MAGIC "PK\3\4"
+#define EOCD_MAGIC "PK\5\6"
+#define DATADES_MAGIC "PK\7\8"
+#define EOCD64LOC_MAGIC "PK\6\7"
+#define EOCD64_MAGIC "PK\6\6"
+#define CDENTRYSIZE 46u
+#define LENTRYSIZE 30
+#define MAXCOMLEN 65536
+#define MAXEXTLEN 65536
+#define EOCDLEN 22
+#define EOCD64LOCLEN 20
+#define EOCD64LEN 56
+#define CDBUFSIZE (MAXCOMLEN+EOCDLEN+EOCD64LOCLEN)
+#define BUFSIZE 8192
+#define EFZIP64SIZE 28
+
+#define ZIP_CM_REPLACED_DEFAULT (-2)
+
+#define ZIP_CM_IS_DEFAULT(x) ((x) == ZIP_CM_DEFAULT || (x) == ZIP_CM_REPLACED_DEFAULT)
+
+#define ZIP_EF_UTF_8_COMMENT 0x6375
+#define ZIP_EF_UTF_8_NAME 0x7075
+#define ZIP_EF_ZIP64 0x0001
+
+#define ZIP_EF_IS_INTERNAL(id) ((id) == ZIP_EF_UTF_8_COMMENT || (id) == ZIP_EF_UTF_8_NAME || (id) == ZIP_EF_ZIP64)
+
+/* according to unzip-6.0's zipinfo.c, this corresponds to a regular file with rw permissions for everyone */
+#define ZIP_EXT_ATTRIB_DEFAULT (0100666u<<16)
+/* according to unzip-6.0's zipinfo.c, this corresponds to a directory with rwx permissions for everyone */
+#define ZIP_EXT_ATTRIB_DEFAULT_DIR (0040777u<<16)
+
+
+#define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b))
+#define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b))
+
+/* This section contains API that won't materialize like this. It's
+ placed in the internal section, pending cleanup. */
+
+/* flags for compression and encryption sources */
+
+#define ZIP_CODEC_DECODE 0 /* decompress/decrypt (encode flag not set) */
+#define ZIP_CODEC_ENCODE 1 /* compress/encrypt */
+
+
+typedef zip_source_t *(*zip_compression_implementation)(zip_t *, zip_source_t *, zip_int32_t, int);
+typedef zip_source_t *(*zip_encryption_implementation)(zip_t *, zip_source_t *, zip_uint16_t, int, const char *);
+
+zip_compression_implementation _zip_get_compression_implementation(zip_int32_t);
+zip_encryption_implementation _zip_get_encryption_implementation(zip_uint16_t);
+
+
+
+/* This API is not final yet, but we need it internally, so it's private for now. */
+
+const zip_uint8_t *zip_get_extra_field_by_id(zip_t *, int, int, zip_uint16_t, int, zip_uint16_t *);
+
+/* This section contains API that is of limited use until support for
+ user-supplied compression/encryption implementation is finished.
+ Thus we will keep it private for now. */
+
+typedef zip_int64_t (*zip_source_layered_callback)(zip_source_t *, void *, void *, zip_uint64_t, enum zip_source_cmd);
+zip_source_t *zip_source_crc(zip_t *, zip_source_t *, int);
+zip_source_t *zip_source_deflate(zip_t *, zip_source_t *, zip_int32_t, int);
+zip_source_t *zip_source_layered(zip_t *, zip_source_t *, zip_source_layered_callback, void *);
+zip_source_t *zip_source_layered_create(zip_source_t *src, zip_source_layered_callback cb, void *ud, zip_error_t *error);
+zip_source_t *zip_source_pkware(zip_t *, zip_source_t *, zip_uint16_t, int, const char *);
+int zip_source_remove(zip_source_t *);
+zip_int64_t zip_source_supports(zip_source_t *src);
+zip_source_t *zip_source_window(zip_t *, zip_source_t *, zip_uint64_t, zip_uint64_t);
+
+
+/* error source for layered sources */
+
+enum zip_les { ZIP_LES_NONE, ZIP_LES_UPPER, ZIP_LES_LOWER, ZIP_LES_INVAL };
+
+/* directory entry: general purpose bit flags */
+
+#define ZIP_GPBF_ENCRYPTED 0x0001 /* is encrypted */
+#define ZIP_GPBF_DATA_DESCRIPTOR 0x0008 /* crc/size after file data */
+#define ZIP_GPBF_STRONG_ENCRYPTION 0x0040 /* uses strong encryption */
+#define ZIP_GPBF_ENCODING_UTF_8 0x0800 /* file name encoding is UTF-8 */
+
+
+/* extra fields */
+#define ZIP_EF_LOCAL ZIP_FL_LOCAL /* include in local header */
+#define ZIP_EF_CENTRAL ZIP_FL_CENTRAL /* include in central directory */
+#define ZIP_EF_BOTH (ZIP_EF_LOCAL|ZIP_EF_CENTRAL) /* include in both */
+
+#define ZIP_FL_FORCE_ZIP64 1024 /* force zip64 extra field (_zip_dirent_write) */
+
+#define ZIP_FL_ENCODING_ALL (ZIP_FL_ENC_GUESS|ZIP_FL_ENC_CP437|ZIP_FL_ENC_UTF_8)
+
+
+/* encoding type */
+enum zip_encoding_type {
+ ZIP_ENCODING_UNKNOWN, /* not yet analyzed */
+ ZIP_ENCODING_ASCII, /* plain ASCII */
+ ZIP_ENCODING_UTF8_KNOWN, /* is UTF-8 */
+ ZIP_ENCODING_UTF8_GUESSED, /* possibly UTF-8 */
+ ZIP_ENCODING_CP437, /* Code Page 437 */
+ ZIP_ENCODING_ERROR /* should be UTF-8 but isn't */
+};
+
+typedef enum zip_encoding_type zip_encoding_type_t;
+
+#ifndef ZIP_HASH_TABLE_SIZE
+#define ZIP_HASH_TABLE_SIZE 8192
+#endif
+
+struct zip_hash;
+
+typedef struct zip_cdir zip_cdir_t;
+typedef struct zip_dirent zip_dirent_t;
+typedef struct zip_entry zip_entry_t;
+typedef struct zip_extra_field zip_extra_field_t;
+typedef struct zip_string zip_string_t;
+typedef struct zip_buffer zip_buffer_t;
+typedef struct zip_hash zip_hash_t;
+
+/* zip archive, part of API */
+
+struct zip {
+ zip_source_t *src; /* data source for archive */
+ unsigned int open_flags; /* flags passed to zip_open */
+ zip_error_t error; /* error information */
+
+ unsigned int flags; /* archive global flags */
+ unsigned int ch_flags; /* changed archive global flags */
+
+ char *default_password; /* password used when no other supplied */
+
+ zip_string_t *comment_orig; /* archive comment */
+ zip_string_t *comment_changes; /* changed archive comment */
+ bool comment_changed; /* whether archive comment was changed */
+
+ zip_uint64_t nentry; /* number of entries */
+ zip_uint64_t nentry_alloc; /* number of entries allocated */
+ zip_entry_t *entry; /* entries */
+
+ unsigned int nopen_source; /* number of open sources using archive */
+ unsigned int nopen_source_alloc; /* number of sources allocated */
+ zip_source_t **open_source; /* open sources using archive */
+
+ zip_hash_t *names; /* hash table for name lookup */
+
+ char *tempdir; /* custom temp dir (needed e.g. for OS X sandboxing) */
+};
+
+/* file in zip archive, part of API */
+
+struct zip_file {
+ zip_t *za; /* zip archive containing this file */
+ zip_error_t error; /* error information */
+ bool eof;
+ zip_source_t *src; /* data source */
+};
+
+/* zip archive directory entry (central or local) */
+
+#define ZIP_DIRENT_COMP_METHOD 0x0001u
+#define ZIP_DIRENT_FILENAME 0x0002u
+#define ZIP_DIRENT_COMMENT 0x0004u
+#define ZIP_DIRENT_EXTRA_FIELD 0x0008u
+#define ZIP_DIRENT_ATTRIBUTES 0x0010u
+#define ZIP_DIRENT_LAST_MOD 0x0020u
+#define ZIP_DIRENT_ALL 0xffffu
+
+struct zip_dirent {
+ zip_uint32_t changed;
+ bool local_extra_fields_read; /* whether we already read in local header extra fields */
+ bool cloned; /* whether this instance is cloned, and thus shares non-changed strings */
+
+ zip_uint16_t version_madeby; /* (c) version of creator */
+ zip_uint16_t version_needed; /* (cl) version needed to extract */
+ zip_uint16_t bitflags; /* (cl) general purpose bit flag */
+ zip_int32_t comp_method; /* (cl) compression method used (uint16 and ZIP_CM_DEFAULT (-1)) */
+ time_t last_mod; /* (cl) time of last modification */
+ zip_uint32_t crc; /* (cl) CRC-32 of uncompressed data */
+ zip_uint64_t comp_size; /* (cl) size of compressed data */
+ zip_uint64_t uncomp_size; /* (cl) size of uncompressed data */
+ zip_string_t *filename; /* (cl) file name (NUL-terminated) */
+ zip_extra_field_t *extra_fields; /* (cl) extra fields, parsed */
+ zip_string_t *comment; /* (c) file comment */
+ zip_uint32_t disk_number; /* (c) disk number start */
+ zip_uint16_t int_attrib; /* (c) internal file attributes */
+ zip_uint32_t ext_attrib; /* (c) external file attributes */
+ zip_uint64_t offset; /* (c) offset of local header */
+};
+
+/* zip archive central directory */
+
+struct zip_cdir {
+ zip_entry_t *entry; /* directory entries */
+ zip_uint64_t nentry; /* number of entries */
+ zip_uint64_t nentry_alloc; /* number of entries allocated */
+
+ zip_uint64_t size; /* size of central directory */
+ zip_uint64_t offset; /* offset of central directory in file */
+ zip_string_t *comment; /* zip archive comment */
+};
+
+struct zip_extra_field {
+ zip_extra_field_t *next;
+ zip_flags_t flags; /* in local/central header */
+ zip_uint16_t id; /* header id */
+ zip_uint16_t size; /* data size */
+ zip_uint8_t *data;
+};
+
+enum zip_source_write_state {
+ ZIP_SOURCE_WRITE_CLOSED, /* write is not in progress */
+ ZIP_SOURCE_WRITE_OPEN, /* write is in progress */
+ ZIP_SOURCE_WRITE_FAILED, /* commit failed, only rollback allowed */
+ ZIP_SOURCE_WRITE_REMOVED /* file was removed */
+};
+typedef enum zip_source_write_state zip_source_write_state_t;
+
+struct zip_source {
+ zip_source_t *src;
+ union {
+ zip_source_callback f;
+ zip_source_layered_callback l;
+ } cb;
+ void *ud;
+ zip_error_t error;
+ zip_int64_t supports; /* supported commands */
+ unsigned int open_count; /* number of times source was opened (directly or as lower layer) */
+ zip_source_write_state_t write_state; /* whether source is open for writing */
+ bool source_closed; /* set if source archive is closed */
+ zip_t *source_archive; /* zip archive we're reading from, NULL if not from archive */
+ unsigned int refcount;
+};
+
+#define ZIP_SOURCE_IS_OPEN_READING(src) ((src)->open_count > 0)
+#define ZIP_SOURCE_IS_OPEN_WRITING(src) ((src)->write_state == ZIP_SOURCE_WRITE_OPEN)
+#define ZIP_SOURCE_IS_LAYERED(src) ((src)->src != NULL)
+
+/* entry in zip archive directory */
+
+struct zip_entry {
+ zip_dirent_t *orig;
+ zip_dirent_t *changes;
+ zip_source_t *source;
+ bool deleted;
+};
+
+
+/* file or archive comment, or filename */
+
+struct zip_string {
+ zip_uint8_t *raw; /* raw string */
+ zip_uint16_t length; /* length of raw string */
+ enum zip_encoding_type encoding; /* autorecognized encoding */
+ zip_uint8_t *converted; /* autoconverted string */
+ zip_uint32_t converted_length; /* length of converted */
+};
+
+
+/* bounds checked access to memory buffer */
+
+struct zip_buffer {
+ bool ok;
+ bool free_data;
+
+ zip_uint8_t *data;
+ zip_uint64_t size;
+ zip_uint64_t offset;
+};
+
+/* which files to write in which order */
+
+struct zip_filelist {
+ zip_uint64_t idx;
+/* TODO const char *name; */
+};
+
+typedef struct zip_filelist zip_filelist_t;
+
+
+extern const char * const _zip_err_str[];
+extern const int _zip_nerr_str;
+extern const int _zip_err_type[];
+
+
+#define ZIP_ENTRY_CHANGED(e, f) ((e)->changes && ((e)->changes->changed & (f)))
+
+#define ZIP_ENTRY_DATA_CHANGED(x) ((x)->source != NULL)
+
+#define ZIP_IS_RDONLY(za) ((za)->ch_flags & ZIP_AFL_RDONLY)
+
+
+zip_int64_t _zip_add_entry(zip_t *);
+
+zip_uint8_t *_zip_buffer_data(zip_buffer_t *buffer);
+bool _zip_buffer_eof(zip_buffer_t *buffer);
+void _zip_buffer_free(zip_buffer_t *buffer);
+zip_uint8_t *_zip_buffer_get(zip_buffer_t *buffer, zip_uint64_t length);
+zip_uint16_t _zip_buffer_get_16(zip_buffer_t *buffer);
+zip_uint32_t _zip_buffer_get_32(zip_buffer_t *buffer);
+zip_uint64_t _zip_buffer_get_64(zip_buffer_t *buffer);
+zip_uint8_t _zip_buffer_get_8(zip_buffer_t *buffer);
+zip_uint64_t _zip_buffer_left(zip_buffer_t *buffer);
+zip_buffer_t *_zip_buffer_new(zip_uint8_t *data, zip_uint64_t size);
+zip_buffer_t *_zip_buffer_new_from_source(zip_source_t *src, zip_uint64_t size, zip_uint8_t *buf, zip_error_t *error);
+zip_uint64_t _zip_buffer_offset(zip_buffer_t *buffer);
+bool _zip_buffer_ok(zip_buffer_t *buffer);
+int _zip_buffer_put(zip_buffer_t *buffer, const void *src, size_t length);
+int _zip_buffer_put_16(zip_buffer_t *buffer, zip_uint16_t i);
+int _zip_buffer_put_32(zip_buffer_t *buffer, zip_uint32_t i);
+int _zip_buffer_put_64(zip_buffer_t *buffer, zip_uint64_t i);
+int _zip_buffer_put_8(zip_buffer_t *buffer, zip_uint8_t i);
+int _zip_buffer_skip(zip_buffer_t *buffer, zip_uint64_t length);
+int _zip_buffer_set_offset(zip_buffer_t *buffer, zip_uint64_t offset);
+zip_uint64_t _zip_buffer_size(zip_buffer_t *buffer);
+
+int _zip_cdir_compute_crc(zip_t *, uLong *);
+void _zip_cdir_free(zip_cdir_t *);
+zip_cdir_t *_zip_cdir_new(zip_uint64_t, zip_error_t *);
+zip_int64_t _zip_cdir_write(zip_t *za, const zip_filelist_t *filelist, zip_uint64_t survivors);
+void _zip_deregister_source(zip_t *za, zip_source_t *src);
+
+zip_dirent_t *_zip_dirent_clone(const zip_dirent_t *);
+void _zip_dirent_free(zip_dirent_t *);
+void _zip_dirent_finalize(zip_dirent_t *);
+void _zip_dirent_init(zip_dirent_t *);
+bool _zip_dirent_needs_zip64(const zip_dirent_t *, zip_flags_t);
+zip_dirent_t *_zip_dirent_new(void);
+zip_int64_t _zip_dirent_read(zip_dirent_t *zde, zip_source_t *src, zip_buffer_t *buffer, bool local, zip_error_t *error);
+zip_int32_t _zip_dirent_size(zip_source_t *src, zip_uint16_t, zip_error_t *);
+int _zip_dirent_write(zip_t *za, zip_dirent_t *dirent, zip_flags_t flags);
+
+zip_extra_field_t *_zip_ef_clone(const zip_extra_field_t *, zip_error_t *);
+zip_extra_field_t *_zip_ef_delete_by_id(zip_extra_field_t *, zip_uint16_t, zip_uint16_t, zip_flags_t);
+void _zip_ef_free(zip_extra_field_t *);
+const zip_uint8_t *_zip_ef_get_by_id(const zip_extra_field_t *, zip_uint16_t *, zip_uint16_t, zip_uint16_t, zip_flags_t, zip_error_t *);
+zip_extra_field_t *_zip_ef_merge(zip_extra_field_t *, zip_extra_field_t *);
+zip_extra_field_t *_zip_ef_new(zip_uint16_t, zip_uint16_t, const zip_uint8_t *, zip_flags_t);
+bool _zip_ef_parse(const zip_uint8_t *, zip_uint16_t, zip_flags_t, zip_extra_field_t **, zip_error_t *);
+zip_extra_field_t *_zip_ef_remove_internal(zip_extra_field_t *);
+zip_uint16_t _zip_ef_size(const zip_extra_field_t *, zip_flags_t);
+int _zip_ef_write(zip_t *za, const zip_extra_field_t *ef, zip_flags_t flags);
+
+void _zip_entry_finalize(zip_entry_t *);
+void _zip_entry_init(zip_entry_t *);
+
+void _zip_error_clear(zip_error_t *);
+void _zip_error_get(const zip_error_t *, int *, int *);
+
+void _zip_error_copy(zip_error_t *dst, const zip_error_t *src);
+void _zip_error_set_from_source(zip_error_t *, zip_source_t *);
+
+const zip_uint8_t *_zip_extract_extra_field_by_id(zip_error_t *, zip_uint16_t, int, const zip_uint8_t *, zip_uint16_t, zip_uint16_t *);
+
+int _zip_file_extra_field_prepare_for_change(zip_t *, zip_uint64_t);
+int _zip_file_fillbuf(void *, size_t, zip_file_t *);
+zip_uint64_t _zip_file_get_offset(const zip_t *, zip_uint64_t, zip_error_t *);
+
+int _zip_filerange_crc(zip_source_t *src, zip_uint64_t offset, zip_uint64_t length, uLong *crcp, zip_error_t *error);
+
+zip_dirent_t *_zip_get_dirent(zip_t *, zip_uint64_t, zip_flags_t, zip_error_t *);
+
+enum zip_encoding_type _zip_guess_encoding(zip_string_t *, enum zip_encoding_type);
+zip_uint8_t *_zip_cp437_to_utf8(const zip_uint8_t * const, zip_uint32_t, zip_uint32_t *, zip_error_t *);
+
+bool _zip_hash_add(zip_hash_t *hash, const zip_uint8_t *name, zip_uint64_t index, zip_flags_t flags, zip_error_t *error);
+bool _zip_hash_delete(zip_hash_t *hash, const zip_uint8_t *key, zip_error_t *error);
+void _zip_hash_free(zip_hash_t *hash);
+zip_int64_t _zip_hash_lookup(zip_hash_t *hash, const zip_uint8_t *name, zip_flags_t flags, zip_error_t *error);
+zip_hash_t *_zip_hash_new(zip_uint16_t hash_size, zip_error_t *error);
+void _zip_hash_revert(zip_hash_t *hash);
+
+zip_t *_zip_open(zip_source_t *, unsigned int, zip_error_t *);
+
+int _zip_read(zip_source_t *src, zip_uint8_t *data, zip_uint64_t length, zip_error_t *error);
+int _zip_read_at_offset(zip_source_t *src, zip_uint64_t offset, unsigned char *b, size_t length, zip_error_t *error);
+zip_uint8_t *_zip_read_data(zip_buffer_t *buffer, zip_source_t *src, size_t length, bool nulp, zip_error_t *error);
+int _zip_read_local_ef(zip_t *, zip_uint64_t);
+zip_string_t *_zip_read_string(zip_buffer_t *buffer, zip_source_t *src, zip_uint16_t lenght, bool nulp, zip_error_t *error);
+int _zip_register_source(zip_t *za, zip_source_t *src);
+
+void _zip_set_open_error(int *zep, const zip_error_t *err, int ze);
+
+zip_int64_t _zip_source_call(zip_source_t *src, void *data, zip_uint64_t length, zip_source_cmd_t command);
+zip_source_t *_zip_source_file_or_p(const char *, FILE *, zip_uint64_t, zip_int64_t, const zip_stat_t *, zip_error_t *error);
+void _zip_source_invalidate(zip_source_t *src);
+zip_source_t *_zip_source_new(zip_error_t *error);
+int _zip_source_set_source_archive(zip_source_t *, zip_t *);
+zip_source_t *_zip_source_window_new(zip_source_t *src, zip_uint64_t start, zip_uint64_t length, zip_stat_t *st, zip_error_t *error);
+zip_source_t *_zip_source_zip_new(zip_t *, zip_t *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_uint64_t, const char *);
+
+int _zip_stat_merge(zip_stat_t *dst, const zip_stat_t *src, zip_error_t *error);
+int _zip_string_equal(const zip_string_t *, const zip_string_t *);
+void _zip_string_free(zip_string_t *);
+zip_uint32_t _zip_string_crc32(const zip_string_t *);
+const zip_uint8_t *_zip_string_get(zip_string_t *, zip_uint32_t *, zip_flags_t, zip_error_t *);
+zip_uint16_t _zip_string_length(const zip_string_t *);
+zip_string_t *_zip_string_new(const zip_uint8_t *, zip_uint16_t, zip_flags_t, zip_error_t *);
+int _zip_string_write(zip_t *za, const zip_string_t *string);
+
+int _zip_changed(const zip_t *, zip_uint64_t *);
+const char *_zip_get_name(zip_t *, zip_uint64_t, zip_flags_t, zip_error_t *);
+int _zip_local_header_read(zip_t *, int);
+void *_zip_memdup(const void *, size_t, zip_error_t *);
+zip_int64_t _zip_name_locate(zip_t *, const char *, zip_flags_t, zip_error_t *);
+zip_t *_zip_new(zip_error_t *);
+
+zip_int64_t _zip_file_replace(zip_t *, zip_uint64_t, const char *, zip_source_t *, zip_flags_t);
+int _zip_set_name(zip_t *, zip_uint64_t, const char *, zip_flags_t);
+void _zip_u2d_time(time_t, zip_uint16_t *, zip_uint16_t *);
+int _zip_unchange(zip_t *, zip_uint64_t, int);
+void _zip_unchange_data(zip_entry_t *);
+int _zip_write(zip_t *za, const void *data, zip_uint64_t length);
+
+#endif /* zipint.h */
diff --git a/packages/libzip.1.1.2.7/build/native/include/zipwin32.h b/packages/libzip.1.1.2.7/build/native/include/zipwin32.h
new file mode 100644
index 0000000..60f8d0c
--- /dev/null
+++ b/packages/libzip.1.1.2.7/build/native/include/zipwin32.h
@@ -0,0 +1,82 @@
+#ifndef _HAD_ZIPWIN32_H
+#define _HAD_ZIPWIN32_H
+
+/*
+ zipwin32.h -- internal declarations for Windows.
+ Copyright (C) 1999-2015 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* 0x0501 => Windows XP; needs to be at least this value because of GetFileSizeEx */
+#define _WIN32_WINNT 0x0501
+#include
+
+/* context for Win32 source */
+
+struct _zip_source_win32_file_ops;
+
+struct _zip_source_win32_read_file {
+ zip_error_t error; /* last error information */
+ zip_int64_t supports;
+
+ /* operations */
+ struct _zip_source_win32_file_ops *ops;
+
+ /* reading */
+ void *fname; /* name of file to read from - ANSI (char *) or Unicode (wchar_t *) */
+ void *h; /* HANDLE for file to read from */
+ int closep; /* whether to close f on ZIP_CMD_FREE */
+ struct zip_stat st; /* stat information passed in */
+ zip_uint64_t start; /* start offset of data to read */
+ zip_uint64_t end; /* end offset of data to read, 0 for up to EOF */
+ zip_uint64_t current; /* current offset */
+
+ /* writing */
+ void *tmpname; /* name of temp file - ANSI (char *) or Unicode (wchar_t *) */
+ void *hout; /* HANDLE for output file */
+};
+
+typedef struct _zip_source_win32_read_file _zip_source_win32_read_file_t;
+
+/* internal operations for Win32 source */
+
+struct _zip_source_win32_file_ops {
+ void *(*op_strdup)(const void *);
+ void *(*op_open)(_zip_source_win32_read_file_t *);
+ void *(*op_create_temp)(_zip_source_win32_read_file_t *, void **, zip_uint32_t, PSECURITY_ATTRIBUTES);
+ int (*op_rename_temp)(_zip_source_win32_read_file_t *);
+ int (*op_remove)(const void *);
+};
+
+typedef struct _zip_source_win32_file_ops _zip_source_win32_file_ops_t;
+
+zip_source_t *_zip_source_win32_handle_or_name(const void *, void *, zip_uint64_t, zip_int64_t, int, const zip_stat_t *, _zip_source_win32_file_ops_t *, zip_error_t *);
+
+#endif /* zipwin32.h */
diff --git a/packages/libzip.1.1.2.7/build/native/libzip.targets b/packages/libzip.1.1.2.7/build/native/libzip.targets
new file mode 100644
index 0000000..d41173c
--- /dev/null
+++ b/packages/libzip.1.1.2.7/build/native/libzip.targets
@@ -0,0 +1,78 @@
+
+
+
+ dynamic
+ cdecl
+
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib/Win32\v140\Debug\zip.lib;%(AdditionalDependencies)
+
+
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib/Win32\v140\Release\zip.lib;%(AdditionalDependencies)
+
+
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib/x64\v140\Debug\zip.lib;%(AdditionalDependencies)
+
+
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib/x64\v140\Release\zip.lib;%(AdditionalDependencies)
+
+
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/include/;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/include/;%(AdditionalIncludeDirectories)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Result = ((Text ?? "").Split(';').Contains(Library) ) ? Value : String.Empty;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/libzip.1.1.2.7/build/publisher-info.txt b/packages/libzip.1.1.2.7/build/publisher-info.txt
new file mode 100644
index 0000000..a27f4eb
--- /dev/null
+++ b/packages/libzip.1.1.2.7/build/publisher-info.txt
@@ -0,0 +1,2 @@
+Package Created: 4/19/2016 3:24:53 PM
+CoApp tools version: 1.23.521.0
diff --git a/packages/libzip.1.1.2.7/libzip.1.1.2.7.nupkg b/packages/libzip.1.1.2.7/libzip.1.1.2.7.nupkg
new file mode 100644
index 0000000..939b25c
Binary files /dev/null and b/packages/libzip.1.1.2.7/libzip.1.1.2.7.nupkg differ
diff --git a/packages/libzip.redist.1.1.2.7/.signature.p7s b/packages/libzip.redist.1.1.2.7/.signature.p7s
new file mode 100644
index 0000000..f967a94
Binary files /dev/null and b/packages/libzip.redist.1.1.2.7/.signature.p7s differ
diff --git a/packages/libzip.redist.1.1.2.7/build/configurations.autopkg b/packages/libzip.redist.1.1.2.7/build/configurations.autopkg
new file mode 100644
index 0000000..72d698d
--- /dev/null
+++ b/packages/libzip.redist.1.1.2.7/build/configurations.autopkg
@@ -0,0 +1,16 @@
+configurations {
+ Toolset {
+ key : "PlatformToolset";
+ choices : { v140 };
+ };
+ Platform {
+ key : "Platform";
+ choices : { Win32, x64 };
+ Win32.aliases : { x86, win32, ia32, 386 };
+ x64.aliases : { x64, amd64, em64t, intel64, x86-64, x86_64 };
+ };
+ Configuration {
+ key : "Configuration";
+ choices : { Release, Debug };
+ };
+};
diff --git a/packages/libzip.redist.1.1.2.7/build/native/default-propertiesui.xml b/packages/libzip.redist.1.1.2.7/build/native/default-propertiesui.xml
new file mode 100644
index 0000000..8556c8e
--- /dev/null
+++ b/packages/libzip.redist.1.1.2.7/build/native/default-propertiesui.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/libzip.redist.1.1.2.7/build/native/libzip.redist.targets b/packages/libzip.redist.1.1.2.7/build/native/libzip.redist.targets
new file mode 100644
index 0000000..808bed5
--- /dev/null
+++ b/packages/libzip.redist.1.1.2.7/build/native/libzip.redist.targets
@@ -0,0 +1,97 @@
+
+
+
+ dynamic
+ cdecl
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Result = ((Text ?? "").Split(';').Contains(Library) ) ? Value : String.Empty;
+
+
+
\ No newline at end of file
diff --git a/packages/libzip.redist.1.1.2.7/build/publisher-info.txt b/packages/libzip.redist.1.1.2.7/build/publisher-info.txt
new file mode 100644
index 0000000..22fdc79
--- /dev/null
+++ b/packages/libzip.redist.1.1.2.7/build/publisher-info.txt
@@ -0,0 +1,2 @@
+Package Created: 4/19/2016 3:24:57 PM
+CoApp tools version: 1.23.521.0
diff --git a/packages/libzip.redist.1.1.2.7/libzip.redist.1.1.2.7.nupkg b/packages/libzip.redist.1.1.2.7/libzip.redist.1.1.2.7.nupkg
new file mode 100644
index 0000000..e45c376
Binary files /dev/null and b/packages/libzip.redist.1.1.2.7/libzip.redist.1.1.2.7.nupkg differ
diff --git a/patchinfo.txt b/patchinfo.txt
new file mode 100644
index 0000000..601172e
--- /dev/null
+++ b/patchinfo.txt
@@ -0,0 +1,23 @@
+[Version]
+Latest=3.80.0005
+NewLaunch=1.0.7
+
+[Patch_0]
+VersionFrom=3.80.0001
+VersionTo=3.80.0002
+URL_1=http://45.119.212.250/tlbb/update/Version1.zip
+
+[Patch_1]
+VersionFrom=3.80.0002
+VersionTo=3.80.0003
+URL_1=http://45.119.212.250/tlbb/update/Version2.zip
+
+[Patch_2]
+VersionFrom=3.80.0003
+VersionTo=3.80.0004
+URL_1=http://45.119.212.250/tlbb/update/Version3.zip
+
+[Patch_3]
+VersionFrom=3.80.0004
+VersionTo=3.80.0005
+URL_1=http://45.119.212.250/tlbb/update/Version5.zip
diff --git a/x64/Debug/LaunchHome.ilk b/x64/Debug/LaunchHome.ilk
index 3bc5571..9453978 100644
Binary files a/x64/Debug/LaunchHome.ilk and b/x64/Debug/LaunchHome.ilk differ
diff --git a/x64/Debug/LaunchHome.pdb b/x64/Debug/LaunchHome.pdb
index a233dca..b91b92a 100644
Binary files a/x64/Debug/LaunchHome.pdb and b/x64/Debug/LaunchHome.pdb differ
diff --git a/x64/Release/LaunchHome.iobj b/x64/Release/LaunchHome.iobj
index 61ec3e8..379ecb5 100644
Binary files a/x64/Release/LaunchHome.iobj and b/x64/Release/LaunchHome.iobj differ
diff --git a/x64/Release/LaunchHome.ipdb b/x64/Release/LaunchHome.ipdb
index 66f23a7..f1094d6 100644
Binary files a/x64/Release/LaunchHome.ipdb and b/x64/Release/LaunchHome.ipdb differ
diff --git a/x64/Release/LaunchHome.pdb b/x64/Release/LaunchHome.pdb
index 9ef869c..77d75d4 100644
Binary files a/x64/Release/LaunchHome.pdb and b/x64/Release/LaunchHome.pdb differ