ReactOS 0.4.16-dev-1078-g21d3e29
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 83 of file CEnumFonts.cpp.

84 {
85 return E_NOTIMPL;
86 }
#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 celt--;
46
47 if (m_Index < g_FontCache->Size())
48 {
51 if (!item)
52 {
53 hr = Fetched ? S_FALSE : E_OUTOFMEMORY;
54 break;
55 }
56 rgelt[Fetched] = item;
57 m_Index++;
58 Fetched++;
59 }
60 else
61 {
62 hr = S_FALSE;
63 }
64 }
65
66 if (pceltFetched)
67 *pceltFetched = Fetched;
68 return hr;
69 }
CFontCache * g_FontCache
Definition: CFontCache.cpp:12
CStringW Name(size_t Index)
Definition: CFontCache.cpp:134
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
LPWSTR Name
Definition: desk.c:124
LPITEMIDLIST _ILCreate(LPCWSTR lpString, ULONG Index)
Definition: fontpidl.cpp:10
static ATOM item
Definition: dde.c:856
HRESULT hr
Definition: shlfolder.c:183
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
#define S_FALSE
Definition: winerror.h:2357
#define E_POINTER
Definition: winerror.h:2365

◆ Reset()

STDMETHODIMP CEnumFonts::Reset ( )
inlineoverride

Implements IEnumIDList.

Definition at line 77 of file CEnumFonts.cpp.

78 {
79 m_Index = 0;
80 return S_OK;
81 }

◆ Skip()

STDMETHODIMP CEnumFonts::Skip ( ULONG  celt)
inlineoverride

Implements IEnumIDList.

Definition at line 71 of file CEnumFonts.cpp.

72 {
73 m_Index += celt;
74 return S_OK;
75 }

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: