MCPcopy Create free account
hub / github.com/BeneficialCode/WinArk / Execute

Method Execute

WinArk/DeleteKeyCommand.cpp:10–34  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8}
9
10bool DeleteKeyCommand::Execute() {
11 auto key = Registry::OpenKey(_path, KEY_ENUMERATE_SUB_KEYS | DELETE | KEY_QUERY_VALUE);
12 if (!key)
13 return false;
14
15 if (_savePath.IsEmpty()) {
16 LARGE_INTEGER li;
17 ::QueryPerformanceCounter(&li);
18 _savePath.Format(L"%llX", li.QuadPart);
19 }
20 CRegKey keyBacukup;
21 auto error = keyBacukup.Create(HKEY_CURRENT_USER, DeletedPathBackup + _savePath, nullptr, 0, KEY_ALL_ACCESS);
22 ::SetLastError(error);
23 if (!keyBacukup)
24 return false;
25 ::SetLastError(error = ::RegCopyTree(key.Get(), _name, keyBacukup));
26 if (ERROR_SUCCESS != error)
27 return false;
28
29 ::SetLastError(error = ::RegDeleteTree(key.Get(), _name));
30 if (ERROR_SUCCESS != error) {
31 return false;
32 }
33 return InvokeCallback(true);
34}
35
36bool DeleteKeyCommand::Undo() {
37 auto key = Registry::OpenKey(_path, KEY_CREATE_SUB_KEY);

Callers

nothing calls this directly

Calls 3

IsEmptyMethod · 0.80
CreateMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected