Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(291)

Side by Side Diff: third_party/lzma/v4_65/files/CPP/Windows/PropVariantConversions.cpp

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // PropVariantConversions.cpp
2
3 #include "StdAfx.h"
4
5 #include "PropVariantConversions.h"
6
7 #include "Windows/Defs.h"
8
9 #include "Common/StringConvert.h"
10 #include "Common/IntToString.h"
11
12 static UString ConvertUInt64ToString(UInt64 value)
13 {
14 wchar_t buffer[32];
15 ConvertUInt64ToString(value, buffer);
16 return buffer;
17 }
18
19 static UString ConvertInt64ToString(Int64 value)
20 {
21 wchar_t buffer[32];
22 ConvertInt64ToString(value, buffer);
23 return buffer;
24 }
25
26 static char *UIntToStringSpec(char c, UInt32 value, char *s, int numPos)
27 {
28 if (c != 0)
29 *s++ = c;
30 char temp[16];
31 int pos = 0;
32 do
33 {
34 temp[pos++] = (char)('0' + value % 10);
35 value /= 10;
36 }
37 while (value != 0);
38 int i;
39 for (i = 0; i < numPos - pos; i++)
40 *s++ = '0';
41 do
42 *s++ = temp[--pos];
43 while (pos > 0);
44 *s = '\0';
45 return s;
46 }
47
48 bool ConvertFileTimeToString(const FILETIME &ft, char *s, bool includeTime, bool includeSeconds)
49 {
50 s[0] = '\0';
51 SYSTEMTIME st;
52 if (!BOOLToBool(FileTimeToSystemTime(&ft, &st)))
53 return false;
54 s = UIntToStringSpec(0, st.wYear, s, 4);
55 s = UIntToStringSpec('-', st.wMonth, s, 2);
56 s = UIntToStringSpec('-', st.wDay, s, 2);
57 if (includeTime)
58 {
59 s = UIntToStringSpec(' ', st.wHour, s, 2);
60 s = UIntToStringSpec(':', st.wMinute, s, 2);
61 if (includeSeconds)
62 UIntToStringSpec(':', st.wSecond, s, 2);
63 }
64 return true;
65 }
66
67 UString ConvertFileTimeToString(const FILETIME &fileTime, bool includeTime, bool includeSeconds)
68 {
69 char s[32];
70 ConvertFileTimeToString(fileTime, s, includeTime, includeSeconds);
71 return GetUnicodeString(s);
72 }
73
74
75 UString ConvertPropVariantToString(const PROPVARIANT &prop)
76 {
77 switch (prop.vt)
78 {
79 case VT_EMPTY: return UString();
80 case VT_BSTR: return prop.bstrVal;
81 case VT_UI1: return ConvertUInt64ToString(prop.bVal);
82 case VT_UI2: return ConvertUInt64ToString(prop.uiVal);
83 case VT_UI4: return ConvertUInt64ToString(prop.ulVal);
84 case VT_UI8: return ConvertUInt64ToString(prop.uhVal.QuadPart);
85 case VT_FILETIME: return ConvertFileTimeToString(prop.filetime, true, true);
86 // case VT_I1: return ConvertInt64ToString(prop.cVal);
87 case VT_I2: return ConvertInt64ToString(prop.iVal);
88 case VT_I4: return ConvertInt64ToString(prop.lVal);
89 case VT_I8: return ConvertInt64ToString(prop.hVal.QuadPart);
90 case VT_BOOL: return VARIANT_BOOLToBool(prop.boolVal) ? L"+" : L"-";
91 default:
92 #ifndef _WIN32_WCE
93 throw 150245;
94 #else
95 return UString();
96 #endif
97 }
98 }
99
100 UInt64 ConvertPropVariantToUInt64(const PROPVARIANT &prop)
101 {
102 switch (prop.vt)
103 {
104 case VT_UI1: return prop.bVal;
105 case VT_UI2: return prop.uiVal;
106 case VT_UI4: return prop.ulVal;
107 case VT_UI8: return (UInt64)prop.uhVal.QuadPart;
108 default:
109 #ifndef _WIN32_WCE
110 throw 151199;
111 #else
112 return 0;
113 #endif
114 }
115 }
OLDNEW
« no previous file with comments | « third_party/lzma/v4_65/files/CPP/Windows/PropVariantConversions.h ('k') | third_party/lzma/v4_65/files/CPP/Windows/StdAfx.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698