ReactOS 0.4.16-dev-2293-g4d8327b
CFontCache.hpp
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Font Shell Extension
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: font list cache handling
5 * COPYRIGHT: Copyright 2019-2021 Mark Jansen <mark.jansen@reactos.org>
6 */
7
8#pragma once
9
11{
12private:
13 CStringW m_Name;
14 CStringW m_File;
21
22 void ReadAttrs();
23
24public:
26
27 const CStringW& Name() const; // Font display name stored in the registry
28 const bool Valid() const;
29
30 BOOL IsMarkDeleted() const { return m_bMarkDeleted; }
32
33 const CStringW& File(); // Full path or file, depending on how it's stored in the registry
34 const LARGE_INTEGER& FileSize();
35 const FILETIME& FileWriteTime();
37};
38
40{
41private:
44
45protected:
46 CFontCache();
47
48 void Insert(CAtlList<CFontInfo>& fonts, const CStringW& KeyName, PCWSTR Value);
49
50public:
51 void Read();
52
53 void SetFontDir(const LPCWSTR Path);
54 const CStringW& FontPath() const { return m_FontFolderPath; }
55 CStringW GetFontFilePath(const PCWSTR Path) const;
56
57 size_t Size();
58 CStringW Name(size_t Index); // Font display name stored in the registry
59 CStringW File(size_t Index);
60
61 CFontInfo* Find(const FontPidlEntry* fontEntry);
62 BOOL IsMarkDeleted(size_t Index) const;
63 void MarkDeleted(const FontPidlEntry* fontEntry);
64 CStringW Filename(CFontInfo* info, bool alwaysFullPath = false);
65
66 friend class CFontExtModule;
67};
68
CFontCache * g_FontCache
Definition: CFontCache.cpp:12
PRTL_UNICODE_STRING_BUFFER Path
CStringW m_FontFolderPath
Definition: CFontCache.hpp:43
void MarkDeleted(const FontPidlEntry *fontEntry)
Definition: CFontCache.cpp:181
CStringW GetFontFilePath(const PCWSTR Path) const
Definition: CFontCache.cpp:236
BOOL IsMarkDeleted(size_t Index) const
Definition: CFontCache.cpp:172
CFontInfo * Find(const FontPidlEntry *fontEntry)
Definition: CFontCache.cpp:157
CSimpleArray< CFontInfo > m_Fonts
Definition: CFontCache.hpp:42
void Read()
Definition: CFontCache.cpp:243
const CStringW & FontPath() const
Definition: CFontCache.hpp:54
size_t Size()
Definition: CFontCache.cpp:127
void Insert(CAtlList< CFontInfo > &fonts, const CStringW &KeyName, PCWSTR Value)
Definition: CFontCache.cpp:213
void SetFontDir(const LPCWSTR Path)
Definition: CFontCache.cpp:121
CStringW m_Name
Definition: CFontCache.hpp:13
void MarkDeleted()
Definition: CFontCache.hpp:31
FILETIME m_FileWriteTime
Definition: CFontCache.hpp:19
LARGE_INTEGER m_FileSize
Definition: CFontCache.hpp:18
BOOL m_bMarkDeleted
Definition: CFontCache.hpp:15
CStringW m_File
Definition: CFontCache.hpp:14
const CStringW & Name() const
Definition: CFontCache.cpp:25
BOOL IsMarkDeleted() const
Definition: CFontCache.hpp:30
bool m_FileRead
Definition: CFontCache.hpp:16
const bool Valid() const
Definition: CFontCache.cpp:30
const CStringW & File()
Definition: CFontCache.cpp:35
const FILETIME & FileWriteTime()
Definition: CFontCache.cpp:101
const LARGE_INTEGER & FileSize()
Definition: CFontCache.cpp:93
DWORD m_dwFileAttributes
Definition: CFontCache.hpp:20
void ReadAttrs()
Definition: CFontCache.cpp:70
DWORD FileAttributes()
Definition: CFontCache.cpp:109
bool m_AttrsRead
Definition: CFontCache.hpp:17
Definition: File.h:16
LPWSTR Name
Definition: desk.c:124
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define L(x)
Definition: resources.c:13
IN PVCB IN PBCB OUT PDIRENT IN USHORT IN POEM_STRING Filename
Definition: fatprocs.h:940
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
Definition: name.c:39
const uint16_t * PCWSTR
Definition: typedefs.h:57
Definition: pdh_main.c:96
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
Definition: wdfdevice.h:2705
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185