/* * 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), hidden ] 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), restricted ] 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), hidden ] 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; [ 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 : IUnknown { [propget] HRESULT Name([out, retval] BSTR *pname); [propput] HRESULT Name([in] BSTR pname); [propget] HRESULT Size([out, retval] CURRENCY *psize); [propput] HRESULT Size([in] CURRENCY 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_YSIZE_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; }; [ 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; };