4#ifndef _Stroika_Frameworks_Led_Platform_Windows_FileRegistration_h_
5#define _Stroika_Frameworks_Led_Platform_Windows_FileRegistration_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
9#include "Stroika/Frameworks/Led/Support.h"
18namespace Stroika::Frameworks::Led::Platform {
20#if qStroika_Foundation_Common_Platform_Windows
21 class Win32FileAssociationRegistrationHelper {
23 Win32FileAssociationRegistrationHelper (
const SDKString& fileSuffix);
25 nonvirtual
SDKString GetAssociatedProgID ()
const;
26 nonvirtual
SDKString GetAssociatedDefaultIcon ()
const;
27 nonvirtual
SDKString GetAssociatedEditCommand ()
const;
28 nonvirtual
SDKString GetAssociatedOpenCommand ()
const;
31 nonvirtual
void SetAssociatedProgIDAndOpenCommand (
const SDKString& progID,
const SDKString& progIDPrettyName,
const SDKString& defaultIcon,
32 const SDKString& editCommandLine,
const SDKString& openCommandLine);
38 enum CreateIfNotThereFlag {
41 KeyHolder (HKEY baseKey, LPCTSTR lpSubKey);
42 KeyHolder (HKEY baseKey, LPCTSTR lpSubKey, CreateIfNotThereFlag createIfNotThereFlag);
52#if qStroika_Foundation_Common_Platform_Windows
53 class Win32UIFileAssociationInfo {
55 Win32UIFileAssociationInfo (
const SDKString& fileSuffix,
const SDKString& fileProgID,
const SDKString& fileProgIDPrettyName,
56 const SDKString& defaultIcon,
const SDKString& shellEditNOpenCommandLine);
57 Win32UIFileAssociationInfo (
const SDKString& fileSuffix,
const SDKString& fileProgID,
const SDKString& fileProgIDPrettyName,
58 const SDKString& defaultIcon,
const SDKString& shellEditCommandLine,
const SDKString& shellOpenCommandLine);
73#if qStroika_Foundation_Common_Platform_Windows
74 class Win32UIFileAssociationRegistrationHelper {
76 Win32UIFileAssociationRegistrationHelper (HINSTANCE hInstance);
77 Win32UIFileAssociationRegistrationHelper (HINSTANCE hInstance,
const vector<Win32UIFileAssociationInfo>& infoRecs);
80 nonvirtual
void Add (
const Win32UIFileAssociationInfo& infoRec);
83 nonvirtual
void DoIt () noexcept;
86 nonvirtual
bool RegisteredToSomeoneElse () const;
87 nonvirtual
void ApplyChangesSilently ();
88 virtual
bool CheckUserSaysOKToUpdate () const;
89 virtual
void ExpandVariables (SDKString* valWithVars) const;
93 vector<Win32UIFileAssociationInfo> fInfoRecs;
basic_string< SDKChar > SDKString