|
37 | 37 | UINT |
38 | 38 | msi_get_string( |
39 | 39 | _In_ MSIHANDLE hInstall, |
40 | | - _In_z_ LPCTSTR szName, |
41 | | - _Out_ LPTSTR *pszValue) |
| 40 | + _In_z_ LPCWSTR szName, |
| 41 | + _Out_ LPWSTR *pszValue) |
42 | 42 | { |
43 | 43 | if (pszValue == NULL) |
44 | 44 | { |
45 | 45 | return ERROR_BAD_ARGUMENTS; |
46 | 46 | } |
47 | 47 |
|
48 | 48 | /* Try with stack buffer first. */ |
49 | | - TCHAR szBufStack[128]; |
| 49 | + WCHAR szBufStack[128]; |
50 | 50 | DWORD dwLength = _countof(szBufStack); |
51 | 51 | UINT uiResult = MsiGetProperty(hInstall, szName, szBufStack, &dwLength); |
52 | 52 | if (uiResult == ERROR_SUCCESS) |
53 | 53 | { |
54 | 54 | /* Copy from stack. */ |
55 | | - *pszValue = (LPTSTR)malloc(++dwLength * sizeof(TCHAR)); |
| 55 | + *pszValue = (LPWSTR)malloc(++dwLength * sizeof(WCHAR)); |
56 | 56 | if (*pszValue == NULL) |
57 | 57 | { |
58 | | - msg(M_FATAL, "%s: malloc(%u) failed", dwLength * sizeof(TCHAR)); |
| 58 | + msg(M_FATAL, "%s: malloc(%u) failed", dwLength * sizeof(WCHAR)); |
59 | 59 | return ERROR_OUTOFMEMORY; |
60 | 60 | } |
61 | 61 |
|
62 | | - memcpy(*pszValue, szBufStack, dwLength * sizeof(TCHAR)); |
| 62 | + memcpy(*pszValue, szBufStack, dwLength * sizeof(WCHAR)); |
63 | 63 | return ERROR_SUCCESS; |
64 | 64 | } |
65 | 65 | else if (uiResult == ERROR_MORE_DATA) |
66 | 66 | { |
67 | 67 | /* Allocate on heap and retry. */ |
68 | | - LPTSTR szBufHeap = (LPTSTR)malloc(++dwLength * sizeof(TCHAR)); |
| 68 | + LPWSTR szBufHeap = (LPWSTR)malloc(++dwLength * sizeof(WCHAR)); |
69 | 69 | if (szBufHeap == NULL) |
70 | 70 | { |
71 | | - msg(M_FATAL, "%s: malloc(%u) failed", __FUNCTION__, dwLength * sizeof(TCHAR)); |
| 71 | + msg(M_FATAL, "%s: malloc(%u) failed", __FUNCTION__, dwLength * sizeof(WCHAR)); |
72 | 72 | return ERROR_OUTOFMEMORY; |
73 | 73 | } |
74 | 74 |
|
|
96 | 96 | msi_get_record_string( |
97 | 97 | _In_ MSIHANDLE hRecord, |
98 | 98 | _In_ unsigned int iField, |
99 | | - _Out_ LPTSTR *pszValue) |
| 99 | + _Out_ LPWSTR *pszValue) |
100 | 100 | { |
101 | 101 | if (pszValue == NULL) |
102 | 102 | { |
103 | 103 | return ERROR_BAD_ARGUMENTS; |
104 | 104 | } |
105 | 105 |
|
106 | 106 | /* Try with stack buffer first. */ |
107 | | - TCHAR szBufStack[128]; |
| 107 | + WCHAR szBufStack[128]; |
108 | 108 | DWORD dwLength = _countof(szBufStack); |
109 | 109 | UINT uiResult = MsiRecordGetString(hRecord, iField, szBufStack, &dwLength); |
110 | 110 | if (uiResult == ERROR_SUCCESS) |
111 | 111 | { |
112 | 112 | /* Copy from stack. */ |
113 | | - *pszValue = (LPTSTR)malloc(++dwLength * sizeof(TCHAR)); |
| 113 | + *pszValue = (LPWSTR)malloc(++dwLength * sizeof(WCHAR)); |
114 | 114 | if (*pszValue == NULL) |
115 | 115 | { |
116 | | - msg(M_FATAL, "%s: malloc(%u) failed", __FUNCTION__, dwLength * sizeof(TCHAR)); |
| 116 | + msg(M_FATAL, "%s: malloc(%u) failed", __FUNCTION__, dwLength * sizeof(WCHAR)); |
117 | 117 | return ERROR_OUTOFMEMORY; |
118 | 118 | } |
119 | 119 |
|
120 | | - memcpy(*pszValue, szBufStack, dwLength * sizeof(TCHAR)); |
| 120 | + memcpy(*pszValue, szBufStack, dwLength * sizeof(WCHAR)); |
121 | 121 | return ERROR_SUCCESS; |
122 | 122 | } |
123 | 123 | else if (uiResult == ERROR_MORE_DATA) |
124 | 124 | { |
125 | 125 | /* Allocate on heap and retry. */ |
126 | | - LPTSTR szBufHeap = (LPTSTR)malloc(++dwLength * sizeof(TCHAR)); |
| 126 | + LPWSTR szBufHeap = (LPWSTR)malloc(++dwLength * sizeof(WCHAR)); |
127 | 127 | if (szBufHeap == NULL) |
128 | 128 | { |
129 | | - msg(M_FATAL, "%s: malloc(%u) failed", __FUNCTION__, dwLength * sizeof(TCHAR)); |
| 129 | + msg(M_FATAL, "%s: malloc(%u) failed", __FUNCTION__, dwLength * sizeof(WCHAR)); |
130 | 130 | return ERROR_OUTOFMEMORY; |
131 | 131 | } |
132 | 132 |
|
@@ -154,37 +154,37 @@ UINT |
154 | 154 | msi_format_record( |
155 | 155 | _In_ MSIHANDLE hInstall, |
156 | 156 | _In_ MSIHANDLE hRecord, |
157 | | - _Out_ LPTSTR *pszValue) |
| 157 | + _Out_ LPWSTR *pszValue) |
158 | 158 | { |
159 | 159 | if (pszValue == NULL) |
160 | 160 | { |
161 | 161 | return ERROR_BAD_ARGUMENTS; |
162 | 162 | } |
163 | 163 |
|
164 | 164 | /* Try with stack buffer first. */ |
165 | | - TCHAR szBufStack[128]; |
| 165 | + WCHAR szBufStack[128]; |
166 | 166 | DWORD dwLength = _countof(szBufStack); |
167 | 167 | UINT uiResult = MsiFormatRecord(hInstall, hRecord, szBufStack, &dwLength); |
168 | 168 | if (uiResult == ERROR_SUCCESS) |
169 | 169 | { |
170 | 170 | /* Copy from stack. */ |
171 | | - *pszValue = (LPTSTR)malloc(++dwLength * sizeof(TCHAR)); |
| 171 | + *pszValue = (LPWSTR)malloc(++dwLength * sizeof(WCHAR)); |
172 | 172 | if (*pszValue == NULL) |
173 | 173 | { |
174 | | - msg(M_FATAL, "%s: malloc(%u) failed", __FUNCTION__, dwLength * sizeof(TCHAR)); |
| 174 | + msg(M_FATAL, "%s: malloc(%u) failed", __FUNCTION__, dwLength * sizeof(WCHAR)); |
175 | 175 | return ERROR_OUTOFMEMORY; |
176 | 176 | } |
177 | 177 |
|
178 | | - memcpy(*pszValue, szBufStack, dwLength * sizeof(TCHAR)); |
| 178 | + memcpy(*pszValue, szBufStack, dwLength * sizeof(WCHAR)); |
179 | 179 | return ERROR_SUCCESS; |
180 | 180 | } |
181 | 181 | else if (uiResult == ERROR_MORE_DATA) |
182 | 182 | { |
183 | 183 | /* Allocate on heap and retry. */ |
184 | | - LPTSTR szBufHeap = (LPTSTR)malloc(++dwLength * sizeof(TCHAR)); |
| 184 | + LPWSTR szBufHeap = (LPWSTR)malloc(++dwLength * sizeof(WCHAR)); |
185 | 185 | if (szBufHeap == NULL) |
186 | 186 | { |
187 | | - msg(M_FATAL, "%s: malloc(%u) failed", __FUNCTION__, dwLength * sizeof(TCHAR)); |
| 187 | + msg(M_FATAL, "%s: malloc(%u) failed", __FUNCTION__, dwLength * sizeof(WCHAR)); |
188 | 188 | return ERROR_OUTOFMEMORY; |
189 | 189 | } |
190 | 190 |
|
@@ -213,15 +213,15 @@ msi_format_field( |
213 | 213 | _In_ MSIHANDLE hInstall, |
214 | 214 | _In_ MSIHANDLE hRecord, |
215 | 215 | _In_ unsigned int iField, |
216 | | - _Out_ LPTSTR *pszValue) |
| 216 | + _Out_ LPWSTR *pszValue) |
217 | 217 | { |
218 | 218 | if (pszValue == NULL) |
219 | 219 | { |
220 | 220 | return ERROR_BAD_ARGUMENTS; |
221 | 221 | } |
222 | 222 |
|
223 | 223 | /* Read string to format. */ |
224 | | - LPTSTR szValue = NULL; |
| 224 | + LPWSTR szValue = NULL; |
225 | 225 | UINT uiResult = msi_get_record_string(hRecord, iField, &szValue); |
226 | 226 | if (uiResult != ERROR_SUCCESS) |
227 | 227 | { |
|
0 commit comments