// hwinenvironment.h
#pragma once
#ifndef __HWINENVIRONMENT_H__
#define __HWINENVIRONMENT_H__
#include "hwindef.h"
#include "hwinobject.h"
#include "hwindatetime.h"
namespace harlinn
{
namespace windows
{
enum class KnownFolderFlags : unsigned int
{
Default = 0x00000000,
NoAppContainerRedirection = 0x00010000,
Create = 0x00008000,
DontVerify = 0x00004000,
DontUnexpand = 0x00002000,
NoAlias = 0x00001000,
Init = 0x00000800,
DefaultPath = 0x00000400,
NotParentRelative = 0x00000200,
SimpleIDList = 0x00000100,
AliasOnly = 0x80000000
};
DEFINE_ENUM_FLAG_OPERATORS(KnownFolderFlags)
enum class AccessTimeoutFlags : DWORD
{
None = 0x0000,
TimeOutOn = 0x0001,
FeedbackOn = 0x0002
};
DEFINE_ENUM_FLAG_OPERATORS(AccessTimeoutFlags)
struct AccessTimeOut
{
AccessTimeoutFlags Flags;
TimeSpan TimeOut;
};
enum class FilterKeysFlags : DWORD
{
FilterKeysOn = 0x00000001,
Available = 0x00000002,
HotKeyActive = 0x00000004,
ConfirmHotKey = 0x00000008,
HotKeySound = 0x00000010,
Indicator = 0x00000020,
ClickOn = 0x00000040
};
DEFINE_ENUM_FLAG_OPERATORS(FilterKeysFlags)
struct FilterKeys
{
FilterKeysFlags Flags;
TimeSpan Wait;
TimeSpan Delay;
TimeSpan Repeat;
TimeSpan Bounce;
};
enum class HighContrastFlags : DWORD
{
HighContrastOn = 0x00000001,
Available = 0x00000002,
HotKeyActive = 0x00000004,
ConfirmHotKey = 0x00000008,
HotKeySound = 0x00000010,
Indicator = 0x00000020,
HotKeyAvailable = 0x00000040,
LogonDesktop = 0x00000100,
DefaultDesktop = 0x00000200
};
DEFINE_ENUM_FLAG_OPERATORS(HighContrastFlags)
struct HighContrast
{
HighContrastFlags Flags;
String DefaultScheme;
};
enum class MouseKeysFlags : DWORD
{
MouseKeysOn = 0x00000001,
Available = 0x00000002,
HotKeyActive = 0x00000004,
ConfirmHotKey = 0x00000008,
HotKeySound = 0x00000010,
Indicator = 0x00000020,
Modifiers = 0x00000040,
ReplaceNumbers = 0x00000080,
LeftButtonSel = 0x10000000,
RightButtonSel = 0x20000000,
LeftButtonDown = 0x01000000,
RightButtonDown = 0x02000000,
MOUSEMODE = 0x80000000
};
DEFINE_ENUM_FLAG_OPERATORS(MouseKeysFlags)
struct MouseKeys
{
MouseKeysFlags Flags;
DWORD MaxSpeed;
TimeSpan TimeToMaxSpeed;
DWORD CtrlSpeed;
};
enum class FontSmoothingOrientation : UINT
{
BGR = 0x0000,
RGB = 0x0001
};
class Environment
{
HWIN_EXPORT Environment();
public:
HWIN_EXPORT static String GetResourceString(const wchar_t* key,...);
HWIN_EXPORT static std::string GetResourceString(const char* key,...);
HWIN_EXPORT static String GetResourceString(const String& key,...);
HWIN_EXPORT static String NewLine();
HWIN_EXPORT static String Expand(const String& s);
class SystemParameters
{
HWIN_EXPORT SystemParameters();
public:
// Desktop
HWIN_EXPORT static bool ClearType();
HWIN_EXPORT static void SetClearType(bool theValue, bool sendChange = true, bool updateProfile = true);
HWIN_EXPORT static String DesktopWallpaper();
HWIN_EXPORT static void SetDesktopWallpaper(const String& theValue, bool sendChange = true, bool updateProfile = true);
HWIN_EXPORT static bool DropShadow();
HWIN_EXPORT static void SetDropShadow(bool theValue, bool sendChange = true, bool updateProfile = true);
HWIN_EXPORT static bool FlatMenu();
HWIN_EXPORT static void SetFlatMenu(bool theValue, bool sendChange = true, bool updateProfile = true);
HWIN_EXPORT static bool FontSmoothing();
HWIN_EXPORT static void SetFontSmoothing(bool theValue, bool sendChange = true, bool updateProfile = true);
HWIN_EXPORT static UINT FontSmoothingContrast();
HWIN_EXPORT static void SetFontSmoothingContrast(UINT theValue, bool sendChange = true, bool updateProfile = true);
HWIN_EXPORT static harlinn::windows::FontSmoothingOrientation FontSmoothingOrientation();
HWIN_EXPORT static void SetFontSmoothingOrientation(harlinn::windows::FontSmoothingOrientation theValue, bool sendChange = true, bool updateProfile = true);
HWIN_EXPORT static std::shared_ptr<NONCLIENTMETRICS> NonClientMetrics();
};
class SystemMetrics
{
HWIN_EXPORT SystemMetrics();
public:
HWIN_EXPORT static int ScreenWidth();
HWIN_EXPORT static int ScreenHeight();
HWIN_EXPORT static SIZE ScreenSize();
HWIN_EXPORT static int VerticalScrollBarWidth();
HWIN_EXPORT static int HorizontalScrollBarHeight();
HWIN_EXPORT static int CaptionHeight();
HWIN_EXPORT static int BorderWidth();
HWIN_EXPORT static int BorderHeight();
HWIN_EXPORT static int VerticalScrollBarThumbHeight();
HWIN_EXPORT static int HorizontalScrollBarThumbWidth();
HWIN_EXPORT static int IconWidth();
HWIN_EXPORT static int IconHeight();
HWIN_EXPORT static SIZE IconSize();
HWIN_EXPORT static int CursorWidth();
HWIN_EXPORT static int CursorHeight();
HWIN_EXPORT static SIZE CursorSize();
HWIN_EXPORT static int MenuBarHeight();
HWIN_EXPORT static int PrimaryDisplayWidth();
HWIN_EXPORT static int PrimaryDisplayHeight();
HWIN_EXPORT static SIZE PrimaryDisplaySize();
HWIN_EXPORT static int KanjiWindowHeight();
HWIN_EXPORT static int MousePresent();
HWIN_EXPORT static int VerticalScrollBarArrowHeight();
HWIN_EXPORT static int HorizontalScrollBarArrowWidth();
HWIN_EXPORT static int IsDebugVersion();
HWIN_EXPORT static int AreMouseButtonsSwapped();
HWIN_EXPORT static int MinimumWindowWidth();
HWIN_EXPORT static int MinimumWindowHeight();
HWIN_EXPORT static SIZE MinimumWindowSize();
HWIN_EXPORT static int CaptionButtonWidth();
HWIN_EXPORT static int CaptionButtonHeight();
HWIN_EXPORT static SIZE CaptionButtonSize();
HWIN_EXPORT static int SizeableBorderWidth();
HWIN_EXPORT static int SizeableBorderHeight();
HWIN_EXPORT static int MinimumWindowResizableWidth();
HWIN_EXPORT static int MinimumWindowResizableHeight();
HWIN_EXPORT static int DoubleClickAreaWidth();
HWIN_EXPORT static int DoubleClickAreaHeight();
HWIN_EXPORT static SIZE DoubleClickAreaSize();
HWIN_EXPORT static int IconViewCellWidth();
HWIN_EXPORT static int IconViewCellHeight();
HWIN_EXPORT static SIZE IconViewCellSize();
HWIN_EXPORT static int DropDownMenusAreRightAligned();
HWIN_EXPORT static int IsWindowsPenEnabled();
HWIN_EXPORT static int DBCSEnabled();
HWIN_EXPORT static int NumberOfMouseButtons();
HWIN_EXPORT static int FixedBorderWidth();
HWIN_EXPORT static int FixedBorderHeight();
HWIN_EXPORT static int EdgeBorderWidth();
HWIN_EXPORT static int EdgeBorderHeight();
HWIN_EXPORT static int MinimizedWindowCellWidth();
HWIN_EXPORT static int MinimizedWindowCellHeight();
HWIN_EXPORT static int SmallIconWidth();
HWIN_EXPORT static int SmallIconHeight();
HWIN_EXPORT static SIZE SmallIconSize();
HWIN_EXPORT static int SmallCaptionHeight();
HWIN_EXPORT static int SmallCaptionButtonWidth();
HWIN_EXPORT static int SmallCaptionButtonHeight();
HWIN_EXPORT static SIZE SmallCaptionButtonSize();
HWIN_EXPORT static int MenuBarButtonWidth();
HWIN_EXPORT static int MenuBarButtonHeight();
HWIN_EXPORT static SIZE MenuBarButtonSize();
HWIN_EXPORT static int MinimizedWindowsArragement();
HWIN_EXPORT static int MinimizedWindowWidth();
HWIN_EXPORT static int MinimizedWindowHeight();
HWIN_EXPORT static int MaximumWindowResizableWidth();
HWIN_EXPORT static int MaximumWindowResizableHeight();
HWIN_EXPORT static int PrimaryDisplayMaximumWindowWidth();
HWIN_EXPORT static int PrimaryDisplayMaximumWindowHeight();
HWIN_EXPORT static int NetworkIsPresent();
HWIN_EXPORT static int CleanBoot();
HWIN_EXPORT static int MinimumNoDragHorizontalMouseMovement();
HWIN_EXPORT static int MinimumNoDragVerticalMouseMovement();
HWIN_EXPORT static int ShowSounds();
HWIN_EXPORT static int MenuCheckMarkWidth();
HWIN_EXPORT static int MenuCheckMarkHeight();
HWIN_EXPORT static SIZE MenuCheckMarkSize();
HWIN_EXPORT static int SlowMachine();
HWIN_EXPORT static int MiddleEastEnabled();
HWIN_EXPORT static int MouseWheelPresent();
HWIN_EXPORT static int VirtualScreenXPosition();
HWIN_EXPORT static int VirtualScreenYPosition();
HWIN_EXPORT static POINT VirtualScreenPosition();
HWIN_EXPORT static int VirtualScreenWidth();
HWIN_EXPORT static int VirtualScreenHeight();
HWIN_EXPORT static SIZE VirtualScreenSize();
HWIN_EXPORT static int NumberOfMonitors();
HWIN_EXPORT static int MonitorsHasSameDisplayFormat();
HWIN_EXPORT static int InputMethodManagerEnabled();
HWIN_EXPORT static int FocusedBorderWidth();
HWIN_EXPORT static int FocusedBorderHeight();
HWIN_EXPORT static int TabletPC();
HWIN_EXPORT static int MediaCenterPC();
HWIN_EXPORT static int StarterEdition();
HWIN_EXPORT static int WindowsServer2003R2BuildNumber();
HWIN_EXPORT static int MouseHorizontalWheelPresent();
HWIN_EXPORT static int CaptionedWindowBorderPadding();
HWIN_EXPORT static int TabletPCInputTypeFlags();
HWIN_EXPORT static int MaximumTouches();
HWIN_EXPORT static int InTerminalServicesClientSession();
HWIN_EXPORT static int ShuttingDown();
HWIN_EXPORT static int IsTerminalServerSessionRemoteControlled();
HWIN_EXPORT static int IsCaretBlinkingEnabled();
HWIN_EXPORT static int ConvertibleSlateMode();
HWIN_EXPORT static int IsSystemDocked();
};
class ComputerName
{
HWIN_EXPORT ComputerName();
HWIN_EXPORT static String QueryComputerName(COMPUTER_NAME_FORMAT format);
public:
HWIN_EXPORT static String DnsDomain();
HWIN_EXPORT static String DnsFullyQualified();
HWIN_EXPORT static String DnsHostname();
HWIN_EXPORT static String NetBIOS();
HWIN_EXPORT static String PhysicalDnsDomain();
HWIN_EXPORT static String PhysicalDnsFullyQualified();
HWIN_EXPORT static String PhysicalDnsHostname();
HWIN_EXPORT static String PhysicalNetBIOS();
};
class UserName
{
HWIN_EXPORT UserName();
HWIN_EXPORT static String QueryUserName(EXTENDED_NAME_FORMAT format);
public:
HWIN_EXPORT static String FullyQualifiedDN();
HWIN_EXPORT static String SamCompatible();
HWIN_EXPORT static String Display();
HWIN_EXPORT static String UniqueId();
HWIN_EXPORT static String Canonical();
HWIN_EXPORT static String UserPrincipal();
HWIN_EXPORT static String CanonicalEx();
HWIN_EXPORT static String ServicePrincipal();
HWIN_EXPORT static String DnsDomain();
HWIN_EXPORT static String GivenName();
HWIN_EXPORT static String Surname();
};
class KnownFolder
{
HWIN_EXPORT KnownFolder();
HWIN_EXPORT static String QueryKnownFolder(const GUID& folderId,KnownFolderFlags flags, HANDLE userToken);
public:
HWIN_EXPORT static String NetworkFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ComputerFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String InternetFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ControlPanelFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PrintersFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SyncManagerFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SyncSetupFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ConflictFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SyncResultsFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String RecycleBinFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ConnectionsFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Fonts(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Desktop(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Startup(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Programs(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String StartMenu(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Recent(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SendTo(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Documents(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Favorites(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String NetHood(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PrintHood(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Templates(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String CommonStartup(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String CommonPrograms(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String CommonStartMenu(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PublicDesktop(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ProgramData(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String CommonTemplates(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PublicDocuments(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String RoamingAppData(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String LocalAppData(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String LocalAppDataLow(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String InternetCache(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Cookies(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String History(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String System(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SystemX86(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Windows(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Profile(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Pictures(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ProgramFilesX86(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ProgramFilesCommonX86(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ProgramFilesX64(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ProgramFilesCommonX64(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ProgramFiles(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ProgramFilesCommon(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String UserProgramFiles(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String UserProgramFilesCommon(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String AdminTools(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String CommonAdminTools(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Music(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Videos(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Ringtones(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PublicPictures(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PublicMusic(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PublicVideos(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PublicRingtones(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ResourceDir(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String LocalizedResourcesDir(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String CommonOEMLinks(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String CDBurning(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String UserProfiles(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Playlists(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SamplePlaylists(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SampleMusic(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SamplePictures(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SampleVideos(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PhotoAlbums(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Public(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ChangeRemovePrograms(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String AppUpdates(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String AddNewPrograms(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Downloads(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PublicDownloads(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SavedSearches(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String QuickLaunch(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Contacts(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SidebarParts(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SidebarDefaultParts(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PublicGameTasks(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String GameTasks(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SavedGames(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Games(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SEARCH_MAPI(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SEARCH_CSC(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Links(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String UsersFiles(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String UsersLibraries(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String SearchHome(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String OriginalImages(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String DocumentsLibrary(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String MusicLibrary(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PicturesLibrary(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String VideosLibrary(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String RecordedTVLibrary(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String HomeGroup(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String HomeGroupCurrentUser(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String DeviceMetadataStore(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Libraries(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PublicLibraries(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String UserPinned(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ImplicitAppShortcuts(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String AccountPictures(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String PublicUserTiles(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String AppsFolder(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String ApplicationShortcuts(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String RoamingTiles(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String RoamedTileImages(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
HWIN_EXPORT static String Screenshots(KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr);
};
};
}
}
#endif // __HWINENVIRONMENT_H__