29#define NONAMELESSUNION
30#define NONAMELESSSTRUCT
51#define FONTPERSIST_ITALIC 0x02
52#define FONTPERSIST_UNDERLINE 0x04
53#define FONTPERSIST_STRIKETHROUGH 0x08
90 0, 0, { (
DWORD_PTR)(__FILE__
": OLEFontImpl_csHFONTLIST") }
185 if(
item->int_refs == 0 &&
item->total_refs == 0)
347 static WCHAR fname[] = {
'S',
'y',
's',
't',
'e',
'm',0 };
349 fd.cbSizeofstruct =
sizeof(
fd);
350 fd.lpstrName = fname;
351 fd.cySize.s.Lo = 80000;
383 static const WCHAR wszName[] = {
'N',
'a',
'm',
'e',0};
384 static const WCHAR wszSize[] = {
'S',
'i',
'z',
'e',0};
385 static const WCHAR wszBold[] = {
'B',
'o',
'l',
'd',0};
386 static const WCHAR wszItalic[] = {
'I',
't',
'a',
'l',
'i',
'c',0};
387 static const WCHAR wszUnder[] = {
'U',
'n',
'd',
'e',
'r',
'l',
'i',
'n',
'e',0};
388 static const WCHAR wszStrike[] = {
'S',
't',
'r',
'i',
'k',
'e',
't',
'h',
'r',
'o',
'u',
'g',
'h',0};
389 static const WCHAR wszWeight[] = {
'W',
'e',
'i',
'g',
'h',
't',0};
390 static const WCHAR wszCharset[] = {
'C',
'h',
'a',
'r',
's',
'e',
't',0};
391 static const LPCWSTR dispid_mapping[] =
410 hres = IConnectionPoint_EnumConnections(this->pPropertyNotifyCP, &pEnum);
413 while(IEnumConnections_Next(pEnum, 1, &CD,
NULL) ==
S_OK) {
417 IPropertyNotifySink_OnChanged(
sink, dispID);
418 IPropertyNotifySink_Release(
sink);
419 IUnknown_Release(CD.pUnk);
421 IEnumConnections_Release(pEnum);
424 hres = IConnectionPoint_EnumConnections(this->pFontEventsCP, &pEnum);
427 DISPPARAMS dispparams;
434 dispparams.cArgs = 1;
435 dispparams.cNamedArgs = 0;
436 dispparams.rgdispidNamedArgs =
NULL;
437 dispparams.rgvarg = &vararg;
439 while(IEnumConnections_Next(pEnum, 1, &CD,
NULL) ==
S_OK) {
447 IFontEventsDisp_Release(disp);
448 IUnknown_Release(CD.pUnk);
451 IEnumConnections_Release(pEnum);
484 *
ppvObject = &this->IPersistStream_iface;
488 *
ppvObject = &this->IConnectionPointContainer_iface;
492 *
ppvObject = &this->IPersistPropertyBag_iface;
496 *
ppvObject = &this->IPersistStreamInit_iface;
517 TRACE(
"(%p)->(ref=%d)\n",
this, this->
ref);
529 TRACE(
"(%p)->(ref=%d)\n",
this, this->ref);
538 if (fontlist_refs == 0)
586 if (!
This->dirty)
return;
606 if(text_face[0] &&
lstrcmpiW(text_face,
This->description.lpstrName))
609 data.orig_cs =
This->description.sCharset;
654 This->description.sCharset =
tm.tmCharSet;
656 This->nRealHeight =
tm.tmHeight -
tm.tmInternalLeading;
726 this->cyHimetric * 72 * 10000,
727 this->cyLogical * 2540);
759 TRACE(
"(%p)->(%p)\n",
this, pbold);
778 TRACE(
"(%p)->(%d)\n",
this, bold);
793 TRACE(
"(%p)->(%p)\n",
this, pitalic);
813 TRACE(
"(%p)->(%d)\n",
this, italic);
829 TRACE(
"(%p)->(%p)\n",
this, punderline);
849 TRACE(
"(%p)->(%d)\n",
this, underline);
862 BOOL* pstrikethrough)
865 TRACE(
"(%p)->(%p)\n",
this, pstrikethrough);
867 if (pstrikethrough==0)
872 *pstrikethrough = this->
description.fStrikethrough;
885 TRACE(
"(%p)->(%d)\n",
this, strikethrough);
901 TRACE(
"(%p)->(%p)\n",
this, pweight);
937 TRACE(
"(%p)->(%p)\n",
this, pcharset);
973 TRACE(
"(%p)->(%p)\n",
this, phfont);
979 *phfont = this->gdiFont;
980 TRACE(
"Returning %p\n", *phfont);
994 TRACE(
"(%p)->(%p)\n",
this, ppfont);
1002 if (newObject==
NULL)
1045 INT left_len,right_len;
1047 if(pFontOther ==
NULL)
1049 else if (
left->description.cySize.s.Lo !=
right->description.cySize.s.Lo)
1051 else if (
left->description.cySize.s.Hi !=
right->description.cySize.s.Hi)
1053 else if (
left->description.sWeight !=
right->description.sWeight)
1055 else if (
left->description.sCharset !=
right->description.sCharset)
1057 else if (
left->description.fItalic !=
right->description.fItalic)
1059 else if (
left->description.fUnderline !=
right->description.fUnderline)
1061 else if (
left->description.fStrikethrough !=
right->description.fStrikethrough)
1068 right->description.lpstrName, right_len);
1084 TRACE(
"(%p)->(%d, %d)\n",
this, cyLogical, cyHimetric);
1086 if(cyLogical == 0 || cyHimetric == 0)
1091 if(cyLogical == 1 && cyHimetric == 1)
1094 this->cyLogical = cyLogical;
1095 this->cyHimetric = cyHimetric;
1109 HFONT hOldFont, hNewFont;
1112 IFont_get_hFont(iface, &hNewFont);
1160 FIXME(
"(%p)->(%p): Stub\n",
this,
hdc);
1204 return IFont_QueryInterface(&this->IFont_iface,
riid, ppvoid);
1214 return IFont_Release(&this->IFont_iface);
1224 return IFont_AddRef(&this->IFont_iface);
1232 unsigned int* pctinfo)
1235 TRACE(
"(%p)->(%p)\n",
this, pctinfo);
1250 static const WCHAR stdole2tlb[] = {
's',
't',
'd',
'o',
'l',
'e',
'2',
'.',
't',
'l',
'b',0};
1255 TRACE(
"(%p, iTInfo=%d, lcid=%04x, %p)\n",
this, iTInfo, (
int)lcid, ppTInfo);
1260 ERR(
"Could not load the stdole2.tlb?\n");
1264 ITypeLib_Release(tl);
1266 FIXME(
"Did not IDispatch typeinfo from typelib, hres %x\n",
hres);
1288 rgszNames, cNames, (
int)lcid, rgDispId);
1292 hres = IDispatch_GetTypeInfo(iface, 0, lcid, &pTInfo);
1295 ERR(
"GetTypeInfo failed.\n");
1301 ITypeInfo_Release(pTInfo);
1316 DISPPARAMS* pDispParams,
1318 EXCEPINFO* pExepInfo,
1324 TRACE(
"%p->(%d,%s,0x%x,0x%x,%p,%p,%p,%p)\n",
this, dispIdMember,
1340 ERR(
"null pVarResult not allowed when DISPATCH_PROPERTYGET specified\n");
1348 ERR(
"null pDispParams not allowed when DISPATCH_PROPERTYPUT specified\n");
1351 if (pDispParams->cArgs != 1)
1353 ERR(
"param count for DISPATCH_PROPERTYPUT was %d instead of 1\n", pDispParams->cArgs);
1359 ERR(
"one of DISPATCH_PROPERTYGET or DISPATCH_PROPERTYPUT must be specified\n");
1363 switch (dispIdMember) {
1367 return IFont_get_Name(&this->IFont_iface, &
V_BSTR(pVarResult));
1376 hr = IFont_put_Name(&this->IFont_iface,
V_BSTR(&vararg));
1385 hr = IFont_get_Bold(&this->IFont_iface, &
value);
1387 V_BOOL(pVarResult) =
value ? VARIANT_TRUE : VARIANT_FALSE;
1397 hr = IFont_put_Bold(&this->IFont_iface,
V_BOOL(&vararg));
1406 hr = IFont_get_Italic(&this->IFont_iface, &
value);
1408 V_BOOL(pVarResult) =
value ? VARIANT_TRUE : VARIANT_FALSE;
1418 hr = IFont_put_Italic(&this->IFont_iface,
V_BOOL(&vararg));
1427 hr = IFont_get_Underline(&this->IFont_iface, &
value);
1429 V_BOOL(pVarResult) =
value ? VARIANT_TRUE : VARIANT_FALSE;
1439 hr = IFont_put_Underline(&this->IFont_iface,
V_BOOL(&vararg));
1448 hr = IFont_get_Strikethrough(&this->IFont_iface, &
value);
1450 V_BOOL(pVarResult) =
value ? VARIANT_TRUE : VARIANT_FALSE;
1460 hr = IFont_put_Strikethrough(&this->IFont_iface,
V_BOOL(&vararg));
1469 return IFont_get_Size(&this->IFont_iface, &
V_CY(pVarResult));
1478 hr = IFont_put_Size(&this->IFont_iface,
V_CY(&vararg));
1487 return IFont_get_Weight(&this->IFont_iface, &
V_I2(pVarResult));
1496 hr = IFont_put_Weight(&this->IFont_iface,
V_I2(&vararg));
1514 hr = IFont_put_Charset(&this->IFont_iface,
V_I2(&vararg));
1521 ERR(
"member not found for dispid 0x%x\n", dispIdMember);
1547 return IFont_QueryInterface(&this->IFont_iface,
riid, ppvoid);
1558 return IFont_Release(&this->IFont_iface);
1569 return IFont_AddRef(&this->IFont_iface);
1579 TRACE(
"(%p,%p)\n",iface,pClassID);
1596 TRACE(
"(%p)\n",iface);
1627 char readBuffer[0x100];
1632 IStream_Read(pLoadStream, &
version,
sizeof(
BYTE), &cbRead);
1636 IStream_Read(pLoadStream, &this->
description.sCharset,
sizeof(
WORD), &cbRead);
1640 IStream_Read(pLoadStream, &attributes,
sizeof(
BYTE), &cbRead);
1648 IStream_Read(pLoadStream, &this->
description.sWeight,
sizeof(
WORD), &cbRead);
1652 IStream_Read(pLoadStream, &this->
description.cySize.s.Lo,
sizeof(
DWORD), &cbRead);
1658 IStream_Read(pLoadStream, &string_size,
sizeof(
BYTE), &cbRead);
1661 IStream_Read(pLoadStream, readBuffer, string_size, &cbRead);
1662 if (cbRead != string_size)
return E_FAIL;
1688 BYTE attributes, string_size;
1693 TRACE(
"(%p)->(%p %d)\n",
this, pOutStream, fClearDirty);
1696 IStream_Write(pOutStream, &
version,
sizeof(
BYTE), &written);
1700 IStream_Write(pOutStream, &this->
description.sCharset,
sizeof(
WORD), &written);
1715 IStream_Write(pOutStream, &attributes,
sizeof(
BYTE), &written);
1719 IStream_Write(pOutStream, &this->
description.sWeight,
sizeof(
WORD), &written);
1723 IStream_Write(pOutStream, &this->
description.cySize.s.Lo,
sizeof(
DWORD), &written);
1733 IStream_Write(pOutStream, &string_size,
sizeof(
BYTE), &written);
1741 writeBuffer, string_size,
NULL,
NULL );
1743 IStream_Write(pOutStream,
writeBuffer, string_size, &written);
1746 if (written != string_size)
return E_FAIL;
1764 pcbSize->
u.HighPart = 0;
1765 pcbSize->
u.LowPart = 0;
1767 pcbSize->
u.LowPart +=
sizeof(
BYTE);
1768 pcbSize->
u.LowPart +=
sizeof(
WORD);
1769 pcbSize->
u.LowPart +=
sizeof(
BYTE);
1770 pcbSize->
u.LowPart +=
sizeof(
WORD);
1771 pcbSize->
u.LowPart +=
sizeof(
DWORD);
1772 pcbSize->
u.LowPart +=
sizeof(
BYTE);
1804 return IFont_QueryInterface(&this->IFont_iface,
riid, ppvoid);
1815 return IFont_Release(&this->IFont_iface);
1826 return IFont_AddRef(&this->IFont_iface);
1838 FIXME(
"(%p)->(%p): stub\n",
this, ppEnum);
1865static const IConnectionPointContainerVtbl
1882 return IFont_QueryInterface(&this->IFont_iface,
riid,ppvObj);
1889 return IFont_AddRef(&this->IFont_iface);
1896 return IFont_Release(&this->IFont_iface);
1902 FIXME(
"(%p,%p), stub!\n", iface, classid);
1909 FIXME(
"(%p), stub!\n", iface);
1925 static const WCHAR sAttrName[] = {
'N',
'a',
'm',
'e',0};
1926 static const WCHAR sAttrSize[] = {
'S',
'i',
'z',
'e',0};
1927 static const WCHAR sAttrCharset[] = {
'C',
'h',
'a',
'r',
's',
'e',
't',0};
1928 static const WCHAR sAttrWeight[] = {
'W',
'e',
'i',
'g',
'h',
't',0};
1929 static const WCHAR sAttrUnderline[] = {
'U',
'n',
'd',
'e',
'r',
'l',
'i',
'n',
'e',0};
1930 static const WCHAR sAttrItalic[] = {
'I',
't',
'a',
'l',
'i',
'c',0};
1931 static const WCHAR sAttrStrikethrough[] = {
'S',
't',
'r',
'i',
'k',
'e',
't',
'h',
'r',
'o',
'u',
'g',
'h',0};
1938 iRes = IPropertyBag_Read(pPropBag, sAttrName, &
value, pErrorLog);
1943 iRes = IFont_put_Name(&this->IFont_iface,
V_BSTR(&
value));
1951 iRes = IPropertyBag_Read(pPropBag, sAttrSize, &
value, pErrorLog);
1956 iRes = IFont_put_Size(&this->IFont_iface,
V_CY(&
value));
1965 iRes = IPropertyBag_Read(pPropBag, sAttrCharset, &
value, pErrorLog);
1970 iRes = IFont_put_Charset(&this->IFont_iface,
V_I2(&
value));
1979 iRes = IPropertyBag_Read(pPropBag, sAttrWeight, &
value, pErrorLog);
1984 iRes = IFont_put_Weight(&this->IFont_iface,
V_I2(&
value));
1993 iRes = IPropertyBag_Read(pPropBag, sAttrUnderline, &
value, pErrorLog);
1998 iRes = IFont_put_Underline(&this->IFont_iface,
V_BOOL(&
value));
2007 iRes = IPropertyBag_Read(pPropBag, sAttrItalic, &
value, pErrorLog);
2012 iRes = IFont_put_Italic(&this->IFont_iface,
V_BOOL(&
value));
2021 iRes = IPropertyBag_Read(pPropBag, sAttrStrikethrough, &
value, pErrorLog);
2026 IFont_put_Strikethrough(&this->IFont_iface,
V_BOOL(&
value));
2035 WARN(
"-- 0x%08x\n", iRes);
2041 BOOL fSaveAllProperties
2043 FIXME(
"(%p,%p,%d,%d), stub!\n", iface, pPropBag, fClearDirty, fSaveAllProperties);
2066 return IFont_QueryInterface(&this->IFont_iface,
riid,ppvObj);
2073 return IFont_AddRef(&this->IFont_iface);
2080 return IFont_Release(&this->IFont_iface);
2086 FIXME(
"(%p,%p), stub!\n", iface, classid);
2093 FIXME(
"(%p), stub!\n", iface);
2100 FIXME(
"(%p,%p), stub!\n", iface, pStm);
2107 FIXME(
"(%p,%p,%d), stub!\n", iface, pStm, fClearDirty);
2114 FIXME(
"(%p,%p), stub!\n", iface, pcbSize);
2121 FIXME(
"(%p), stub!\n", iface);
2193 TRACE(
"returning %p\n", newObject);
2206 TRACE(
"(%p)\n", fontDesc);
2244 IClassFactory_AddRef(iface);
2272 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 HeapFree(x, y, z)
#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)
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)
static ULONG WINAPI OLEFontImpl_IPersistStreamInit_AddRef(IPersistStreamInit *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_IPersistStreamInit_QueryInterface(IPersistStreamInit *iface, REFIID riid, LPVOID *ppvObj)
static HRESULT WINAPI OLEFontImpl_QueryTextMetrics(IFont *iface, TEXTMETRICOLE *ptm)
static HRESULT WINAPI OLEFontImpl_IPersistStreamInit_GetClassID(IPersistStreamInit *iface, CLSID *classid)
#define FONTPERSIST_ITALIC
static HRESULT WINAPI OLEFontImpl_IDispatch_QueryInterface(IDispatch *iface, REFIID riid, VOID **ppvoid)
struct _HFONTItem * PHFONTItem
static const IFontVtbl OLEFontImpl_VTable
static HRESULT WINAPI OLEFontImpl_IPersistStreamInit_IsDirty(IPersistStreamInit *iface)
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 WCHAR * strdupW(const WCHAR *str)
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 ULONG WINAPI OLEFontImpl_IPersistStreamInit_Release(IPersistStreamInit *iface)
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_IPersistStreamInit_Load(IPersistStreamInit *iface, LPSTREAM pStm)
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 HRESULT WINAPI OLEFontImpl_IPersistStreamInit_Save(IPersistStreamInit *iface, LPSTREAM pStm, BOOL fClearDirty)
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 const IPersistStreamInitVtbl OLEFontImpl_IPersistStreamInit_VTable
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 HRESULT WINAPI OLEFontImpl_IPersistStreamInit_InitNew(IPersistStreamInit *iface)
static OLEFontImpl * impl_from_IConnectionPointContainer(IConnectionPointContainer *iface)
static void OLEFontImpl_Destroy(OLEFontImpl *fontDesc)
static OLEFontImpl * impl_from_IPersistStreamInit(IPersistStreamInit *iface)
static HRESULT WINAPI OLEFontImpl_get_Underline(IFont *iface, BOOL *punderline)
static HRESULT WINAPI OLEFontImpl_IPersistStreamInit_GetSizeMax(IPersistStreamInit *iface, ULARGE_INTEGER *pcbSize)
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
#define memcpy(s1, s2, n)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static const CLSID CLSID_StdFont
static VARIANTARG static DISPID
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
_Must_inspect_result_ _Out_ LPSIZE psize
interface IStream * LPSTREAM
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
const GUID IID_IPersistStreamInit
const GUID IID_IPersistStream
const GUID IID_IPersistPropertyBag
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
#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
IPersistStreamInit IPersistStreamInit_iface
IConnectionPointContainer IConnectionPointContainer_iface
LIST_ENTRY ProcessLocksList
struct _ULARGE_INTEGER::@4142 u
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI VariantChangeTypeEx(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, LCID lcid, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
void WINAPI VariantInit(VARIANTARG *pVarg)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
_In_ DWORD _Out_ _In_ WORD wFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#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)