-
Notifications
You must be signed in to change notification settings - Fork 0
/
WebStoreIntegration.cpp
60 lines (60 loc) · 2.25 KB
/
WebStoreIntegration.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//#include "WebStoreIntegration.hpp"
//
//bool SetURLProtocol(const std::wstring& protocolName, const std::wstring& applicationPath) {
// HKEY hKey;
// std::wstring keyPath = L"SOFTWARE\\Classes\\" + protocolName;
// LONG lRes = RegCreateKeyEx(HKEY_CURRENT_USER, keyPath.c_str(), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, NULL);
//
// if (lRes != ERROR_SUCCESS) {
// std::wcerr << L"Failed to create registry key." << std::endl;
// return false;
// }
//
// // Set the default key value
// std::wstring protocolDescription = protocolName + L" Protocol Handler";
// RegSetValueEx(hKey, NULL, 0, REG_SZ, (BYTE*)protocolDescription.c_str(), (protocolDescription.size() + 1) * sizeof(wchar_t));
//
// // Set URL Protocol key value
// std::wstring empty = L"";
// RegSetValueEx(hKey, L"URL Protocol", 0, REG_SZ, (BYTE*)empty.c_str(), (empty.size() + 1) * sizeof(wchar_t));
//
// // Set command executable path
// std::wstring commandPath = applicationPath + L" \"%1\"";
// HKEY hKeyCommand;
// lRes = RegCreateKeyEx(hKey, L"shell\\open\\command", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKeyCommand, NULL);
//
// if (lRes != ERROR_SUCCESS) {
// RegCloseKey(hKey);
// std::wcerr << L"Failed to create command registry key." << std::endl;
// return false;
// }
//
// RegSetValueEx(hKeyCommand, NULL, 0, REG_SZ, (BYTE*)commandPath.c_str(), (commandPath.size() + 1) * sizeof(wchar_t));
//
// RegCloseKey(hKeyCommand);
// RegCloseKey(hKey);
//
// return true;
//}
//
//
//std::wstring GetExecutablePath() {
// std::vector<wchar_t> buffer;
// DWORD copied = 0;
// do {
// buffer.resize(buffer.size() + MAX_PATH);
// copied = GetModuleFileNameW(nullptr, &buffer.at(0), static_cast<DWORD>(buffer.size()));
// } while (copied >= buffer.size());
//
// buffer.resize(copied); // Shrink to fit the actual size
// return std::wstring(buffer.begin(), buffer.end());
//}
//
//
//UrlProtocolHandler::UrlProtocolHandler() {
// std::wstring executablePath = GetExecutablePath();
// std::wstring protocol = L"cirrus";
//
// std::wcout << L"Executable path is: " << executablePath << std::endl;
// std::wcout << L"Protocol is: " << executablePath << std::endl;
//}