ReactOS 0.4.16-dev-2298-gcac013a
CEnumFonts Class Reference
Inheritance diagram for CEnumFonts:
Collaboration diagram for CEnumFonts:

Public Member Functions

 CEnumFonts ()
 
HRESULT Initialize (CFontExt *folder, DWORD flags)
 
STDMETHODIMP Next (ULONG celt, LPITEMIDLIST *rgelt, ULONG *pceltFetched) override
 
STDMETHODIMP Skip (ULONG celt) override
 
STDMETHODIMP Reset () override
 
STDMETHODIMP Clone (IEnumIDList **ppenum) override
 
- Public Member Functions inherited from ATL::CComObjectRootEx< CComMultiThreadModelNoCS >
 ~CComObjectRootEx ()
 
ULONG InternalAddRef ()
 
ULONG InternalRelease ()
 
void Lock ()
 
void Unlock ()
 
HRESULT _AtlInitialConstruct ()
 
- Public Member Functions inherited from ATL::CComObjectRootBase
 CComObjectRootBase ()
 
 ~CComObjectRootBase ()
 
void SetVoid (void *)
 
HRESULT _AtlFinalConstruct ()
 
HRESULT FinalConstruct ()
 
void InternalFinalConstructAddRef ()
 
void InternalFinalConstructRelease ()
 
void FinalRelease ()
 
- Public Member Functions inherited from IEnumIDList
HRESULT Next ([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] PITEMID_CHILD *rgelt, [out] ULONG *pceltFetched)
 
HRESULT Skip ([in] ULONG celt)
 
HRESULT Reset ()
 
HRESULT Clone ([out] IEnumIDList **ppenum)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 

Private Attributes

DWORD m_dwFlags
 
ULONG m_Index
 

Additional Inherited Members

- Public Types inherited from IEnumIDList
typedef IEnumIDListLPENUMIDLIST
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Static Public Member Functions inherited from ATL::CComObjectRootBase
static void WINAPI ObjectMain (bool)
 
static const struct _ATL_CATMAP_ENTRYGetCategoryMap ()
 
static HRESULT WINAPI InternalQueryInterface (void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 

Detailed Description

Definition at line 12 of file CEnumFonts.cpp.

Constructor & Destructor Documentation

◆ CEnumFonts()

CEnumFonts::CEnumFonts ( )
inline

Definition at line 21 of file CEnumFonts.cpp.

22 : m_dwFlags(0)
23 , m_Index(0)
24 {
25 }
ULONG m_Index
Definition: CEnumFonts.cpp:18
DWORD m_dwFlags
Definition: CEnumFonts.cpp:17

Member Function Documentation

◆ Clone()

STDMETHODIMP CEnumFonts::Clone ( IEnumIDList **  ppenum)
inlineoverride

Implements IEnumIDList.

Definition at line 96 of file CEnumFonts.cpp.

97 {
98 return E_NOTIMPL;
99 }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ Initialize()

HRESULT CEnumFonts::Initialize ( CFontExt folder,
DWORD  flags 
)
inline

Definition at line 27 of file CEnumFonts.cpp.

28 {
30 m_Index = 0;
31 return S_OK;
32 }
GLbitfield flags
Definition: glext.h:7161
#define S_OK
Definition: intsafe.h:52

◆ Next()

STDMETHODIMP CEnumFonts::Next ( ULONG  celt,
LPITEMIDLIST rgelt,
ULONG pceltFetched 
)
inlineoverride

Definition at line 35 of file CEnumFonts.cpp.

36 {
37 if (!rgelt || (!pceltFetched && celt != 1))
38 return E_POINTER;
39
40 HRESULT hr = S_OK;
41 ULONG Fetched = 0;
42
43 while (celt)
44 {
45 if (m_Index >= g_FontCache->Size())
46 {
47 hr = S_FALSE;
48 break;
49 }
50
52 {
54 if (Name.IsEmpty() || FileName.IsEmpty())
55 {
56 ERR("Why is Name or FileName empty?\n");
57 }
58 else
59 {
60 // Create a PIDL
62 if (!item)
63 {
64 hr = Fetched ? S_FALSE : E_OUTOFMEMORY;
65 break;
66 }
67 rgelt[Fetched++] = item;
68 --celt;
69 }
70 }
71 m_Index++;
72 }
73
74 if (pceltFetched)
75 *pceltFetched = Fetched;
76 return hr;
77 }
CFontCache * g_FontCache
Definition: CFontCache.cpp:12
#define ERR(fmt,...)
Definition: precomp.h:57
CStringW File(size_t Index)
Definition: CFontCache.cpp:146
BOOL IsMarkDeleted(size_t Index) const
Definition: CFontCache.cpp:172
CStringW Name(size_t Index)
Definition: CFontCache.cpp:135
size_t Size()
Definition: CFontCache.cpp:127
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
LPWSTR Name
Definition: desk.c:124
PITEMID_CHILD _ILCreate(LPCWSTR lpName, LPCWSTR lpFileName)
Definition: fontpidl.cpp:16
HRESULT hr
Definition: shlfolder.c:183
uint32_t ULONG
Definition: typedefs.h:59
#define S_FALSE
Definition: winerror.h:3451
#define E_POINTER
Definition: winerror.h:3480

◆ Reset()

STDMETHODIMP CEnumFonts::Reset ( )
inlineoverride

Implements IEnumIDList.

Definition at line 90 of file CEnumFonts.cpp.

91 {
92 m_Index = 0;
93 return S_OK;
94 }

◆ Skip()

STDMETHODIMP CEnumFonts::Skip ( ULONG  celt)
inlineoverride

Implements IEnumIDList.

Definition at line 79 of file CEnumFonts.cpp.

80 {
81 for (ULONG i = 0; i < celt && m_Index < g_FontCache->Size(); ++i)
82 {
83 while (m_Index < g_FontCache->Size() && g_FontCache->IsMarkDeleted(m_Index))
84 ++m_Index;
85 ++m_Index;
86 }
87 return S_OK;
88 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539

Member Data Documentation

◆ m_dwFlags

DWORD CEnumFonts::m_dwFlags
private

Definition at line 17 of file CEnumFonts.cpp.

Referenced by Initialize().

◆ m_Index

ULONG CEnumFonts::m_Index
private

Definition at line 18 of file CEnumFonts.cpp.

Referenced by Initialize(), Next(), Reset(), and Skip().


The documentation for this class was generated from the following file: