summaryrefslogtreecommitdiffstats
path: root/src/libs/7zip/unix/CPP/Common/MyWindows.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/7zip/unix/CPP/Common/MyWindows.cpp')
-rw-r--r--src/libs/7zip/unix/CPP/Common/MyWindows.cpp126
1 files changed, 0 insertions, 126 deletions
diff --git a/src/libs/7zip/unix/CPP/Common/MyWindows.cpp b/src/libs/7zip/unix/CPP/Common/MyWindows.cpp
deleted file mode 100644
index 9acddc974..000000000
--- a/src/libs/7zip/unix/CPP/Common/MyWindows.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-// MyWindows.cpp
-
-#include "StdAfx.h"
-
-#ifndef _WIN32
-
-#include "MyWindows.h"
-#include "MyTypes.h"
-#include <stdlib.h> /* FIXED <malloc.h> */
-
-static inline void *AllocateForBSTR(size_t cb) { return ::malloc(cb); }
-static inline void FreeForBSTR(void *pv) { ::free(pv);}
-
-static UINT MyStringLen(const wchar_t *s)
-{
- UINT i;
- for (i = 0; s[i] != '\0'; i++);
- return i;
-}
-
-BSTR SysAllocStringByteLen(LPCSTR psz, UINT len)
-{
- // FIXED int realLen = len + sizeof(UINT) + 3;
- const int LEN_ADDON = sizeof(wchar_t) - 1;
- int realLen = len + sizeof(UINT) + sizeof(wchar_t) + LEN_ADDON;
- void *p = AllocateForBSTR(realLen);
- if (p == 0)
- return 0;
- *(UINT *)p = len;
- // "void *" instead of "BSTR" to avoid unaligned copy of "wchar_t" because of optimizer on Solaris
- void * bstr = (void *)((UINT *)p + 1);
- if (psz) memmove(bstr, psz, len); // psz does not always have "wchar_t" alignment.
- void *pb = (void *)(((Byte *)bstr) + len);
- memset(pb,0,sizeof(wchar_t) + LEN_ADDON);
- return (BSTR)bstr;
-}
-
-BSTR WINAPI SysAllocStringLen(const OLECHAR *sz, unsigned int numChars) // FIXME - code
-{
- UINT len = (numChars + 1) * sizeof(OLECHAR);
- void *p = AllocateForBSTR(len + sizeof(UINT));
- if (p == 0)
- return 0;
- memset(p,0,len + sizeof(UINT));
- *(UINT *)p = numChars * sizeof(OLECHAR); // FIXED
- void * bstr = (void *)((UINT *)p + 1);
- if (sz) memmove(bstr, sz, numChars * sizeof(OLECHAR)); // sz does not always have "wchar_t" alignment.
-
- return (BSTR)bstr;
-}
-
-
-BSTR SysAllocString(const OLECHAR *sz)
-{
- if (sz == 0)
- return 0;
- UINT strLen = MyStringLen(sz);
- UINT len = (strLen + 1) * sizeof(OLECHAR);
- void *p = AllocateForBSTR(len + sizeof(UINT));
- if (p == 0)
- return 0;
- *(UINT *)p = strLen * sizeof(OLECHAR); // FIXED
- void * bstr = (void *)((UINT *)p + 1);
- memmove(bstr, sz, len); // sz does not always have "wchar_t" alignment.
- return (BSTR)bstr;
-}
-
-void SysFreeString(BSTR bstr)
-{
- if (bstr != 0)
- FreeForBSTR((UINT *)bstr - 1);
-}
-
-UINT SysStringByteLen(BSTR bstr)
-{
- if (bstr == 0)
- return 0;
- return *((UINT *)bstr - 1);
-
-}
-
-UINT SysStringLen(BSTR bstr)
-{
- return SysStringByteLen(bstr) / sizeof(OLECHAR);
-}
-
-HRESULT VariantClear(VARIANTARG *prop)
-{
- if (prop->vt == VT_BSTR)
- SysFreeString(prop->bstrVal);
- prop->vt = VT_EMPTY;
- return S_OK;
-}
-
-HRESULT VariantCopy(VARIANTARG *dest, VARIANTARG *src)
-{
- HRESULT res = ::VariantClear(dest);
- if (res != S_OK)
- return res;
- if (src->vt == VT_BSTR)
- {
- dest->bstrVal = SysAllocStringByteLen((LPCSTR)src->bstrVal,
- SysStringByteLen(src->bstrVal));
- if (dest->bstrVal == 0)
- return E_OUTOFMEMORY;
- dest->vt = VT_BSTR;
- }
- else
- *dest = *src;
- return S_OK;
-}
-
-LONG CompareFileTime(const FILETIME* ft1, const FILETIME* ft2)
-{
- if(ft1->dwHighDateTime < ft2->dwHighDateTime)
- return -1;
- if(ft1->dwHighDateTime > ft2->dwHighDateTime)
- return 1;
- if(ft1->dwLowDateTime < ft2->dwLowDateTime)
- return -1;
- if(ft1->dwLowDateTime > ft2->dwLowDateTime)
- return 1;
- return 0;
-}
-
-#endif