diff options
Diffstat (limited to 'CPP/Common')
-rwxr-xr-x | CPP/Common/C_FileIO.cpp | 5 | ||||
-rwxr-xr-x | CPP/Common/C_FileIO.h | 1 | ||||
-rwxr-xr-x | CPP/Common/CommandLineParser.h | 2 | ||||
-rwxr-xr-x | CPP/Common/ListFileUtils.cpp | 2 | ||||
-rwxr-xr-x | CPP/Common/MyCom.h | 15 | ||||
-rwxr-xr-x | CPP/Common/MyInitGuid.h | 2 | ||||
-rwxr-xr-x | CPP/Common/MyWindows.h | 15 | ||||
-rwxr-xr-x | CPP/Common/Wildcard.cpp | 8 |
8 files changed, 38 insertions, 12 deletions
diff --git a/CPP/Common/C_FileIO.cpp b/CPP/Common/C_FileIO.cpp index 7d9e00d0..28a1378c 100755 --- a/CPP/Common/C_FileIO.cpp +++ b/CPP/Common/C_FileIO.cpp @@ -51,6 +51,11 @@ bool CInFile::Open(const char *name) return CFileBase::OpenBinary(name, O_RDONLY); } +bool CInFile::OpenShared(const char *name, bool) +{ + return Open(name); +} + ssize_t CInFile::Read(void *data, size_t size) { return read(_handle, data, size); diff --git a/CPP/Common/C_FileIO.h b/CPP/Common/C_FileIO.h index 2ad07167..29378dfa 100755 --- a/CPP/Common/C_FileIO.h +++ b/CPP/Common/C_FileIO.h @@ -30,6 +30,7 @@ class CInFile: public CFileBase { public: bool Open(const char *name); + bool OpenShared(const char *name, bool shareForWrite); ssize_t Read(void *data, size_t size); }; diff --git a/CPP/Common/CommandLineParser.h b/CPP/Common/CommandLineParser.h index f59d8e4c..af698db8 100755 --- a/CPP/Common/CommandLineParser.h +++ b/CPP/Common/CommandLineParser.h @@ -3,7 +3,7 @@ #ifndef __COMMON_COMMANDLINEPARSER_H #define __COMMON_COMMANDLINEPARSER_H -#include "String.h" +#include "Common/String.h" namespace NCommandLineParser { diff --git a/CPP/Common/ListFileUtils.cpp b/CPP/Common/ListFileUtils.cpp index ea4cde38..349622ed 100755 --- a/CPP/Common/ListFileUtils.cpp +++ b/CPP/Common/ListFileUtils.cpp @@ -24,12 +24,14 @@ bool ReadNamesFromListFile(LPCTSTR fileName, UStringVector &resultStrings, UINT AString s; file.ReadToString(s); UString u; + #ifdef CP_UTF8 if (codePage == CP_UTF8) { if (!ConvertUTF8ToUnicode(s, u)) return false; } else + #endif u = MultiByteToUnicodeString(s, codePage); if (!u.IsEmpty()) { diff --git a/CPP/Common/MyCom.h b/CPP/Common/MyCom.h index 07e8fb66..dcc94f14 100755 --- a/CPP/Common/MyCom.h +++ b/CPP/Common/MyCom.h @@ -154,6 +154,13 @@ public: #define MY_QUERYINTERFACE_ENTRY(i) if (iid == IID_ ## i) \ { *outObject = (void *)(i *)this; AddRef(); return S_OK; } +#define MY_QUERYINTERFACE_ENTRY_UNKNOWN(i) if (iid == IID_IUnknown) \ + { *outObject = (void *)(IUnknown *)(i *)this; AddRef(); return S_OK; } + +#define MY_QUERYINTERFACE_BEGIN2(i) MY_QUERYINTERFACE_BEGIN \ + MY_QUERYINTERFACE_ENTRY_UNKNOWN(i) \ + MY_QUERYINTERFACE_ENTRY(i) + #define MY_QUERYINTERFACE_END return E_NOINTERFACE; } #define MY_ADDREF_RELEASE \ @@ -168,26 +175,31 @@ STDMETHOD_(ULONG, Release)() { if (--__m_RefCount != 0) \ MY_ADDREF_RELEASE -#define MY_UNKNOWN_IMP STDMETHOD(QueryInterface)(REFGUID, void **) { \ +#define MY_UNKNOWN_IMP MY_QUERYINTERFACE_BEGIN \ + MY_QUERYINTERFACE_ENTRY_UNKNOWN(IUnknown) \ MY_QUERYINTERFACE_END \ MY_ADDREF_RELEASE #define MY_UNKNOWN_IMP1(i) MY_UNKNOWN_IMP_SPEC( \ + MY_QUERYINTERFACE_ENTRY_UNKNOWN(i) \ MY_QUERYINTERFACE_ENTRY(i) \ ) #define MY_UNKNOWN_IMP2(i1, i2) MY_UNKNOWN_IMP_SPEC( \ + MY_QUERYINTERFACE_ENTRY_UNKNOWN(i1) \ MY_QUERYINTERFACE_ENTRY(i1) \ MY_QUERYINTERFACE_ENTRY(i2) \ ) #define MY_UNKNOWN_IMP3(i1, i2, i3) MY_UNKNOWN_IMP_SPEC( \ + MY_QUERYINTERFACE_ENTRY_UNKNOWN(i1) \ MY_QUERYINTERFACE_ENTRY(i1) \ MY_QUERYINTERFACE_ENTRY(i2) \ MY_QUERYINTERFACE_ENTRY(i3) \ ) #define MY_UNKNOWN_IMP4(i1, i2, i3, i4) MY_UNKNOWN_IMP_SPEC( \ + MY_QUERYINTERFACE_ENTRY_UNKNOWN(i1) \ MY_QUERYINTERFACE_ENTRY(i1) \ MY_QUERYINTERFACE_ENTRY(i2) \ MY_QUERYINTERFACE_ENTRY(i3) \ @@ -195,6 +207,7 @@ STDMETHOD_(ULONG, Release)() { if (--__m_RefCount != 0) \ ) #define MY_UNKNOWN_IMP5(i1, i2, i3, i4, i5) MY_UNKNOWN_IMP_SPEC( \ + MY_QUERYINTERFACE_ENTRY_UNKNOWN(i1) \ MY_QUERYINTERFACE_ENTRY(i1) \ MY_QUERYINTERFACE_ENTRY(i2) \ MY_QUERYINTERFACE_ENTRY(i3) \ diff --git a/CPP/Common/MyInitGuid.h b/CPP/Common/MyInitGuid.h index 5bdfeed5..4fc15565 100755 --- a/CPP/Common/MyInitGuid.h +++ b/CPP/Common/MyInitGuid.h @@ -8,6 +8,8 @@ #else #define INITGUID #include "MyGuidDef.h" +DEFINE_GUID(IID_IUnknown, +0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); #endif #endif diff --git a/CPP/Common/MyWindows.h b/CPP/Common/MyWindows.h index a93d750a..e388fb02 100755 --- a/CPP/Common/MyWindows.h +++ b/CPP/Common/MyWindows.h @@ -99,6 +99,10 @@ typedef LONG SCODE; #define MIDL_INTERFACE(x) struct +#ifdef __cplusplus + +DEFINE_GUID(IID_IUnknown, +0x00000000, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); struct IUnknown { STDMETHOD(QueryInterface) (REFIID iid, void **outObject) PURE; @@ -111,6 +115,8 @@ struct IUnknown typedef IUnknown *LPUNKNOWN; +#endif + #define VARIANT_TRUE ((VARIANT_BOOL)-1) #define VARIANT_FALSE ((VARIANT_BOOL)0) @@ -149,6 +155,8 @@ typedef WORD PROPVAR_PAD1; typedef WORD PROPVAR_PAD2; typedef WORD PROPVAR_PAD3; +#ifdef __cplusplus + typedef struct tagPROPVARIANT { VARTYPE vt; @@ -178,6 +186,11 @@ typedef PROPVARIANT tagVARIANT; typedef tagVARIANT VARIANT; typedef VARIANT VARIANTARG; +MY_EXTERN_C HRESULT VariantClear(VARIANTARG *prop); +MY_EXTERN_C HRESULT VariantCopy(VARIANTARG *dest, VARIANTARG *src); + +#endif + MY_EXTERN_C BSTR SysAllocStringByteLen(LPCSTR psz, UINT len); MY_EXTERN_C BSTR SysAllocString(const OLECHAR *sz); MY_EXTERN_C void SysFreeString(BSTR bstr); @@ -185,8 +198,6 @@ MY_EXTERN_C UINT SysStringByteLen(BSTR bstr); MY_EXTERN_C UINT SysStringLen(BSTR bstr); MY_EXTERN_C DWORD GetLastError(); -MY_EXTERN_C HRESULT VariantClear(VARIANTARG *prop); -MY_EXTERN_C HRESULT VariantCopy(VARIANTARG *dest, VARIANTARG *src); MY_EXTERN_C LONG CompareFileTime(const FILETIME* ft1, const FILETIME* ft2); #define CP_ACP 0 diff --git a/CPP/Common/Wildcard.cpp b/CPP/Common/Wildcard.cpp index ddadc7b1..2e938375 100755 --- a/CPP/Common/Wildcard.cpp +++ b/CPP/Common/Wildcard.cpp @@ -4,7 +4,6 @@ #include "Wildcard.h" -static const wchar_t kPeriodChar = L'.'; static const wchar_t kAnyCharsChar = L'*'; static const wchar_t kAnyCharChar = L'?'; @@ -20,8 +19,6 @@ static const UString kIllegalWildCardFileNameChars= L"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F" L"\"/:<>\\|"; -static const UString kIllegalFileNameChars = kIllegalWildCardFileNameChars + - kWildCardCharSet; static inline bool IsCharDirLimiter(wchar_t c) { @@ -147,11 +144,6 @@ bool DoesNameContainWildCard(const UString &path) namespace NWildcard { -static inline int BoolToIndex(bool value) -{ - return value ? 1: 0; -} - /* M = MaskParts.Size(); |