2 * Copyright (C) 1999 Paul Quinn
3 * Copyright (C) 1999 Francis Beaudet
4 * Copyright (C) 2003 Alexandre Julliard
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.
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.
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 import "servprov.idl";
27 /*****************************************************************************
28 * IOleControlTypes interface
31 pointer_default(unique)
33 interface IOleControlTypes
35 typedef [v1_enum] enum tagUASFLAGS
39 UAS_NOPARENTABLE = 0x2,
43 typedef enum tagREADYSTATE
45 READYSTATE_UNINITIALIZED = 0,
46 READYSTATE_LOADING = 1,
47 READYSTATE_LOADED = 2,
48 READYSTATE_INTERACTIVE = 3,
49 READYSTATE_COMPLETE = 4
52 typedef struct tagVARIANT_BLOB
56 [size_is(clSize-1)] ULONGLONG ahData[];
59 typedef struct tagUserVARIANT
61 wireVARIANT_BLOB pVarBlob;
66 /*****************************************************************************
71 uuid(bef6e002-a874-101a-8bba-00aa00300cab),
72 pointer_default(unique)
74 interface IFont : IUnknown
76 typedef IFont *LPFONT;
77 typedef TEXTMETRICW TEXTMETRICOLE, *LPTEXTMETRICOLE;
79 [propget] HRESULT Name( [out] BSTR *pname);
80 [propput] HRESULT Name( [in] BSTR name );
81 [propget] HRESULT Size( [out] CY *psize );
82 [propput] HRESULT Size( [in] CY size );
83 [propget] HRESULT Bold( [out] BOOL *pbold );
84 [propput] HRESULT Bold( [in] BOOL bold );
85 [propget] HRESULT Italic( [out] BOOL *pitalic );
86 [propput] HRESULT Italic( [in] BOOL italic );
87 [propget] HRESULT Underline( [out] BOOL *punderline );
88 [propput] HRESULT Underline( [in] BOOL underline );
89 [propget] HRESULT Strikethrough( [out] BOOL *pstrikethrough );
90 [propput] HRESULT Strikethrough( [in] BOOL strikethrough );
91 [propget] HRESULT Weight( [out] SHORT *pweight );
92 [propput] HRESULT Weight( [in] SHORT weight );
93 [propget] HRESULT Charset( [out] SHORT *pcharset );
94 [propput] HRESULT Charset( [in] SHORT charset );
95 [propget] HRESULT hFont( [out] HFONT *phfont );
96 HRESULT Clone( [out] IFont **ppfont );
97 HRESULT IsEqual( [in] IFont *pFontOther );
98 HRESULT SetRatio( [in] LONG cyLogical, [in] LONG cyHimetric );
99 HRESULT QueryTextMetrics( [out] TEXTMETRICOLE * ptm );
100 HRESULT AddRefHfont( [in] HFONT hfont );
101 HRESULT ReleaseHfont( [in] HFONT hfont );
102 HRESULT SetHdc( [in] HDC hdc );
106 /*****************************************************************************
107 * IFontDisp interface
111 uuid(bef6e003-a874-101a-8bba-00aa00300cab),
112 pointer_default(unique)
114 interface IFontDisp : IDispatch
116 typedef IFontDisp *LPFONTDISP;
120 /*****************************************************************************
121 * IFontEventsDisp interface
125 uuid(4ef6100a-af88-11d0-9846-00c04fc29993),
126 pointer_default(unique)
128 interface IFontEventsDisp : IDispatch
130 typedef IFontEventsDisp *LPFONTEVENTS;
134 /*****************************************************************************
139 uuid(7bf80980-bf32-101a-8bbb-00aa00300cab),
140 pointer_default(unique)
142 interface IPicture : IUnknown
144 typedef IPicture *LPPICTURE;
146 typedef enum tagPicture
148 PICTURE_SCALABLE = 0x1,
149 PICTURE_TRANSPARENT = 0x2
152 typedef UINT OLE_HANDLE;
153 typedef LONG OLE_XPOS_HIMETRIC;
154 typedef LONG OLE_YPOS_HIMETRIC;
155 typedef LONG OLE_XSIZE_HIMETRIC;
156 typedef LONG OLE_YSIZE_HIMETRIC;
158 [propget] HRESULT Handle( [out] OLE_HANDLE *pHandle );
159 [propget] HRESULT hPal( [out] OLE_HANDLE *phPal );
160 [propget] HRESULT Type( [out] SHORT *pType );
161 [propget] HRESULT Width( [out] OLE_XSIZE_HIMETRIC *pWidth );
162 [propget] HRESULT Height( [out] OLE_YSIZE_HIMETRIC *pHeight );
170 [in] OLE_XPOS_HIMETRIC xSrc,
171 [in] OLE_YPOS_HIMETRIC ySrc,
172 [in] OLE_XSIZE_HIMETRIC cxSrc,
173 [in] OLE_YSIZE_HIMETRIC cySrc,
174 [in] LPCRECT pRcWBounds);
176 HRESULT set_hPal( [in] OLE_HANDLE hPal );
178 [propget] HRESULT CurDC( [out] HDC *phDC );
180 HRESULT SelectPicture(
183 [out] OLE_HANDLE * phBmpOut);
185 [propget] HRESULT KeepOriginalFormat( [out] BOOL *pKeep );
187 [propput] HRESULT KeepOriginalFormat( [in] BOOL keep );
189 HRESULT PictureChanged();
192 [in] LPSTREAM pStream,
193 [in] BOOL fSaveMemCopy,
194 [out] LONG *pCbSize);
196 [propget] HRESULT Attributes( [out] DWORD *pDwAttr );
200 /*****************************************************************************
201 * IPictureDisp interface
205 uuid(7bf80981-bf32-101a-8bbb-00aa00300cab),
206 pointer_default(unique)
208 interface IPictureDisp : IDispatch
210 typedef IPictureDisp *LPPICTUREDISP;
214 /*****************************************************************************
215 * IOleControl interface
219 uuid(b196b288-bab4-101a-b69c-00aa00341d07),
220 pointer_default(unique)
223 interface IOleControl : IUnknown
225 typedef IOleControl *LPOLECONTROL;
227 typedef struct tagCONTROLINFO
233 } CONTROLINFO, *LPCONTROLINFO;
235 typedef enum tagCTRLINFO
237 CTRLINFO_EATS_RETURN = 1,
238 CTRLINFO_EATS_ESCAPE = 2
241 HRESULT GetControlInfo( [out] CONTROLINFO *pCI );
242 HRESULT OnMnemonic( [in] MSG *pMsg );
243 HRESULT OnAmbientPropertyChange( [in] DISPID dispID );
244 HRESULT FreezeEvents( [in] BOOL bFreeze );
248 /*****************************************************************************
249 * IOleControlSite interface
253 uuid(b196b289-bab4-101a-b69c-00aa00341d07),
254 pointer_default(unique)
256 interface IOleControlSite : IUnknown
258 typedef IOleControlSite *LPOLECONTROLSITE;
260 typedef struct tagPOINTF
266 typedef enum tagXFORMCOORDS
268 XFORMCOORDS_POSITION = 0x1,
269 XFORMCOORDS_SIZE = 0x2,
270 XFORMCOORDS_HIMETRICTOCONTAINER = 0x4,
271 XFORMCOORDS_CONTAINERTOHIMETRIC = 0x8,
272 XFORMCOORDS_EVENTCOMPAT = 0x10
275 HRESULT OnControlInfoChanged();
277 HRESULT LockInPlaceActive( [in] BOOL fLock );
279 HRESULT GetExtendedControl( [out] IDispatch ** ppDisp );
281 HRESULT TransformCoords(
282 [in, out] POINTL *pPtlHimetric,
283 [in, out] POINTF *pPtfContainer,
286 HRESULT TranslateAccelerator( [in] MSG *pMsg, [in] DWORD grfModifiers );
288 HRESULT OnFocus( [in] BOOL fGotFocus );
290 HRESULT ShowPropertyFrame();
294 /*****************************************************************************
295 * IOleInPlaceSiteEx interface
299 uuid(9c2cad80-3424-11cf-b670-00aa004cd6d8),
300 pointer_default(unique)
302 interface IOleInPlaceSiteEx : IOleInPlaceSite
304 typedef IOleInPlaceSiteEx *LPOLEINPLACESITEEX;
306 typedef enum tagACTIVATEFLAGS
308 ACTIVATE_WINDOWLESS = 1
311 HRESULT OnInPlaceActivateEx( [out] BOOL * pfNoRedraw, [in] DWORD dwFlags );
312 HRESULT OnInPlaceDeactivateEx( [in] BOOL fNoRedraw );
313 HRESULT RequestUIActivate();
317 /*****************************************************************************
318 * IOleInPlaceSiteWindowless interface
323 uuid(922eada0-3424-11cf-b670-00aa004cd6d8),
324 pointer_default(unique)
326 interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx
328 typedef IOleInPlaceSiteWindowless *LPOLEINPLACESITEWINDOWLESS;
330 typedef enum tagOLEDCFLAGS
333 OLEDC_PAINTBKGND = 0x2,
334 OLEDC_OFFSCREEN = 0x4
337 HRESULT CanWindowlessActivate();
339 HRESULT GetCapture();
341 HRESULT SetCapture( [in] BOOL fCapture );
345 HRESULT SetFocus( [in] BOOL fFocus );
352 HRESULT ReleaseDC( [in] HDC hDC );
354 HRESULT InvalidateRect(
358 HRESULT InvalidateRgn(
365 [in] LPCRECT pRectScroll,
366 [in] LPCRECT pRectClip);
368 HRESULT AdjustRect( [in, out] LPRECT prc );
370 HRESULT OnDefWindowMessage(
374 [out] LRESULT *plResult);
378 /*****************************************************************************
379 * IOleInPlaceObjectWindowless interface
384 uuid(1c2056cc-5ef4-101b-8bc8-00aa003e3b29),
385 pointer_default(unique)
387 interface IOleInPlaceObjectWindowless : IOleInPlaceObject
389 typedef IOleInPlaceObjectWindowless *LPOLEINPLACEOBJECTWINDOWLESS;
391 HRESULT OnWindowMessage(
395 [out] LRESULT *plResult);
397 HRESULT GetDropTarget( [out] IDropTarget **ppDropTarget );
401 /*****************************************************************************
402 * IClassFactory2 interface
406 uuid(b196b28f-bab4-101a-b69c-00aa00341d07),
407 pointer_default(unique)
409 interface IClassFactory2 : IClassFactory
411 typedef IClassFactory2 *LPCLASSFACTORY2;
413 typedef struct tagLICINFO
416 BOOL fRuntimeKeyAvail;
418 } LICINFO, *LPLICINFO;
420 HRESULT GetLicInfo( [out] LICINFO *pLicInfo );
422 HRESULT RequestLicKey(
423 [in] DWORD dwReserved,
424 [out] BSTR *pBstrKey);
427 HRESULT CreateInstanceLic(
428 [in] IUnknown *pUnkOuter,
429 [in] IUnknown *pUnkReserved,
432 [out, iid_is(riid)] PVOID *ppvObj);
434 [call_as(CreateInstanceLic)]
435 HRESULT RemoteCreateInstanceLic(
438 [out, iid_is(riid)] IUnknown **ppvObj);
442 /*****************************************************************************
443 * IViewObject interface
448 uuid(3af24292-0c96-11ce-a0cf-00aa00600ab8),
449 pointer_default(unique)
451 interface IViewObjectEx : IViewObject2
453 typedef IViewObjectEx *LPVIEWOBJECTEX;
455 typedef enum tagVIEWSTATUS
457 VIEWSTATUS_OPAQUE = 1,
458 VIEWSTATUS_SOLIDBKGND = 2,
459 VIEWSTATUS_DVASPECTOPAQUE = 4,
460 VIEWSTATUS_DVASPECTTRANSPARENT = 8,
461 VIEWSTATUS_SURFACE = 16,
462 VIEWSTATUS_3DSURFACE = 32
465 typedef enum tagHITRESULT
467 HITRESULT_OUTSIDE = 0,
468 HITRESULT_TRANSPARENT = 1,
473 typedef enum tagDVASPECT2
475 DVASPECT_OPAQUE = 16,
476 DVASPECT_TRANSPARENT = 32
479 typedef struct tagExtentInfo
486 typedef enum tagAspectInfoFlag
488 DVASPECTINFOFLAG_CANOPTIMIZE = 1
491 typedef struct tagAspectInfo
499 [out] LPRECTL pRect);
501 HRESULT GetViewStatus( [out] DWORD *pdwStatus );
503 HRESULT QueryHitPoint(
505 [in] LPCRECT pRectBounds,
507 [in] LONG lCloseHint,
508 [out] DWORD *pHitResult);
510 HRESULT QueryHitRect(
512 [in] LPCRECT pRectBounds,
513 [in] LPCRECT pRectLoc,
514 [in] LONG lCloseHint,
515 [out] DWORD *pHitResult);
517 HRESULT GetNaturalExtent (
520 [in] DVTARGETDEVICE *ptd,
521 [in] HDC hicTargetDev,
522 [in] DVEXTENTINFO *pExtentInfo,
523 [out] LPSIZEL pSizel);
527 /*****************************************************************************
528 * IProvideClassInfo interface
532 uuid(b196b283-bab4-101a-b69c-00aa00341d07),
533 pointer_default(unique)
535 interface IProvideClassInfo : IUnknown
537 typedef IProvideClassInfo *LPPROVIDECLASSINFO;
539 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
540 cpp_quote("#undef GetClassInfo")
543 HRESULT GetClassInfo( [out] ITypeInfo ** ppTI );
547 /*****************************************************************************
548 * IProvideClassInfo2 interface
552 uuid(a6bc3ac0-dbaa-11ce-9de3-00aa004bb851),
553 pointer_default(unique)
555 interface IProvideClassInfo2 : IProvideClassInfo
557 typedef IProvideClassInfo2 *LPPROVIDECLASSINFO2;
559 typedef enum tagGUIDKIND
561 GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1
565 [in] DWORD dwGuidKind,
572 uuid(a7aba9c1-8983-11cf-8f20-00805f2cd064),
573 pointer_default(unique)
575 interface IProvideMultipleClassInfo : IProvideClassInfo2
577 cpp_quote("#define MULTICLASSINFO_GETTYPEINFO 0x00000001")
578 cpp_quote("#define MULTICLASSINFO_GETNUMRESERVEDDISPIDS 0x00000002")
579 cpp_quote("#define MULTICLASSINFO_GETIIDPRIMARY 0x00000004")
580 cpp_quote("#define MULTICLASSINFO_GETIIDSOURCE 0x00000008")
582 cpp_quote("#define TIFLAGS_EXTENDDISPATCHONLY 0x00000001")
584 typedef IProvideMultipleClassInfo *LPPROVIDEMULTIPLECLASSINFO;
586 HRESULT GetMultiTypeInfoCount(
589 HRESULT GetInfoOfIndex(
592 [out] ITypeInfo **pptiCoClass,
593 [out] DWORD *pdwTIFlags,
594 [out] ULONG *pcdispidReserved,
595 [out] IID *piidPrimary,
596 [out] IID *piidSource);
600 /*****************************************************************************
601 * IConnectionPoint interface
603 interface IConnectionPointContainer; /* forward declarations */
604 interface IEnumConnections;
608 uuid(b196b286-bab4-101a-b69c-00aa00341d07),
609 pointer_default(unique)
611 interface IConnectionPoint : IUnknown
613 typedef IConnectionPoint *PCONNECTIONPOINT, *LPCONNECTIONPOINT;
615 HRESULT GetConnectionInterface( [out] IID *pIID );
616 HRESULT GetConnectionPointContainer( [out] IConnectionPointContainer **ppCPC );
617 HRESULT Advise( [in] IUnknown *pUnkSink, [out] DWORD *pdwCookie );
618 HRESULT Unadvise( [in] DWORD dwCookie );
619 HRESULT EnumConnections( [out] IEnumConnections **ppEnum );
623 /*****************************************************************************
624 * IConnectionPointContainer interface
626 interface IEnumConnectionPoints; /* forward declaration */
629 uuid(b196b284-bab4-101a-b69c-00aa00341d07),
630 pointer_default(unique)
632 interface IConnectionPointContainer : IUnknown
634 typedef IConnectionPointContainer *PCONNECTIONPOINTCONTAINER, *LPCONNECTIONPOINTCONTAINER;
636 HRESULT EnumConnectionPoints( [out] IEnumConnectionPoints **ppEnum );
637 HRESULT FindConnectionPoint( [in] REFIID riid, [out] IConnectionPoint **ppCP );
641 /*****************************************************************************
642 * IEnumConnections interface
646 uuid(b196b287-bab4-101a-b69c-00aa00341d07),
647 pointer_default(unique)
649 interface IEnumConnections : IUnknown
651 typedef IEnumConnections *PENUMCONNECTIONS, *LPENUMCONNECTIONS;
653 typedef struct tagCONNECTDATA
657 } CONNECTDATA, *PCONNECTDATA, *LPCONNECTDATA;
661 [in] ULONG cConnections,
662 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTDATA rgcd,
663 [out] ULONG *pcFetched);
667 [in] ULONG cConnections,
668 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTDATA rgcd,
669 [out] ULONG *pcFetched);
671 HRESULT Skip( [in] ULONG cConnections );
675 HRESULT Clone( [out] IEnumConnections **ppEnum );
679 /*****************************************************************************
680 * IEnumConnectionPoints interface
684 uuid(b196b285-bab4-101a-b69c-00aa00341d07),
685 pointer_default(unique)
687 interface IEnumConnectionPoints : IUnknown
689 typedef IEnumConnectionPoints *PENUMCONNECTIONPOINTS, *LPENUMCONNECTIONPOINTS;
693 [in] ULONG cConnections,
694 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTIONPOINT *ppCP,
695 [out] ULONG *pcFetched);
699 [in] ULONG cConnections,
700 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTIONPOINT *ppCP,
701 [out] ULONG *pcFetched);
703 HRESULT Skip( [in] ULONG cConnections );
707 HRESULT Clone( [out] IEnumConnectionPoints **ppEnum );
711 /*****************************************************************************
712 * IPropertyPage interface
714 interface IPropertyPageSite; /* forward declaration */
717 uuid(b196b28d-bab4-101a-b69c-00aa00341d07),
718 pointer_default(unique)
720 interface IPropertyPage : IUnknown
722 typedef IPropertyPage *LPPROPERTYPAGE;
724 typedef struct tagPROPPAGEINFO
729 LPOLESTR pszDocString;
730 LPOLESTR pszHelpFile;
732 } PROPPAGEINFO, *LPPROPPAGEINFO;
734 HRESULT SetPageSite( [in] IPropertyPageSite *pPageSite );
737 [in] HWND hWndParent,
741 HRESULT Deactivate();
743 HRESULT GetPageInfo( [out] PROPPAGEINFO *pPageInfo );
747 [in, size_is(cObjects)] IUnknown **ppUnk);
749 HRESULT Show( [in] UINT nCmdShow );
751 HRESULT Move( [in] LPCRECT pRect );
753 HRESULT IsPageDirty();
757 HRESULT Help( [in] LPCOLESTR pszHelpDir );
759 HRESULT TranslateAccelerator( [in] MSG *pMsg );
763 /*****************************************************************************
764 * IPropertyPage2 interface
768 uuid(01e44665-24ac-101b-84ed-08002b2ec713),
769 pointer_default(unique)
771 interface IPropertyPage2 : IPropertyPage
773 typedef IPropertyPage2 *LPPROPERTYPAGE2;
775 HRESULT EditProperty( [in] DISPID dispID );
779 /*****************************************************************************
780 * IPropertyPageSite interface
784 uuid(b196b28c-bab4-101a-b69c-00aa00341d07),
785 pointer_default(unique)
787 interface IPropertyPageSite : IUnknown
789 typedef IPropertyPageSite *LPPROPERTYPAGESITE;
791 typedef enum tagPROPPAGESTATUS
793 PROPPAGESTATUS_DIRTY = 0x1,
794 PROPPAGESTATUS_VALIDATE = 0x2,
795 PROPPAGESTATUS_CLEAN = 0x4
798 HRESULT OnStatusChange( [in] DWORD dwFlags );
799 HRESULT GetLocaleID( [out] LCID *pLocaleID );
800 HRESULT GetPageContainer( [out] IUnknown **ppUnk );
801 HRESULT TranslateAccelerator( [in] MSG *pMsg );
805 /*****************************************************************************
806 * IPropertyNotifySink interface
810 uuid(9bfbbc02-eff1-101a-84ed-00aa00341d07),
811 pointer_default(unique)
813 interface IPropertyNotifySink : IUnknown
815 typedef IPropertyNotifySink *LPPROPERTYNOTIFYSINK;
817 HRESULT OnChanged( [in] DISPID dispID );
818 HRESULT OnRequestEdit( [in] DISPID dispID );
822 /*****************************************************************************
823 * ISimpleFrameSite interface
827 uuid(742b0e01-14e6-101b-914e-00aa00300cab),
828 pointer_default(unique)
830 interface ISimpleFrameSite : IUnknown
832 typedef ISimpleFrameSite *LPSIMPLEFRAMESITE;
834 HRESULT PreMessageFilter(
839 [out] LRESULT *plResult,
840 [out] DWORD *pdwCookie);
842 HRESULT PostMessageFilter(
847 [out] LRESULT *plResult,
848 [in] DWORD dwCookie);
852 /*****************************************************************************
853 * IPersistStreamInit interface
857 uuid(7fd52380-4e07-101b-ae2d-08002b2ec713),
858 pointer_default(unique)
860 interface IPersistStreamInit : IPersist
862 typedef IPersistStreamInit *LPPERSISTSTREAMINIT;
865 HRESULT Load( [in] LPSTREAM pStm );
866 HRESULT Save( [in] LPSTREAM pStm, [in] BOOL fClearDirty );
867 HRESULT GetSizeMax( [out] ULARGE_INTEGER *pcbSize );
872 /*****************************************************************************
873 * IPersistMemory interface
877 uuid(bd1ae5e0-a6ae-11ce-bd37-504200c10000),
878 pointer_default(unique)
880 interface IPersistMemory : IPersist
882 typedef IPersistMemory *LPPERSISTMEMORY;
888 [in, size_is(cbSize)] LPVOID pMem,
893 [in, size_is(cbSize)] BYTE *pMem,
898 [out, size_is(cbSize)] LPVOID pMem,
899 [in] BOOL fClearDirty,
904 [out, size_is(cbSize)] BYTE *pMem,
905 [in] BOOL fClearDirty,
908 HRESULT GetSizeMax( [out] ULONG *pCbSize );
913 /*****************************************************************************
914 * IPersistPropertyBag interface
918 uuid(37d84f60-42cb-11ce-8135-00aa004bb851),
919 pointer_default(unique)
921 interface IPersistPropertyBag : IPersist
923 typedef IPersistPropertyBag *LPPERSISTPROPERTYBAG;
928 [in] IPropertyBag *pPropBag,
929 [in] IErrorLog *pErrorLog);
932 [in] IPropertyBag *pPropBag,
933 [in] BOOL fClearDirty,
934 [in] BOOL fSaveAllProperties);
938 /*****************************************************************************
939 * IPropertyBag2 interface
943 uuid(22f55882-280b-11d0-a8a9-00a0c90c2004),
944 pointer_default(unique)
946 interface IPropertyBag2 : IUnknown
948 typedef IPropertyBag2 *LPPROPERTYBAG2;
950 typedef enum tagPROPBAG2_TYPE
952 PROPBAG2_TYPE_UNDEFINED = 0,
953 PROPBAG2_TYPE_DATA = 1,
954 PROPBAG2_TYPE_URL = 2,
955 PROPBAG2_TYPE_OBJECT = 3,
956 PROPBAG2_TYPE_STREAM = 4,
957 PROPBAG2_TYPE_STORAGE = 5,
958 PROPBAG2_TYPE_MONIKER = 6
961 typedef struct tagPROPBAG2
972 [in] ULONG cProperties,
973 [in] PROPBAG2 *pPropBag,
974 [in] IErrorLog *pErrLog,
975 [out] VARIANT *pvarValue,
976 [out] HRESULT *phrError);
979 [in] ULONG cProperties,
980 [in] PROPBAG2 *pPropBag,
981 [in] VARIANT *pvarValue);
983 HRESULT CountProperties(
984 [out] ULONG *pcProperties );
986 HRESULT GetPropertyInfo(
987 [in] ULONG iProperty,
988 [in] ULONG cProperties,
989 [out] PROPBAG2 *pPropBag,
990 [out] ULONG *pcProperties);
993 [in] LPCOLESTR pstrName,
995 [in] IUnknown *pUnkObject,
996 [in] IErrorLog *pErrLog);
1000 /*****************************************************************************
1001 * IPersistPropertyBag2 interface
1005 uuid(22f55881-280b-11d0-a8a9-00a0c90c2004),
1006 pointer_default(unique)
1008 interface IPersistPropertyBag2 : IPersist
1010 typedef IPersistPropertyBag2 *LPPERSISTPROPERTYBAG2;
1015 [in] IPropertyBag2 *pPropBag,
1016 [in] IErrorLog *pErrorLog);
1019 [in] IPropertyBag2 *pPropBag,
1020 [in] BOOL fClearDirty,
1021 [in] BOOL fSaveAllProperties);
1027 /*****************************************************************************
1028 * ISpecifyPropertyPages interface
1032 uuid(b196b28b-bab4-101a-b69c-00aa00341d07),
1033 pointer_default(unique)
1035 interface ISpecifyPropertyPages : IUnknown
1037 typedef ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES;
1039 typedef struct tagCAUUID
1042 [size_is(cElems)] GUID *pElems;
1043 } CAUUID, *LPCAUUID;
1045 HRESULT GetPages( [out] CAUUID *pPages );
1049 /*****************************************************************************
1050 * IPerPropertyBrowsing interface
1054 uuid(376bd3aa-3845-101b-84ed-08002b2ec713),
1055 pointer_default(unique)
1057 interface IPerPropertyBrowsing : IUnknown
1059 typedef IPerPropertyBrowsing *LPPERPROPERTYBROWSING;
1061 typedef struct tagCALPOLESTR
1064 [size_is(cElems)] LPOLESTR *pElems;
1065 } CALPOLESTR, *LPCALPOLESTR;
1067 typedef struct tagCADWORD
1070 [size_is(cElems)] DWORD *pElems;
1071 } CADWORD, *LPCADWORD;
1073 HRESULT GetDisplayString(
1077 HRESULT MapPropertyToPage(
1079 [out] CLSID *pClsid);
1081 HRESULT GetPredefinedStrings(
1083 [out] CALPOLESTR *pCaStringsOut,
1084 [out] CADWORD *pCaCookiesOut);
1086 HRESULT GetPredefinedValue(
1088 [in] DWORD dwCookie,
1089 [out] VARIANT *pVarOut);
1093 /*****************************************************************************
1094 * IAdviseSinkEx interface
1098 uuid(3af24290-0c96-11ce-a0cf-00aa00600ab8),
1099 pointer_default(unique)
1101 interface IAdviseSinkEx : IAdviseSink
1103 typedef IAdviseSinkEx *LPADVISESINKEX;
1106 void OnViewStatusChange( [in] DWORD dwViewStatus );
1108 [call_as(OnViewStatusChange)]
1109 HRESULT RemoteOnViewStatusChange( [in] DWORD dwViewStatus );
1113 /*****************************************************************************
1114 * IPointerInactive interface
1118 uuid(55980ba0-35aa-11cf-b671-00aa004cd6d8),
1119 pointer_default(unique)
1121 interface IPointerInactive : IUnknown
1123 typedef IPointerInactive *LPPOINTERINACTIVE;
1125 HRESULT GetActivationPolicy(
1126 [out] DWORD *pdwPolicy);
1128 HRESULT OnInactiveMouseMove(
1129 [in] LPCRECT pRectBounds,
1132 [in] DWORD grfKeyState);
1134 HRESULT OnInactiveSetCursor(
1135 [in] LPCRECT pRectBounds,
1138 [in] DWORD dwMouseMsg,
1139 [in] BOOL fSetAlways);
1143 /*****************************************************************************
1144 * IObjectWithSite interface
1148 uuid(fc4801a3-2ba9-11cf-a229-00aa003d7352),
1149 pointer_default(unique)
1151 interface IObjectWithSite : IUnknown
1153 typedef IObjectWithSite *LPOBJECTWITHSITE;
1156 [in] IUnknown * pUnkSite);
1160 [out, iid_is(riid)] PVOID *ppvSite);
1164 /*****************************************************************************
1165 * IOleUndoUnit interface
1167 interface IOleUndoManager; /* forward declaration */
1170 uuid(894ad3b0-ef97-11ce-9bc9-00aa00608e01),
1171 pointer_default(unique)
1173 interface IOleUndoUnit : IUnknown
1175 typedef IOleUndoUnit *LPOLEUNDOUNIT;
1177 HRESULT Do( [in] IOleUndoManager *pUndoManager );
1178 HRESULT GetDescription( [out] BSTR *pBstr );
1179 HRESULT GetUnitType( [out] CLSID *pClsid, [out] LONG *plID );
1180 HRESULT OnNextAdd();
1184 /*****************************************************************************
1185 * IOleParentUndoUnit interface
1189 uuid(a1faf330-ef97-11ce-9bc9-00aa00608e01),
1190 pointer_default(unique)
1192 interface IOleParentUndoUnit : IOleUndoUnit
1194 typedef IOleParentUndoUnit *LPOLEPARENTUNDOUNIT;
1196 HRESULT Open( [in] IOleParentUndoUnit *pPUU );
1197 HRESULT Close( [in] IOleParentUndoUnit *pPUU, [in] BOOL fCommit );
1198 HRESULT Add( [in] IOleUndoUnit *pUU );
1199 HRESULT FindUnit( [in] IOleUndoUnit *pUU );
1200 HRESULT GetParentState( [out] DWORD *pdwState );
1204 /*****************************************************************************
1205 * IEnumOleUndoUnits interface
1209 uuid(b3e7c340-ef97-11ce-9bc9-00aa00608e01),
1210 pointer_default(unique)
1212 interface IEnumOleUndoUnits : IUnknown
1214 typedef IEnumOleUndoUnits *LPENUMOLEUNDOUNITS;
1219 [out, size_is(cElt), length_is(*pcEltFetched)] IOleUndoUnit **rgElt,
1220 [out] ULONG *pcEltFetched);
1225 [out, size_is(cElt), length_is(*pcEltFetched)] IOleUndoUnit **rgElt,
1226 [out] ULONG *pcEltFetched);
1228 HRESULT Skip( [in] ULONG cElt );
1232 HRESULT Clone( [out] IEnumOleUndoUnits **ppEnum );
1236 /*****************************************************************************
1237 * IOleUndoManager interface
1241 uuid(d001f200-ef97-11ce-9bc9-00aa00608e01),
1242 pointer_default(unique)
1244 interface IOleUndoManager : IUnknown
1246 typedef IOleUndoManager *LPOLEUNDOMANAGER;
1248 HRESULT Open( [in] IOleParentUndoUnit *pPUU );
1249 HRESULT Close( [in] IOleParentUndoUnit *pPUU, [in] BOOL fCommit );
1250 HRESULT Add( [in] IOleUndoUnit *pUU );
1251 HRESULT GetOpenParentState( [out] DWORD *pdwState );
1252 HRESULT DiscardFrom( [in] IOleUndoUnit *pUU );
1253 HRESULT UndoTo( [in] IOleUndoUnit *pUU );
1254 HRESULT RedoTo( [in] IOleUndoUnit *pUU );
1255 HRESULT EnumUndoable( [out] IEnumOleUndoUnits **ppEnum );
1256 HRESULT EnumRedoable( [out] IEnumOleUndoUnits **ppEnum );
1257 HRESULT GetLastUndoDescription( [out] BSTR *pBstr );
1258 HRESULT GetLastRedoDescription( [out] BSTR *pBstr );
1259 HRESULT Enable( [in] BOOL fEnable );
1263 /*****************************************************************************
1264 * IQuickActivate interface
1268 uuid(cf51ed10-62fe-11cf-bf86-00a0c9034836),
1269 pointer_default(unique)
1271 interface IQuickActivate : IUnknown
1273 typedef IQuickActivate *LPQUICKACTIVATE;
1275 typedef enum tagQACONTAINERFLAGS
1277 QACONTAINER_SHOWHATCHING = 0x1,
1278 QACONTAINER_SHOWGRABHANDLES = 0x2,
1279 QACONTAINER_USERMODE = 0x4,
1280 QACONTAINER_DISPLAYASDEFAULT = 0x8,
1281 QACONTAINER_UIDEAD = 0x10,
1282 QACONTAINER_AUTOCLIP = 0x20,
1283 QACONTAINER_MESSAGEREFLECT = 0x40,
1284 QACONTAINER_SUPPORTSMNEMONICS = 0x80
1287 typedef DWORD OLE_COLOR;
1289 typedef struct tagQACONTAINER
1292 IOleClientSite *pClientSite;
1293 IAdviseSinkEx *pAdviseSink;
1294 IPropertyNotifySink *pPropertyNotifySink;
1295 IUnknown *pUnkEventSink;
1296 DWORD dwAmbientFlags;
1297 OLE_COLOR colorFore;
1298 OLE_COLOR colorBack;
1300 IOleUndoManager *pUndoMgr;
1304 IBindHost *pBindHost;
1305 IOleControlSite *pOleControlSite;
1306 IServiceProvider *pServiceProvider;
1309 typedef struct tagQACONTROL
1314 DWORD dwEventCookie;
1315 DWORD dwPropNotifyCookie;
1316 DWORD dwPointerActivationPolicy;
1320 HRESULT QuickActivate(
1321 [in] QACONTAINER *pQaContainer,
1322 [in,out] QACONTROL *pQaControl);
1324 [call_as(QuickActivate)]
1325 HRESULT RemoteQuickActivate(
1326 [in] QACONTAINER *pQaContainer,
1327 [out] QACONTROL *pQaControl);
1329 HRESULT SetContentExtent( [in] LPSIZEL pSizel );
1331 HRESULT GetContentExtent( [out] LPSIZEL pSizel );