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
24 import
"servprov.idl";
28 /*****************************************************************************
29 * IOleControlTypes interface
32 pointer_default(unique)
34 interface IOleControlTypes
36 typedef [v1_enum] enum tagUASFLAGS
40 UAS_NOPARENTABLE
= 0x2,
44 typedef enum tagREADYSTATE
46 READYSTATE_UNINITIALIZED
= 0,
47 READYSTATE_LOADING
= 1,
48 READYSTATE_LOADED
= 2,
49 READYSTATE_INTERACTIVE
= 3,
50 READYSTATE_COMPLETE
= 4
53 typedef struct tagVARIANT_BLOB
57 [size_is(clSize
-1)] ULONGLONG ahData
[];
60 typedef struct tagUserVARIANT
62 wireVARIANT_BLOB pVarBlob
;
67 /*****************************************************************************
72 uuid(bef6e002
-a874
-101a
-8bba
-00aa00300cab
),
73 pointer_default(unique)
75 interface IFont
: IUnknown
77 typedef IFont
*LPFONT
;
78 typedef TEXTMETRICW TEXTMETRICOLE
, *LPTEXTMETRICOLE
;
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
);
107 /*****************************************************************************
108 * IFontDisp interface
112 uuid(bef6e003
-a874
-101a
-8bba
-00aa00300cab
),
113 pointer_default(unique)
115 interface IFontDisp
: IDispatch
117 typedef IFontDisp
*LPFONTDISP
;
121 /*****************************************************************************
122 * IFontEventsDisp interface
126 uuid(4ef6100a
-af88
-11d0
-9846-00c04fc29993
),
127 pointer_default(unique)
129 interface IFontEventsDisp
: IDispatch
131 typedef IFontEventsDisp
*LPFONTEVENTS
;
135 /*****************************************************************************
140 uuid(7bf80980
-bf32
-101a
-8bbb
-00aa00300cab
),
141 pointer_default(unique)
143 interface IPicture
: IUnknown
145 typedef IPicture
*LPPICTURE
;
147 typedef enum tagPicture
149 PICTURE_SCALABLE
= 0x1,
150 PICTURE_TRANSPARENT
= 0x2
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
;
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
);
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
);
177 HRESULT set_hPal
( [in] OLE_HANDLE hPal
);
179 [propget] HRESULT CurDC
( [out] HDC
*phDC
);
181 HRESULT SelectPicture
(
184 [out] OLE_HANDLE
* phBmpOut
);
186 [propget] HRESULT KeepOriginalFormat
( [out] BOOL
*pKeep
);
188 [propput] HRESULT KeepOriginalFormat
( [in] BOOL keep
);
190 HRESULT PictureChanged
();
193 [in] LPSTREAM pStream
,
194 [in] BOOL fSaveMemCopy
,
195 [out] LONG *pCbSize
);
197 [propget] HRESULT Attributes
( [out] DWORD
*pDwAttr
);
201 /*****************************************************************************
202 * IPictureDisp interface
206 uuid(7bf80981
-bf32
-101a
-8bbb
-00aa00300cab
),
207 pointer_default(unique)
209 interface IPictureDisp
: IDispatch
211 typedef IPictureDisp
*LPPICTUREDISP
;
215 /*****************************************************************************
216 * IOleControl interface
220 uuid(b196b288
-bab4
-101a
-b69c
-00aa00341d07
),
221 pointer_default(unique)
224 interface IOleControl
: IUnknown
226 typedef IOleControl
*LPOLECONTROL
;
228 typedef struct tagCONTROLINFO
234 } CONTROLINFO
, *LPCONTROLINFO
;
236 typedef enum tagCTRLINFO
238 CTRLINFO_EATS_RETURN
= 1,
239 CTRLINFO_EATS_ESCAPE
= 2
242 HRESULT GetControlInfo
( [out] CONTROLINFO
*pCI
);
243 HRESULT OnMnemonic
( [in] MSG
*pMsg
);
244 HRESULT OnAmbientPropertyChange
( [in] DISPID dispID
);
245 HRESULT FreezeEvents
( [in] BOOL bFreeze
);
249 /*****************************************************************************
250 * IOleControlSite interface
254 uuid(b196b289
-bab4
-101a
-b69c
-00aa00341d07
),
255 pointer_default(unique)
257 interface IOleControlSite
: IUnknown
259 typedef IOleControlSite
*LPOLECONTROLSITE
;
261 typedef struct tagPOINTF
267 typedef enum tagXFORMCOORDS
269 XFORMCOORDS_POSITION
= 0x1,
270 XFORMCOORDS_SIZE
= 0x2,
271 XFORMCOORDS_HIMETRICTOCONTAINER
= 0x4,
272 XFORMCOORDS_CONTAINERTOHIMETRIC
= 0x8,
273 XFORMCOORDS_EVENTCOMPAT
= 0x10
276 HRESULT OnControlInfoChanged
();
278 HRESULT LockInPlaceActive
( [in] BOOL fLock
);
280 HRESULT GetExtendedControl
( [out] IDispatch
** ppDisp
);
282 HRESULT TransformCoords
(
283 [in, out] POINTL
*pPtlHimetric
,
284 [in, out] POINTF
*pPtfContainer
,
287 HRESULT TranslateAccelerator
( [in] MSG
*pMsg
, [in] DWORD grfModifiers
);
289 HRESULT OnFocus
( [in] BOOL fGotFocus
);
291 HRESULT ShowPropertyFrame
();
295 /*****************************************************************************
296 * IOleInPlaceSiteEx interface
300 uuid(9c2cad80
-3424-11cf
-b670
-00aa004cd6d8
),
301 pointer_default(unique)
303 interface IOleInPlaceSiteEx
: IOleInPlaceSite
305 typedef IOleInPlaceSiteEx
*LPOLEINPLACESITEEX
;
307 typedef enum tagACTIVATEFLAGS
309 ACTIVATE_WINDOWLESS
= 1
312 HRESULT OnInPlaceActivateEx
( [out] BOOL
* pfNoRedraw
, [in] DWORD dwFlags
);
313 HRESULT OnInPlaceDeactivateEx
( [in] BOOL fNoRedraw
);
314 HRESULT RequestUIActivate
();
318 /*****************************************************************************
319 * IOleInPlaceSiteWindowless interface
324 uuid(922eada0
-3424-11cf
-b670
-00aa004cd6d8
),
325 pointer_default(unique)
327 interface IOleInPlaceSiteWindowless
: IOleInPlaceSiteEx
329 typedef IOleInPlaceSiteWindowless
*LPOLEINPLACESITEWINDOWLESS
;
331 typedef enum tagOLEDCFLAGS
334 OLEDC_PAINTBKGND
= 0x2,
335 OLEDC_OFFSCREEN
= 0x4
338 HRESULT CanWindowlessActivate
();
340 HRESULT GetCapture
();
342 HRESULT SetCapture
( [in] BOOL fCapture
);
346 HRESULT SetFocus
( [in] BOOL fFocus
);
353 HRESULT ReleaseDC
( [in] HDC hDC
);
355 HRESULT InvalidateRect
(
359 HRESULT InvalidateRgn
(
366 [in] LPCRECT pRectScroll
,
367 [in] LPCRECT pRectClip
);
369 HRESULT AdjustRect
( [in, out] LPRECT prc
);
371 HRESULT OnDefWindowMessage
(
375 [out] LRESULT
*plResult
);
379 /*****************************************************************************
380 * IOleInPlaceObjectWindowless interface
385 uuid(1c2056cc
-5ef4
-101b
-8bc8
-00aa003e3b29
),
386 pointer_default(unique)
388 interface IOleInPlaceObjectWindowless
: IOleInPlaceObject
390 typedef IOleInPlaceObjectWindowless
*LPOLEINPLACEOBJECTWINDOWLESS
;
392 HRESULT OnWindowMessage
(
396 [out] LRESULT
*plResult
);
398 HRESULT GetDropTarget
( [out] IDropTarget
**ppDropTarget
);
402 /*****************************************************************************
403 * IClassFactory2 interface
407 uuid(b196b28f
-bab4
-101a
-b69c
-00aa00341d07
),
408 pointer_default(unique)
410 interface IClassFactory2
: IClassFactory
412 typedef IClassFactory2
*LPCLASSFACTORY2
;
414 typedef struct tagLICINFO
417 BOOL fRuntimeKeyAvail
;
419 } LICINFO
, *LPLICINFO
;
421 HRESULT GetLicInfo
( [out] LICINFO
*pLicInfo
);
423 HRESULT RequestLicKey
(
424 [in] DWORD dwReserved
,
425 [out] BSTR *pBstrKey
);
428 HRESULT CreateInstanceLic
(
429 [in] IUnknown
*pUnkOuter
,
430 [in] IUnknown
*pUnkReserved
,
433 [out, iid_is(riid
)] PVOID
*ppvObj
);
435 [call_as
(CreateInstanceLic
)]
436 HRESULT RemoteCreateInstanceLic
(
439 [out, iid_is(riid
)] IUnknown
**ppvObj
);
443 /*****************************************************************************
444 * IViewObject interface
449 uuid(3af24292
-0c96
-11ce
-a0cf
-00aa00600ab8
),
450 pointer_default(unique)
452 interface IViewObjectEx
: IViewObject2
454 typedef IViewObjectEx
*LPVIEWOBJECTEX
;
456 typedef enum tagVIEWSTATUS
458 VIEWSTATUS_OPAQUE
= 1,
459 VIEWSTATUS_SOLIDBKGND
= 2,
460 VIEWSTATUS_DVASPECTOPAQUE
= 4,
461 VIEWSTATUS_DVASPECTTRANSPARENT
= 8,
462 VIEWSTATUS_SURFACE
= 16,
463 VIEWSTATUS_3DSURFACE
= 32
466 typedef enum tagHITRESULT
468 HITRESULT_OUTSIDE
= 0,
469 HITRESULT_TRANSPARENT
= 1,
474 typedef enum tagDVASPECT2
476 DVASPECT_OPAQUE
= 16,
477 DVASPECT_TRANSPARENT
= 32
480 typedef struct tagExtentInfo
487 typedef enum tagAspectInfoFlag
489 DVASPECTINFOFLAG_CANOPTIMIZE
= 1
492 typedef struct tagAspectInfo
500 [out] LPRECTL pRect
);
502 HRESULT GetViewStatus
( [out] DWORD
*pdwStatus
);
504 HRESULT QueryHitPoint
(
506 [in] LPCRECT pRectBounds
,
508 [in] LONG lCloseHint
,
509 [out] DWORD
*pHitResult
);
511 HRESULT QueryHitRect
(
513 [in] LPCRECT pRectBounds
,
514 [in] LPCRECT pRectLoc
,
515 [in] LONG lCloseHint
,
516 [out] DWORD
*pHitResult
);
518 HRESULT GetNaturalExtent
(
521 [in] DVTARGETDEVICE
*ptd
,
522 [in] HDC hicTargetDev
,
523 [in] DVEXTENTINFO
*pExtentInfo
,
524 [out] LPSIZEL pSizel
);
528 /*****************************************************************************
529 * IProvideClassInfo interface
533 uuid(b196b283
-bab4
-101a
-b69c
-00aa00341d07
),
534 pointer_default(unique)
536 interface IProvideClassInfo
: IUnknown
538 typedef IProvideClassInfo
*LPPROVIDECLASSINFO
;
540 cpp_quote
("#ifdef WINE_NO_UNICODE_MACROS")
541 cpp_quote
("#undef GetClassInfo")
544 HRESULT GetClassInfo
( [out] ITypeInfo
** ppTI
);
548 /*****************************************************************************
549 * IProvideClassInfo2 interface
553 uuid(a6bc3ac0
-dbaa
-11ce
-9de3
-00aa004bb851
),
554 pointer_default(unique)
556 interface IProvideClassInfo2
: IProvideClassInfo
558 typedef IProvideClassInfo2
*LPPROVIDECLASSINFO2
;
560 typedef enum tagGUIDKIND
562 GUIDKIND_DEFAULT_SOURCE_DISP_IID
= 1
566 [in] DWORD dwGuidKind
,
573 uuid(a7aba9c1
-8983-11cf
-8f20
-00805f2cd064
),
574 pointer_default(unique)
576 interface IProvideMultipleClassInfo
: IProvideClassInfo2
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")
583 cpp_quote
("#define TIFLAGS_EXTENDDISPATCHONLY 0x00000001")
585 typedef IProvideMultipleClassInfo
*LPPROVIDEMULTIPLECLASSINFO
;
587 HRESULT GetMultiTypeInfoCount
(
590 HRESULT GetInfoOfIndex
(
593 [out] ITypeInfo
**pptiCoClass
,
594 [out] DWORD
*pdwTIFlags
,
595 [out] ULONG
*pcdispidReserved
,
596 [out] IID
*piidPrimary
,
597 [out] IID
*piidSource
);
601 /*****************************************************************************
602 * IConnectionPoint interface
604 interface IConnectionPointContainer
; /* forward declarations */
605 interface IEnumConnections
;
609 uuid(b196b286
-bab4
-101a
-b69c
-00aa00341d07
),
610 pointer_default(unique)
612 interface IConnectionPoint
: IUnknown
614 typedef IConnectionPoint
*PCONNECTIONPOINT
, *LPCONNECTIONPOINT
;
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
);
624 /*****************************************************************************
625 * IConnectionPointContainer interface
627 interface IEnumConnectionPoints
; /* forward declaration */
630 uuid(b196b284
-bab4
-101a
-b69c
-00aa00341d07
),
631 pointer_default(unique)
633 interface IConnectionPointContainer
: IUnknown
635 typedef IConnectionPointContainer
*PCONNECTIONPOINTCONTAINER
, *LPCONNECTIONPOINTCONTAINER
;
637 HRESULT EnumConnectionPoints
( [out] IEnumConnectionPoints
**ppEnum
);
638 HRESULT FindConnectionPoint
( [in] REFIID riid
, [out] IConnectionPoint
**ppCP
);
642 /*****************************************************************************
643 * IEnumConnections interface
647 uuid(b196b287
-bab4
-101a
-b69c
-00aa00341d07
),
648 pointer_default(unique)
650 interface IEnumConnections
: IUnknown
652 typedef IEnumConnections
*PENUMCONNECTIONS
, *LPENUMCONNECTIONS
;
654 typedef struct tagCONNECTDATA
658 } CONNECTDATA
, *PCONNECTDATA
, *LPCONNECTDATA
;
662 [in] ULONG cConnections
,
663 [out, size_is(cConnections
), length_is(*pcFetched
)] LPCONNECTDATA rgcd
,
664 [out] ULONG
*pcFetched
);
668 [in] ULONG cConnections
,
669 [out, size_is(cConnections
), length_is(*pcFetched
)] LPCONNECTDATA rgcd
,
670 [out] ULONG
*pcFetched
);
672 HRESULT Skip
( [in] ULONG cConnections
);
676 HRESULT Clone
( [out] IEnumConnections
**ppEnum
);
680 /*****************************************************************************
681 * IEnumConnectionPoints interface
685 uuid(b196b285
-bab4
-101a
-b69c
-00aa00341d07
),
686 pointer_default(unique)
688 interface IEnumConnectionPoints
: IUnknown
690 typedef IEnumConnectionPoints
*PENUMCONNECTIONPOINTS
, *LPENUMCONNECTIONPOINTS
;
694 [in] ULONG cConnections
,
695 [out, size_is(cConnections
), length_is(*pcFetched
)] LPCONNECTIONPOINT
*ppCP
,
696 [out] ULONG
*pcFetched
);
700 [in] ULONG cConnections
,
701 [out, size_is(cConnections
), length_is(*pcFetched
)] LPCONNECTIONPOINT
*ppCP
,
702 [out] ULONG
*pcFetched
);
704 HRESULT Skip
( [in] ULONG cConnections
);
708 HRESULT Clone
( [out] IEnumConnectionPoints
**ppEnum
);
712 /*****************************************************************************
713 * IPropertyPage interface
715 interface IPropertyPageSite
; /* forward declaration */
718 uuid(b196b28d
-bab4
-101a
-b69c
-00aa00341d07
),
719 pointer_default(unique)
721 interface IPropertyPage
: IUnknown
723 typedef IPropertyPage
*LPPROPERTYPAGE
;
725 typedef struct tagPROPPAGEINFO
730 LPOLESTR pszDocString
;
731 LPOLESTR pszHelpFile
;
733 } PROPPAGEINFO
, *LPPROPPAGEINFO
;
735 HRESULT SetPageSite
( [in] IPropertyPageSite
*pPageSite
);
738 [in] HWND hWndParent
,
742 HRESULT Deactivate
();
744 HRESULT GetPageInfo
( [out] PROPPAGEINFO
*pPageInfo
);
748 [in, size_is(cObjects
)] IUnknown
**ppUnk
);
750 HRESULT Show
( [in] UINT nCmdShow
);
752 HRESULT Move
( [in] LPCRECT pRect
);
754 HRESULT IsPageDirty
();
758 HRESULT Help
( [in] LPCOLESTR pszHelpDir
);
760 HRESULT TranslateAccelerator
( [in] MSG
*pMsg
);
764 /*****************************************************************************
765 * IPropertyPage2 interface
769 uuid(01e44665
-24ac
-101b
-84ed
-08002b2ec713
),
770 pointer_default(unique)
772 interface IPropertyPage2
: IPropertyPage
774 typedef IPropertyPage2
*LPPROPERTYPAGE2
;
776 HRESULT EditProperty
( [in] DISPID dispID
);
780 /*****************************************************************************
781 * IPropertyPageSite interface
785 uuid(b196b28c
-bab4
-101a
-b69c
-00aa00341d07
),
786 pointer_default(unique)
788 interface IPropertyPageSite
: IUnknown
790 typedef IPropertyPageSite
*LPPROPERTYPAGESITE
;
792 typedef enum tagPROPPAGESTATUS
794 PROPPAGESTATUS_DIRTY
= 0x1,
795 PROPPAGESTATUS_VALIDATE
= 0x2,
796 PROPPAGESTATUS_CLEAN
= 0x4
799 HRESULT OnStatusChange
( [in] DWORD dwFlags
);
800 HRESULT GetLocaleID
( [out] LCID *pLocaleID
);
801 HRESULT GetPageContainer
( [out] IUnknown
**ppUnk
);
802 HRESULT TranslateAccelerator
( [in] MSG
*pMsg
);
806 /*****************************************************************************
807 * IPropertyNotifySink interface
811 uuid(9bfbbc02
-eff1
-101a
-84ed
-00aa00341d07
),
812 pointer_default(unique)
814 interface IPropertyNotifySink
: IUnknown
816 typedef IPropertyNotifySink
*LPPROPERTYNOTIFYSINK
;
818 HRESULT OnChanged
( [in] DISPID dispID
);
819 HRESULT OnRequestEdit
( [in] DISPID dispID
);
823 /*****************************************************************************
824 * ISimpleFrameSite interface
828 uuid(742b0e01
-14e6
-101b
-914e-00aa00300cab
),
829 pointer_default(unique)
831 interface ISimpleFrameSite
: IUnknown
833 typedef ISimpleFrameSite
*LPSIMPLEFRAMESITE
;
835 HRESULT PreMessageFilter
(
840 [out] LRESULT
*plResult
,
841 [out] DWORD
*pdwCookie
);
843 HRESULT PostMessageFilter
(
848 [out] LRESULT
*plResult
,
849 [in] DWORD dwCookie
);
853 /*****************************************************************************
854 * IPersistStreamInit interface
858 uuid(7fd52380
-4e07
-101b
-ae2d
-08002b2ec713
),
859 pointer_default(unique)
861 interface IPersistStreamInit
: IPersist
863 typedef IPersistStreamInit
*LPPERSISTSTREAMINIT
;
866 HRESULT Load
( [in] LPSTREAM pStm
);
867 HRESULT Save
( [in] LPSTREAM pStm
, [in] BOOL fClearDirty
);
868 HRESULT GetSizeMax
( [out] ULARGE_INTEGER
*pcbSize
);
873 /*****************************************************************************
874 * IPersistMemory interface
878 uuid(bd1ae5e0
-a6ae
-11ce
-bd37
-504200c10000
),
879 pointer_default(unique)
881 interface IPersistMemory
: IPersist
883 typedef IPersistMemory
*LPPERSISTMEMORY
;
889 [in, size_is(cbSize
)] LPVOID pMem
,
894 [in, size_is(cbSize
)] BYTE *pMem
,
899 [out, size_is(cbSize
)] LPVOID pMem
,
900 [in] BOOL fClearDirty
,
905 [out, size_is(cbSize
)] BYTE *pMem
,
906 [in] BOOL fClearDirty
,
909 HRESULT GetSizeMax
( [out] ULONG
*pCbSize
);
914 /*****************************************************************************
915 * IPersistPropertyBag interface
919 uuid(37d84f60
-42cb
-11ce
-8135-00aa004bb851
),
920 pointer_default(unique)
922 interface IPersistPropertyBag
: IPersist
924 typedef IPersistPropertyBag
*LPPERSISTPROPERTYBAG
;
929 [in] IPropertyBag
*pPropBag
,
930 [in] IErrorLog
*pErrorLog
);
933 [in] IPropertyBag
*pPropBag
,
934 [in] BOOL fClearDirty
,
935 [in] BOOL fSaveAllProperties
);
939 /*****************************************************************************
940 * IPropertyBag2 interface
944 uuid(22f55882
-280b
-11d0
-a8a9
-00a0c90c2004
),
945 pointer_default(unique)
947 interface IPropertyBag2
: IUnknown
949 typedef IPropertyBag2
*LPPROPERTYBAG2
;
951 typedef enum tagPROPBAG2_TYPE
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
962 typedef struct tagPROPBAG2
973 [in] ULONG cProperties
,
974 [in] PROPBAG2
*pPropBag
,
975 [in] IErrorLog
*pErrLog
,
976 [out] VARIANT *pvarValue
,
977 [out] HRESULT *phrError
);
980 [in] ULONG cProperties
,
981 [in] PROPBAG2
*pPropBag
,
982 [in] VARIANT *pvarValue
);
984 HRESULT CountProperties
(
985 [out] ULONG
*pcProperties
);
987 HRESULT GetPropertyInfo
(
988 [in] ULONG iProperty
,
989 [in] ULONG cProperties
,
990 [out] PROPBAG2
*pPropBag
,
991 [out] ULONG
*pcProperties
);
994 [in] LPCOLESTR pstrName
,
996 [in] IUnknown
*pUnkObject
,
997 [in] IErrorLog
*pErrLog
);
1001 /*****************************************************************************
1002 * IPersistPropertyBag2 interface
1006 uuid(22f55881
-280b
-11d0
-a8a9
-00a0c90c2004
),
1007 pointer_default(unique)
1009 interface IPersistPropertyBag2
: IPersist
1011 typedef IPersistPropertyBag2
*LPPERSISTPROPERTYBAG2
;
1016 [in] IPropertyBag2
*pPropBag
,
1017 [in] IErrorLog
*pErrorLog
);
1020 [in] IPropertyBag2
*pPropBag
,
1021 [in] BOOL fClearDirty
,
1022 [in] BOOL fSaveAllProperties
);
1028 /*****************************************************************************
1029 * ISpecifyPropertyPages interface
1033 uuid(b196b28b
-bab4
-101a
-b69c
-00aa00341d07
),
1034 pointer_default(unique)
1036 interface ISpecifyPropertyPages
: IUnknown
1038 typedef ISpecifyPropertyPages
*LPSPECIFYPROPERTYPAGES
;
1040 typedef struct tagCAUUID
1043 [size_is(cElems
)] GUID
*pElems
;
1044 } CAUUID
, *LPCAUUID
;
1046 HRESULT GetPages
( [out] CAUUID
*pPages
);
1050 /*****************************************************************************
1051 * IPerPropertyBrowsing interface
1055 uuid(376bd3aa
-3845-101b
-84ed
-08002b2ec713
),
1056 pointer_default(unique)
1058 interface IPerPropertyBrowsing
: IUnknown
1060 typedef IPerPropertyBrowsing
*LPPERPROPERTYBROWSING
;
1062 typedef struct tagCALPOLESTR
1065 [size_is(cElems
)] LPOLESTR
*pElems
;
1066 } CALPOLESTR
, *LPCALPOLESTR
;
1068 typedef struct tagCADWORD
1071 [size_is(cElems
)] DWORD
*pElems
;
1072 } CADWORD
, *LPCADWORD
;
1074 HRESULT GetDisplayString
(
1078 HRESULT MapPropertyToPage
(
1080 [out] CLSID
*pClsid
);
1082 HRESULT GetPredefinedStrings
(
1084 [out] CALPOLESTR
*pCaStringsOut
,
1085 [out] CADWORD
*pCaCookiesOut
);
1087 HRESULT GetPredefinedValue
(
1089 [in] DWORD dwCookie
,
1090 [out] VARIANT *pVarOut
);
1094 /*****************************************************************************
1095 * IAdviseSinkEx interface
1099 uuid(3af24290
-0c96
-11ce
-a0cf
-00aa00600ab8
),
1100 pointer_default(unique)
1102 interface IAdviseSinkEx
: IAdviseSink
1104 typedef IAdviseSinkEx
*LPADVISESINKEX
;
1107 void OnViewStatusChange
( [in] DWORD dwViewStatus
);
1109 [call_as
(OnViewStatusChange
)]
1110 HRESULT RemoteOnViewStatusChange
( [in] DWORD dwViewStatus
);
1114 /*****************************************************************************
1115 * IPointerInactive interface
1119 uuid(55980ba0
-35aa
-11cf
-b671
-00aa004cd6d8
),
1120 pointer_default(unique)
1122 interface IPointerInactive
: IUnknown
1124 typedef IPointerInactive
*LPPOINTERINACTIVE
;
1126 HRESULT GetActivationPolicy
(
1127 [out] DWORD
*pdwPolicy
);
1129 HRESULT OnInactiveMouseMove
(
1130 [in] LPCRECT pRectBounds
,
1133 [in] DWORD grfKeyState
);
1135 HRESULT OnInactiveSetCursor
(
1136 [in] LPCRECT pRectBounds
,
1139 [in] DWORD dwMouseMsg
,
1140 [in] BOOL fSetAlways
);
1144 /*****************************************************************************
1145 * IObjectWithSite interface
1149 uuid(fc4801a3
-2ba9
-11cf
-a229
-00aa003d7352
),
1150 pointer_default(unique)
1152 interface IObjectWithSite
: IUnknown
1154 typedef IObjectWithSite
*LPOBJECTWITHSITE
;
1157 [in] IUnknown
* pUnkSite
);
1161 [out, iid_is(riid
)] PVOID
*ppvSite
);
1165 /*****************************************************************************
1166 * IOleUndoUnit interface
1168 interface IOleUndoManager
; /* forward declaration */
1171 uuid(894ad3b0
-ef97
-11ce
-9bc9
-00aa00608e01
),
1172 pointer_default(unique)
1174 interface IOleUndoUnit
: IUnknown
1176 typedef IOleUndoUnit
*LPOLEUNDOUNIT
;
1178 HRESULT Do
( [in] IOleUndoManager
*pUndoManager
);
1179 HRESULT GetDescription
( [out] BSTR *pBstr
);
1180 HRESULT GetUnitType
( [out] CLSID
*pClsid
, [out] LONG *plID
);
1181 HRESULT OnNextAdd
();
1185 /*****************************************************************************
1186 * IOleParentUndoUnit interface
1190 uuid(a1faf330
-ef97
-11ce
-9bc9
-00aa00608e01
),
1191 pointer_default(unique)
1193 interface IOleParentUndoUnit
: IOleUndoUnit
1195 typedef IOleParentUndoUnit
*LPOLEPARENTUNDOUNIT
;
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
);
1205 /*****************************************************************************
1206 * IEnumOleUndoUnits interface
1210 uuid(b3e7c340
-ef97
-11ce
-9bc9
-00aa00608e01
),
1211 pointer_default(unique)
1213 interface IEnumOleUndoUnits
: IUnknown
1215 typedef IEnumOleUndoUnits
*LPENUMOLEUNDOUNITS
;
1220 [out, size_is(cElt
), length_is(*pcEltFetched
)] IOleUndoUnit
**rgElt
,
1221 [out] ULONG
*pcEltFetched
);
1226 [out, size_is(cElt
), length_is(*pcEltFetched
)] IOleUndoUnit
**rgElt
,
1227 [out] ULONG
*pcEltFetched
);
1229 HRESULT Skip
( [in] ULONG cElt
);
1233 HRESULT Clone
( [out] IEnumOleUndoUnits
**ppEnum
);
1237 /*****************************************************************************
1238 * IOleUndoManager interface
1242 uuid(d001f200
-ef97
-11ce
-9bc9
-00aa00608e01
),
1243 pointer_default(unique)
1245 interface IOleUndoManager
: IUnknown
1247 cpp_quote
("#define SID_SOleUndoManager IID_IOleUndoManager")
1248 typedef IOleUndoManager
*LPOLEUNDOMANAGER
;
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
);
1265 /*****************************************************************************
1266 * IQuickActivate interface
1270 uuid(cf51ed10
-62fe
-11cf
-bf86
-00a0c9034836
),
1271 pointer_default(unique)
1273 interface IQuickActivate
: IUnknown
1275 typedef IQuickActivate
*LPQUICKACTIVATE
;
1277 typedef enum tagQACONTAINERFLAGS
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
1289 typedef DWORD OLE_COLOR
;
1291 typedef struct tagQACONTAINER
1294 IOleClientSite
*pClientSite
;
1295 IAdviseSinkEx
*pAdviseSink
;
1296 IPropertyNotifySink
*pPropertyNotifySink
;
1297 IUnknown
*pUnkEventSink
;
1298 DWORD dwAmbientFlags
;
1299 OLE_COLOR colorFore
;
1300 OLE_COLOR colorBack
;
1302 IOleUndoManager
*pUndoMgr
;
1306 IBindHost
*pBindHost
;
1307 IOleControlSite
*pOleControlSite
;
1308 IServiceProvider
*pServiceProvider
;
1311 typedef struct tagQACONTROL
1316 DWORD dwEventCookie
;
1317 DWORD dwPropNotifyCookie
;
1318 DWORD dwPointerActivationPolicy
;
1322 HRESULT QuickActivate
(
1323 [in] QACONTAINER
*pQaContainer
,
1324 [in,out] QACONTROL
*pQaControl
);
1326 [call_as
(QuickActivate
)]
1327 HRESULT RemoteQuickActivate
(
1328 [in] QACONTAINER
*pQaContainer
,
1329 [out] QACONTROL
*pQaControl
);
1331 HRESULT SetContentExtent
( [in] LPSIZEL pSizel
);
1333 HRESULT GetContentExtent
( [out] LPSIZEL pSizel
);