48#define FONTPERSIST_ITALIC 0x02
49#define FONTPERSIST_UNDERLINE 0x04
50#define FONTPERSIST_STRIKETHROUGH 0x08
87 0, 0, { (
DWORD_PTR)(__FILE__
": OLEFontImpl_csHFONTLIST") }
182 if(
item->int_refs == 0 &&
item->total_refs == 0)
327 static WCHAR fname[] =
L"System";
329 fd.cbSizeofstruct =
sizeof(
fd);
330 fd.lpstrName = fname;
331 fd.cySize.Lo = 80000;
365 static const LPCWSTR dispid_mapping[] =
384 hres = IConnectionPoint_EnumConnections(this->pPropertyNotifyCP, &pEnum);
387 while(IEnumConnections_Next(pEnum, 1, &CD,
NULL) ==
S_OK) {
391 IPropertyNotifySink_OnChanged(
sink, dispID);
392 IPropertyNotifySink_Release(
sink);
393 IUnknown_Release(CD.pUnk);
395 IEnumConnections_Release(pEnum);
398 hres = IConnectionPoint_EnumConnections(this->pFontEventsCP, &pEnum);
401 DISPPARAMS dispparams;
408 dispparams.cArgs = 1;
409 dispparams.cNamedArgs = 0;
410 dispparams.rgdispidNamedArgs =
NULL;
411 dispparams.rgvarg = &vararg;
413 while(IEnumConnections_Next(pEnum, 1, &CD,
NULL) ==
S_OK) {
421 IFontEventsDisp_Release(disp);
422 IUnknown_Release(CD.pUnk);
425 IEnumConnections_Release(pEnum);
453 *ppvObject = &this->IDispatch_iface;
458 *ppvObject = &this->IPersistStream_iface;
462 *ppvObject = &this->IConnectionPointContainer_iface;
466 *ppvObject = &this->IPersistPropertyBag_iface;
484 TRACE(
"%p, refcount %lu.\n", iface,
ref);
493 TRACE(
"%p, refcount %lu.\n", iface,
ref);
500 if (fontlist_refs == 0)
548 if (!
This->dirty)
return;
568 if(text_face[0] &&
lstrcmpiW(text_face,
This->description.lpstrName))
571 data.orig_cs =
This->description.sCharset;
613 This->description.lpstrName =
wcsdup(text_face);
616 This->description.sCharset =
tm.tmCharSet;
618 This->nRealHeight =
tm.tmHeight -
tm.tmInternalLeading;
684 psize->Lo =
MulDiv(this->nRealHeight, this->cyHimetric * 72 * 10000, this->cyLogical * 2540);
704 TRACE(
"(%p)->(%p)\n",
this, pbold);
723 TRACE(
"(%p)->(%d)\n",
this, bold);
738 TRACE(
"(%p)->(%p)\n",
this, pitalic);
758 TRACE(
"(%p)->(%d)\n",
this, italic);
774 TRACE(
"(%p)->(%p)\n",
this, punderline);
794 TRACE(
"(%p)->(%d)\n",
this, underline);
807 BOOL* pstrikethrough)
810 TRACE(
"(%p)->(%p)\n",
this, pstrikethrough);
812 if (pstrikethrough==0)
817 *pstrikethrough = this->
description.fStrikethrough;
830 TRACE(
"(%p)->(%d)\n",
this, strikethrough);
846 TRACE(
"(%p)->(%p)\n",
this, pweight);
882 TRACE(
"(%p)->(%p)\n",
this, pcharset);
918 TRACE(
"(%p)->(%p)\n",
this, phfont);
924 *phfont = this->gdiFont;
925 TRACE(
"Returning %p\n", *phfont);
939 TRACE(
"(%p)->(%p)\n",
this, ppfont);
990 INT left_len,right_len;
992 if(pFontOther ==
NULL)
994 else if (
left->description.cySize.Lo !=
right->description.cySize.Lo)
996 else if (
left->description.cySize.Hi !=
right->description.cySize.Hi)
998 else if (
left->description.sWeight !=
right->description.sWeight)
1000 else if (
left->description.sCharset !=
right->description.sCharset)
1002 else if (
left->description.fItalic !=
right->description.fItalic)
1004 else if (
left->description.fUnderline !=
right->description.fUnderline)
1006 else if (
left->description.fStrikethrough !=
right->description.fStrikethrough)
1013 right->description.lpstrName, right_len);
1030 TRACE(
"%p, %ld, %ld.\n", iface, cyLogical, cyHimetric);
1032 if(cyLogical == 0 || cyHimetric == 0)
1037 if(cyLogical == 1 && cyHimetric == 1)
1040 this->cyLogical = cyLogical;
1041 this->cyHimetric = cyHimetric;
1055 HFONT hOldFont, hNewFont;
1058 IFont_get_hFont(iface, &hNewFont);
1106 FIXME(
"(%p)->(%p): Stub\n",
this,
hdc);
1150 return IFont_QueryInterface(&this->IFont_iface,
riid, ppvoid);
1160 return IFont_Release(&this->IFont_iface);
1170 return IFont_AddRef(&this->IFont_iface);
1178 unsigned int* pctinfo)
1181 TRACE(
"(%p)->(%p)\n",
this, pctinfo);
1200 TRACE(
"(%p, iTInfo=%d, lcid=%04x, %p)\n",
this, iTInfo, (
int)
lcid, ppTInfo);
1205 ERR(
"Could not load the stdole2.tlb?\n");
1209 ITypeLib_Release(tl);
1211 FIXME(
"Did not IDispatch typeinfo from typelib, hres %#lx.\n",
hres);
1222 LPOLESTR* rgszNames,
1233 rgszNames, cNames, (
int)
lcid, rgDispId);
1237 hres = IDispatch_GetTypeInfo(iface, 0,
lcid, &pTInfo);
1240 ERR(
"GetTypeInfo failed.\n");
1246 ITypeInfo_Release(pTInfo);
1261 DISPPARAMS* pDispParams,
1263 EXCEPINFO* pExepInfo,
1269 TRACE(
"%p, %ld, %s, %#lx, %#x, %p, %p, %p, %p.\n", iface, dispIdMember,
1285 ERR(
"null pVarResult not allowed when DISPATCH_PROPERTYGET specified\n");
1293 ERR(
"null pDispParams not allowed when DISPATCH_PROPERTYPUT specified\n");
1296 if (pDispParams->cArgs != 1)
1298 ERR(
"param count for DISPATCH_PROPERTYPUT was %d instead of 1\n", pDispParams->cArgs);
1304 ERR(
"one of DISPATCH_PROPERTYGET or DISPATCH_PROPERTYPUT must be specified\n");
1308 switch (dispIdMember) {
1312 return IFont_get_Name(&this->IFont_iface, &
V_BSTR(pVarResult));
1321 hr = IFont_put_Name(&this->IFont_iface,
V_BSTR(&vararg));
1330 hr = IFont_get_Bold(&this->IFont_iface, &
value);
1332 V_BOOL(pVarResult) =
value ? VARIANT_TRUE : VARIANT_FALSE;
1342 hr = IFont_put_Bold(&this->IFont_iface,
V_BOOL(&vararg));
1351 hr = IFont_get_Italic(&this->IFont_iface, &
value);
1353 V_BOOL(pVarResult) =
value ? VARIANT_TRUE : VARIANT_FALSE;
1363 hr = IFont_put_Italic(&this->IFont_iface,
V_BOOL(&vararg));
1372 hr = IFont_get_Underline(&this->IFont_iface, &
value);
1374 V_BOOL(pVarResult) =
value ? VARIANT_TRUE : VARIANT_FALSE;
1384 hr = IFont_put_Underline(&this->IFont_iface,
V_BOOL(&vararg));
1393 hr = IFont_get_Strikethrough(&this->IFont_iface, &
value);
1395 V_BOOL(pVarResult) =
value ? VARIANT_TRUE : VARIANT_FALSE;
1405 hr = IFont_put_Strikethrough(&this->IFont_iface,
V_BOOL(&vararg));
1414 return IFont_get_Size(&this->IFont_iface, &
V_CY(pVarResult));
1423 hr = IFont_put_Size(&this->IFont_iface,
V_CY(&vararg));
1432 return IFont_get_Weight(&this->IFont_iface, &
V_I2(pVarResult));
1441 hr = IFont_put_Weight(&this->IFont_iface,
V_I2(&vararg));
1459 hr = IFont_put_Charset(&this->IFont_iface,
V_I2(&vararg));
1466 ERR(
"member not found for dispid %#lx.\n", dispIdMember);
1492 return IFont_QueryInterface(&this->IFont_iface,
riid, ppvoid);
1503 return IFont_Release(&this->IFont_iface);
1514 return IFont_AddRef(&this->IFont_iface);
1524 TRACE(
"(%p,%p)\n",iface,pClassID);
1541 TRACE(
"(%p)\n",iface);
1572 char readBuffer[0x100];
1577 IStream_Read(pLoadStream, &
version,
sizeof(
BYTE), &cbRead);
1581 IStream_Read(pLoadStream, &this->
description.sCharset,
sizeof(
WORD), &cbRead);
1593 IStream_Read(pLoadStream, &this->
description.sWeight,
sizeof(
WORD), &cbRead);
1597 IStream_Read(pLoadStream, &this->
description.cySize.Lo,
sizeof(
DWORD), &cbRead);
1603 IStream_Read(pLoadStream, &string_size,
sizeof(
BYTE), &cbRead);
1606 IStream_Read(pLoadStream, readBuffer, string_size, &cbRead);
1607 if (cbRead != string_size)
return E_FAIL;
1638 TRACE(
"(%p)->(%p %d)\n",
this, pOutStream, fClearDirty);
1641 IStream_Write(pOutStream, &
version,
sizeof(
BYTE), &written);
1645 IStream_Write(pOutStream, &this->
description.sCharset,
sizeof(
WORD), &written);
1664 IStream_Write(pOutStream, &this->
description.sWeight,
sizeof(
WORD), &written);
1668 IStream_Write(pOutStream, &this->
description.cySize.Lo,
sizeof(
DWORD), &written);
1675 IStream_Write(pOutStream, &string_size,
sizeof(
BYTE), &written);
1683 writeBuffer, string_size,
NULL,
NULL );
1685 IStream_Write(pOutStream,
writeBuffer, string_size, &written);
1688 if (written != string_size)
return E_FAIL;
1706 pcbSize->
u.HighPart = 0;
1707 pcbSize->
u.LowPart = 0;
1709 pcbSize->
u.LowPart +=
sizeof(
BYTE);
1710 pcbSize->
u.LowPart +=
sizeof(
WORD);
1711 pcbSize->
u.LowPart +=
sizeof(
BYTE);
1712 pcbSize->
u.LowPart +=
sizeof(
WORD);
1713 pcbSize->
u.LowPart +=
sizeof(
DWORD);
1714 pcbSize->
u.LowPart +=
sizeof(
BYTE);
1745 return IFont_QueryInterface(&this->IFont_iface,
riid, ppvoid);
1756 return IFont_Release(&this->IFont_iface);
1767 return IFont_AddRef(&this->IFont_iface);
1779 FIXME(
"(%p)->(%p): stub\n",
this, ppEnum);
1806static const IConnectionPointContainerVtbl
1823 return IFont_QueryInterface(&this->IFont_iface,
riid,ppvObj);
1830 return IFont_AddRef(&this->IFont_iface);
1837 return IFont_Release(&this->IFont_iface);
1843 FIXME(
"(%p,%p), stub!\n", iface, classid);
1850 FIXME(
"(%p), stub!\n", iface);
1872 iRes = IPropertyBag_Read(pPropBag,
L"Name", &
value, pErrorLog);
1877 iRes = IFont_put_Name(&this->IFont_iface,
V_BSTR(&
value));
1885 iRes = IPropertyBag_Read(pPropBag,
L"Size", &
value, pErrorLog);
1890 iRes = IFont_put_Size(&this->IFont_iface,
V_CY(&
value));
1899 iRes = IPropertyBag_Read(pPropBag,
L"Charset", &
value, pErrorLog);
1904 iRes = IFont_put_Charset(&this->IFont_iface,
V_I2(&
value));
1913 iRes = IPropertyBag_Read(pPropBag,
L"Weight", &
value, pErrorLog);
1918 iRes = IFont_put_Weight(&this->IFont_iface,
V_I2(&
value));
1927 iRes = IPropertyBag_Read(pPropBag,
L"Underline", &
value, pErrorLog);
1932 iRes = IFont_put_Underline(&this->IFont_iface,
V_BOOL(&
value));
1941 iRes = IPropertyBag_Read(pPropBag,
L"Italic", &
value, pErrorLog);
1946 iRes = IFont_put_Italic(&this->IFont_iface,
V_BOOL(&
value));
1955 iRes = IPropertyBag_Read(pPropBag,
L"Strikethrough", &
value, pErrorLog);
1960 IFont_put_Strikethrough(&this->IFont_iface,
V_BOOL(&
value));
1969 WARN(
"-- %#lx.\n", iRes);
1975 BOOL fSaveAllProperties
1977 FIXME(
"(%p,%p,%d,%d), stub!\n", iface, pPropBag, fClearDirty, fSaveAllProperties);
2046 TRACE(
"returning %p\n", newObject);
2059 TRACE(
"(%p)\n", fontDesc);
2097 IClassFactory_AddRef(iface);
2125 FIXME(
"(%p)->(%d),stub!\n",
This,dolock);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
const GUID IID_IClassFactory
HRESULT CreateConnectionPoint(IUnknown *pUnk, REFIID riid, IConnectionPoint **pCP)
#define WideCharToMultiByte
#define MultiByteToWideChar
static const WCHAR version[]
INT WINAPI CompareStringW(LCID lcid, DWORD flags, LPCWSTR str1, INT len1, LPCWSTR str2, INT len2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
static wchar_t * wcsdup(const wchar_t *str)
HRESULT WINAPI DispGetIDsOfNames(ITypeInfo *ptinfo, OLECHAR **rgszNames, UINT cNames, DISPID *rgdispid)
static HRESULT WINAPI OLEFontImpl_put_Italic(IFont *iface, BOOL italic)
static const IPersistStreamVtbl OLEFontImpl_IPersistStream_VTable
static ULONG WINAPI SFCF_AddRef(LPCLASSFACTORY iface)
static void OLEFont_SendNotify(OLEFontImpl *this, DISPID dispID)
static HRESULT WINAPI OLEFontImpl_put_Charset(IFont *iface, short charset)
static HRESULT WINAPI OLEFontImpl_Save(IPersistStream *iface, IStream *pOutStream, BOOL fClearDirty)
static OLEFontImpl * impl_from_IFont(IFont *iface)
static ULONG WINAPI SFCF_Release(LPCLASSFACTORY iface)
struct _HFONTItem HFONTItem
static HRESULT WINAPI OLEFontImpl_IPersistPropertyBag_GetClassID(IPersistPropertyBag *iface, CLSID *classid)
#define FONTPERSIST_UNDERLINE
static IClassFactoryImpl STDFONT_CF
HRESULT WINAPI OleCreateFontIndirect(LPFONTDESC lpFontDesc, REFIID riid, LPVOID *ppvObj)
static HRESULT WINAPI OLEFontImpl_AddRefHfont(IFont *iface, HFONT hfont)
static void delete_dc(void)
static HRESULT WINAPI OLEFontImpl_Load(IPersistStream *iface, IStream *pLoadStream)
static const IConnectionPointContainerVtbl OLEFontImpl_IConnectionPointContainer_VTable
static HRESULT WINAPI OLEFontImpl_get_Weight(IFont *iface, short *pweight)
static HRESULT WINAPI OLEFontImpl_QueryTextMetrics(IFont *iface, TEXTMETRICOLE *ptm)
#define FONTPERSIST_ITALIC
static HRESULT WINAPI OLEFontImpl_IDispatch_QueryInterface(IDispatch *iface, REFIID riid, VOID **ppvoid)
struct _HFONTItem * PHFONTItem
static const IFontVtbl OLEFontImpl_VTable
static ULONG WINAPI OLEFontImpl_IConnectionPointContainer_Release(IConnectionPointContainer *iface)
static HRESULT inc_ext_ref(HFONT hfont)
void _get_STDFONT_CF(LPVOID *ppv)
static HRESULT inc_int_ref(HFONT hfont)
static int CALLBACK font_enum_proc(const LOGFONTW *elf, const TEXTMETRICW *ntm, DWORD type, LPARAM lp)
static HRESULT WINAPI OLEFontImpl_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static ULONG WINAPI OLEFontImpl_IDispatch_AddRef(IDispatch *iface)
static HRESULT WINAPI OLEFontImpl_ReleaseHfont(IFont *iface, HFONT hfont)
static ULONG WINAPI OLEFontImpl_IConnectionPointContainer_AddRef(IConnectionPointContainer *iface)
static ULONG WINAPI OLEFontImpl_IPersistPropertyBag_Release(IPersistPropertyBag *iface)
static HFONTItem * find_hfontitem(HFONT hfont)
static CRITICAL_SECTION_DEBUG OLEFontImpl_csHFONTLIST_debug
static void realize_font(OLEFontImpl *This)
static const IClassFactoryVtbl SFCF_Vtbl
static HRESULT WINAPI OLEFontImpl_IsDirty(IPersistStream *iface)
static HRESULT WINAPI OLEFontImpl_SetRatio(IFont *iface, LONG cyLogical, LONG cyHimetric)
static void HFONTItem_Delete(PHFONTItem item)
static HRESULT WINAPI SFCF_QueryInterface(IClassFactory *iface, REFIID riid, void **obj)
static HRESULT WINAPI OLEFontImpl_get_Charset(IFont *iface, short *pcharset)
static HRESULT WINAPI OLEFontImpl_get_Size(IFont *iface, CY *psize)
static HRESULT WINAPI OLEFontImpl_IsEqual(IFont *iface, IFont *pFontOther)
static HRESULT WINAPI OLEFontImpl_put_Weight(IFont *iface, short weight)
static HRESULT WINAPI SFCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
static HRESULT WINAPI OLEFontImpl_get_Italic(IFont *iface, BOOL *pitalic)
static HRESULT WINAPI OLEFontImpl_QueryInterface(IFont *iface, REFIID riid, void **ppvObject)
static OLEFontImpl * impl_from_IDispatch(IDispatch *iface)
static HRESULT WINAPI OLEFontImpl_FindConnectionPoint(IConnectionPointContainer *iface, REFIID riid, IConnectionPoint **ppCp)
static ULONG WINAPI OLEFontImpl_AddRef(IFont *iface)
#define FONTPERSIST_STRIKETHROUGH
static HRESULT dec_int_ref(HFONT hfont)
static HRESULT WINAPI OLEFontImpl_put_Strikethrough(IFont *iface, BOOL strikethrough)
static HRESULT WINAPI OLEFontImpl_SetHdc(IFont *iface, HDC hdc)
static HRESULT WINAPI OLEFontImpl_IPersistStream_QueryInterface(IPersistStream *iface, REFIID riid, VOID **ppvoid)
static OLEFontImpl * OLEFontImpl_Construct(const FONTDESC *fontDesc)
static HRESULT WINAPI OLEFontImpl_put_Underline(IFont *iface, BOOL underline)
static HRESULT WINAPI OLEFontImpl_put_Size(IFont *iface, CY size)
static HRESULT WINAPI OLEFontImpl_get_hFont(IFont *iface, HFONT *phfont)
static HRESULT WINAPI SFCF_LockServer(LPCLASSFACTORY iface, BOOL dolock)
static HRESULT WINAPI OLEFontImpl_GetSizeMax(IPersistStream *iface, ULARGE_INTEGER *pcbSize)
static HRESULT WINAPI OLEFontImpl_IPersistPropertyBag_QueryInterface(IPersistPropertyBag *iface, REFIID riid, LPVOID *ppvObj)
static OLEFontImpl * impl_from_IPersistPropertyBag(IPersistPropertyBag *iface)
static ULONG WINAPI OLEFontImpl_IPersistPropertyBag_AddRef(IPersistPropertyBag *iface)
static HRESULT WINAPI OLEFontImpl_put_Name(IFont *iface, BSTR name)
static HRESULT WINAPI OLEFontImpl_IConnectionPointContainer_QueryInterface(IConnectionPointContainer *iface, REFIID riid, VOID **ppvoid)
static HRESULT WINAPI OLEFontImpl_get_Name(IFont *iface, BSTR *pname)
static HRESULT WINAPI OLEFontImpl_Invoke(IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
static struct list OLEFontImpl_hFontList
static HRESULT WINAPI OLEFontImpl_IPersistPropertyBag_InitNew(IPersistPropertyBag *iface)
static ULONG WINAPI OLEFontImpl_IPersistStream_AddRef(IPersistStream *iface)
static HRESULT dec_ext_ref(HFONT hfont)
static HRESULT WINAPI OLEFontImpl_GetTypeInfo(IDispatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static CRITICAL_SECTION OLEFontImpl_csHFONTLIST
static HRESULT WINAPI OLEFontImpl_Clone(IFont *iface, IFont **ppfont)
static HRESULT WINAPI OLEFontImpl_EnumConnectionPoints(IConnectionPointContainer *iface, IEnumConnectionPoints **ppEnum)
static OLEFontImpl * impl_from_IPersistStream(IPersistStream *iface)
static OLEFontImpl * impl_from_IConnectionPointContainer(IConnectionPointContainer *iface)
static void OLEFontImpl_Destroy(OLEFontImpl *fontDesc)
static HRESULT WINAPI OLEFontImpl_get_Underline(IFont *iface, BOOL *punderline)
static const IDispatchVtbl OLEFontImpl_IDispatch_VTable
static IClassFactoryImpl * impl_from_IClassFactory(IClassFactory *iface)
static ULONG WINAPI OLEFontImpl_IDispatch_Release(IDispatch *iface)
static HRESULT WINAPI OLEFontImpl_GetClassID(IPersistStream *iface, CLSID *pClassID)
static HRESULT WINAPI OLEFontImpl_get_Strikethrough(IFont *iface, BOOL *pstrikethrough)
static HRESULT WINAPI OLEFontImpl_IPersistPropertyBag_Load(IPersistPropertyBag *iface, IPropertyBag *pPropBag, IErrorLog *pErrorLog)
static HRESULT WINAPI OLEFontImpl_GetTypeInfoCount(IDispatch *iface, unsigned int *pctinfo)
static ULONG WINAPI OLEFontImpl_Release(IFont *iface)
static HRESULT WINAPI OLEFontImpl_get_Bold(IFont *iface, BOOL *pbold)
static HRESULT add_hfontitem(HFONT hfont)
static const IPersistPropertyBagVtbl OLEFontImpl_IPersistPropertyBag_VTable
static HRESULT WINAPI OLEFontImpl_IPersistPropertyBag_Save(IPersistPropertyBag *iface, IPropertyBag *pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties)
static ULONG WINAPI OLEFontImpl_IPersistStream_Release(IPersistStream *iface)
static HRESULT WINAPI OLEFontImpl_put_Bold(IFont *iface, BOOL bold)
HRESULT WINAPI LoadTypeLib(const OLECHAR *szFile, ITypeLib **pptLib)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum GLboolean sink
static const CLSID CLSID_StdFont
static VARIANTARG static DISPID
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
BSTR WINAPI SysAllocString(LPCOLESTR str)
#define DISPATCH_PROPERTYPUT
#define DISPATCH_PROPERTYGET
struct tagFONTDESC FONTDESC
#define DISPID_FONT_STRIKE
#define CONNECT_E_NOCONNECTION
#define DISPID_FONT_ITALIC
#define CTL_E_INVALIDPROPERTYVALUE
#define DISPID_FONT_CHARSET
#define DISPID_FONT_WEIGHT
#define DISPID_FONT_CHANGED
#define DISPID_FONT_UNDER
const GUID IID_IConnectionPointContainer
const GUID IID_IConnectionPoint
const GUID IID_IPropertyNotifySink
const GUID IID_IFontEventsDisp
static HANDLE ACCESS_MASK ULONG attributes
const GUID IID_IPersistStream
const GUID IID_IPersistPropertyBag
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
_Must_inspect_result_ _Out_ LPSIZE psize
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
WCHAR lfFaceName[LF_FACESIZE]
IConnectionPoint * pFontEventsCP
IConnectionPoint * pPropertyNotifyCP
IPersistPropertyBag IPersistPropertyBag_iface
IDispatch IDispatch_iface
IPersistStream IPersistStream_iface
IConnectionPointContainer IConnectionPointContainer_iface
LIST_ENTRY ProcessLocksList
struct _ULARGE_INTEGER::@4637 u
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, const VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
HRESULT WINAPI VariantChangeTypeEx(VARIANTARG *pvargDest, const VARIANTARG *pvargSrc, LCID lcid, USHORT wFlags, VARTYPE vt)
void WINAPI VariantInit(VARIANTARG *pVarg)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
#define DISP_E_UNKNOWNINTERFACE
#define DISP_E_BADPARAMCOUNT
#define DISP_E_MEMBERNOTFOUND
#define DISP_E_PARAMNOTOPTIONAL
BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
int WINAPI EnumFontFamiliesExW(_In_ HDC, _In_ PLOGFONTW, _In_ FONTENUMPROCW, _In_ LPARAM, _In_ DWORD)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
int WINAPI GetTextFaceW(_In_ HDC hdc, _In_ int c, _Out_writes_to_opt_(c, return) LPWSTR lpName)
#define OUT_CHARACTER_PRECIS
#define CLIP_DEFAULT_PRECIS
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
BOOL WINAPI DeleteDC(_In_ HDC)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HDC WINAPI GetDC(_In_opt_ HWND)