1/* 2 * Copyright (C) 2003 Robert Shearman 3 * 2005 Huw Davies 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 * 19 */ 20 21#if 0 22#pragma makedep install 23#pragma makedep typelib 24#endif 25 26#include <olectl.h> 27 28[ 29 uuid(00020430-0000-0000-C000-000000000046), 30 version(2.0), 31 helpstring("OLE Automation") 32] 33library stdole 34{ 35 /* typedefs aren't stored in the type library. 36 These type names are known by the type compiler so it 37 doesn't really matter what we define them as. */ 38 39 typedef short VARIANT_BOOL; 40 typedef long BSTR; 41 typedef double CURRENCY; 42 typedef unsigned long HRESULT; 43 typedef void *VARIANT; 44 typedef unsigned long SCODE; 45 46 typedef struct GUID { 47 unsigned long Data1; 48 unsigned short Data2; 49 unsigned short Data3; 50 unsigned char Data4[ 8 ]; 51 } GUID; 52 53 typedef struct DISPPARAMS { 54 VARIANT *rgvarg; 55 long *rgdispidNamedArgs; 56 unsigned int cArgs; 57 unsigned int cNamedArgs; 58 } DISPPARAMS; 59 60 typedef struct EXCEPINFO { 61 unsigned short wCode; 62 unsigned short wReserved; 63 BSTR bstrSource; 64 BSTR bstrDescription; 65 BSTR bstrHelpFile; 66 unsigned long dwHelpContext; 67 void *pvReserved; 68 void *pfnDeferredFillIn; 69 SCODE scode; 70 } EXCEPINFO; 71 72 [ 73 odl, 74 uuid(00000000-0000-0000-C000-000000000046), 75 hidden 76 ] 77 interface IUnknown 78 { 79 [restricted] 80 HRESULT QueryInterface( 81 [in] GUID *riid, 82 [out] void **ppvObj); 83 84 [restricted] 85 unsigned long AddRef(); 86 87 [restricted] 88 unsigned long Release(); 89 } 90 91 [ 92 odl, 93 uuid(00020400-0000-0000-C000-000000000046), 94 restricted 95 ] 96 interface IDispatch : IUnknown 97 { 98 [restricted] 99 HRESULT GetTypeInfoCount( 100 [out] unsigned int *pctinfo); 101 102 [restricted] 103 HRESULT GetTypeInfo( 104 [in] unsigned int itinfo, 105 [in] unsigned long lcid, 106 [out] void **pptinfo); 107 108 [restricted] 109 HRESULT GetIDsOfNames( 110 [in] GUID *riid, 111 [in] char **rgszNames, 112 [in] unsigned int cNames, 113 [in] unsigned long lcid, 114 [out] long *rgdispid); 115 116 [restricted] 117 HRESULT Invoke( 118 [in] long dispidMember, 119 [in] GUID *riid, 120 [in] unsigned long lcid, 121 [in] unsigned short wFlags, 122 [in] DISPPARAMS *pdispparams, 123 [out] VARIANT *pvarResult, 124 [out] EXCEPINFO *pexcepinfo, 125 [out] unsigned int *puArgErr); 126 127 } 128 129 [ 130 odl, 131 uuid(00020404-0000-0000-C000-000000000046), 132 hidden 133 ] 134 interface IEnumVARIANT : IUnknown 135 { 136 HRESULT Next( 137 [in] unsigned long celt, 138 [in] VARIANT *rgvar, 139 [out] unsigned long *pceltFetched); 140 141 HRESULT Skip( 142 [in] unsigned long celt); 143 144 HRESULT Reset(); 145 146 HRESULT Clone( 147 [out] IEnumVARIANT **ppenum); 148 } 149 150 typedef [uuid(66504301-BE0F-101A-8BBB-00AA00300CAB), public] 151 unsigned long OLE_COLOR; 152 153 typedef [uuid(66504302-BE0F-101A-8BBB-00AA00300CAB), public] 154 long OLE_XPOS_PIXELS; 155 156 typedef [uuid(66504303-BE0F-101A-8BBB-00AA00300CAB), public] 157 long OLE_YPOS_PIXELS; 158 159 typedef [uuid(66504304-BE0F-101A-8BBB-00AA00300CAB), public] 160 long OLE_XSIZE_PIXELS; 161 162 typedef [uuid(66504305-BE0F-101A-8BBB-00AA00300CAB), public] 163 long OLE_YSIZE_PIXELS; 164 165 typedef [uuid(66504306-BE0F-101A-8BBB-00AA00300CAB), public] 166 long OLE_XPOS_HIMETRIC; 167 168 typedef [uuid(66504307-BE0F-101A-8BBB-00AA00300CAB), public] 169 long OLE_YPOS_HIMETRIC; 170 171 typedef [uuid(66504308-BE0F-101A-8BBB-00AA00300CAB), public] 172 long OLE_XSIZE_HIMETRIC; 173 174 typedef [uuid(66504309-BE0F-101A-8BBB-00AA00300CAB), public] 175 long OLE_YSIZE_HIMETRIC; 176 177 typedef [uuid(BF030640-9069-101B-AE2D-08002B2EC713), public] 178 float OLE_XPOS_CONTAINER; 179 180 typedef [uuid(BF030641-9069-101B-AE2D-08002B2EC713), public] 181 float OLE_YPOS_CONTAINER; 182 183 typedef [uuid(BF030642-9069-101B-AE2D-08002B2EC713), public] 184 float OLE_XSIZE_CONTAINER; 185 186 typedef [uuid(BF030643-9069-101B-AE2D-08002B2EC713), public] 187 float OLE_YSIZE_CONTAINER; 188 189 typedef [uuid(66504313-BE0F-101A-8BBB-00AA00300CAB), public] 190 int OLE_HANDLE; 191 192 typedef [uuid(6650430B-BE0F-101A-8BBB-00AA00300CAB), public] 193 VARIANT_BOOL OLE_OPTEXCLUSIVE; 194 195 typedef [uuid(BF030644-9069-101B-AE2D-08002B2EC713), public] 196 VARIANT_BOOL OLE_CANCELBOOL; 197 198 typedef [uuid(BF030645-9069-101B-AE2D-08002B2EC713), public] 199 VARIANT_BOOL OLE_ENABLEDEFAULTBOOL; 200 201 [ 202 uuid(6650430A-BE0F-101A-8BBB-00AA00300CAB) 203 ] 204 enum OLE_TRISTATE { 205 Unchecked = 0, 206 Checked = 1, 207 Gray = 2 208 }; 209 210 typedef [uuid(6650430D-BE0F-101A-8BBB-00AA00300CAB), public] 211 BSTR FONTNAME; 212 213 typedef [uuid(6650430E-BE0F-101A-8BBB-00AA00300CAB), public] 214 CURRENCY FONTSIZE; 215 216 typedef [uuid(6650430F-BE0F-101A-8BBB-00AA00300CAB), public] 217 VARIANT_BOOL FONTBOLD; 218 219 typedef [uuid(66504310-BE0F-101A-8BBB-00AA00300CAB), public] 220 VARIANT_BOOL FONTITALIC; 221 222 typedef [uuid(66504311-BE0F-101A-8BBB-00AA00300CAB), public] 223 VARIANT_BOOL FONTUNDERSCORE; 224 225 typedef [uuid(66504312-BE0F-101A-8BBB-00AA00300CAB), public] 226 VARIANT_BOOL FONTSTRIKETHROUGH; 227 228 229 [ 230 odl, 231 uuid(BEF6E002-A874-101A-8BBA-00AA00300CAB), 232 helpstring("Font Object"), 233 hidden 234 ] 235 interface IFont : IUnknown { 236 [propget] HRESULT Name([out, retval] BSTR *pname); 237 [propput] HRESULT Name([in] BSTR pname); 238 239 [propget] HRESULT Size([out, retval] CURRENCY *psize); 240 [propput] HRESULT Size([in] CURRENCY psize); 241 242 [propget] HRESULT Bold([out, retval] VARIANT_BOOL *pbold); 243 [propput] HRESULT Bold([in] VARIANT_BOOL pbold); 244 245 [propget] HRESULT Italic([out, retval] VARIANT_BOOL *pitalic); 246 [propput] HRESULT Italic([in] VARIANT_BOOL pitalic); 247 248 [propget] HRESULT Underline([out, retval] VARIANT_BOOL *punderline); 249 [propput] HRESULT Underline([in] VARIANT_BOOL punderline); 250 251 [propget] HRESULT Strikethrough([out, retval] VARIANT_BOOL *pstrikethrough); 252 [propput] HRESULT Strikethrough([in] VARIANT_BOOL pstrikethrough); 253 254 [propget] HRESULT Weight([out, retval] short *pweight); 255 [propput] HRESULT Weight([in] short pweight); 256 257 [propget] HRESULT Charset([out, retval] short *pcharset); 258 [propput] HRESULT Charset([in] short pcharset); 259 260 [propget] HRESULT hFont([out, retval] OLE_HANDLE *phfont); 261 262 HRESULT Clone([out] IFont **ppfont); 263 264 HRESULT IsEqual([in] IFont *pfontOther); 265 266 HRESULT SetRatio([in] long cyLogical, [in] long cyHimetric); 267 268 HRESULT AddRefHfont([in] OLE_HANDLE hFont); 269 270 HRESULT ReleaseHfont([in] OLE_HANDLE hFont); 271 }; 272 273 274 [ 275 odl, 276 uuid(BEF6E003-A874-101A-8BBA-00AA00300CAB) 277 ] 278 dispinterface Font { 279 properties: 280 [id(DISPID_FONT_NAME)] BSTR Name; 281 [id(DISPID_FONT_SIZE)] CURRENCY Size; 282 [id(DISPID_FONT_BOLD)] VARIANT_BOOL Bold; 283 [id(DISPID_FONT_ITALIC)] VARIANT_BOOL Italic; 284 [id(DISPID_FONT_UNDER)] VARIANT_BOOL Underline; 285 [id(DISPID_FONT_STRIKE)] VARIANT_BOOL Strikethrough; 286 [id(DISPID_FONT_WEIGHT)] short Weight; 287 [id(DISPID_FONT_CHARSET)] short Charset; 288 methods: 289 } 290 291 typedef [public] Font IFontDisp; 292 293 [ 294 uuid(0BE35203-8F91-11CE-9DE3-00AA004BB851) 295 ] 296 coclass StdFont { 297 [default] dispinterface Font; 298 /* FIXME: We can't reference dispinterface FontEvents here because we need it to 299 appear at the end of the typelib. */ 300/* [default, source] dispinterface FontEvents;*/ 301 interface IFont; 302 }; 303 304 [ 305 odl, 306 uuid(7BF80980-BF32-101A-8BBB-00AA00300CAB), 307 helpstring("Picture Object"), 308 hidden 309 ] 310 interface IPicture : IUnknown { 311 [propget] HRESULT Handle([out, retval] OLE_HANDLE *phandle); 312 313 [propget] HRESULT hPal([out, retval] OLE_HANDLE *phpal); 314 315 [propget] HRESULT Type([out, retval] short *ptype); 316 317 [propget] HRESULT Width([out, retval] OLE_XSIZE_HIMETRIC *pwidth); 318 319 [propget] HRESULT Height([out, retval] OLE_YSIZE_HIMETRIC *pheight); 320 321 HRESULT Render([in] int hdc, 322 [in] long x, 323 [in] long y, 324 [in] long cx, 325 [in] long cy, 326 [in] OLE_XPOS_HIMETRIC xSrc, 327 [in] OLE_YPOS_HIMETRIC ySrc, 328 [in] OLE_XSIZE_HIMETRIC cxSrc, 329 [in] OLE_YSIZE_HIMETRIC cySrc, 330 [in] void *prcWBounds); 331 332 [propput] HRESULT hPal([in] OLE_HANDLE phpal); 333 334 [propget] HRESULT CurDC([out, retval] int *phdcOut); 335 336 HRESULT SelectPicture([in] int hdcIn, 337 [out] int *phdcOut, 338 [out] OLE_HANDLE *phbmpOut); 339 340 [propget] HRESULT KeepOriginalFormat([out, retval] VARIANT_BOOL *pfkeep); 341 [propput] HRESULT KeepOriginalFormat([in] VARIANT_BOOL pfkeep); 342 343 HRESULT PictureChanged(); 344 345 HRESULT SaveAsFile([in] void *pstm, 346 [in] VARIANT_BOOL fSaveMemCopy, 347 [out] long *pcbSize); 348 349 [propget] HRESULT Attributes([out, retval] long *pdwAttr); 350 351 HRESULT SetHdc([in] OLE_HANDLE hdc); 352 }; 353 354 [ 355 uuid(7BF80981-BF32-101A-8BBB-00AA00300CAB) 356 ] 357 dispinterface Picture { 358 properties: 359 [id(DISPID_PICT_HANDLE), readonly] OLE_HANDLE Handle; 360 [id(DISPID_PICT_HPAL)] OLE_HANDLE hPal; 361 [id(DISPID_PICT_TYPE), readonly] short Type; 362 [id(DISPID_PICT_WIDTH), readonly] OLE_XSIZE_HIMETRIC Width; 363 [id(DISPID_PICT_HEIGHT), readonly] OLE_YSIZE_HIMETRIC Height; 364 methods: 365 [id(DISPID_PICT_RENDER)] 366 void Render(int hdc, 367 long x, 368 long y, 369 long cx, 370 long cy, 371 OLE_XPOS_HIMETRIC xSrc, 372 OLE_YPOS_HIMETRIC ySrc, 373 OLE_XSIZE_HIMETRIC cxSrc, 374 OLE_YSIZE_HIMETRIC cySrc, 375 void *prcWBounds); 376 }; 377 378 typedef [public] Picture IPictureDisp; 379 380 [ 381 uuid(0BE35204-8F91-11CE-9DE3-00AA004BB851) 382 ] 383 coclass StdPicture { 384 [default] dispinterface Picture; 385 interface IPicture; 386 }; 387 388 [ 389 uuid(E6C8FA08-BD9F-11D0-985E-00C04FC29993) 390 ] 391 enum LoadPictureConstants { 392 Default = 0, 393 Monochrome = 1, 394 VgaColor = 2, 395 Color = 4 396 }; 397 398 [ 399 dllname("oleaut32.dll"), 400 uuid(91209AC0-60F6-11CF-9C5D-00AA00C1489E), 401 helpstring("Functions for Standard OLE Objects"), 402 helpcontext(0x2775) 403 ] 404 module StdFunctions{ 405 [ 406 entry("OleLoadPictureFileEx"), 407 helpstring("Loads a picture from a file"), 408 helpcontext(0x2775) 409 ] 410 HRESULT LoadPicture([in, optional] VARIANT filename, 411 [in, defaultvalue(0)] int widthDesired, 412 [in, defaultvalue(0)] int heightDesired, 413 [in, defaultvalue(Default)] enum LoadPictureConstants flags, 414 [out, retval] IPictureDisp **retval); 415 [ 416 entry("OleSavePictureFile"), 417 helpstring("Saves a picture to a file"), 418 helpcontext(0x2775) 419 ] 420 HRESULT SavePicture([in] IPictureDisp *Picture, 421 [in] BSTR filename); 422 }; 423 424 425 [ 426 uuid(4EF6100A-AF88-11D0-9846-00C04FC29993), 427 helpstring("Event Interface for the Font Object"), 428 hidden 429 ] 430 dispinterface FontEvents { 431 properties: 432 methods: 433 [id(DISPID_FONT_CHANGED)] void FontChanged([in] BSTR PropertyName); 434 }; 435 436 typedef [public] FontEvents IFontEventsDisp; 437 438 439}; 440