Click here to Skip to main content
15,885,182 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 105.6K   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 : uint
        {
            Default = 0x00000000,
            NoAppContainerRedirection = 0x00010000,
            Create = 0x00008000,
            DontVerify = 0x00004000,
            DontUnexpand = 0x00002000,
            NoAlias = 0x00001000,
            Init = 0x00000800,
            DefaultPath = 0x00000400,
            NotParentRelative = 0x00000200,
            SimpleIDList = 0x00000100,
            AliasOnly = 0x80000000
        };
        HWIN_DEFINE_ENUM_FLAG_OPERATORS( KnownFolderFlags, uint )

        enum class AccessTimeoutFlags : DWord
        {
            None = 0x0000,
            TimeOutOn = 0x0001,
            FeedbackOn = 0x0002
        };
        HWIN_DEFINE_ENUM_FLAG_OPERATORS( AccessTimeoutFlags, DWord )

        struct AccessTimeOut
        {
            AccessTimeoutFlags Flags;
            TimeSpan TimeOut;
        };


        enum class FilterKeysFlags : DWord
        {
            FilterKeysOn = 0x00000001,
            Available = 0x00000002,
            HotKeyActive = 0x00000004,
            ConfirmHotKey = 0x00000008,
            HotKeySound = 0x00000010,
            Indicator = 0x00000020,
            ClickOn = 0x00000040
        };
        HWIN_DEFINE_ENUM_FLAG_OPERATORS( FilterKeysFlags, DWord )

        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
        };
        HWIN_DEFINE_ENUM_FLAG_OPERATORS( HighContrastFlags, DWord )

        struct HighContrast
        {
            HighContrastFlags Flags;
            WideString 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
        };
        HWIN_DEFINE_ENUM_FLAG_OPERATORS( MouseKeysFlags, DWord )


        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 WideString GetResourceString( const wchar_t* key, ... );
            HWIN_EXPORT static std::string GetResourceString( const char* key, ... );
            HWIN_EXPORT static WideString GetResourceString( const WideString& key, ... );

            HWIN_EXPORT static WideString NewLine( );
            HWIN_EXPORT static WideString Expand( const WideString& 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 WideString DesktopWallpaper( );
                HWIN_EXPORT static void SetDesktopWallpaper( const WideString& 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 WideString QueryComputerName( COMPUTER_NAME_FORMAT format );
            public:

                HWIN_EXPORT static WideString DnsDomain( );
                HWIN_EXPORT static WideString DnsFullyQualified( );
                HWIN_EXPORT static WideString DnsHostname( );
                HWIN_EXPORT static WideString NetBIOS( );
                HWIN_EXPORT static WideString PhysicalDnsDomain( );
                HWIN_EXPORT static WideString PhysicalDnsFullyQualified( );
                HWIN_EXPORT static WideString PhysicalDnsHostname( );
                HWIN_EXPORT static WideString PhysicalNetBIOS( );
            };


            class UserName
            {
                HWIN_EXPORT UserName( );
                HWIN_EXPORT static WideString QueryUserName( EXTENDED_NAME_FORMAT format );
            public:
                HWIN_EXPORT static WideString FullyQualifiedDN( );
                HWIN_EXPORT static WideString SamCompatible( );
                HWIN_EXPORT static WideString Display( );
                HWIN_EXPORT static WideString UniqueId( );
                HWIN_EXPORT static WideString Canonical( );
                HWIN_EXPORT static WideString UserPrincipal( );
                HWIN_EXPORT static WideString CanonicalEx( );
                HWIN_EXPORT static WideString ServicePrincipal( );
                HWIN_EXPORT static WideString DnsDomain( );
                HWIN_EXPORT static WideString GivenName( );
                HWIN_EXPORT static WideString Surname( );

            };


            class KnownFolder
            {
                HWIN_EXPORT KnownFolder( );
                HWIN_EXPORT static WideString QueryKnownFolder( const GUID& folderId, KnownFolderFlags flags, HANDLE userToken );
            public:

                HWIN_EXPORT static WideString NetworkFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ComputerFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString InternetFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ControlPanelFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PrintersFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SyncManagerFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SyncSetupFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ConflictFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SyncResultsFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString RecycleBinFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ConnectionsFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Fonts( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Desktop( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Startup( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Programs( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString StartMenu( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Recent( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SendTo( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Documents( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Favorites( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString NetHood( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PrintHood( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Templates( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString CommonStartup( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString CommonPrograms( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString CommonStartMenu( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PublicDesktop( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ProgramData( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString CommonTemplates( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PublicDocuments( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString RoamingAppData( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString LocalAppData( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString LocalAppDataLow( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString InternetCache( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Cookies( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString History( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString System( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SystemX86( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Windows( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Profile( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Pictures( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ProgramFilesX86( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ProgramFilesCommonX86( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ProgramFilesX64( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ProgramFilesCommonX64( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ProgramFiles( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ProgramFilesCommon( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString UserProgramFiles( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString UserProgramFilesCommon( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString AdminTools( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString CommonAdminTools( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Music( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Videos( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Ringtones( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PublicPictures( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PublicMusic( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PublicVideos( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PublicRingtones( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ResourceDir( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString LocalizedResourcesDir( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString CommonOEMLinks( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString CDBurning( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString UserProfiles( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Playlists( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SamplePlaylists( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SampleMusic( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SamplePictures( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SampleVideos( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PhotoAlbums( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Public( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ChangeRemovePrograms( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString AppUpdates( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString AddNewPrograms( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Downloads( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PublicDownloads( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SavedSearches( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString QuickLaunch( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Contacts( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SidebarParts( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SidebarDefaultParts( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PublicGameTasks( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString GameTasks( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SavedGames( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Games( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SEARCH_MAPI( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SEARCH_CSC( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Links( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString UsersFiles( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString UsersLibraries( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString SearchHome( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString OriginalImages( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString DocumentsLibrary( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString MusicLibrary( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PicturesLibrary( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString VideosLibrary( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString RecordedTVLibrary( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString HomeGroup( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString HomeGroupCurrentUser( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString DeviceMetadataStore( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString Libraries( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PublicLibraries( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString UserPinned( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ImplicitAppShortcuts( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString AccountPictures( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString PublicUserTiles( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString AppsFolder( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString ApplicationShortcuts( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString RoamingTiles( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString RoamedTileImages( KnownFolderFlags flags = KnownFolderFlags::Default, HANDLE userToken = nullptr );
                HWIN_EXPORT static WideString 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