mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-06 03:07:04 +02:00
54 lines
1.9 KiB
C++
54 lines
1.9 KiB
C++
|
|
#include "pch.h"
|
||
|
|
#include "preview_handler.h"
|
||
|
|
|
||
|
|
namespace PowerPreviewSettings
|
||
|
|
{
|
||
|
|
const LPCWSTR PreviewHandlerSettings::preview_handlers_subkey = L"Software\\Microsoft\\Windows\\CurrentVersion\\PreviewHandlers";
|
||
|
|
|
||
|
|
// Function to enable the preview handler in registry
|
||
|
|
LONG PreviewHandlerSettings::Enable()
|
||
|
|
{
|
||
|
|
// Add registry value to enable preview.
|
||
|
|
return this->m_registryWrapper->SetRegistryValue(HKEY_LOCAL_MACHINE, preview_handlers_subkey, this->GetCLSID(), REG_SZ, (LPBYTE)this->GetRegistryValueData().c_str(), (DWORD)(this->GetRegistryValueData().length() * sizeof(wchar_t)));
|
||
|
|
}
|
||
|
|
|
||
|
|
// Function to disable the preview handler in registry
|
||
|
|
LONG PreviewHandlerSettings::Disable()
|
||
|
|
{
|
||
|
|
// Delete the registry key to disable preview.
|
||
|
|
return this->m_registryWrapper->DeleteRegistryValue(HKEY_LOCAL_MACHINE, preview_handlers_subkey, this->GetCLSID());
|
||
|
|
}
|
||
|
|
|
||
|
|
// Function to check if the preview handler is enabled in registry
|
||
|
|
bool PreviewHandlerSettings::CheckRegistryState()
|
||
|
|
{
|
||
|
|
DWORD dataType;
|
||
|
|
DWORD byteCount = 255;
|
||
|
|
wchar_t regValue[255] = { 0 };
|
||
|
|
|
||
|
|
LONG errorCode = this->m_registryWrapper->GetRegistryValue(HKEY_LOCAL_MACHINE, preview_handlers_subkey, this->GetCLSID(), &dataType, regValue, &byteCount);
|
||
|
|
|
||
|
|
// Registry value was found
|
||
|
|
if (errorCode == ERROR_SUCCESS)
|
||
|
|
{
|
||
|
|
// Check if the value type is string
|
||
|
|
if (dataType == REG_SZ)
|
||
|
|
{
|
||
|
|
// Check if the current registry value matches the expected value
|
||
|
|
if (wcscmp(regValue, this->GetRegistryValueData().c_str()) == 0)
|
||
|
|
{
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Function to retrieve the registry subkey
|
||
|
|
LPCWSTR PreviewHandlerSettings::GetSubkey()
|
||
|
|
{
|
||
|
|
return preview_handlers_subkey;
|
||
|
|
}
|
||
|
|
}
|