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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, 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
);