mirror of
https://github.com/microsoft/PowerToys
synced 2025-08-23 18:48:09 +00:00
103 lines
4.3 KiB
C++
103 lines
4.3 KiB
C++
|
#include "pch.h"
|
||
|
#include "trace.h"
|
||
|
|
||
|
TRACELOGGING_DEFINE_PROVIDER(
|
||
|
g_hProvider,
|
||
|
"Microsoft.PowerToys",
|
||
|
// {38e8889b-9731-53f5-e901-e8a7c1753074}
|
||
|
(0x38e8889b, 0x9731, 0x53f5, 0xe9, 0x01, 0xe8, 0xa7, 0xc1, 0x75, 0x30, 0x74),
|
||
|
TraceLoggingOptionProjectTelemetry());
|
||
|
|
||
|
void Trace::RegisterProvider()
|
||
|
{
|
||
|
TraceLoggingRegister(g_hProvider);
|
||
|
}
|
||
|
|
||
|
void Trace::UnregisterProvider()
|
||
|
{
|
||
|
TraceLoggingUnregister(g_hProvider);
|
||
|
}
|
||
|
|
||
|
// Log if the user has AdvancedPaste enabled or disabled
|
||
|
void Trace::AdvancedPaste_Enable(const bool enabled) noexcept
|
||
|
{
|
||
|
TraceLoggingWrite(
|
||
|
g_hProvider,
|
||
|
"AdvancedPaste_EnableAdvancedPaste",
|
||
|
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
|
||
|
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
|
||
|
TraceLoggingBoolean(enabled, "Enabled"));
|
||
|
}
|
||
|
|
||
|
// Log if the user has invoked AdvancedPaste
|
||
|
void Trace::AdvancedPaste_Invoked(std::wstring mode) noexcept
|
||
|
{
|
||
|
TraceLoggingWrite(
|
||
|
g_hProvider,
|
||
|
"AdvancedPaste_InvokeAdvancedPaste",
|
||
|
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
|
||
|
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
|
||
|
TraceLoggingValue(mode.c_str(), "Mode"));
|
||
|
}
|
||
|
|
||
|
// Log if an error occurs in AdvancedPaste
|
||
|
void Trace::AdvancedPaste_Error(const DWORD errorCode, std::wstring errorMessage, std::wstring methodName) noexcept
|
||
|
{
|
||
|
TraceLoggingWrite(
|
||
|
g_hProvider,
|
||
|
"AdvancedPaste_Error",
|
||
|
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
|
||
|
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
|
||
|
TraceLoggingValue(methodName.c_str(), "MethodName"),
|
||
|
TraceLoggingValue(errorCode, "ErrorCode"),
|
||
|
TraceLoggingValue(errorMessage.c_str(), "ErrorMessage"));
|
||
|
}
|
||
|
|
||
|
// Event to send settings telemetry.
|
||
|
void Trace::AdvancedPaste_SettingsTelemetry(const PowertoyModuleIface::Hotkey& pastePlainHotkey,
|
||
|
const PowertoyModuleIface::Hotkey& advancedPasteUIHotkey,
|
||
|
const PowertoyModuleIface::Hotkey& pasteMarkdownHotkey,
|
||
|
const PowertoyModuleIface::Hotkey& pasteJsonHotkey,
|
||
|
const bool preview_custom_format_output) noexcept
|
||
|
{
|
||
|
std::wstring pastePlainHotkeyStr =
|
||
|
std::wstring(pastePlainHotkey.win ? L"Win + " : L"") +
|
||
|
std::wstring(pastePlainHotkey.ctrl ? L"Ctrl + " : L"") +
|
||
|
std::wstring(pastePlainHotkey.shift ? L"Shift + " : L"") +
|
||
|
std::wstring(pastePlainHotkey.alt ? L"Alt + " : L"") +
|
||
|
std::wstring(L"VK ") + std::to_wstring(pastePlainHotkey.key);
|
||
|
|
||
|
std::wstring advancedPasteUIHotkeyStr =
|
||
|
std::wstring(advancedPasteUIHotkey.win ? L"Win + " : L"") +
|
||
|
std::wstring(advancedPasteUIHotkey.ctrl ? L"Ctrl + " : L"") +
|
||
|
std::wstring(advancedPasteUIHotkey.shift ? L"Shift + " : L"") +
|
||
|
std::wstring(advancedPasteUIHotkey.alt ? L"Alt + " : L"") +
|
||
|
std::wstring(L"VK ") + std::to_wstring(advancedPasteUIHotkey.key);
|
||
|
|
||
|
std::wstring pasteMarkdownHotkeyStr =
|
||
|
std::wstring(pasteMarkdownHotkey.win ? L"Win + " : L"") +
|
||
|
std::wstring(pasteMarkdownHotkey.ctrl ? L"Ctrl + " : L"") +
|
||
|
std::wstring(pasteMarkdownHotkey.shift ? L"Shift + " : L"") +
|
||
|
std::wstring(pasteMarkdownHotkey.alt ? L"Alt + " : L"") +
|
||
|
std::wstring(L"VK ") + std::to_wstring(pasteMarkdownHotkey.key);
|
||
|
|
||
|
std::wstring pasteJsonHotkeyStr =
|
||
|
std::wstring(pasteJsonHotkey.win ? L"Win + " : L"") +
|
||
|
std::wstring(pasteJsonHotkey.ctrl ? L"Ctrl + " : L"") +
|
||
|
std::wstring(pasteJsonHotkey.shift ? L"Shift + " : L"") +
|
||
|
std::wstring(pasteJsonHotkey.alt ? L"Alt + " : L"") +
|
||
|
std::wstring(L"VK ") + std::to_wstring(pasteJsonHotkey.key);
|
||
|
|
||
|
TraceLoggingWrite(
|
||
|
g_hProvider,
|
||
|
"AdvancedPaste_Settings",
|
||
|
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
|
||
|
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
|
||
|
TraceLoggingWideString(pastePlainHotkeyStr.c_str(), "PastePlainHotkey"),
|
||
|
TraceLoggingWideString(advancedPasteUIHotkeyStr.c_str(), "AdvancedPasteUIHotkey"),
|
||
|
TraceLoggingWideString(pasteMarkdownHotkeyStr.c_str(), "PasteMarkdownHotkey"),
|
||
|
TraceLoggingWideString(pasteJsonHotkeyStr.c_str(), "PasteJsonHotkey"),
|
||
|
TraceLoggingBoolean(preview_custom_format_output, "ShowCustomPreview")
|
||
|
);
|
||
|
}
|