Click here to Skip to main content
15,892,746 members
Articles / Multimedia / DirectX

Rendering Text with Direct2D & DirectWrite

Rate me:
Please Sign up or sign in to vote.
4.94/5 (39 votes)
3 Jan 2015CPOL8 min read 106.5K   2.8K   76  
Direct2D, DirectWrite, Windows API, C++, std::shared_ptr and more
// 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__

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect Sea Surveillance AS
Norway Norway
Chief Architect - Sea Surveillance AS.

Specializing in integrated operations and high performance computing solutions.

I’ve been fooling around with computers since the early eighties, I’ve even done work on CP/M and MP/M.

Wrote my first “real” program on a BBC micro model B based on a series in a magazine at that time. It was fun and I got hooked on this thing called programming ...

A few Highlights:

  • High performance application server development
  • Model Driven Architecture and Code generators
  • Real-Time Distributed Solutions
  • C, C++, C#, Java, TSQL, PL/SQL, Delphi, ActionScript, Perl, Rexx
  • Microsoft SQL Server, Oracle RDBMS, IBM DB2, PostGreSQL
  • AMQP, Apache qpid, RabbitMQ, Microsoft Message Queuing, IBM WebSphereMQ, Oracle TuxidoMQ
  • Oracle WebLogic, IBM WebSphere
  • Corba, COM, DCE, WCF
  • AspenTech InfoPlus.21(IP21), OsiSoft PI


More information about what I do for a living can be found at: harlinn.com or LinkedIn

You can contact me at espen@harlinn.no

Comments and Discussions