diff --git a/dlls/stdole2.tlb/std_ole_v2.idl b/dlls/stdole2.tlb/std_ole_v2.idl index 187982cdf56..e2700a62aec 100644 --- a/dlls/stdole2.tlb/std_ole_v2.idl +++ b/dlls/stdole2.tlb/std_ole_v2.idl @@ -18,417 +18,4 @@ * */ -[ - uuid(00020430-0000-0000-C000-000000000046), - version(2.0), - helpstring("OLE Automation") -] -library stdole -{ - /* typedefs aren't stored in the type library. - These type names are known by the type compiler so it - doesn't really matter what we define them as. */ - - typedef short VARIANT_BOOL; - typedef long BSTR; - typedef double CURRENCY; - typedef unsigned long HRESULT; - typedef void *VARIANT; - typedef unsigned long SCODE; - - typedef struct GUID { - unsigned long Data1; - unsigned short Data2; - unsigned short Data3; - unsigned char Data4[ 8 ]; - } GUID; - - typedef struct DISPPARAMS { - VARIANT *rgvarg; - long *rgdispidNamedArgs; - unsigned int cArgs; - unsigned int cNamedArgs; - } DISPPARAMS; - - typedef struct EXCEPINFO { - unsigned short wCode; - unsigned short wReserved; - BSTR bstrSource; - BSTR bstrDescription; - BSTR bstrHelpFile; - unsigned long dwHelpContext; - void *pvReserved; - void *pfnDeferredFillIn; - SCODE scode; - } EXCEPINFO; - - [ - odl, - uuid(00000000-0000-0000-C000-000000000046) - ] - interface IUnknown - { - [restricted] - HRESULT QueryInterface( - [in] GUID *riid, - [out] void **ppvObj); - - [restricted] - unsigned long AddRef(); - - [restricted] - unsigned long Release(); - } - - [ - odl, - uuid(00020400-0000-0000-C000-000000000046) - ] - interface IDispatch : IUnknown - { - [restricted] - HRESULT GetTypeInfoCount( - [out] unsigned int *pctinfo); - - [restricted] - HRESULT GetTypeInfo( - [in] unsigned int itinfo, - [in] unsigned long lcid, - [out] void **pptinfo); - - [restricted] - HRESULT GetIDsOfNames( - [in] GUID *riid, - [in] char **rgszNames, - [in] unsigned int cNames, - [in] unsigned long lcid, - [out] long *rgdispid); - - [restricted] - HRESULT Invoke( - [in] long dispidMember, - [in] GUID *riid, - [in] unsigned long lcid, - [in] unsigned short wFlags, - [in] DISPPARAMS *pdispparams, - [out] VARIANT *pvarResult, - [out] EXCEPINFO *pexcepinfo, - [out] unsigned int *puArgErr); - - } - - [ - odl, - uuid(00020404-0000-0000-C000-000000000046) - ] - interface IEnumVARIANT : IUnknown - { - HRESULT Next( - [in] unsigned long celt, - [in] VARIANT *rgvar, - [out] unsigned long *pceltFetched); - - HRESULT Skip( - [in] unsigned long celt); - - HRESULT Reset(); - - HRESULT Clone( - [out] IEnumVARIANT **ppenum); - } - - typedef [uuid(66504301-BE0F-101A-8BBB-00AA00300CAB), public] - unsigned long OLE_COLOR; - - typedef [uuid(66504302-BE0F-101A-8BBB-00AA00300CAB), public] - long OLE_XPOS_PIXELS; - - typedef [uuid(66504303-BE0F-101A-8BBB-00AA00300CAB), public] - long OLE_YPOS_PIXELS; - - typedef [uuid(66504304-BE0F-101A-8BBB-00AA00300CAB), public] - long OLE_XSIZE_PIXELS; - - typedef [uuid(66504305-BE0F-101A-8BBB-00AA00300CAB), public] - long OLE_YSIZE_PIXELS; - - typedef [uuid(66504306-BE0F-101A-8BBB-00AA00300CAB), public] - long OLE_XPOS_HIMETRIC; - - typedef [uuid(66504307-BE0F-101A-8BBB-00AA00300CAB), public] - long OLE_YPOS_HIMETRIC; - - typedef [uuid(66504308-BE0F-101A-8BBB-00AA00300CAB), public] - long OLE_XSIZE_HIMETRIC; - - typedef [uuid(66504309-BE0F-101A-8BBB-00AA00300CAB), public] - long OLE_YSIZE_HIMETRIC; - - typedef [uuid(BF030640-9069-101B-AE2D-08002B2EC713), public] - float OLE_XPOS_CONTAINER; - - typedef [uuid(BF030641-9069-101B-AE2D-08002B2EC713), public] - float OLE_YPOS_CONTAINER; - - typedef [uuid(BF030642-9069-101B-AE2D-08002B2EC713), public] - float OLE_XSIZE_CONTAINER; - - typedef [uuid(BF030643-9069-101B-AE2D-08002B2EC713), public] - float OLE_YSIZE_CONTAINER; - - typedef [uuid(66504313-BE0F-101A-8BBB-00AA00300CAB), public] - int OLE_HANDLE; - - typedef [uuid(6650430B-BE0F-101A-8BBB-00AA00300CAB), public] - VARIANT_BOOL OLE_OPTEXCLUSIVE; - - typedef [uuid(BF030644-9069-101B-AE2D-08002B2EC713), public] - VARIANT_BOOL OLE_CANCELBOOL; - - typedef [uuid(BF030645-9069-101B-AE2D-08002B2EC713), public] - VARIANT_BOOL OLE_ENABLEDEFAULTBOOL; - - /* FIXME: widl can't cope with enum attributes yet */ - /* - [ - uuid(6650430A-BE0F-101A-8BBB-00AA00300CAB) - ] - */ - enum OLE_TRISTATE { - Unchecked = 0, - Checked = 1, - Gray = 2 - }; - - typedef [uuid(6650430D-BE0F-101A-8BBB-00AA00300CAB), public] - BSTR FONTNAME; - - typedef [uuid(6650430E-BE0F-101A-8BBB-00AA00300CAB), public] - CURRENCY FONTSIZE; - - typedef [uuid(6650430F-BE0F-101A-8BBB-00AA00300CAB), public] - VARIANT_BOOL FONTBOLD; - - typedef [uuid(66504310-BE0F-101A-8BBB-00AA00300CAB), public] - VARIANT_BOOL FONTITALIC; - - typedef [uuid(66504311-BE0F-101A-8BBB-00AA00300CAB), public] - VARIANT_BOOL FONTUNDERSCORE; - - typedef [uuid(66504312-BE0F-101A-8BBB-00AA00300CAB), public] - VARIANT_BOOL FONTSTRIKETHROUGH; - - - [ - odl, - uuid(BEF6E002-A874-101A-8BBA-00AA00300CAB), - helpstring("Font Object"), - hidden - ] - interface IFont { - [propget] HRESULT Name([out, retval] BSTR *pname); - [propput] HRESULT Name([in] BSTR pname); - - [propget] HRESULT Size([out, retval] CURRENCY *psize); - [propput] HRESULT Size([in] BSTR psize); - - [propget] HRESULT Bold([out, retval] VARIANT_BOOL *pbold); - [propput] HRESULT Bold([in] VARIANT_BOOL pbold); - - [propget] HRESULT Italic([out, retval] VARIANT_BOOL *pitalic); - [propput] HRESULT Italic([in] VARIANT_BOOL pitalic); - - [propget] HRESULT Underline([out, retval] VARIANT_BOOL *punderline); - [propput] HRESULT Underline([in] VARIANT_BOOL punderline); - - [propget] HRESULT Strikethrough([out, retval] VARIANT_BOOL *pstrikethrough); - [propput] HRESULT Strikethrough([in] VARIANT_BOOL pstrikethrough); - - [propget] HRESULT Weight([out, retval] short *pweight); - [propput] HRESULT Weight([in] short pweight); - - [propget] HRESULT Charset([out, retval] short *pcharset); - [propput] HRESULT Charset([in] short pcharset); - - [propget] HRESULT hFont([out, retval] OLE_HANDLE *phfont); - - HRESULT Clone([out] IFont **ppfont); - - HRESULT IsEqual([in] IFont *pfontOther); - - HRESULT SetRatio([in] long cyLogical, [in] long cyHimetric); - - HRESULT AddRefHfont([in] OLE_HANDLE hFont); - - HRESULT ReleaseHfont([in] OLE_HANDLE hFont); - }; - - - [ - odl, - uuid(BEF6E003-A874-101A-8BBA-00AA00300CAB) - ] - dispinterface Font { - properties: - [id(0x0)] BSTR Name; - [id(0x2)] CURRENCY Size; - [id(0x3)] VARIANT_BOOL Bold; - [id(0x4)] VARIANT_BOOL Italic; - [id(0x5)] VARIANT_BOOL Underline; - [id(0x6)] VARIANT_BOOL Strikethrough; - [id(0x7)] short Weight; - [id(0x8)] short Charset; - methods: - } - - typedef [public] Font IFontDisp; - - [ - uuid(0BE35203-8F91-11CE-9DE3-00AA004BB851) - ] - coclass StdFont { - [default] dispinterface Font; - /* FIXME: We can't reference dispinterface FontEvents here because we need it to - appear at the end of the typelib. */ -/* [default, source] dispinterface FontEvents;*/ - interface IFont; - }; - - [ - odl, - uuid(7BF80980-BF32-101A-8BBB-00AA00300CAB), - helpstring("Picture Object"), - hidden - ] - interface IPicture /*: IUnknown*/ { - [propget] HRESULT Handle([out, retval] OLE_HANDLE *phandle); - - [propget] HRESULT hPal([out, retval] OLE_HANDLE *phpal); - - [propget] HRESULT Type([out, retval] short *ptype); - - [propget] HRESULT Width([out, retval] OLE_XSIZE_HIMETRIC *pwidth); - - [propget] HRESULT Height([out, retval] OLE_YSIZE_HIMETRIC *pheight); - - HRESULT Render([in] int hdc, - [in] long x, - [in] long y, - [in] long cx, - [in] long cy, - [in] OLE_XPOS_HIMETRIC xSrc, - [in] OLE_YPOS_HIMETRIC ySrc, - [in] OLE_XSIZE_HIMETRIC cxSrc, - [in] OLE_YSIZE_HIMETRIC cySrc, - [in] void *prcWBounds); - - [propput] HRESULT hPal([in] OLE_HANDLE phpal); - - [propget] HRESULT CurDC([out, retval] int *phdcOut); - - HRESULT SelectPicture([in] int hdcIn, - [out] int *phdcOut, - [out] OLE_HANDLE *phbmpOut); - - [propget] HRESULT KeepOriginalFormat([out, retval] VARIANT_BOOL *pfkeep); - [propput] HRESULT KeepOriginalFormat([in] VARIANT_BOOL pfkeep); - - HRESULT PictureChanged(); - - HRESULT SaveAsFile([in] void *pstm, - [in] VARIANT_BOOL fSaveMemCopy, - [out] long *pcbSize); - - [propget] HRESULT Attributes([out, retval] long *pdwAttr); - - HRESULT SetHdc([in] OLE_HANDLE hdc); - }; - - [ - uuid(7BF80981-BF32-101A-8BBB-00AA00300CAB) - ] - dispinterface Picture { - properties: - [id(0x0), readonly] OLE_HANDLE Handle; - [id(0x2)] OLE_HANDLE hPal; - [id(0x3), readonly] short Type; - [id(0x4), readonly] OLE_XSIZE_HIMETRIC Width; - [id(0x5), readonly] OLE_XSIZE_HIMETRIC Height; - methods: - [id(0x6)] void Render(int hdc, - long x, - long y, - long cx, - long cy, - OLE_XPOS_HIMETRIC xSrc, - OLE_YPOS_HIMETRIC ySrc, - OLE_XSIZE_HIMETRIC cxSrc, - OLE_YSIZE_HIMETRIC cySrc, - void *prcWBounds); - }; - - typedef [public] Picture IPictureDisp; - - [ - uuid(0BE35204-8F91-11CE-9DE3-00AA004BB851) - ] - coclass StdPicture { - [default] dispinterface Picture; - interface IPicture; - }; - - /* FIXME: widl can't cope with enum attributes yet */ - /* - [ - uuid(E6C8FA08-BD9F-11D0-985E-00C04FC29993) - ] - */ - enum LoadPictureConstants { - Default = 0, - Monochrome = 1, - VgaColor = 2, - Color = 4 - }; - - [ - dllname("oleaut32.dll"), - uuid(91209AC0-60F6-11CF-9C5D-00AA00C1489E), - helpstring("Functions for Standard OLE Objects"), - helpcontext(0x2775) - ] - module StdFunctions{ - [ - entry("OleLoadPictureFileEx"), - helpstring("Loads a picture from a file"), - helpcontext(0x2775) - ] - HRESULT LoadPicture([in, optional] VARIANT filename, - [in, optional, defaultvalue(0)] int widthDesired, - [in, optional, defaultvalue(0)] int heightDesired, - [in, optional, defaultvalue(Default)] enum LoadPictureConstants flags, - [out, retval] IPictureDisp **retval); - [ - entry("OleSavePictureFile"), - helpstring("Saves a picture to a file"), - helpcontext(0x2775) - ] - HRESULT SavePicture([in] IPictureDisp *Picture, - [in] BSTR filename); - }; - - - [ - uuid(4EF6100A-AF88-11D0-9846-00C04FC29993), - helpstring("Event Interface for the Font Object"), - hidden - ] - dispinterface FontEvents { - properties: - methods: - [id(0x9)] void FontChanged([in] BSTR PropertyName); - }; - - typedef [public] FontEvents IFontEventsDisp; - - -}; +#include "stdole2.idl" diff --git a/include/Makefile.in b/include/Makefile.in index 6ff370d5eec..60b087778d8 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -51,7 +51,11 @@ WINDOWS_IDL_SRCS = \ xmldom.idl \ xmldso.idl +IDL_TLB_SRCS = \ + stdole2.idl + WINDOWS_IDL_INCLUDES = \ + $(IDL_TLB_SRCS) \ $(WINDOWS_IDL_SRCS) \ axcore.idl \ axextend.idl \ @@ -379,13 +383,14 @@ EXTRASUBDIRS = ddk msvcrt msvcrt/sys wine WINDOWS_IDL_HEADERS = $(WINDOWS_IDL_SRCS:.idl=.h) WINE_IDL_HEADERS = $(WINE_IDL_SRCS:.idl=.h) IDL_HEADERS = $(IDL_SRCS:.idl=.h) +IDL_TLBS = $(IDL_TLB_SRCS:.idl=.tlb) -all: $(IDL_HEADERS) +all: $(IDL_HEADERS) $(IDL_TLBS) -install:: $(IDL_HEADERS) +install:: $(IDL_HEADERS) $(IDL_TLBS) $(MKINSTALLDIRS) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/windows $(DESTDIR)$(includedir)/windows/ddk $(DESTDIR)$(includedir)/msvcrt $(DESTDIR)$(includedir)/msvcrt/sys for f in $(WINDOWS_INCLUDES); do $(INSTALL_DATA) $(SRCDIR)/$$f $(DESTDIR)$(includedir)/windows/$$f; done - for f in $(WINDOWS_IDL_HEADERS); do $(INSTALL_DATA) $$f $(DESTDIR)$(includedir)/windows/$$f; done + for f in $(WINDOWS_IDL_HEADERS) $(IDL_TLBS); do $(INSTALL_DATA) $$f $(DESTDIR)$(includedir)/windows/$$f; done for f in $(MSVCRT_INCLUDES); do $(INSTALL_DATA) $(SRCDIR)/$$f $(DESTDIR)$(includedir)/$$f; done for f in $(WINE_INCLUDES); do $(INSTALL_DATA) $(SRCDIR)/wine/$$f $(DESTDIR)$(includedir)/$$f; done for f in $(WINE_IDL_HEADERS); do $(INSTALL_DATA) wine/$$f $(DESTDIR)$(includedir)/$$f; done @@ -393,7 +398,7 @@ install:: $(IDL_HEADERS) # Don't just do a rm -rf on $(includedir) -- don't want to wipe out # anything extra the user may have put there. uninstall:: - -cd $(DESTDIR)$(includedir)/windows && $(RM) $(WINDOWS_INCLUDES) $(WINDOWS_IDL_HEADERS) + -cd $(DESTDIR)$(includedir)/windows && $(RM) $(WINDOWS_INCLUDES) $(WINDOWS_IDL_HEADERS) $(IDL_TLBS) -cd $(DESTDIR)$(includedir) && $(RM) $(MSVCRT_INCLUDES) $(WINE_INCLUDES) $(WINE_IDL_HEADERS) -rmdir $(DESTDIR)$(includedir)/msvcrt/sys $(DESTDIR)$(includedir)/msvcrt $(DESTDIR)$(includedir)/windows/ddk $(DESTDIR)$(includedir)/windows $(DESTDIR)$(includedir) diff --git a/include/stdole2.idl b/include/stdole2.idl new file mode 100644 index 00000000000..187982cdf56 --- /dev/null +++ b/include/stdole2.idl @@ -0,0 +1,434 @@ +/* + * Copyright (C) 2003 Robert Shearman + * 2005 Huw Davies + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + * + */ + +[ + uuid(00020430-0000-0000-C000-000000000046), + version(2.0), + helpstring("OLE Automation") +] +library stdole +{ + /* typedefs aren't stored in the type library. + These type names are known by the type compiler so it + doesn't really matter what we define them as. */ + + typedef short VARIANT_BOOL; + typedef long BSTR; + typedef double CURRENCY; + typedef unsigned long HRESULT; + typedef void *VARIANT; + typedef unsigned long SCODE; + + typedef struct GUID { + unsigned long Data1; + unsigned short Data2; + unsigned short Data3; + unsigned char Data4[ 8 ]; + } GUID; + + typedef struct DISPPARAMS { + VARIANT *rgvarg; + long *rgdispidNamedArgs; + unsigned int cArgs; + unsigned int cNamedArgs; + } DISPPARAMS; + + typedef struct EXCEPINFO { + unsigned short wCode; + unsigned short wReserved; + BSTR bstrSource; + BSTR bstrDescription; + BSTR bstrHelpFile; + unsigned long dwHelpContext; + void *pvReserved; + void *pfnDeferredFillIn; + SCODE scode; + } EXCEPINFO; + + [ + odl, + uuid(00000000-0000-0000-C000-000000000046) + ] + interface IUnknown + { + [restricted] + HRESULT QueryInterface( + [in] GUID *riid, + [out] void **ppvObj); + + [restricted] + unsigned long AddRef(); + + [restricted] + unsigned long Release(); + } + + [ + odl, + uuid(00020400-0000-0000-C000-000000000046) + ] + interface IDispatch : IUnknown + { + [restricted] + HRESULT GetTypeInfoCount( + [out] unsigned int *pctinfo); + + [restricted] + HRESULT GetTypeInfo( + [in] unsigned int itinfo, + [in] unsigned long lcid, + [out] void **pptinfo); + + [restricted] + HRESULT GetIDsOfNames( + [in] GUID *riid, + [in] char **rgszNames, + [in] unsigned int cNames, + [in] unsigned long lcid, + [out] long *rgdispid); + + [restricted] + HRESULT Invoke( + [in] long dispidMember, + [in] GUID *riid, + [in] unsigned long lcid, + [in] unsigned short wFlags, + [in] DISPPARAMS *pdispparams, + [out] VARIANT *pvarResult, + [out] EXCEPINFO *pexcepinfo, + [out] unsigned int *puArgErr); + + } + + [ + odl, + uuid(00020404-0000-0000-C000-000000000046) + ] + interface IEnumVARIANT : IUnknown + { + HRESULT Next( + [in] unsigned long celt, + [in] VARIANT *rgvar, + [out] unsigned long *pceltFetched); + + HRESULT Skip( + [in] unsigned long celt); + + HRESULT Reset(); + + HRESULT Clone( + [out] IEnumVARIANT **ppenum); + } + + typedef [uuid(66504301-BE0F-101A-8BBB-00AA00300CAB), public] + unsigned long OLE_COLOR; + + typedef [uuid(66504302-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_XPOS_PIXELS; + + typedef [uuid(66504303-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_YPOS_PIXELS; + + typedef [uuid(66504304-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_XSIZE_PIXELS; + + typedef [uuid(66504305-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_YSIZE_PIXELS; + + typedef [uuid(66504306-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_XPOS_HIMETRIC; + + typedef [uuid(66504307-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_YPOS_HIMETRIC; + + typedef [uuid(66504308-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_XSIZE_HIMETRIC; + + typedef [uuid(66504309-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_YSIZE_HIMETRIC; + + typedef [uuid(BF030640-9069-101B-AE2D-08002B2EC713), public] + float OLE_XPOS_CONTAINER; + + typedef [uuid(BF030641-9069-101B-AE2D-08002B2EC713), public] + float OLE_YPOS_CONTAINER; + + typedef [uuid(BF030642-9069-101B-AE2D-08002B2EC713), public] + float OLE_XSIZE_CONTAINER; + + typedef [uuid(BF030643-9069-101B-AE2D-08002B2EC713), public] + float OLE_YSIZE_CONTAINER; + + typedef [uuid(66504313-BE0F-101A-8BBB-00AA00300CAB), public] + int OLE_HANDLE; + + typedef [uuid(6650430B-BE0F-101A-8BBB-00AA00300CAB), public] + VARIANT_BOOL OLE_OPTEXCLUSIVE; + + typedef [uuid(BF030644-9069-101B-AE2D-08002B2EC713), public] + VARIANT_BOOL OLE_CANCELBOOL; + + typedef [uuid(BF030645-9069-101B-AE2D-08002B2EC713), public] + VARIANT_BOOL OLE_ENABLEDEFAULTBOOL; + + /* FIXME: widl can't cope with enum attributes yet */ + /* + [ + uuid(6650430A-BE0F-101A-8BBB-00AA00300CAB) + ] + */ + enum OLE_TRISTATE { + Unchecked = 0, + Checked = 1, + Gray = 2 + }; + + typedef [uuid(6650430D-BE0F-101A-8BBB-00AA00300CAB), public] + BSTR FONTNAME; + + typedef [uuid(6650430E-BE0F-101A-8BBB-00AA00300CAB), public] + CURRENCY FONTSIZE; + + typedef [uuid(6650430F-BE0F-101A-8BBB-00AA00300CAB), public] + VARIANT_BOOL FONTBOLD; + + typedef [uuid(66504310-BE0F-101A-8BBB-00AA00300CAB), public] + VARIANT_BOOL FONTITALIC; + + typedef [uuid(66504311-BE0F-101A-8BBB-00AA00300CAB), public] + VARIANT_BOOL FONTUNDERSCORE; + + typedef [uuid(66504312-BE0F-101A-8BBB-00AA00300CAB), public] + VARIANT_BOOL FONTSTRIKETHROUGH; + + + [ + odl, + uuid(BEF6E002-A874-101A-8BBA-00AA00300CAB), + helpstring("Font Object"), + hidden + ] + interface IFont { + [propget] HRESULT Name([out, retval] BSTR *pname); + [propput] HRESULT Name([in] BSTR pname); + + [propget] HRESULT Size([out, retval] CURRENCY *psize); + [propput] HRESULT Size([in] BSTR psize); + + [propget] HRESULT Bold([out, retval] VARIANT_BOOL *pbold); + [propput] HRESULT Bold([in] VARIANT_BOOL pbold); + + [propget] HRESULT Italic([out, retval] VARIANT_BOOL *pitalic); + [propput] HRESULT Italic([in] VARIANT_BOOL pitalic); + + [propget] HRESULT Underline([out, retval] VARIANT_BOOL *punderline); + [propput] HRESULT Underline([in] VARIANT_BOOL punderline); + + [propget] HRESULT Strikethrough([out, retval] VARIANT_BOOL *pstrikethrough); + [propput] HRESULT Strikethrough([in] VARIANT_BOOL pstrikethrough); + + [propget] HRESULT Weight([out, retval] short *pweight); + [propput] HRESULT Weight([in] short pweight); + + [propget] HRESULT Charset([out, retval] short *pcharset); + [propput] HRESULT Charset([in] short pcharset); + + [propget] HRESULT hFont([out, retval] OLE_HANDLE *phfont); + + HRESULT Clone([out] IFont **ppfont); + + HRESULT IsEqual([in] IFont *pfontOther); + + HRESULT SetRatio([in] long cyLogical, [in] long cyHimetric); + + HRESULT AddRefHfont([in] OLE_HANDLE hFont); + + HRESULT ReleaseHfont([in] OLE_HANDLE hFont); + }; + + + [ + odl, + uuid(BEF6E003-A874-101A-8BBA-00AA00300CAB) + ] + dispinterface Font { + properties: + [id(0x0)] BSTR Name; + [id(0x2)] CURRENCY Size; + [id(0x3)] VARIANT_BOOL Bold; + [id(0x4)] VARIANT_BOOL Italic; + [id(0x5)] VARIANT_BOOL Underline; + [id(0x6)] VARIANT_BOOL Strikethrough; + [id(0x7)] short Weight; + [id(0x8)] short Charset; + methods: + } + + typedef [public] Font IFontDisp; + + [ + uuid(0BE35203-8F91-11CE-9DE3-00AA004BB851) + ] + coclass StdFont { + [default] dispinterface Font; + /* FIXME: We can't reference dispinterface FontEvents here because we need it to + appear at the end of the typelib. */ +/* [default, source] dispinterface FontEvents;*/ + interface IFont; + }; + + [ + odl, + uuid(7BF80980-BF32-101A-8BBB-00AA00300CAB), + helpstring("Picture Object"), + hidden + ] + interface IPicture /*: IUnknown*/ { + [propget] HRESULT Handle([out, retval] OLE_HANDLE *phandle); + + [propget] HRESULT hPal([out, retval] OLE_HANDLE *phpal); + + [propget] HRESULT Type([out, retval] short *ptype); + + [propget] HRESULT Width([out, retval] OLE_XSIZE_HIMETRIC *pwidth); + + [propget] HRESULT Height([out, retval] OLE_YSIZE_HIMETRIC *pheight); + + HRESULT Render([in] int hdc, + [in] long x, + [in] long y, + [in] long cx, + [in] long cy, + [in] OLE_XPOS_HIMETRIC xSrc, + [in] OLE_YPOS_HIMETRIC ySrc, + [in] OLE_XSIZE_HIMETRIC cxSrc, + [in] OLE_YSIZE_HIMETRIC cySrc, + [in] void *prcWBounds); + + [propput] HRESULT hPal([in] OLE_HANDLE phpal); + + [propget] HRESULT CurDC([out, retval] int *phdcOut); + + HRESULT SelectPicture([in] int hdcIn, + [out] int *phdcOut, + [out] OLE_HANDLE *phbmpOut); + + [propget] HRESULT KeepOriginalFormat([out, retval] VARIANT_BOOL *pfkeep); + [propput] HRESULT KeepOriginalFormat([in] VARIANT_BOOL pfkeep); + + HRESULT PictureChanged(); + + HRESULT SaveAsFile([in] void *pstm, + [in] VARIANT_BOOL fSaveMemCopy, + [out] long *pcbSize); + + [propget] HRESULT Attributes([out, retval] long *pdwAttr); + + HRESULT SetHdc([in] OLE_HANDLE hdc); + }; + + [ + uuid(7BF80981-BF32-101A-8BBB-00AA00300CAB) + ] + dispinterface Picture { + properties: + [id(0x0), readonly] OLE_HANDLE Handle; + [id(0x2)] OLE_HANDLE hPal; + [id(0x3), readonly] short Type; + [id(0x4), readonly] OLE_XSIZE_HIMETRIC Width; + [id(0x5), readonly] OLE_XSIZE_HIMETRIC Height; + methods: + [id(0x6)] void Render(int hdc, + long x, + long y, + long cx, + long cy, + OLE_XPOS_HIMETRIC xSrc, + OLE_YPOS_HIMETRIC ySrc, + OLE_XSIZE_HIMETRIC cxSrc, + OLE_YSIZE_HIMETRIC cySrc, + void *prcWBounds); + }; + + typedef [public] Picture IPictureDisp; + + [ + uuid(0BE35204-8F91-11CE-9DE3-00AA004BB851) + ] + coclass StdPicture { + [default] dispinterface Picture; + interface IPicture; + }; + + /* FIXME: widl can't cope with enum attributes yet */ + /* + [ + uuid(E6C8FA08-BD9F-11D0-985E-00C04FC29993) + ] + */ + enum LoadPictureConstants { + Default = 0, + Monochrome = 1, + VgaColor = 2, + Color = 4 + }; + + [ + dllname("oleaut32.dll"), + uuid(91209AC0-60F6-11CF-9C5D-00AA00C1489E), + helpstring("Functions for Standard OLE Objects"), + helpcontext(0x2775) + ] + module StdFunctions{ + [ + entry("OleLoadPictureFileEx"), + helpstring("Loads a picture from a file"), + helpcontext(0x2775) + ] + HRESULT LoadPicture([in, optional] VARIANT filename, + [in, optional, defaultvalue(0)] int widthDesired, + [in, optional, defaultvalue(0)] int heightDesired, + [in, optional, defaultvalue(Default)] enum LoadPictureConstants flags, + [out, retval] IPictureDisp **retval); + [ + entry("OleSavePictureFile"), + helpstring("Saves a picture to a file"), + helpcontext(0x2775) + ] + HRESULT SavePicture([in] IPictureDisp *Picture, + [in] BSTR filename); + }; + + + [ + uuid(4EF6100A-AF88-11D0-9846-00C04FC29993), + helpstring("Event Interface for the Font Object"), + hidden + ] + dispinterface FontEvents { + properties: + methods: + [id(0x9)] void FontChanged([in] BSTR PropertyName); + }; + + typedef [public] FontEvents IFontEventsDisp; + + +};