1/* 2 * Copyright (C) 1999 Paul Quinn 3 * Copyright (C) 1999 Francis Beaudet 4 * Copyright (C) 2003 Alexandre Julliard 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 21#ifndef DO_NO_IMPORTS 22import "oleidl.idl"; 23import "oaidl.idl"; 24import "servprov.idl"; 25import "urlmon.idl"; 26#endif 27 28/***************************************************************************** 29 * IOleControlTypes interface 30 */ 31[ 32 pointer_default(unique) 33] 34interface IOleControlTypes 35{ 36 typedef [v1_enum] enum tagUASFLAGS 37 { 38 UAS_NORMAL = 0x0, 39 UAS_BLOCKED = 0x1, 40 UAS_NOPARENTABLE = 0x2, 41 UAS_MASK = 0x3 42 } UASFLAGS; 43 44 typedef enum tagREADYSTATE 45 { 46 READYSTATE_UNINITIALIZED = 0, 47 READYSTATE_LOADING = 1, 48 READYSTATE_LOADED = 2, 49 READYSTATE_INTERACTIVE = 3, 50 READYSTATE_COMPLETE = 4 51 } READYSTATE; 52 53 typedef struct tagVARIANT_BLOB 54 { 55 DWORD clSize; 56 DWORD rpcReserved; 57 [size_is(clSize-1)] ULONGLONG ahData[]; 58 } wireVARIANT_BLOB; 59 60 typedef struct tagUserVARIANT 61 { 62 wireVARIANT_BLOB pVarBlob; 63 } UserVARIANT; 64} 65 66 67/***************************************************************************** 68 * IFont interface 69 */ 70[ 71 object, 72 uuid(bef6e002-a874-101a-8bba-00aa00300cab), 73 pointer_default(unique) 74] 75interface IFont : IUnknown 76{ 77 typedef IFont *LPFONT; 78 typedef TEXTMETRICW TEXTMETRICOLE, *LPTEXTMETRICOLE; 79 80 [propget] HRESULT Name( [out] BSTR *pname); 81 [propput] HRESULT Name( [in] BSTR name ); 82 [propget] HRESULT Size( [out] CY *psize ); 83 [propput] HRESULT Size( [in] CY size ); 84 [propget] HRESULT Bold( [out] BOOL *pbold ); 85 [propput] HRESULT Bold( [in] BOOL bold ); 86 [propget] HRESULT Italic( [out] BOOL *pitalic ); 87 [propput] HRESULT Italic( [in] BOOL italic ); 88 [propget] HRESULT Underline( [out] BOOL *punderline ); 89 [propput] HRESULT Underline( [in] BOOL underline ); 90 [propget] HRESULT Strikethrough( [out] BOOL *pstrikethrough ); 91 [propput] HRESULT Strikethrough( [in] BOOL strikethrough ); 92 [propget] HRESULT Weight( [out] SHORT *pweight ); 93 [propput] HRESULT Weight( [in] SHORT weight ); 94 [propget] HRESULT Charset( [out] SHORT *pcharset ); 95 [propput] HRESULT Charset( [in] SHORT charset ); 96 [propget] HRESULT hFont( [out] HFONT *phfont ); 97 HRESULT Clone( [out] IFont **ppfont ); 98 HRESULT IsEqual( [in] IFont *pFontOther ); 99 HRESULT SetRatio( [in] LONG cyLogical, [in] LONG cyHimetric ); 100 HRESULT QueryTextMetrics( [out] TEXTMETRICOLE * ptm ); 101 HRESULT AddRefHfont( [in] HFONT hfont ); 102 HRESULT ReleaseHfont( [in] HFONT hfont ); 103 HRESULT SetHdc( [in] HDC hdc ); 104} 105 106 107/***************************************************************************** 108 * IFontDisp interface 109 */ 110[ 111 object, 112 uuid(bef6e003-a874-101a-8bba-00aa00300cab), 113 pointer_default(unique) 114] 115interface IFontDisp : IDispatch 116{ 117 typedef IFontDisp *LPFONTDISP; 118} 119 120 121/***************************************************************************** 122 * IFontEventsDisp interface 123 */ 124[ 125 object, 126 uuid(4ef6100a-af88-11d0-9846-00c04fc29993), 127 pointer_default(unique) 128] 129interface IFontEventsDisp : IDispatch 130{ 131 typedef IFontEventsDisp *LPFONTEVENTS; 132} 133 134 135/***************************************************************************** 136 * IPicture interface 137 */ 138[ 139 object, 140 uuid(7bf80980-bf32-101a-8bbb-00aa00300cab), 141 pointer_default(unique) 142] 143interface IPicture : IUnknown 144{ 145 typedef IPicture *LPPICTURE; 146 147 typedef enum tagPicture 148 { 149 PICTURE_SCALABLE = 0x1, 150 PICTURE_TRANSPARENT = 0x2 151 } PICTUREATTRIBUTES; 152 153 typedef UINT OLE_HANDLE; 154 typedef LONG OLE_XPOS_HIMETRIC; 155 typedef LONG OLE_YPOS_HIMETRIC; 156 typedef LONG OLE_XSIZE_HIMETRIC; 157 typedef LONG OLE_YSIZE_HIMETRIC; 158 159 [propget] HRESULT Handle( [out] OLE_HANDLE *pHandle ); 160 [propget] HRESULT hPal( [out] OLE_HANDLE *phPal ); 161 [propget] HRESULT Type( [out] SHORT *pType ); 162 [propget] HRESULT Width( [out] OLE_XSIZE_HIMETRIC *pWidth ); 163 [propget] HRESULT Height( [out] OLE_YSIZE_HIMETRIC *pHeight ); 164 165 HRESULT Render( 166 [in] HDC hdc, 167 [in] LONG x, 168 [in] LONG y, 169 [in] LONG cx, 170 [in] LONG cy, 171 [in] OLE_XPOS_HIMETRIC xSrc, 172 [in] OLE_YPOS_HIMETRIC ySrc, 173 [in] OLE_XSIZE_HIMETRIC cxSrc, 174 [in] OLE_YSIZE_HIMETRIC cySrc, 175 [in] LPCRECT pRcWBounds); 176 177 HRESULT set_hPal( [in] OLE_HANDLE hPal ); 178 179 [propget] HRESULT CurDC( [out] HDC *phDC ); 180 181 HRESULT SelectPicture( 182 [in] HDC hDCIn, 183 [out] HDC * phDCOut, 184 [out] OLE_HANDLE * phBmpOut); 185 186 [propget] HRESULT KeepOriginalFormat( [out] BOOL *pKeep ); 187 188 [propput] HRESULT KeepOriginalFormat( [in] BOOL keep ); 189 190 HRESULT PictureChanged(); 191 192 HRESULT SaveAsFile( 193 [in] LPSTREAM pStream, 194 [in] BOOL fSaveMemCopy, 195 [out] LONG *pCbSize); 196 197 [propget] HRESULT Attributes( [out] DWORD *pDwAttr ); 198} 199 200 201/***************************************************************************** 202 * IPictureDisp interface 203 */ 204[ 205 object, 206 uuid(7bf80981-bf32-101a-8bbb-00aa00300cab), 207 pointer_default(unique) 208] 209interface IPictureDisp : IDispatch 210{ 211 typedef IPictureDisp *LPPICTUREDISP; 212} 213 214 215/***************************************************************************** 216 * IOleControl interface 217 */ 218[ 219 object, 220 uuid(b196b288-bab4-101a-b69c-00aa00341d07), 221 pointer_default(unique) 222] 223 224interface IOleControl : IUnknown 225{ 226 typedef IOleControl *LPOLECONTROL; 227 228 typedef struct tagCONTROLINFO 229 { 230 ULONG cb; 231 HACCEL hAccel; 232 USHORT cAccel; 233 DWORD dwFlags; 234 } CONTROLINFO, *LPCONTROLINFO; 235 236 typedef enum tagCTRLINFO 237 { 238 CTRLINFO_EATS_RETURN = 1, 239 CTRLINFO_EATS_ESCAPE = 2 240 } CTRLINFO; 241 242 HRESULT GetControlInfo( [out] CONTROLINFO *pCI ); 243 HRESULT OnMnemonic( [in] MSG *pMsg ); 244 HRESULT OnAmbientPropertyChange( [in] DISPID dispID ); 245 HRESULT FreezeEvents( [in] BOOL bFreeze ); 246} 247 248 249/***************************************************************************** 250 * IOleControlSite interface 251 */ 252[ 253 object, 254 uuid(b196b289-bab4-101a-b69c-00aa00341d07), 255 pointer_default(unique) 256] 257interface IOleControlSite : IUnknown 258{ 259 typedef IOleControlSite *LPOLECONTROLSITE; 260 261 typedef struct tagPOINTF 262 { 263 FLOAT x; 264 FLOAT y; 265 } POINTF, *LPPOINTF; 266 267 typedef enum tagXFORMCOORDS 268 { 269 XFORMCOORDS_POSITION = 0x1, 270 XFORMCOORDS_SIZE = 0x2, 271 XFORMCOORDS_HIMETRICTOCONTAINER = 0x4, 272 XFORMCOORDS_CONTAINERTOHIMETRIC = 0x8, 273 XFORMCOORDS_EVENTCOMPAT = 0x10 274 } XFORMCOORDS; 275 276 HRESULT OnControlInfoChanged(); 277 278 HRESULT LockInPlaceActive( [in] BOOL fLock ); 279 280 HRESULT GetExtendedControl( [out] IDispatch ** ppDisp ); 281 282 HRESULT TransformCoords( 283 [in, out] POINTL *pPtlHimetric, 284 [in, out] POINTF *pPtfContainer, 285 [in] DWORD dwFlags); 286 287 HRESULT TranslateAccelerator( [in] MSG *pMsg, [in] DWORD grfModifiers ); 288 289 HRESULT OnFocus( [in] BOOL fGotFocus ); 290 291 HRESULT ShowPropertyFrame(); 292} 293 294 295/***************************************************************************** 296 * IOleInPlaceSiteEx interface 297 */ 298[ 299 object, 300 uuid(9c2cad80-3424-11cf-b670-00aa004cd6d8), 301 pointer_default(unique) 302] 303interface IOleInPlaceSiteEx : IOleInPlaceSite 304{ 305 typedef IOleInPlaceSiteEx *LPOLEINPLACESITEEX; 306 307 typedef enum tagACTIVATEFLAGS 308 { 309 ACTIVATE_WINDOWLESS = 1 310 } ACTIVATE_FLAGS; 311 312 HRESULT OnInPlaceActivateEx( [out] BOOL * pfNoRedraw, [in] DWORD dwFlags ); 313 HRESULT OnInPlaceDeactivateEx( [in] BOOL fNoRedraw ); 314 HRESULT RequestUIActivate(); 315} 316 317 318/***************************************************************************** 319 * IOleInPlaceSiteWindowless interface 320 */ 321[ 322 local, 323 object, 324 uuid(922eada0-3424-11cf-b670-00aa004cd6d8), 325 pointer_default(unique) 326] 327interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx 328{ 329 typedef IOleInPlaceSiteWindowless *LPOLEINPLACESITEWINDOWLESS; 330 331 typedef enum tagOLEDCFLAGS 332 { 333 OLEDC_NODRAW = 0x1, 334 OLEDC_PAINTBKGND = 0x2, 335 OLEDC_OFFSCREEN = 0x4 336 } OLEDCFLAGS; 337 338 HRESULT CanWindowlessActivate(); 339 340 HRESULT GetCapture(); 341 342 HRESULT SetCapture( [in] BOOL fCapture ); 343 344 HRESULT GetFocus(); 345 346 HRESULT SetFocus( [in] BOOL fFocus ); 347 348 HRESULT GetDC( 349 [in] LPCRECT pRect, 350 [in] DWORD grfFlags, 351 [out] HDC *phDC); 352 353 HRESULT ReleaseDC( [in] HDC hDC ); 354 355 HRESULT InvalidateRect( 356 [in] LPCRECT pRect, 357 [in] BOOL fErase); 358 359 HRESULT InvalidateRgn( 360 [in] HRGN hRGN, 361 [in] BOOL fErase); 362 363 HRESULT ScrollRect( 364 [in] INT dx, 365 [in] INT dy, 366 [in] LPCRECT pRectScroll, 367 [in] LPCRECT pRectClip); 368 369 HRESULT AdjustRect( [in, out] LPRECT prc ); 370 371 HRESULT OnDefWindowMessage( 372 [in] UINT msg, 373 [in] WPARAM wParam, 374 [in] LPARAM lParam, 375 [out] LRESULT *plResult); 376} 377 378 379/***************************************************************************** 380 * IOleInPlaceObjectWindowless interface 381 */ 382[ 383 local, 384 object, 385 uuid(1c2056cc-5ef4-101b-8bc8-00aa003e3b29), 386 pointer_default(unique) 387] 388interface IOleInPlaceObjectWindowless : IOleInPlaceObject 389{ 390 typedef IOleInPlaceObjectWindowless *LPOLEINPLACEOBJECTWINDOWLESS; 391 392 HRESULT OnWindowMessage( 393 [in] UINT msg, 394 [in] WPARAM wParam, 395 [in] LPARAM lParam, 396 [out] LRESULT *plResult); 397 398 HRESULT GetDropTarget( [out] IDropTarget **ppDropTarget ); 399} 400 401 402/***************************************************************************** 403 * IClassFactory2 interface 404 */ 405[ 406 object, 407 uuid(b196b28f-bab4-101a-b69c-00aa00341d07), 408 pointer_default(unique) 409] 410interface IClassFactory2 : IClassFactory 411{ 412 typedef IClassFactory2 *LPCLASSFACTORY2; 413 414 typedef struct tagLICINFO 415 { 416 LONG cbLicInfo; 417 BOOL fRuntimeKeyAvail; 418 BOOL fLicVerified; 419 } LICINFO, *LPLICINFO; 420 421 HRESULT GetLicInfo( [out] LICINFO *pLicInfo ); 422 423 HRESULT RequestLicKey( 424 [in] DWORD dwReserved, 425 [out] BSTR *pBstrKey); 426 427 [local] 428 HRESULT CreateInstanceLic( 429 [in] IUnknown *pUnkOuter, 430 [in] IUnknown *pUnkReserved, 431 [in] REFIID riid, 432 [in] BSTR bstrKey, 433 [out, iid_is(riid)] PVOID *ppvObj); 434 435 [call_as(CreateInstanceLic)] 436 HRESULT RemoteCreateInstanceLic( 437 [in] REFIID riid, 438 [in] BSTR bstrKey, 439 [out, iid_is(riid)] IUnknown **ppvObj); 440} 441 442 443/***************************************************************************** 444 * IViewObject interface 445 */ 446[ 447 local, 448 object, 449 uuid(3af24292-0c96-11ce-a0cf-00aa00600ab8), 450 pointer_default(unique) 451] 452interface IViewObjectEx : IViewObject2 453{ 454 typedef IViewObjectEx *LPVIEWOBJECTEX; 455 456 typedef enum tagVIEWSTATUS 457 { 458 VIEWSTATUS_OPAQUE = 1, 459 VIEWSTATUS_SOLIDBKGND = 2, 460 VIEWSTATUS_DVASPECTOPAQUE = 4, 461 VIEWSTATUS_DVASPECTTRANSPARENT = 8, 462 VIEWSTATUS_SURFACE = 16, 463 VIEWSTATUS_3DSURFACE = 32 464 } VIEWSTATUS; 465 466 typedef enum tagHITRESULT 467 { 468 HITRESULT_OUTSIDE = 0, 469 HITRESULT_TRANSPARENT = 1, 470 HITRESULT_CLOSE = 2, 471 HITRESULT_HIT = 3 472 } HITRESULT; 473 474 typedef enum tagDVASPECT2 475 { 476 DVASPECT_OPAQUE = 16, 477 DVASPECT_TRANSPARENT = 32 478 } DVASPECT2; 479 480 typedef struct tagExtentInfo 481 { 482 ULONG cb; 483 DWORD dwExtentMode; 484 SIZEL sizelProposed; 485 } DVEXTENTINFO; 486 487 typedef enum tagAspectInfoFlag 488 { 489 DVASPECTINFOFLAG_CANOPTIMIZE = 1 490 } DVASPECTINFOFLAG; 491 492 typedef struct tagAspectInfo 493 { 494 ULONG cb; 495 DWORD dwFlags; 496 } DVASPECTINFO; 497 498 HRESULT GetRect( 499 [in] DWORD dwAspect, 500 [out] LPRECTL pRect); 501 502 HRESULT GetViewStatus( [out] DWORD *pdwStatus ); 503 504 HRESULT QueryHitPoint( 505 [in] DWORD dwAspect, 506 [in] LPCRECT pRectBounds, 507 [in] POINT ptlLoc, 508 [in] LONG lCloseHint, 509 [out] DWORD *pHitResult); 510 511 HRESULT QueryHitRect( 512 [in] DWORD dwAspect, 513 [in] LPCRECT pRectBounds, 514 [in] LPCRECT pRectLoc, 515 [in] LONG lCloseHint, 516 [out] DWORD *pHitResult); 517 518 HRESULT GetNaturalExtent ( 519 [in] DWORD dwAspect, 520 [in] LONG lindex, 521 [in] DVTARGETDEVICE *ptd, 522 [in] HDC hicTargetDev, 523 [in] DVEXTENTINFO *pExtentInfo, 524 [out] LPSIZEL pSizel); 525} 526 527 528/***************************************************************************** 529 * IProvideClassInfo interface 530 */ 531[ 532 object, 533 uuid(b196b283-bab4-101a-b69c-00aa00341d07), 534 pointer_default(unique) 535] 536interface IProvideClassInfo : IUnknown 537{ 538 typedef IProvideClassInfo *LPPROVIDECLASSINFO; 539 540cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") 541cpp_quote("#undef GetClassInfo") 542cpp_quote("#endif") 543 544 HRESULT GetClassInfo( [out] ITypeInfo ** ppTI ); 545} 546 547 548/***************************************************************************** 549 * IProvideClassInfo2 interface 550 */ 551[ 552 object, 553 uuid(a6bc3ac0-dbaa-11ce-9de3-00aa004bb851), 554 pointer_default(unique) 555] 556interface IProvideClassInfo2 : IProvideClassInfo 557{ 558 typedef IProvideClassInfo2 *LPPROVIDECLASSINFO2; 559 560 typedef enum tagGUIDKIND 561 { 562 GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1 563 } GUIDKIND; 564 565 HRESULT GetGUID( 566 [in] DWORD dwGuidKind, 567 [out] GUID *pGUID ); 568} 569 570 571[ 572 object, 573 uuid(a7aba9c1-8983-11cf-8f20-00805f2cd064), 574 pointer_default(unique) 575] 576interface IProvideMultipleClassInfo : IProvideClassInfo2 577{ 578 cpp_quote("#define MULTICLASSINFO_GETTYPEINFO 0x00000001") 579 cpp_quote("#define MULTICLASSINFO_GETNUMRESERVEDDISPIDS 0x00000002") 580 cpp_quote("#define MULTICLASSINFO_GETIIDPRIMARY 0x00000004") 581 cpp_quote("#define MULTICLASSINFO_GETIIDSOURCE 0x00000008") 582 583 cpp_quote("#define TIFLAGS_EXTENDDISPATCHONLY 0x00000001") 584 585 typedef IProvideMultipleClassInfo *LPPROVIDEMULTIPLECLASSINFO; 586 587 HRESULT GetMultiTypeInfoCount( 588 [out] ULONG *pcti); 589 590 HRESULT GetInfoOfIndex( 591 [in] ULONG iti, 592 [in] DWORD dwFlags, 593 [out] ITypeInfo **pptiCoClass, 594 [out] DWORD *pdwTIFlags, 595 [out] ULONG *pcdispidReserved, 596 [out] IID *piidPrimary, 597 [out] IID *piidSource); 598} 599 600 601/***************************************************************************** 602 * IConnectionPoint interface 603 */ 604interface IConnectionPointContainer; /* forward declarations */ 605interface IEnumConnections; 606 607[ 608 object, 609 uuid(b196b286-bab4-101a-b69c-00aa00341d07), 610 pointer_default(unique) 611] 612interface IConnectionPoint : IUnknown 613{ 614 typedef IConnectionPoint *PCONNECTIONPOINT, *LPCONNECTIONPOINT; 615 616 HRESULT GetConnectionInterface( [out] IID *pIID ); 617 HRESULT GetConnectionPointContainer( [out] IConnectionPointContainer **ppCPC ); 618 HRESULT Advise( [in] IUnknown *pUnkSink, [out] DWORD *pdwCookie ); 619 HRESULT Unadvise( [in] DWORD dwCookie ); 620 HRESULT EnumConnections( [out] IEnumConnections **ppEnum ); 621} 622 623 624/***************************************************************************** 625 * IConnectionPointContainer interface 626 */ 627interface IEnumConnectionPoints; /* forward declaration */ 628[ 629 object, 630 uuid(b196b284-bab4-101a-b69c-00aa00341d07), 631 pointer_default(unique) 632] 633interface IConnectionPointContainer : IUnknown 634{ 635 typedef IConnectionPointContainer *PCONNECTIONPOINTCONTAINER, *LPCONNECTIONPOINTCONTAINER; 636 637 HRESULT EnumConnectionPoints( [out] IEnumConnectionPoints **ppEnum ); 638 HRESULT FindConnectionPoint( [in] REFIID riid, [out] IConnectionPoint **ppCP ); 639} 640 641 642/***************************************************************************** 643 * IEnumConnections interface 644 */ 645[ 646 object, 647 uuid(b196b287-bab4-101a-b69c-00aa00341d07), 648 pointer_default(unique) 649] 650interface IEnumConnections : IUnknown 651{ 652 typedef IEnumConnections *PENUMCONNECTIONS, *LPENUMCONNECTIONS; 653 654 typedef struct tagCONNECTDATA 655 { 656 IUnknown *pUnk; 657 DWORD dwCookie; 658 } CONNECTDATA, *PCONNECTDATA, *LPCONNECTDATA; 659 660 [local] 661 HRESULT Next( 662 [in] ULONG cConnections, 663 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTDATA rgcd, 664 [out] ULONG *pcFetched); 665 666 [call_as(Next)] 667 HRESULT RemoteNext( 668 [in] ULONG cConnections, 669 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTDATA rgcd, 670 [out] ULONG *pcFetched); 671 672 HRESULT Skip( [in] ULONG cConnections ); 673 674 HRESULT Reset(); 675 676 HRESULT Clone( [out] IEnumConnections **ppEnum ); 677} 678 679 680/***************************************************************************** 681 * IEnumConnectionPoints interface 682 */ 683[ 684 object, 685 uuid(b196b285-bab4-101a-b69c-00aa00341d07), 686 pointer_default(unique) 687] 688interface IEnumConnectionPoints : IUnknown 689{ 690 typedef IEnumConnectionPoints *PENUMCONNECTIONPOINTS, *LPENUMCONNECTIONPOINTS; 691 692 [local] 693 HRESULT Next( 694 [in] ULONG cConnections, 695 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTIONPOINT *ppCP, 696 [out] ULONG *pcFetched); 697 698 [call_as(Next)] 699 HRESULT RemoteNext( 700 [in] ULONG cConnections, 701 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTIONPOINT *ppCP, 702 [out] ULONG *pcFetched); 703 704 HRESULT Skip( [in] ULONG cConnections ); 705 706 HRESULT Reset(); 707 708 HRESULT Clone( [out] IEnumConnectionPoints **ppEnum ); 709} 710 711 712/***************************************************************************** 713 * IPropertyPage interface 714 */ 715interface IPropertyPageSite; /* forward declaration */ 716[ 717 object, 718 uuid(b196b28d-bab4-101a-b69c-00aa00341d07), 719 pointer_default(unique) 720] 721interface IPropertyPage : IUnknown 722{ 723 typedef IPropertyPage *LPPROPERTYPAGE; 724 725 typedef struct tagPROPPAGEINFO 726 { 727 ULONG cb; 728 LPOLESTR pszTitle; 729 SIZE size; 730 LPOLESTR pszDocString; 731 LPOLESTR pszHelpFile; 732 DWORD dwHelpContext; 733 } PROPPAGEINFO, *LPPROPPAGEINFO; 734 735 HRESULT SetPageSite( [in] IPropertyPageSite *pPageSite ); 736 737 HRESULT Activate( 738 [in] HWND hWndParent, 739 [in] LPCRECT pRect, 740 [in] BOOL bModal); 741 742 HRESULT Deactivate(); 743 744 HRESULT GetPageInfo( [out] PROPPAGEINFO *pPageInfo ); 745 746 HRESULT SetObjects( 747 [in] ULONG cObjects, 748 [in, size_is(cObjects)] IUnknown **ppUnk); 749 750 HRESULT Show( [in] UINT nCmdShow ); 751 752 HRESULT Move( [in] LPCRECT pRect ); 753 754 HRESULT IsPageDirty(); 755 756 HRESULT Apply(); 757 758 HRESULT Help( [in] LPCOLESTR pszHelpDir ); 759 760 HRESULT TranslateAccelerator( [in] MSG *pMsg ); 761} 762 763 764/***************************************************************************** 765 * IPropertyPage2 interface 766 */ 767[ 768 object, 769 uuid(01e44665-24ac-101b-84ed-08002b2ec713), 770 pointer_default(unique) 771] 772interface IPropertyPage2 : IPropertyPage 773{ 774 typedef IPropertyPage2 *LPPROPERTYPAGE2; 775 776 HRESULT EditProperty( [in] DISPID dispID ); 777} 778 779 780/***************************************************************************** 781 * IPropertyPageSite interface 782 */ 783[ 784 object, 785 uuid(b196b28c-bab4-101a-b69c-00aa00341d07), 786 pointer_default(unique) 787] 788interface IPropertyPageSite : IUnknown 789{ 790 typedef IPropertyPageSite *LPPROPERTYPAGESITE; 791 792 typedef enum tagPROPPAGESTATUS 793 { 794 PROPPAGESTATUS_DIRTY = 0x1, 795 PROPPAGESTATUS_VALIDATE = 0x2, 796 PROPPAGESTATUS_CLEAN = 0x4 797 } PROPPAGESTATUS; 798 799 HRESULT OnStatusChange( [in] DWORD dwFlags ); 800 HRESULT GetLocaleID( [out] LCID *pLocaleID ); 801 HRESULT GetPageContainer( [out] IUnknown **ppUnk ); 802 HRESULT TranslateAccelerator( [in] MSG *pMsg ); 803} 804 805 806/***************************************************************************** 807 * IPropertyNotifySink interface 808 */ 809[ 810 object, 811 uuid(9bfbbc02-eff1-101a-84ed-00aa00341d07), 812 pointer_default(unique) 813] 814interface IPropertyNotifySink : IUnknown 815{ 816 typedef IPropertyNotifySink *LPPROPERTYNOTIFYSINK; 817 818 HRESULT OnChanged( [in] DISPID dispID ); 819 HRESULT OnRequestEdit( [in] DISPID dispID ); 820} 821 822 823/***************************************************************************** 824 * ISimpleFrameSite interface 825 */ 826[ 827 object, 828 uuid(742b0e01-14e6-101b-914e-00aa00300cab), 829 pointer_default(unique) 830] 831interface ISimpleFrameSite : IUnknown 832{ 833 typedef ISimpleFrameSite *LPSIMPLEFRAMESITE; 834 835 HRESULT PreMessageFilter( 836 [in] HWND hWnd, 837 [in] UINT msg, 838 [in] WPARAM wp, 839 [in] LPARAM lp, 840 [out] LRESULT *plResult, 841 [out] DWORD *pdwCookie); 842 843 HRESULT PostMessageFilter( 844 [in] HWND hWnd, 845 [in] UINT msg, 846 [in] WPARAM wp, 847 [in] LPARAM lp, 848 [out] LRESULT *plResult, 849 [in] DWORD dwCookie); 850} 851 852 853/***************************************************************************** 854 * IPersistStreamInit interface 855 */ 856[ 857 object, 858 uuid(7fd52380-4e07-101b-ae2d-08002b2ec713), 859 pointer_default(unique) 860] 861interface IPersistStreamInit : IPersist 862{ 863 typedef IPersistStreamInit *LPPERSISTSTREAMINIT; 864 865 HRESULT IsDirty(); 866 HRESULT Load( [in] LPSTREAM pStm ); 867 HRESULT Save( [in] LPSTREAM pStm, [in] BOOL fClearDirty ); 868 HRESULT GetSizeMax( [out] ULARGE_INTEGER *pcbSize ); 869 HRESULT InitNew(); 870} 871 872 873/***************************************************************************** 874 * IPersistMemory interface 875 */ 876[ 877 object, 878 uuid(bd1ae5e0-a6ae-11ce-bd37-504200c10000), 879 pointer_default(unique) 880] 881interface IPersistMemory : IPersist 882{ 883 typedef IPersistMemory *LPPERSISTMEMORY; 884 885 HRESULT IsDirty(); 886 887 [local] 888 HRESULT Load( 889 [in, size_is(cbSize)] LPVOID pMem, 890 [in] ULONG cbSize); 891 892 [call_as(Load)] 893 HRESULT RemoteLoad( 894 [in, size_is(cbSize)] BYTE *pMem, 895 [in] ULONG cbSize); 896 897 [local] 898 HRESULT Save( 899 [out, size_is(cbSize)] LPVOID pMem, 900 [in] BOOL fClearDirty, 901 [in] ULONG cbSize); 902 903 [call_as(Save)] 904 HRESULT RemoteSave( 905 [out, size_is(cbSize)] BYTE *pMem, 906 [in] BOOL fClearDirty, 907 [in] ULONG cbSize); 908 909 HRESULT GetSizeMax( [out] ULONG *pCbSize ); 910 HRESULT InitNew(); 911} 912 913 914/***************************************************************************** 915 * IPersistPropertyBag interface 916 */ 917[ 918 object, 919 uuid(37d84f60-42cb-11ce-8135-00aa004bb851), 920 pointer_default(unique) 921] 922interface IPersistPropertyBag : IPersist 923{ 924 typedef IPersistPropertyBag *LPPERSISTPROPERTYBAG; 925 926 HRESULT InitNew(); 927 928 HRESULT Load( 929 [in] IPropertyBag *pPropBag, 930 [in] IErrorLog *pErrorLog); 931 932 HRESULT Save( 933 [in] IPropertyBag *pPropBag, 934 [in] BOOL fClearDirty, 935 [in] BOOL fSaveAllProperties); 936} 937 938 939/***************************************************************************** 940 * IPropertyBag2 interface 941 */ 942[ 943 object, 944 uuid(22f55882-280b-11d0-a8a9-00a0c90c2004), 945 pointer_default(unique) 946] 947interface IPropertyBag2 : IUnknown 948{ 949 typedef IPropertyBag2 *LPPROPERTYBAG2; 950 951 typedef enum tagPROPBAG2_TYPE 952 { 953 PROPBAG2_TYPE_UNDEFINED = 0, 954 PROPBAG2_TYPE_DATA = 1, 955 PROPBAG2_TYPE_URL = 2, 956 PROPBAG2_TYPE_OBJECT = 3, 957 PROPBAG2_TYPE_STREAM = 4, 958 PROPBAG2_TYPE_STORAGE = 5, 959 PROPBAG2_TYPE_MONIKER = 6 960 } PROPBAG2_TYPE; 961 962 typedef struct tagPROPBAG2 963 { 964 DWORD dwType; 965 VARTYPE vt; 966 CLIPFORMAT cfType; 967 DWORD dwHint; 968 LPOLESTR pstrName; 969 CLSID clsid; 970 } PROPBAG2; 971 972 HRESULT Read( 973 [in] ULONG cProperties, 974 [in] PROPBAG2 *pPropBag, 975 [in] IErrorLog *pErrLog, 976 [out] VARIANT *pvarValue, 977 [out] HRESULT *phrError); 978 979 HRESULT Write( 980 [in] ULONG cProperties, 981 [in] PROPBAG2 *pPropBag, 982 [in] VARIANT *pvarValue); 983 984 HRESULT CountProperties( 985 [out] ULONG *pcProperties ); 986 987 HRESULT GetPropertyInfo( 988 [in] ULONG iProperty, 989 [in] ULONG cProperties, 990 [out] PROPBAG2 *pPropBag, 991 [out] ULONG *pcProperties); 992 993 HRESULT LoadObject( 994 [in] LPCOLESTR pstrName, 995 [in] DWORD dwHint, 996 [in] IUnknown *pUnkObject, 997 [in] IErrorLog *pErrLog); 998} 999 1000 1001/***************************************************************************** 1002 * IPersistPropertyBag2 interface 1003 */ 1004[ 1005 object, 1006 uuid(22f55881-280b-11d0-a8a9-00a0c90c2004), 1007 pointer_default(unique) 1008] 1009interface IPersistPropertyBag2 : IPersist 1010{ 1011 typedef IPersistPropertyBag2 *LPPERSISTPROPERTYBAG2; 1012 1013 HRESULT InitNew(); 1014 1015 HRESULT Load( 1016 [in] IPropertyBag2 *pPropBag, 1017 [in] IErrorLog *pErrorLog); 1018 1019 HRESULT Save( 1020 [in] IPropertyBag2 *pPropBag, 1021 [in] BOOL fClearDirty, 1022 [in] BOOL fSaveAllProperties); 1023 1024 HRESULT IsDirty(); 1025} 1026 1027 1028/***************************************************************************** 1029 * ISpecifyPropertyPages interface 1030 */ 1031[ 1032 object, 1033 uuid(b196b28b-bab4-101a-b69c-00aa00341d07), 1034 pointer_default(unique) 1035] 1036interface ISpecifyPropertyPages : IUnknown 1037{ 1038 typedef ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES; 1039 1040 typedef struct tagCAUUID 1041 { 1042 ULONG cElems; 1043 [size_is(cElems)] GUID *pElems; 1044 } CAUUID, *LPCAUUID; 1045 1046 HRESULT GetPages( [out] CAUUID *pPages ); 1047} 1048 1049 1050/***************************************************************************** 1051 * IPerPropertyBrowsing interface 1052 */ 1053[ 1054 object, 1055 uuid(376bd3aa-3845-101b-84ed-08002b2ec713), 1056 pointer_default(unique) 1057] 1058interface IPerPropertyBrowsing : IUnknown 1059{ 1060 typedef IPerPropertyBrowsing *LPPERPROPERTYBROWSING; 1061 1062 typedef struct tagCALPOLESTR 1063 { 1064 ULONG cElems; 1065 [size_is(cElems)] LPOLESTR *pElems; 1066 } CALPOLESTR, *LPCALPOLESTR; 1067 1068 typedef struct tagCADWORD 1069 { 1070 ULONG cElems; 1071 [size_is(cElems)] DWORD *pElems; 1072 } CADWORD, *LPCADWORD; 1073 1074 HRESULT GetDisplayString( 1075 [in] DISPID dispID, 1076 [out] BSTR *pBstr); 1077 1078 HRESULT MapPropertyToPage( 1079 [in] DISPID dispID, 1080 [out] CLSID *pClsid); 1081 1082 HRESULT GetPredefinedStrings( 1083 [in] DISPID dispID, 1084 [out] CALPOLESTR *pCaStringsOut, 1085 [out] CADWORD *pCaCookiesOut); 1086 1087 HRESULT GetPredefinedValue( 1088 [in] DISPID dispID, 1089 [in] DWORD dwCookie, 1090 [out] VARIANT *pVarOut); 1091} 1092 1093 1094/***************************************************************************** 1095 * IAdviseSinkEx interface 1096 */ 1097[ 1098 object, 1099 uuid(3af24290-0c96-11ce-a0cf-00aa00600ab8), 1100 pointer_default(unique) 1101] 1102interface IAdviseSinkEx : IAdviseSink 1103{ 1104 typedef IAdviseSinkEx *LPADVISESINKEX; 1105 1106 [local] 1107 void OnViewStatusChange( [in] DWORD dwViewStatus ); 1108 1109 [call_as(OnViewStatusChange)] 1110 HRESULT RemoteOnViewStatusChange( [in] DWORD dwViewStatus ); 1111} 1112 1113 1114/***************************************************************************** 1115 * IPointerInactive interface 1116 */ 1117[ 1118 object, 1119 uuid(55980ba0-35aa-11cf-b671-00aa004cd6d8), 1120 pointer_default(unique) 1121] 1122interface IPointerInactive : IUnknown 1123{ 1124 typedef IPointerInactive *LPPOINTERINACTIVE; 1125 1126 HRESULT GetActivationPolicy( 1127 [out] DWORD *pdwPolicy); 1128 1129 HRESULT OnInactiveMouseMove( 1130 [in] LPCRECT pRectBounds, 1131 [in] LONG x, 1132 [in] LONG y, 1133 [in] DWORD grfKeyState); 1134 1135 HRESULT OnInactiveSetCursor( 1136 [in] LPCRECT pRectBounds, 1137 [in] LONG x, 1138 [in] LONG y, 1139 [in] DWORD dwMouseMsg, 1140 [in] BOOL fSetAlways); 1141} 1142 1143 1144/***************************************************************************** 1145 * IObjectWithSite interface 1146 */ 1147[ 1148 object, 1149 uuid(fc4801a3-2ba9-11cf-a229-00aa003d7352), 1150 pointer_default(unique) 1151] 1152interface IObjectWithSite : IUnknown 1153{ 1154 typedef IObjectWithSite *LPOBJECTWITHSITE; 1155 1156 HRESULT SetSite( 1157 [in] IUnknown * pUnkSite); 1158 1159 HRESULT GetSite( 1160 [in] REFIID riid, 1161 [out, iid_is(riid)] PVOID *ppvSite); 1162} 1163 1164 1165/***************************************************************************** 1166 * IOleUndoUnit interface 1167 */ 1168interface IOleUndoManager; /* forward declaration */ 1169[ 1170 object, 1171 uuid(894ad3b0-ef97-11ce-9bc9-00aa00608e01), 1172 pointer_default(unique) 1173] 1174interface IOleUndoUnit : IUnknown 1175{ 1176 typedef IOleUndoUnit *LPOLEUNDOUNIT; 1177 1178 HRESULT Do( [in] IOleUndoManager *pUndoManager ); 1179 HRESULT GetDescription( [out] BSTR *pBstr ); 1180 HRESULT GetUnitType( [out] CLSID *pClsid, [out] LONG *plID ); 1181 HRESULT OnNextAdd(); 1182} 1183 1184 1185/***************************************************************************** 1186 * IOleParentUndoUnit interface 1187 */ 1188[ 1189 object, 1190 uuid(a1faf330-ef97-11ce-9bc9-00aa00608e01), 1191 pointer_default(unique) 1192] 1193interface IOleParentUndoUnit : IOleUndoUnit 1194{ 1195 typedef IOleParentUndoUnit *LPOLEPARENTUNDOUNIT; 1196 1197 HRESULT Open( [in] IOleParentUndoUnit *pPUU ); 1198 HRESULT Close( [in] IOleParentUndoUnit *pPUU, [in] BOOL fCommit ); 1199 HRESULT Add( [in] IOleUndoUnit *pUU ); 1200 HRESULT FindUnit( [in] IOleUndoUnit *pUU ); 1201 HRESULT GetParentState( [out] DWORD *pdwState ); 1202} 1203 1204 1205/***************************************************************************** 1206 * IEnumOleUndoUnits interface 1207 */ 1208[ 1209 object, 1210 uuid(b3e7c340-ef97-11ce-9bc9-00aa00608e01), 1211 pointer_default(unique) 1212] 1213interface IEnumOleUndoUnits : IUnknown 1214{ 1215 typedef IEnumOleUndoUnits *LPENUMOLEUNDOUNITS; 1216 1217 [local] 1218 HRESULT Next( 1219 [in] ULONG cElt, 1220 [out, size_is(cElt), length_is(*pcEltFetched)] IOleUndoUnit **rgElt, 1221 [out] ULONG *pcEltFetched); 1222 1223 [call_as(Next)] 1224 HRESULT RemoteNext( 1225 [in] ULONG cElt, 1226 [out, size_is(cElt), length_is(*pcEltFetched)] IOleUndoUnit **rgElt, 1227 [out] ULONG *pcEltFetched); 1228 1229 HRESULT Skip( [in] ULONG cElt ); 1230 1231 HRESULT Reset(); 1232 1233 HRESULT Clone( [out] IEnumOleUndoUnits **ppEnum ); 1234} 1235 1236 1237/***************************************************************************** 1238 * IOleUndoManager interface 1239 */ 1240[ 1241 object, 1242 uuid(d001f200-ef97-11ce-9bc9-00aa00608e01), 1243 pointer_default(unique) 1244] 1245interface IOleUndoManager : IUnknown 1246{ 1247cpp_quote("#define SID_SOleUndoManager IID_IOleUndoManager") 1248 typedef IOleUndoManager *LPOLEUNDOMANAGER; 1249 1250 HRESULT Open( [in] IOleParentUndoUnit *pPUU ); 1251 HRESULT Close( [in] IOleParentUndoUnit *pPUU, [in] BOOL fCommit ); 1252 HRESULT Add( [in] IOleUndoUnit *pUU ); 1253 HRESULT GetOpenParentState( [out] DWORD *pdwState ); 1254 HRESULT DiscardFrom( [in] IOleUndoUnit *pUU ); 1255 HRESULT UndoTo( [in] IOleUndoUnit *pUU ); 1256 HRESULT RedoTo( [in] IOleUndoUnit *pUU ); 1257 HRESULT EnumUndoable( [out] IEnumOleUndoUnits **ppEnum ); 1258 HRESULT EnumRedoable( [out] IEnumOleUndoUnits **ppEnum ); 1259 HRESULT GetLastUndoDescription( [out] BSTR *pBstr ); 1260 HRESULT GetLastRedoDescription( [out] BSTR *pBstr ); 1261 HRESULT Enable( [in] BOOL fEnable ); 1262} 1263 1264 1265/***************************************************************************** 1266 * IQuickActivate interface 1267 */ 1268[ 1269 object, 1270 uuid(cf51ed10-62fe-11cf-bf86-00a0c9034836), 1271 pointer_default(unique) 1272] 1273interface IQuickActivate : IUnknown 1274{ 1275 typedef IQuickActivate *LPQUICKACTIVATE; 1276 1277 typedef enum tagQACONTAINERFLAGS 1278 { 1279 QACONTAINER_SHOWHATCHING = 0x1, 1280 QACONTAINER_SHOWGRABHANDLES = 0x2, 1281 QACONTAINER_USERMODE = 0x4, 1282 QACONTAINER_DISPLAYASDEFAULT = 0x8, 1283 QACONTAINER_UIDEAD = 0x10, 1284 QACONTAINER_AUTOCLIP = 0x20, 1285 QACONTAINER_MESSAGEREFLECT = 0x40, 1286 QACONTAINER_SUPPORTSMNEMONICS = 0x80 1287 } QACONTAINERFLAGS; 1288 1289 typedef DWORD OLE_COLOR; 1290 1291 typedef struct tagQACONTAINER 1292 { 1293 ULONG cbSize; 1294 IOleClientSite *pClientSite; 1295 IAdviseSinkEx *pAdviseSink; 1296 IPropertyNotifySink *pPropertyNotifySink; 1297 IUnknown *pUnkEventSink; 1298 DWORD dwAmbientFlags; 1299 OLE_COLOR colorFore; 1300 OLE_COLOR colorBack; 1301 IFont *pFont; 1302 IOleUndoManager *pUndoMgr; 1303 DWORD dwAppearance; 1304 LONG lcid; 1305 HPALETTE hpal; 1306 IBindHost *pBindHost; 1307 IOleControlSite *pOleControlSite; 1308 IServiceProvider *pServiceProvider; 1309 } QACONTAINER; 1310 1311 typedef struct tagQACONTROL 1312 { 1313 ULONG cbSize; 1314 DWORD dwMiscStatus; 1315 DWORD dwViewStatus; 1316 DWORD dwEventCookie; 1317 DWORD dwPropNotifyCookie; 1318 DWORD dwPointerActivationPolicy; 1319 } QACONTROL; 1320 1321 [local] 1322 HRESULT QuickActivate( 1323 [in] QACONTAINER *pQaContainer, 1324 [in,out] QACONTROL *pQaControl); 1325 1326 [call_as(QuickActivate)] 1327 HRESULT RemoteQuickActivate( 1328 [in] QACONTAINER *pQaContainer, 1329 [out] QACONTROL *pQaControl); 1330 1331 HRESULT SetContentExtent( [in] LPSIZEL pSizel ); 1332 1333 HRESULT GetContentExtent( [out] LPSIZEL pSizel ); 1334} 1335