131 DWORD dwValueSize = 0;
143 goto CheckValueArgument;
149 blnBadParameter =
FALSE;
150 if (((*pszParameter ==
_T(
'/'))||(*pszParameter ==
_T(
'-')))
151 &&(*(pszParameter+1) ==
_T(
'?')))
161 else if (
_tcsicmp(pszParameter,
_T(
"dw")) == 0)
165 else if (
_tcsicmp(pszParameter,
_T(
"dwle")) == 0)
169 else if (
_tcsicmp(pszParameter,
_T(
"dwbe")) == 0)
173 else if (
_tcsicmp(pszParameter,
_T(
"sz")) == 0)
177 else if (
_tcsicmp(pszParameter,
_T(
"esz")) == 0)
183 blnBadParameter =
TRUE;
186 else if (pszValueData ==
NULL)
188 pszValueData = pszParameter;
190 else if (!pszValueFull)
192 pszValueFull = pszParameter;
196 blnBadParameter =
TRUE;
200 rConsole.
Write(
_T(
"Bad parameter: "));
201 rConsole.
Write(pszParameter);
211 const TCHAR *pszEmpty =
_T(
"");
212 const TCHAR *pszPath;
227 goto CommandNAonRoot;
230 pszValueName = pchSep?(pchSep+1):(pszValueFull);
231 pszPath = pchSep?pszValueFull:
_T(
".");
244 pszValueName = (
TCHAR*)pszEmpty;
255 goto CommandNAonRoot;
266 rConsole.
Write(
_T(
"Cannot open file "));
267 rConsole.
Write(pszValueData);
272 if (dwValueSize == (
DWORD)-1)
276 rConsole.
Write(
_T(
"Cannot get size of file "));
277 rConsole.
Write(pszValueData);
282 pDataBuffer =
new BYTE [dwValueSize];
285 rConsole.
Write(
_T(
"Cannot load file into memory. Out of memory.\n"));
291 rConsole.
Write(
_T(
"Cannot load file into memory. Error reading file.\n"));
297 ASSERT(dwBytesReaded == dwValueSize);
303 pDataBuffer = (
BYTE *)
new BYTE [dwValueSize];
306 rConsole.
Write(
_T(
"Cannot convert "));
307 rConsole.
Write(pszValueData);
308 rConsole.
Write(
_T(
" to DWORD \n"));
314 nByte = *pDataBuffer;
315 *pDataBuffer = *(pDataBuffer+3);
316 *(pDataBuffer+3) = nByte;
317 nByte = *(pDataBuffer+1);
318 *(pDataBuffer+1) = *(pDataBuffer+2);
319 *(pDataBuffer+2) = nByte;
324 dwValueSize =
_tcslen(pszValueData)+1;
325 if (*pszValueData ==
_T(
'\"'))
328 *(pszValueData+dwValueSize) = 0;
331 dwValueSize *=
sizeof(
TCHAR);
332 pDataBuffer = (
BYTE *)
new BYTE [dwValueSize];
335 const TCHAR *pchSrc = pszValueData;
339 if (pchSrc[0] ==
_T(
'^'))
341 if (pchSrc[1] ==
_T(
'a'))
343 else if (pchSrc[1] ==
_T(
'b'))
345 else if (pchSrc[1] ==
_T(
'f'))
347 else if (pchSrc[1] ==
_T(
'n'))
349 else if (pchSrc[1] ==
_T(
'r'))
351 else if (pchSrc[1] ==
_T(
't'))
354 *pchDest = pchSrc[1];
376 if (
s && (pszValueName[0] ==
_T(
'\"'))&&(pszValueName[
s-1] ==
_T(
'\"')))
378 pszValueName[
s-1] = 0;
383 nError =
Key.SetValue(pszValueName,dwType,pDataBuffer,dwValueSize);
397 delete[] pDataBuffer;
int _tcscmp(const _TCHAR *s1, const _TCHAR *s2)
#define INVALID_HANDLE_VALUE
#define SET_VALUE_CMD_LENGTH
BOOL GetKey(const TCHAR *pchRelativePath, REGSAM DesiredAccess, CRegistryKey &rKey)
TCHAR * GetNextArgument()
void ResetArgumentIteration()
size_t __cdecl _tcslen(const _TCHAR *str)
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFKEY * Key
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
#define REG_DWORD_LITTLE_ENDIAN
const TCHAR * GetLastErrorDescription()
#define REG_DWORD_BIG_ENDIAN
#define COMMAND_NA_ON_ROOT
IN OUT PVCB OUT PDIRENT OUT PBCB IN BOOLEAN CreateFile
BOOL Write(const TCHAR *p, DWORD dwChars=0)
BOOL StringToDWORD(DWORD &rdwOut, const TCHAR *pszIn)
#define ReadFile(a, b, c, d, e)
_TCHAR * _tcsrchr(const _TCHAR *s, _XINT c)
void InvalidateCompletion()
virtual const TCHAR * GetHelpString()