dinput/tests: Avoid assigning values twice (PVS-Studio).
[wine/multimedia.git] / include / ocidl.idl
blobc40d155828f26e3369a8d087517b9f0fe70eb049
1 /*
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
21 #ifndef DO_NO_IMPORTS
22 import "oleidl.idl";
23 import "oaidl.idl";
24 import "servprov.idl";
25 import "urlmon.idl";
26 #endif
28 /*****************************************************************************
29 * IOleControlTypes interface
32 pointer_default(unique)
34 interface IOleControlTypes
36 typedef [v1_enum] enum tagUASFLAGS
38 UAS_NORMAL = 0x0,
39 UAS_BLOCKED = 0x1,
40 UAS_NOPARENTABLE = 0x2,
41 UAS_MASK = 0x3
42 } UASFLAGS;
44 typedef enum tagREADYSTATE
46 READYSTATE_UNINITIALIZED = 0,
47 READYSTATE_LOADING = 1,
48 READYSTATE_LOADED = 2,
49 READYSTATE_INTERACTIVE = 3,
50 READYSTATE_COMPLETE = 4
51 } READYSTATE;
53 typedef struct tagVARIANT_BLOB
55 DWORD clSize;
56 DWORD rpcReserved;
57 [size_is(clSize-1)] ULONGLONG ahData[];
58 } wireVARIANT_BLOB;
60 typedef struct tagUserVARIANT
62 wireVARIANT_BLOB pVarBlob;
63 } UserVARIANT;
67 /*****************************************************************************
68 * IFont interface
71 object,
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
111 object,
112 uuid(bef6e003-a874-101a-8bba-00aa00300cab),
113 pointer_default(unique)
115 interface IFontDisp : IDispatch
117 typedef IFontDisp *LPFONTDISP;
121 /*****************************************************************************
122 * IFontEventsDisp interface
125 object,
126 uuid(4ef6100a-af88-11d0-9846-00c04fc29993),
127 pointer_default(unique)
129 interface IFontEventsDisp : IDispatch
131 typedef IFontEventsDisp *LPFONTEVENTS;
135 /*****************************************************************************
136 * IPicture interface
139 object,
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
151 } PICTUREATTRIBUTES;
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 );
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);
177 HRESULT set_hPal( [in] OLE_HANDLE hPal );
179 [propget] HRESULT CurDC( [out] HDC *phDC );
181 HRESULT SelectPicture(
182 [in] HDC hDCIn,
183 [out] HDC * phDCOut,
184 [out] OLE_HANDLE * phBmpOut);
186 [propget] HRESULT KeepOriginalFormat( [out] BOOL *pKeep );
188 [propput] HRESULT KeepOriginalFormat( [in] BOOL keep );
190 HRESULT PictureChanged();
192 HRESULT SaveAsFile(
193 [in] LPSTREAM pStream,
194 [in] BOOL fSaveMemCopy,
195 [out] LONG *pCbSize);
197 [propget] HRESULT Attributes( [out] DWORD *pDwAttr );
201 /*****************************************************************************
202 * IPictureDisp interface
205 object,
206 uuid(7bf80981-bf32-101a-8bbb-00aa00300cab),
207 pointer_default(unique)
209 interface IPictureDisp : IDispatch
211 typedef IPictureDisp *LPPICTUREDISP;
215 /*****************************************************************************
216 * IOleControl interface
219 object,
220 uuid(b196b288-bab4-101a-b69c-00aa00341d07),
221 pointer_default(unique)
224 interface IOleControl : IUnknown
226 typedef IOleControl *LPOLECONTROL;
228 typedef struct tagCONTROLINFO
230 ULONG cb;
231 HACCEL hAccel;
232 USHORT cAccel;
233 DWORD dwFlags;
234 } CONTROLINFO, *LPCONTROLINFO;
236 typedef enum tagCTRLINFO
238 CTRLINFO_EATS_RETURN = 1,
239 CTRLINFO_EATS_ESCAPE = 2
240 } CTRLINFO;
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
253 object,
254 uuid(b196b289-bab4-101a-b69c-00aa00341d07),
255 pointer_default(unique)
257 interface IOleControlSite : IUnknown
259 typedef IOleControlSite *LPOLECONTROLSITE;
261 typedef struct tagPOINTF
263 FLOAT x;
264 FLOAT y;
265 } POINTF, *LPPOINTF;
267 typedef enum tagXFORMCOORDS
269 XFORMCOORDS_POSITION = 0x1,
270 XFORMCOORDS_SIZE = 0x2,
271 XFORMCOORDS_HIMETRICTOCONTAINER = 0x4,
272 XFORMCOORDS_CONTAINERTOHIMETRIC = 0x8,
273 XFORMCOORDS_EVENTCOMPAT = 0x10
274 } XFORMCOORDS;
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,
285 [in] DWORD dwFlags);
287 HRESULT TranslateAccelerator( [in] MSG *pMsg, [in] DWORD grfModifiers );
289 HRESULT OnFocus( [in] BOOL fGotFocus );
291 HRESULT ShowPropertyFrame();
295 /*****************************************************************************
296 * IOleInPlaceSiteEx interface
299 object,
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
310 } ACTIVATE_FLAGS;
312 HRESULT OnInPlaceActivateEx( [out] BOOL * pfNoRedraw, [in] DWORD dwFlags );
313 HRESULT OnInPlaceDeactivateEx( [in] BOOL fNoRedraw );
314 HRESULT RequestUIActivate();
318 /*****************************************************************************
319 * IOleInPlaceSiteWindowless interface
322 local,
323 object,
324 uuid(922eada0-3424-11cf-b670-00aa004cd6d8),
325 pointer_default(unique)
327 interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx
329 typedef IOleInPlaceSiteWindowless *LPOLEINPLACESITEWINDOWLESS;
331 typedef enum tagOLEDCFLAGS
333 OLEDC_NODRAW = 0x1,
334 OLEDC_PAINTBKGND = 0x2,
335 OLEDC_OFFSCREEN = 0x4
336 } OLEDCFLAGS;
338 HRESULT CanWindowlessActivate();
340 HRESULT GetCapture();
342 HRESULT SetCapture( [in] BOOL fCapture );
344 HRESULT GetFocus();
346 HRESULT SetFocus( [in] BOOL fFocus );
348 HRESULT GetDC(
349 [in] LPCRECT pRect,
350 [in] DWORD grfFlags,
351 [out] HDC *phDC);
353 HRESULT ReleaseDC( [in] HDC hDC );
355 HRESULT InvalidateRect(
356 [in] LPCRECT pRect,
357 [in] BOOL fErase);
359 HRESULT InvalidateRgn(
360 [in] HRGN hRGN,
361 [in] BOOL fErase);
363 HRESULT ScrollRect(
364 [in] INT dx,
365 [in] INT dy,
366 [in] LPCRECT pRectScroll,
367 [in] LPCRECT pRectClip);
369 HRESULT AdjustRect( [in, out] LPRECT prc );
371 HRESULT OnDefWindowMessage(
372 [in] UINT msg,
373 [in] WPARAM wParam,
374 [in] LPARAM lParam,
375 [out] LRESULT *plResult);
379 /*****************************************************************************
380 * IOleInPlaceObjectWindowless interface
383 local,
384 object,
385 uuid(1c2056cc-5ef4-101b-8bc8-00aa003e3b29),
386 pointer_default(unique)
388 interface IOleInPlaceObjectWindowless : IOleInPlaceObject
390 typedef IOleInPlaceObjectWindowless *LPOLEINPLACEOBJECTWINDOWLESS;
392 HRESULT OnWindowMessage(
393 [in] UINT msg,
394 [in] WPARAM wParam,
395 [in] LPARAM lParam,
396 [out] LRESULT *plResult);
398 HRESULT GetDropTarget( [out] IDropTarget **ppDropTarget );
402 /*****************************************************************************
403 * IClassFactory2 interface
406 object,
407 uuid(b196b28f-bab4-101a-b69c-00aa00341d07),
408 pointer_default(unique)
410 interface IClassFactory2 : IClassFactory
412 typedef IClassFactory2 *LPCLASSFACTORY2;
414 typedef struct tagLICINFO
416 LONG cbLicInfo;
417 BOOL fRuntimeKeyAvail;
418 BOOL fLicVerified;
419 } LICINFO, *LPLICINFO;
421 HRESULT GetLicInfo( [out] LICINFO *pLicInfo );
423 HRESULT RequestLicKey(
424 [in] DWORD dwReserved,
425 [out] BSTR *pBstrKey);
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);
435 [call_as(CreateInstanceLic)]
436 HRESULT RemoteCreateInstanceLic(
437 [in] REFIID riid,
438 [in] BSTR bstrKey,
439 [out, iid_is(riid)] IUnknown **ppvObj);
443 /*****************************************************************************
444 * IViewObject interface
447 local,
448 object,
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
464 } VIEWSTATUS;
466 typedef enum tagHITRESULT
468 HITRESULT_OUTSIDE = 0,
469 HITRESULT_TRANSPARENT = 1,
470 HITRESULT_CLOSE = 2,
471 HITRESULT_HIT = 3
472 } HITRESULT;
474 typedef enum tagDVASPECT2
476 DVASPECT_OPAQUE = 16,
477 DVASPECT_TRANSPARENT = 32
478 } DVASPECT2;
480 typedef struct tagExtentInfo
482 ULONG cb;
483 DWORD dwExtentMode;
484 SIZEL sizelProposed;
485 } DVEXTENTINFO;
487 typedef enum tagAspectInfoFlag
489 DVASPECTINFOFLAG_CANOPTIMIZE = 1
490 } DVASPECTINFOFLAG;
492 typedef struct tagAspectInfo
494 ULONG cb;
495 DWORD dwFlags;
496 } DVASPECTINFO;
498 HRESULT GetRect(
499 [in] DWORD dwAspect,
500 [out] LPRECTL pRect);
502 HRESULT GetViewStatus( [out] DWORD *pdwStatus );
504 HRESULT QueryHitPoint(
505 [in] DWORD dwAspect,
506 [in] LPCRECT pRectBounds,
507 [in] POINT ptlLoc,
508 [in] LONG lCloseHint,
509 [out] DWORD *pHitResult);
511 HRESULT QueryHitRect(
512 [in] DWORD dwAspect,
513 [in] LPCRECT pRectBounds,
514 [in] LPCRECT pRectLoc,
515 [in] LONG lCloseHint,
516 [out] DWORD *pHitResult);
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);
528 /*****************************************************************************
529 * IProvideClassInfo interface
532 object,
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")
542 cpp_quote("#endif")
544 HRESULT GetClassInfo( [out] ITypeInfo ** ppTI );
548 /*****************************************************************************
549 * IProvideClassInfo2 interface
552 object,
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
563 } GUIDKIND;
565 HRESULT GetGUID(
566 [in] DWORD dwGuidKind,
567 [out] GUID *pGUID );
572 object,
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(
588 [out] ULONG *pcti);
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);
601 /*****************************************************************************
602 * IConnectionPoint interface
604 interface IConnectionPointContainer; /* forward declarations */
605 interface IEnumConnections;
608 object,
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 */
629 object,
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
646 object,
647 uuid(b196b287-bab4-101a-b69c-00aa00341d07),
648 pointer_default(unique)
650 interface IEnumConnections : IUnknown
652 typedef IEnumConnections *PENUMCONNECTIONS, *LPENUMCONNECTIONS;
654 typedef struct tagCONNECTDATA
656 IUnknown *pUnk;
657 DWORD dwCookie;
658 } CONNECTDATA, *PCONNECTDATA, *LPCONNECTDATA;
660 [local]
661 HRESULT Next(
662 [in] ULONG cConnections,
663 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTDATA rgcd,
664 [out] ULONG *pcFetched);
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);
672 HRESULT Skip( [in] ULONG cConnections );
674 HRESULT Reset();
676 HRESULT Clone( [out] IEnumConnections **ppEnum );
680 /*****************************************************************************
681 * IEnumConnectionPoints interface
684 object,
685 uuid(b196b285-bab4-101a-b69c-00aa00341d07),
686 pointer_default(unique)
688 interface IEnumConnectionPoints : IUnknown
690 typedef IEnumConnectionPoints *PENUMCONNECTIONPOINTS, *LPENUMCONNECTIONPOINTS;
692 [local]
693 HRESULT Next(
694 [in] ULONG cConnections,
695 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTIONPOINT *ppCP,
696 [out] ULONG *pcFetched);
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);
704 HRESULT Skip( [in] ULONG cConnections );
706 HRESULT Reset();
708 HRESULT Clone( [out] IEnumConnectionPoints **ppEnum );
712 /*****************************************************************************
713 * IPropertyPage interface
715 interface IPropertyPageSite; /* forward declaration */
717 object,
718 uuid(b196b28d-bab4-101a-b69c-00aa00341d07),
719 pointer_default(unique)
721 interface IPropertyPage : IUnknown
723 typedef IPropertyPage *LPPROPERTYPAGE;
725 typedef struct tagPROPPAGEINFO
727 ULONG cb;
728 LPOLESTR pszTitle;
729 SIZE size;
730 LPOLESTR pszDocString;
731 LPOLESTR pszHelpFile;
732 DWORD dwHelpContext;
733 } PROPPAGEINFO, *LPPROPPAGEINFO;
735 HRESULT SetPageSite( [in] IPropertyPageSite *pPageSite );
737 HRESULT Activate(
738 [in] HWND hWndParent,
739 [in] LPCRECT pRect,
740 [in] BOOL bModal);
742 HRESULT Deactivate();
744 HRESULT GetPageInfo( [out] PROPPAGEINFO *pPageInfo );
746 HRESULT SetObjects(
747 [in] ULONG cObjects,
748 [in, size_is(cObjects)] IUnknown **ppUnk);
750 HRESULT Show( [in] UINT nCmdShow );
752 HRESULT Move( [in] LPCRECT pRect );
754 HRESULT IsPageDirty();
756 HRESULT Apply();
758 HRESULT Help( [in] LPCOLESTR pszHelpDir );
760 HRESULT TranslateAccelerator( [in] MSG *pMsg );
764 /*****************************************************************************
765 * IPropertyPage2 interface
768 object,
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
784 object,
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
797 } PROPPAGESTATUS;
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
810 object,
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
827 object,
828 uuid(742b0e01-14e6-101b-914e-00aa00300cab),
829 pointer_default(unique)
831 interface ISimpleFrameSite : IUnknown
833 typedef ISimpleFrameSite *LPSIMPLEFRAMESITE;
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);
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);
853 /*****************************************************************************
854 * IPersistStreamInit interface
857 object,
858 uuid(7fd52380-4e07-101b-ae2d-08002b2ec713),
859 pointer_default(unique)
861 interface IPersistStreamInit : IPersist
863 typedef IPersistStreamInit *LPPERSISTSTREAMINIT;
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();
873 /*****************************************************************************
874 * IPersistMemory interface
877 object,
878 uuid(bd1ae5e0-a6ae-11ce-bd37-504200c10000),
879 pointer_default(unique)
881 interface IPersistMemory : IPersist
883 typedef IPersistMemory *LPPERSISTMEMORY;
885 HRESULT IsDirty();
887 [local]
888 HRESULT Load(
889 [in, size_is(cbSize)] LPVOID pMem,
890 [in] ULONG cbSize);
892 [call_as(Load)]
893 HRESULT RemoteLoad(
894 [in, size_is(cbSize)] BYTE *pMem,
895 [in] ULONG cbSize);
897 [local]
898 HRESULT Save(
899 [out, size_is(cbSize)] LPVOID pMem,
900 [in] BOOL fClearDirty,
901 [in] ULONG cbSize);
903 [call_as(Save)]
904 HRESULT RemoteSave(
905 [out, size_is(cbSize)] BYTE *pMem,
906 [in] BOOL fClearDirty,
907 [in] ULONG cbSize);
909 HRESULT GetSizeMax( [out] ULONG *pCbSize );
910 HRESULT InitNew();
914 /*****************************************************************************
915 * IPersistPropertyBag interface
918 object,
919 uuid(37d84f60-42cb-11ce-8135-00aa004bb851),
920 pointer_default(unique)
922 interface IPersistPropertyBag : IPersist
924 typedef IPersistPropertyBag *LPPERSISTPROPERTYBAG;
926 HRESULT InitNew();
928 HRESULT Load(
929 [in] IPropertyBag *pPropBag,
930 [in] IErrorLog *pErrorLog);
932 HRESULT Save(
933 [in] IPropertyBag *pPropBag,
934 [in] BOOL fClearDirty,
935 [in] BOOL fSaveAllProperties);
939 /*****************************************************************************
940 * IPropertyBag2 interface
943 object,
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
960 } PROPBAG2_TYPE;
962 typedef struct tagPROPBAG2
964 DWORD dwType;
965 VARTYPE vt;
966 CLIPFORMAT cfType;
967 DWORD dwHint;
968 LPOLESTR pstrName;
969 CLSID clsid;
970 } PROPBAG2;
972 HRESULT Read(
973 [in] ULONG cProperties,
974 [in] PROPBAG2 *pPropBag,
975 [in] IErrorLog *pErrLog,
976 [out] VARIANT *pvarValue,
977 [out] HRESULT *phrError);
979 HRESULT Write(
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);
993 HRESULT LoadObject(
994 [in] LPCOLESTR pstrName,
995 [in] DWORD dwHint,
996 [in] IUnknown *pUnkObject,
997 [in] IErrorLog *pErrLog);
1001 /*****************************************************************************
1002 * IPersistPropertyBag2 interface
1005 object,
1006 uuid(22f55881-280b-11d0-a8a9-00a0c90c2004),
1007 pointer_default(unique)
1009 interface IPersistPropertyBag2 : IPersist
1011 typedef IPersistPropertyBag2 *LPPERSISTPROPERTYBAG2;
1013 HRESULT InitNew();
1015 HRESULT Load(
1016 [in] IPropertyBag2 *pPropBag,
1017 [in] IErrorLog *pErrorLog);
1019 HRESULT Save(
1020 [in] IPropertyBag2 *pPropBag,
1021 [in] BOOL fClearDirty,
1022 [in] BOOL fSaveAllProperties);
1024 HRESULT IsDirty();
1028 /*****************************************************************************
1029 * ISpecifyPropertyPages interface
1032 object,
1033 uuid(b196b28b-bab4-101a-b69c-00aa00341d07),
1034 pointer_default(unique)
1036 interface ISpecifyPropertyPages : IUnknown
1038 typedef ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES;
1040 typedef struct tagCAUUID
1042 ULONG cElems;
1043 [size_is(cElems)] GUID *pElems;
1044 } CAUUID, *LPCAUUID;
1046 HRESULT GetPages( [out] CAUUID *pPages );
1050 /*****************************************************************************
1051 * IPerPropertyBrowsing interface
1054 object,
1055 uuid(376bd3aa-3845-101b-84ed-08002b2ec713),
1056 pointer_default(unique)
1058 interface IPerPropertyBrowsing : IUnknown
1060 typedef IPerPropertyBrowsing *LPPERPROPERTYBROWSING;
1062 typedef struct tagCALPOLESTR
1064 ULONG cElems;
1065 [size_is(cElems)] LPOLESTR *pElems;
1066 } CALPOLESTR, *LPCALPOLESTR;
1068 typedef struct tagCADWORD
1070 ULONG cElems;
1071 [size_is(cElems)] DWORD *pElems;
1072 } CADWORD, *LPCADWORD;
1074 HRESULT GetDisplayString(
1075 [in] DISPID dispID,
1076 [out] BSTR *pBstr);
1078 HRESULT MapPropertyToPage(
1079 [in] DISPID dispID,
1080 [out] CLSID *pClsid);
1082 HRESULT GetPredefinedStrings(
1083 [in] DISPID dispID,
1084 [out] CALPOLESTR *pCaStringsOut,
1085 [out] CADWORD *pCaCookiesOut);
1087 HRESULT GetPredefinedValue(
1088 [in] DISPID dispID,
1089 [in] DWORD dwCookie,
1090 [out] VARIANT *pVarOut);
1094 /*****************************************************************************
1095 * IAdviseSinkEx interface
1098 object,
1099 uuid(3af24290-0c96-11ce-a0cf-00aa00600ab8),
1100 pointer_default(unique)
1102 interface IAdviseSinkEx : IAdviseSink
1104 typedef IAdviseSinkEx *LPADVISESINKEX;
1106 [local]
1107 void OnViewStatusChange( [in] DWORD dwViewStatus );
1109 [call_as(OnViewStatusChange)]
1110 HRESULT RemoteOnViewStatusChange( [in] DWORD dwViewStatus );
1114 /*****************************************************************************
1115 * IPointerInactive interface
1118 object,
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,
1131 [in] LONG x,
1132 [in] LONG y,
1133 [in] DWORD grfKeyState);
1135 HRESULT OnInactiveSetCursor(
1136 [in] LPCRECT pRectBounds,
1137 [in] LONG x,
1138 [in] LONG y,
1139 [in] DWORD dwMouseMsg,
1140 [in] BOOL fSetAlways);
1144 /*****************************************************************************
1145 * IObjectWithSite interface
1148 object,
1149 uuid(fc4801a3-2ba9-11cf-a229-00aa003d7352),
1150 pointer_default(unique)
1152 interface IObjectWithSite : IUnknown
1154 typedef IObjectWithSite *LPOBJECTWITHSITE;
1156 HRESULT SetSite(
1157 [in] IUnknown * pUnkSite);
1159 HRESULT GetSite(
1160 [in] REFIID riid,
1161 [out, iid_is(riid)] PVOID *ppvSite);
1165 /*****************************************************************************
1166 * IOleUndoUnit interface
1168 interface IOleUndoManager; /* forward declaration */
1170 object,
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
1189 object,
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
1209 object,
1210 uuid(b3e7c340-ef97-11ce-9bc9-00aa00608e01),
1211 pointer_default(unique)
1213 interface IEnumOleUndoUnits : IUnknown
1215 typedef IEnumOleUndoUnits *LPENUMOLEUNDOUNITS;
1217 [local]
1218 HRESULT Next(
1219 [in] ULONG cElt,
1220 [out, size_is(cElt), length_is(*pcEltFetched)] IOleUndoUnit **rgElt,
1221 [out] ULONG *pcEltFetched);
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);
1229 HRESULT Skip( [in] ULONG cElt );
1231 HRESULT Reset();
1233 HRESULT Clone( [out] IEnumOleUndoUnits **ppEnum );
1237 /*****************************************************************************
1238 * IOleUndoManager interface
1241 object,
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
1269 object,
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
1287 } QACONTAINERFLAGS;
1289 typedef DWORD OLE_COLOR;
1291 typedef struct tagQACONTAINER
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;
1311 typedef struct tagQACONTROL
1313 ULONG cbSize;
1314 DWORD dwMiscStatus;
1315 DWORD dwViewStatus;
1316 DWORD dwEventCookie;
1317 DWORD dwPropNotifyCookie;
1318 DWORD dwPointerActivationPolicy;
1319 } QACONTROL;
1321 [local]
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 );