| /* |
| * Defines the COM interfaces and APIs related to OLE font support. |
| * |
| * Depends on 'obj_base.h'. |
| */ |
| |
| #ifndef __WINE_WINE_OBJ_OLEFONT_H |
| #define __WINE_WINE_OBJ_OLEFONT_H |
| |
| #include "wine/obj_base.h" |
| #include "wingdi.h" /* TEXTMETRIC*/ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif /* defined(__cplusplus) */ |
| |
| /***************************************************************************** |
| * Predeclare the interfaces |
| */ |
| DEFINE_GUID(IID_IFont, 0xBEF6E002, 0xA874, 0x101A, 0x8B, 0xBA, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB); |
| typedef struct IFont IFont,*LPFONT; |
| |
| DEFINE_GUID(IID_IFontDisp, 0xBEF6E003, 0xA874, 0x101A, 0x8B, 0xBA, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB); |
| typedef struct IFontDisp IFontDisp,*LPFONTDISP; |
| |
| typedef TEXTMETRICW TEXTMETRICOLE; |
| |
| /***************************************************************************** |
| * IFont interface |
| */ |
| #define ICOM_INTERFACE IFont |
| #define IFont_METHODS \ |
| ICOM_METHOD1(HRESULT, get_Name, BSTR*, pname) \ |
| ICOM_METHOD1(HRESULT, put_Name, BSTR, name) \ |
| ICOM_METHOD1(HRESULT, get_Size, CY*, psize) \ |
| ICOM_METHOD1(HRESULT, put_Size, CY, size) \ |
| ICOM_METHOD1(HRESULT, get_Bold, BOOL*, pbold) \ |
| ICOM_METHOD1(HRESULT, put_Bold, BOOL, bold) \ |
| ICOM_METHOD1(HRESULT, get_Italic, BOOL*, pitalic) \ |
| ICOM_METHOD1(HRESULT, put_Italic, BOOL, italic) \ |
| ICOM_METHOD1(HRESULT, get_Underline, BOOL*, punderline) \ |
| ICOM_METHOD1(HRESULT, put_Underline, BOOL, underline) \ |
| ICOM_METHOD1(HRESULT, get_Strikethrough, BOOL*, pstrikethrough) \ |
| ICOM_METHOD1(HRESULT, put_Strikethrough, BOOL, strikethrough) \ |
| ICOM_METHOD1(HRESULT, get_Weight, short*, pweight) \ |
| ICOM_METHOD1(HRESULT, put_Weight, short, weight) \ |
| ICOM_METHOD1(HRESULT, get_Charset, short*, pcharset) \ |
| ICOM_METHOD1(HRESULT, put_Charset, short, charset) \ |
| ICOM_METHOD1(HRESULT, get_hFont, HFONT*, phfont) \ |
| ICOM_METHOD1(HRESULT, Clone, IFont**, ppfont) \ |
| ICOM_METHOD1(HRESULT, IsEqual, IFont*, pFontOther) \ |
| ICOM_METHOD2(HRESULT, SetRatio, long, cyLogical, long, cyHimetric) \ |
| ICOM_METHOD1(HRESULT, QueryTextMetrics, TEXTMETRICOLE*, ptm) \ |
| ICOM_METHOD1(HRESULT, AddRefHfont, HFONT, hfont) \ |
| ICOM_METHOD1(HRESULT, ReleaseHfont, HFONT, hfont) \ |
| ICOM_METHOD1(HRESULT, SetHdc, HDC, hdc) |
| #define IFont_IMETHODS \ |
| ICOM_INHERITS(IFont,IUnknown) |
| ICOM_DEFINE(IFont,IUnknown) |
| #undef ICOM_INTERFACE |
| |
| #ifdef ICOM_CINTERFACE |
| /*** IUnknown methods ***/ |
| #define IFont_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) |
| #define IFont_AddRef(p) ICOM_CALL (AddRef,p) |
| #define IFont_Release(p) ICOM_CALL (Release,p) |
| /*** IFont methods ***/ |
| #define IFont_getName(p,a) ICOM_CALL1(get_Name,p,a) |
| #define IFont_putName(p,a) ICOM_CALL1(put_Name,p,a) |
| #define IFont_get_Size(p,a) ICOM_CALL1(get_Size,p,a) |
| #define IFont_put_Size(p,a) ICOM_CALL1(put_Size,p,a) |
| #define IFont_get_Bold(p,a) ICOM_CALL1(get_Bold,a) |
| #define IFont_put_Bold(p,a) ICOM_CALL1(put_Bold,a) |
| #define IFont_get_Italic(p,a) ICOM_CALL1(get_Italic,a) |
| #define IFont_put_Italic(p,a) ICOM_CALL1(put_Italic,a) |
| #define IFont_get_Underline(p,a) ICOM_CALL1(get_Underline,a) |
| #define IFont_put_Underline(p,a) ICOM_CALL1(put_Underline,a) |
| #define IFont_get_Strikethrough(p,a) ICOM_CALL1(get_Strikethrough,a) |
| #define IFont_put_Strikethrough(p,a) ICOM_CALL1(put_Strikethrough,a) |
| #define IFont_get_Weight(p,a) ICOM_CALL1(get_Weight,a) |
| #define IFont_put_Weight(p,a) ICOM_CALL1(put_Weight,a) |
| #define IFont_get_Charset(p,a) ICOM_CALL1(get_Charset,a) |
| #define IFont_put_Charset(p,a) ICOM_CALL1(put_Charset,a) |
| #define IFont_get_hFont(p,a) ICOM_CALL1(get_hFont,a) |
| #define IFont_put_hFont(p,a) ICOM_CALL1(put_hFont,a) |
| #define IFont_Clone(p,a) ICOM_CALL1(Clone,a) |
| #define IFont_IsEqual(p,a) ICOM_CALL1(IsEqual,a) |
| #define IFont_SetRatio(p,a,b) ICOM_CALL2(SetRatio,a,b) |
| #define IFont_QueryTextMetrics(p,a) ICOM_CALL1(QueryTextMetrics,a) |
| #define IFont_AddRefHfont(p,a) ICOM_CALL1(AddRefHfont,a) |
| #define IFont_ReleaseHfont(p,a) ICOM_CALL1(ReleaseHfont,a) |
| #define IFont_SetHdc(p,a) ICOM_CALL1(SetHdc,a) |
| #endif |
| |
| /***************************************************************************** |
| * IFont interface |
| */ |
| #define ICOM_INTERFACE IFontDisp |
| #define IFontDisp_METHODS |
| #define IFontDisp_IMETHODS \ |
| IUnknown_IMETHODS \ |
| IFontDisp_METHODS |
| ICOM_DEFINE(IFontDisp,IDispatch) |
| #undef ICOM_INTERFACE |
| |
| #ifdef ICOM_CINTERFACE |
| /*** IUnknown methods ***/ |
| #define IFontDisp_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) |
| #define IFontDisp_AddRef(p) ICOM_CALL (AddRef,p) |
| #define IFontDisp_Release(p) ICOM_CALL (Release,p) |
| /*** IDispatch methods ***/ |
| #define IFontDisp_GetTypeInfoCount(p,a) ICOM_CALL1 (GetTypeInfoCount,p,a) |
| #define IFontDisp_GetTypeInfo(p,a,b,c) ICOM_CALL3 (GetTypeInfo,p,b,c) |
| #define IFontDisp_GetIDsOfNames(p,a,b,c,d,e) ICOM_CALL5 (GetIDsOfNames,p,a,b,c,d,e) |
| #define IFontDisp_Invoke(p,a,b,c,d,e,f,g,h) ICOM_CALL8 (Invoke,p,a,b,c,d,e,f,g,h) |
| /*** IFontDisp methods ***/ |
| #endif |
| |
| #ifdef __cplusplus |
| } /* extern "C" */ |
| #endif /* defined(__cplusplus) */ |
| |
| #endif /* __WINE_WINE_OBJ_OLEFONT_H */ |
| |
| |