Documentation for Wine client-side server interface.
[wine/multimedia.git] / include / ocidl.idl
blob1d9e410d739fc0c636506d15bdcc171e63439cd3
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 import "oleidl.idl";
22 import "oaidl.idl";
23 import "servprov.idl";
24 import "urlmon.idl";
27 /*****************************************************************************
28 * IOleControlTypes interface
31 pointer_default(unique)
33 interface IOleControlTypes
35 typedef enum tagREADYSTATE
37 READYSTATE_UNINITIALIZED = 0,
38 READYSTATE_LOADING = 1,
39 READYSTATE_LOADED = 2,
40 READYSTATE_INTERACTIVE = 3,
41 READYSTATE_COMPLETE = 4
42 } READYSTATE;
44 typedef struct tagVARIANT_BLOB
46 DWORD clSize;
47 DWORD rpcReserved;
48 [size_is(clSize-1)] ULONGLONG ahData[];
49 } wireVARIANT_BLOB;
51 typedef struct tagUserVARIANT
53 wireVARIANT_BLOB pVarBlob;
54 } UserVARIANT;
58 /*****************************************************************************
59 * IFont interface
62 object,
63 uuid(bef6e002-a874-101a-8bba-00aa00300cab),
64 pointer_default(unique)
66 interface IFont : IUnknown
68 typedef IFont *LPFONT;
69 typedef TEXTMETRICW TEXTMETRICOLE, *LPTEXTMETRICOLE;
71 HRESULT get_Name( [out] BSTR *pname);
72 HRESULT put_Name( [in] BSTR name );
73 HRESULT get_Size( [out] CY *psize );
74 HRESULT put_Size( [in] CY size );
75 HRESULT get_Bold( [out] BOOL *pbold );
76 HRESULT put_Bold( [in] BOOL bold );
77 HRESULT get_Italic( [out] BOOL *pitalic );
78 HRESULT put_Italic( [in] BOOL italic );
79 HRESULT get_Underline( [out] BOOL *punderline );
80 HRESULT put_Underline( [in] BOOL underline );
81 HRESULT get_Strikethrough( [out] BOOL *pstrikethrough );
82 HRESULT put_Strikethrough( [in] BOOL strikethrough );
83 HRESULT get_Weight( [out] SHORT *pweight );
84 HRESULT put_Weight( [in] SHORT weight );
85 HRESULT get_Charset( [out] SHORT *pcharset );
86 HRESULT put_Charset( [in] SHORT charset );
87 HRESULT get_hFont( [out] HFONT *phfont );
88 HRESULT Clone( [out] IFont **ppfont );
89 HRESULT IsEqual( [in] IFont *pFontOther );
90 HRESULT SetRatio( [in] LONG cyLogical, [in] LONG cyHimetric );
91 HRESULT QueryTextMetrics( [out] TEXTMETRICOLE * ptm );
92 HRESULT AddRefHfont( [in] HFONT hfont );
93 HRESULT ReleaseHfont( [in] HFONT hfont );
94 HRESULT SetHdc( [in] HDC hdc );
98 /*****************************************************************************
99 * IFontDisp interface
102 object,
103 uuid(bef6e003-a874-101a-8bba-00aa00300cab),
104 pointer_default(unique)
106 interface IFontDisp : IDispatch
108 typedef IFontDisp *LPFONTDISP;
112 /*****************************************************************************
113 * IPicture interface
116 object,
117 uuid(7bf80980-bf32-101a-8bbb-00aa00300cab),
118 pointer_default(unique)
120 interface IPicture : IUnknown
122 typedef IPicture *LPPICTURE;
124 typedef enum tagPicture
126 PICTURE_SCALABLE = 0x1,
127 PICTURE_TRANSPARENT = 0x2
128 } PICTUREATTRIBUTES;
130 typedef UINT OLE_HANDLE;
131 typedef LONG OLE_XPOS_HIMETRIC;
132 typedef LONG OLE_YPOS_HIMETRIC;
133 typedef LONG OLE_XSIZE_HIMETRIC;
134 typedef LONG OLE_YSIZE_HIMETRIC;
136 HRESULT get_Handle( [out] OLE_HANDLE *pHandle );
137 HRESULT get_hPal( [out] OLE_HANDLE *phPal );
138 HRESULT get_Type( [out] SHORT *pType );
139 HRESULT get_Width( [out] OLE_XSIZE_HIMETRIC *pWidth );
140 HRESULT get_Height( [out] OLE_YSIZE_HIMETRIC *pHeight );
142 HRESULT Render(
143 [in] HDC hdc,
144 [in] LONG x,
145 [in] LONG y,
146 [in] LONG cx,
147 [in] LONG cy,
148 [in] OLE_XPOS_HIMETRIC xSrc,
149 [in] OLE_YPOS_HIMETRIC ySrc,
150 [in] OLE_XSIZE_HIMETRIC cxSrc,
151 [in] OLE_YSIZE_HIMETRIC cySrc,
152 [in] LPCRECT pRcWBounds);
154 HRESULT set_hPal( [in] OLE_HANDLE hPal );
156 HRESULT get_CurDC( [out] HDC *phDC );
158 HRESULT SelectPicture(
159 [in] HDC hDCIn,
160 [out] HDC * phDCOut,
161 [out] OLE_HANDLE * phBmpOut);
163 HRESULT get_KeepOriginalFormat( [out] BOOL *pKeep );
165 HRESULT put_KeepOriginalFormat( [in] BOOL keep );
167 HRESULT PictureChanged();
169 HRESULT SaveAsFile(
170 [in] LPSTREAM pStream,
171 [in] BOOL fSaveMemCopy,
172 [out] LONG *pCbSize);
174 HRESULT get_Attributes( [out] DWORD *pDwAttr );
178 /*****************************************************************************
179 * IPictureDisp interface
182 object,
183 uuid(7bf80981-bf32-101a-8bbb-00aa00300cab),
184 pointer_default(unique)
186 interface IPictureDisp : IDispatch
188 typedef IPictureDisp *LPPICTUREDISP;
192 /*****************************************************************************
193 * IOleControl interface
196 object,
197 uuid(b196b288-bab4-101a-b69c-00aa00341d07),
198 pointer_default(unique)
201 interface IOleControl : IUnknown
203 typedef IOleControl *LPOLECONTROL;
205 typedef struct tagCONTROLINFO
207 ULONG cb;
208 HACCEL hAccel;
209 USHORT cAccel;
210 DWORD dwFlags;
211 } CONTROLINFO, *LPCONTROLINFO;
213 typedef enum tagCTRLINFO
215 CTRLINFO_EATS_RETURN = 1,
216 CTRLINFO_EATS_ESCAPE = 2
217 } CTRLINFO;
219 HRESULT GetControlInfo( [out] CONTROLINFO *pCI );
220 HRESULT OnMnemonic( [in] MSG *pMsg );
221 HRESULT OnAmbientPropertyChange( [in] DISPID dispID );
222 HRESULT FreezeEvents( [in] BOOL bFreeze );
226 /*****************************************************************************
227 * IOleControlSite interface
230 object,
231 uuid(b196b289-bab4-101a-b69c-00aa00341d07),
232 pointer_default(unique)
234 interface IOleControlSite : IUnknown
236 typedef IOleControlSite *LPOLECONTROLSITE;
238 typedef struct tagPOINTF
240 FLOAT x;
241 FLOAT y;
242 } POINTF, *LPPOINTF;
244 typedef enum tagXFORMCOORDS
246 XFORMCOORDS_POSITION = 0x1,
247 XFORMCOORDS_SIZE = 0x2,
248 XFORMCOORDS_HIMETRICTOCONTAINER = 0x4,
249 XFORMCOORDS_CONTAINERTOHIMETRIC = 0x8,
250 XFORMCOORDS_EVENTCOMPAT = 0x10
251 } XFORMCOORDS;
253 HRESULT OnControlInfoChanged();
255 HRESULT LockInPlaceActive( [in] BOOL fLock );
257 HRESULT GetExtendedControl( [out] IDispatch ** ppDisp );
259 HRESULT TransformCoords(
260 [in, out] POINTL *pPtlHimetric,
261 [in, out] POINTF *pPtfContainer,
262 [in] DWORD dwFlags);
264 HRESULT TranslateAccelerator( [in] MSG *pMsg, [in] DWORD grfModifiers );
266 HRESULT OnFocus( [in] BOOL fGotFocus );
268 HRESULT ShowPropertyFrame();
272 /*****************************************************************************
273 * IOleInPlaceSiteEx interface
276 object,
277 uuid(9c2cad80-3424-11cf-b670-00aa004cd6d8),
278 pointer_default(unique)
280 interface IOleInPlaceSiteEx : IOleInPlaceSite
282 typedef IOleInPlaceSiteEx *LPOLEINPLACESITEEX;
284 typedef enum tagACTIVATEFLAGS
286 ACTIVATE_WINDOWLESS = 1
287 } ACTIVATE_FLAGS;
289 HRESULT OnInPlaceActivateEx( [out] BOOL * pfNoRedraw, [in] DWORD dwFlags );
290 HRESULT OnInPlaceDeactivateEx( [in] BOOL fNoRedraw );
291 HRESULT RequestUIActivate();
295 /*****************************************************************************
296 * IOleInPlaceSiteWindowless interface
299 local,
300 object,
301 uuid(922eada0-3424-11cf-b670-00aa004cd6d8),
302 pointer_default(unique)
304 interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx
306 typedef IOleInPlaceSiteWindowless *LPOLEINPLACESITEWINDOWLESS;
308 typedef enum tagOLEDCFLAGS
310 OLEDC_NODRAW = 0x1,
311 OLEDC_PAINTBKGND = 0x2,
312 OLEDC_OFFSCREEN = 0x4
313 } OLEDCFLAGS;
315 HRESULT CanWindowlessActivate();
317 HRESULT GetCapture();
319 HRESULT SetCapture( [in] BOOL fCapture );
321 HRESULT GetFocus();
323 HRESULT SetFocus( [in] BOOL fFocus );
325 HRESULT GetDC(
326 [in] LPCRECT pRect,
327 [in] DWORD grfFlags,
328 [out] HDC *phDC);
330 HRESULT ReleaseDC( [in] HDC hDC );
332 HRESULT InvalidateRect(
333 [in] LPCRECT pRect,
334 [in] BOOL fErase);
336 HRESULT InvalidateRgn(
337 [in] HRGN hRGN,
338 [in] BOOL fErase);
340 HRESULT ScrollRect(
341 [in] INT dx,
342 [in] INT dy,
343 [in] LPCRECT pRectScroll,
344 [in] LPCRECT pRectClip);
346 HRESULT AdjustRect( [in, out] LPRECT prc );
348 HRESULT OnDefWindowMessage(
349 [in] UINT msg,
350 [in] WPARAM wParam,
351 [in] LPARAM lParam,
352 [out] LRESULT *plResult);
356 /*****************************************************************************
357 * IOleInPlaceObjectWindowless interface
360 local,
361 object,
362 uuid(1c2056cc-5ef4-101b-8bc8-00aa003e3b29),
363 pointer_default(unique)
365 interface IOleInPlaceObjectWindowless : IOleInPlaceObject
367 typedef IOleInPlaceObjectWindowless *LPOLEINPLACEOBJECTWINDOWLESS;
369 HRESULT OnWindowMessage(
370 [in] UINT msg,
371 [in] WPARAM wParam,
372 [in] LPARAM lParam,
373 [out] LRESULT *plResult);
375 HRESULT GetDropTarget( [out] IDropTarget **ppDropTarget );
379 /*****************************************************************************
380 * IClassFactory2 interface
383 object,
384 uuid(b196b28f-bab4-101a-b69c-00aa00341d07),
385 pointer_default(unique)
387 interface IClassFactory2 : IClassFactory
389 typedef IClassFactory2 *LPCLASSFACTORY2;
391 typedef struct tagLICINFO
393 LONG cbLicInfo;
394 BOOL fRuntimeKeyAvail;
395 BOOL fLicVerified;
396 } LICINFO, *LPLICINFO;
398 HRESULT GetLicInfo( [out] LICINFO *pLicInfo );
400 HRESULT RequestLicKey(
401 [in] DWORD dwReserved,
402 [out] BSTR *pBstrKey);
404 [local]
405 HRESULT CreateInstanceLic(
406 [in] IUnknown *pUnkOuter,
407 [in] IUnknown *pUnkReserved,
408 [in] REFIID riid,
409 [in] BSTR bstrKey,
410 [out, iid_is(riid)] PVOID *ppvObj);
412 [call_as(CreateInstanceLic)]
413 HRESULT RemoteCreateInstanceLic(
414 [in] REFIID riid,
415 [in] BSTR bstrKey,
416 [out, iid_is(riid)] IUnknown **ppvObj);
420 /*****************************************************************************
421 * IViewObject interface
424 local,
425 object,
426 uuid(3af24292-0c96-11ce-a0cf-00aa00600ab8),
427 pointer_default(unique)
429 interface IViewObjectEx : IViewObject2
431 typedef IViewObjectEx *LPVIEWOBJECTEX;
433 typedef enum tagVIEWSTATUS
435 VIEWSTATUS_OPAQUE = 1,
436 VIEWSTATUS_SOLIDBKGND = 2,
437 VIEWSTATUS_DVASPECTOPAQUE = 4,
438 VIEWSTATUS_DVASPECTTRANSPARENT = 8,
439 VIEWSTATUS_SURFACE = 16,
440 VIEWSTATUS_3DSURFACE = 32
441 } VIEWSTATUS;
443 typedef enum tagHITRESULT
445 HITRESULT_OUTSIDE = 0,
446 HITRESULT_TRANSPARENT = 1,
447 HITRESULT_CLOSE = 2,
448 HITRESULT_HIT = 3
449 } HITRESULT;
451 typedef enum tagDVASPECT2
453 DVASPECT_OPAQUE = 16,
454 DVASPECT_TRANSPARENT = 32
455 } DVASPECT2;
457 typedef struct tagExtentInfo
459 ULONG cb;
460 DWORD dwExtentMode;
461 SIZEL sizelProposed;
462 } DVEXTENTINFO;
464 typedef enum tagAspectInfoFlag
466 DVASPECTINFOFLAG_CANOPTIMIZE = 1
467 } DVASPECTINFOFLAG;
469 typedef struct tagAspectInfo
471 ULONG cb;
472 DWORD dwFlags;
473 } DVASPECTINFO;
475 HRESULT GetRect(
476 [in] DWORD dwAspect,
477 [out] LPRECTL pRect);
479 HRESULT GetViewStatus( [out] DWORD *pdwStatus );
481 HRESULT QueryHitPoint(
482 [in] DWORD dwAspect,
483 [in] LPCRECT pRectBounds,
484 [in] POINT ptlLoc,
485 [in] LONG lCloseHint,
486 [out] DWORD *pHitResult);
488 HRESULT QueryHitRect(
489 [in] DWORD dwAspect,
490 [in] LPCRECT pRectBounds,
491 [in] LPCRECT pRectLoc,
492 [in] LONG lCloseHint,
493 [out] DWORD *pHitResult);
495 HRESULT GetNaturalExtent (
496 [in] DWORD dwAspect,
497 [in] LONG lindex,
498 [in] DVTARGETDEVICE *ptd,
499 [in] HDC hicTargetDev,
500 [in] DVEXTENTINFO *pExtentInfo,
501 [out] LPSIZEL pSizel);
505 /*****************************************************************************
506 * IProvideClassInfo interface
509 object,
510 uuid(b196b283-bab4-101a-b69c-00aa00341d07),
511 pointer_default(unique)
513 interface IProvideClassInfo : IUnknown
515 typedef IProvideClassInfo *LPPROVIDECLASSINFO;
517 cpp_quote("#ifdef __WINESRC__")
518 cpp_quote("#undef GetClassInfo")
519 cpp_quote("#endif")
521 HRESULT GetClassInfo( [out] ITypeInfo ** ppTI );
525 /*****************************************************************************
526 * IProvideClassInfo2 interface
529 object,
530 uuid(a6bc3ac0-dbaa-11ce-9de3-00aa004bb851),
531 pointer_default(unique)
533 interface IProvideClassInfo2 : IProvideClassInfo
535 typedef IProvideClassInfo2 *LPPROVIDECLASSINFO2;
537 typedef enum tagGUIDKIND
539 GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1
540 } GUIDKIND;
542 HRESULT GetGUID(
543 [in] DWORD dwGuidKind,
544 [out] GUID *pGUID );
548 /*****************************************************************************
549 * IConnectionPoint interface
551 interface IConnectionPointContainer; /* forward declarations */
552 interface IEnumConnections;
555 object,
556 uuid(b196b286-bab4-101a-b69c-00aa00341d07),
557 pointer_default(unique)
559 interface IConnectionPoint : IUnknown
561 typedef IConnectionPoint *PCONNECTIONPOINT, *LPCONNECTIONPOINT;
563 HRESULT GetConnectionInterface( [out] IID *pIID );
564 HRESULT GetConnectionPointContainer( [out] IConnectionPointContainer **ppCPC );
565 HRESULT Advise( [in] IUnknown *pUnkSink, [out] DWORD *pdwCookie );
566 HRESULT Unadvise( [in] DWORD dwCookie );
567 HRESULT EnumConnections( [out] IEnumConnections **ppEnum );
571 /*****************************************************************************
572 * IConnectionPointContainer interface
574 interface IEnumConnectionPoints; /* forward declaration */
576 object,
577 uuid(b196b284-bab4-101a-b69c-00aa00341d07),
578 pointer_default(unique)
580 interface IConnectionPointContainer : IUnknown
582 typedef IConnectionPointContainer *PCONNECTIONPOINTCONTAINER, *LPCONNECTIONPOINTCONTAINER;
584 HRESULT EnumConnectionPoints( [out] IEnumConnectionPoints **ppEnum );
585 HRESULT FindConnectionPoint( [in] REFIID riid, [out] IConnectionPoint **ppCP );
589 /*****************************************************************************
590 * IEnumConnections interface
593 object,
594 uuid(b196b287-bab4-101a-b69c-00aa00341d07),
595 pointer_default(unique)
597 interface IEnumConnections : IUnknown
599 typedef IEnumConnections *PENUMCONNECTIONS, *LPENUMCONNECTIONS;
601 typedef struct tagCONNECTDATA
603 IUnknown *pUnk;
604 DWORD dwCookie;
605 } CONNECTDATA, *PCONNECTDATA, *LPCONNECTDATA;
607 [local]
608 HRESULT Next(
609 [in] ULONG cConnections,
610 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTDATA rgcd,
611 [out] ULONG *pcFetched);
613 [call_as(Next)]
614 HRESULT RemoteNext(
615 [in] ULONG cConnections,
616 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTDATA rgcd,
617 [out] ULONG *pcFetched);
619 HRESULT Skip( [in] ULONG cConnections );
621 HRESULT Reset();
623 HRESULT Clone( [out] IEnumConnections **ppEnum );
627 /*****************************************************************************
628 * IEnumConnectionPoints interface
631 object,
632 uuid(b196b285-bab4-101a-b69c-00aa00341d07),
633 pointer_default(unique)
635 interface IEnumConnectionPoints : IUnknown
637 typedef IEnumConnectionPoints *PENUMCONNECTIONPOINTS, *LPENUMCONNECTIONPOINTS;
639 [local]
640 HRESULT Next(
641 [in] ULONG cConnections,
642 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTIONPOINT *ppCP,
643 [out] ULONG *pcFetched);
645 [call_as(Next)]
646 HRESULT RemoteNext(
647 [in] ULONG cConnections,
648 [out, size_is(cConnections), length_is(*pcFetched)] LPCONNECTIONPOINT *ppCP,
649 [out] ULONG *pcFetched);
651 HRESULT Skip( [in] ULONG cConnections );
653 HRESULT Reset();
655 HRESULT Clone( [out] IEnumConnectionPoints **ppEnum );
659 /*****************************************************************************
660 * IPropertyPage interface
662 interface IPropertyPageSite; /* forward declaration */
664 object,
665 uuid(b196b28d-bab4-101a-b69c-00aa00341d07),
666 pointer_default(unique)
668 interface IPropertyPage : IUnknown
670 typedef IPropertyPage *LPPROPERTYPAGE;
672 typedef struct tagPROPPAGEINFO
674 ULONG cb;
675 LPOLESTR pszTitle;
676 SIZE size;
677 LPOLESTR pszDocString;
678 LPOLESTR pszHelpFile;
679 DWORD dwHelpContext;
680 } PROPPAGEINFO, *LPPROPPAGEINFO;
682 HRESULT SetPageSite( [in] IPropertyPageSite *pPageSite );
684 HRESULT Activate(
685 [in] HWND hWndParent,
686 [in] LPCRECT pRect,
687 [in] BOOL bModal);
689 HRESULT Deactivate();
691 HRESULT GetPageInfo( [out] PROPPAGEINFO *pPageInfo );
693 HRESULT SetObjects(
694 [in] ULONG cObjects,
695 [in, size_is(cObjects)] IUnknown **ppUnk);
697 HRESULT Show( [in] UINT nCmdShow );
699 HRESULT Move( [in] LPCRECT pRect );
701 HRESULT IsPageDirty();
703 HRESULT Apply();
705 HRESULT Help( [in] LPCOLESTR pszHelpDir );
707 HRESULT TranslateAccelerator( [in] MSG *pMsg );
711 /*****************************************************************************
712 * IPropertyPage2 interface
715 object,
716 uuid(01e44665-24ac-101b-84ed-08002b2ec713),
717 pointer_default(unique)
719 interface IPropertyPage2 : IPropertyPage
721 typedef IPropertyPage2 *LPPROPERTYPAGE2;
723 HRESULT EditProperty( [in] DISPID dispID );
727 /*****************************************************************************
728 * IPropertyPageSite interface
731 object,
732 uuid(b196b28c-bab4-101a-b69c-00aa00341d07),
733 pointer_default(unique)
735 interface IPropertyPageSite : IUnknown
737 typedef IPropertyPageSite *LPPROPERTYPAGESITE;
739 typedef enum tagPROPPAGESTATUS
741 PROPPAGESTATUS_DIRTY = 0x1,
742 PROPPAGESTATUS_VALIDATE = 0x2,
743 PROPPAGESTATUS_CLEAN = 0x4
744 } PROPPAGESTATUS;
746 HRESULT OnStatusChange( [in] DWORD dwFlags );
747 HRESULT GetLocaleID( [out] LCID *pLocaleID );
748 HRESULT GetPageContainer( [out] IUnknown **ppUnk );
749 HRESULT TranslateAccelerator( [in] MSG *pMsg );
753 /*****************************************************************************
754 * IPropertyNotifySink interface
757 object,
758 uuid(9bfbbc02-eff1-101a-84ed-00aa00341d07),
759 pointer_default(unique)
761 interface IPropertyNotifySink : IUnknown
763 typedef IPropertyNotifySink *LPPROPERTYNOTIFYSINK;
765 HRESULT OnChanged( [in] DISPID dispID );
766 HRESULT OnRequestEdit( [in] DISPID dispID );
770 /*****************************************************************************
771 * ISimpleFrameSite interface
774 object,
775 uuid(742b0e01-14e6-101b-914e-00aa00300cab),
776 pointer_default(unique)
778 interface ISimpleFrameSite : IUnknown
780 typedef ISimpleFrameSite *LPSIMPLEFRAMESITE;
782 HRESULT PreMessageFilter(
783 [in] HWND hWnd,
784 [in] UINT msg,
785 [in] WPARAM wp,
786 [in] LPARAM lp,
787 [out] LRESULT *plResult,
788 [out] DWORD *pdwCookie);
790 HRESULT PostMessageFilter(
791 [in] HWND hWnd,
792 [in] UINT msg,
793 [in] WPARAM wp,
794 [in] LPARAM lp,
795 [out] LRESULT *plResult,
796 [in] DWORD dwCookie);
800 /*****************************************************************************
801 * IPersistStreamInit interface
804 object,
805 uuid(7fd52380-4e07-101b-ae2d-08002b2ec713),
806 pointer_default(unique)
808 interface IPersistStreamInit : IPersist
810 typedef IPersistStreamInit *LPPERSISTSTREAMINIT;
812 HRESULT IsDirty();
813 HRESULT Load( [in] LPSTREAM pStm );
814 HRESULT Save( [in] LPSTREAM pStm, [in] BOOL fClearDirty );
815 HRESULT GetSizeMax( [out] ULARGE_INTEGER *pcbSize );
816 HRESULT InitNew();
820 /*****************************************************************************
821 * IPersistMemory interface
824 object,
825 uuid(bd1ae5e0-a6ae-11ce-bd37-504200c10000),
826 pointer_default(unique)
828 interface IPersistMemory : IPersist
830 typedef IPersistMemory *LPPERSISTMEMORY;
832 HRESULT IsDirty();
834 [local]
835 HRESULT Load(
836 [in, size_is(cbSize)] LPVOID pMem,
837 [in] ULONG cbSize);
839 [call_as(Load)]
840 HRESULT RemoteLoad(
841 [in, size_is(cbSize)] BYTE *pMem,
842 [in] ULONG cbSize);
844 [local]
845 HRESULT Save(
846 [out, size_is(cbSize)] LPVOID pMem,
847 [in] BOOL fClearDirty,
848 [in] ULONG cbSize);
850 [call_as(Save)]
851 HRESULT RemoteSave(
852 [out, size_is(cbSize)] BYTE *pMem,
853 [in] BOOL fClearDirty,
854 [in] ULONG cbSize);
856 HRESULT GetSizeMax( [out] ULONG *pCbSize );
857 HRESULT InitNew();
861 /*****************************************************************************
862 * IPersistPropertyBag interface
865 object,
866 uuid(37d84f60-42cb-11ce-8135-00aa004bb851),
867 pointer_default(unique)
869 interface IPersistPropertyBag : IPersist
871 typedef IPersistPropertyBag *LPPERSISTPROPERTYBAG;
873 HRESULT InitNew();
875 HRESULT Load(
876 [in] IPropertyBag *pPropBag,
877 [in] IErrorLog *pErrorLog);
879 HRESULT Save(
880 [in] IPropertyBag *pPropBag,
881 [in] BOOL fClearDirty,
882 [in] BOOL fSaveAllProperties);
886 /*****************************************************************************
887 * IPropertyBag2 interface
890 object,
891 uuid(22f55882-280b-11d0-a8a9-00a0c90c2004),
892 pointer_default(unique)
894 interface IPropertyBag2 : IUnknown
896 typedef IPropertyBag2 *LPPROPERTYBAG2;
898 typedef enum tagPROPBAG2_TYPE
900 PROPBAG2_TYPE_UNDEFINED = 0,
901 PROPBAG2_TYPE_DATA = 1,
902 PROPBAG2_TYPE_URL = 2,
903 PROPBAG2_TYPE_OBJECT = 3,
904 PROPBAG2_TYPE_STREAM = 4,
905 PROPBAG2_TYPE_STORAGE = 5,
906 PROPBAG2_TYPE_MONIKER = 6
907 } PROPBAG2_TYPE;
909 typedef struct tagPROPBAG2
911 DWORD dwType;
912 VARTYPE vt;
913 CLIPFORMAT cfType;
914 DWORD dwHint;
915 LPOLESTR pstrName;
916 CLSID clsid;
917 } PROPBAG2;
919 HRESULT Read(
920 [in] ULONG cProperties,
921 [in] PROPBAG2 *pPropBag,
922 [in] IErrorLog *pErrLog,
923 [out] VARIANT *pvarValue,
924 [out] HRESULT *phrError);
926 HRESULT Write(
927 [in] ULONG cProperties,
928 [in] PROPBAG2 *pPropBag,
929 [in] VARIANT *pvarValue);
931 HRESULT CountProperties(
932 [out] ULONG *pcProperties );
934 HRESULT GetPropertyInfo(
935 [in] ULONG iProperty,
936 [in] ULONG cProperties,
937 [out] PROPBAG2 *pPropBag,
938 [out] ULONG *pcProperties);
940 HRESULT LoadObject(
941 [in] LPCOLESTR pstrName,
942 [in] DWORD dwHint,
943 [in] IUnknown *pUnkObject,
944 [in] IErrorLog *pErrLog);
948 /*****************************************************************************
949 * IPersistPropertyBag2 interface
952 object,
953 uuid(22f55881-280b-11d0-a8a9-00a0c90c2004),
954 pointer_default(unique)
956 interface IPersistPropertyBag2 : IPersist
958 typedef IPersistPropertyBag2 *LPPERSISTPROPERTYBAG2;
960 HRESULT InitNew();
962 HRESULT Load(
963 [in] IPropertyBag2 *pPropBag,
964 [in] IErrorLog *pErrorLog);
966 HRESULT Save(
967 [in] IPropertyBag2 *pPropBag,
968 [in] BOOL fClearDirty,
969 [in] BOOL fSaveAllProperties);
971 HRESULT IsDirty();
975 /*****************************************************************************
976 * ISpecifyPropertyPages interface
979 object,
980 uuid(b196b28b-bab4-101a-b69c-00aa00341d07),
981 pointer_default(unique)
983 interface ISpecifyPropertyPages : IUnknown
985 typedef ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES;
987 typedef struct tagCAUUID
989 ULONG cElems;
990 [size_is(cElems)] GUID *pElems;
991 } CAUUID, *LPCAUUID;
993 HRESULT GetPages( [out] CAUUID *pPages );
997 /*****************************************************************************
998 * IPerPropertyBrowsing interface
1001 object,
1002 uuid(376bd3aa-3845-101b-84ed-08002b2ec713),
1003 pointer_default(unique)
1005 interface IPerPropertyBrowsing : IUnknown
1007 typedef IPerPropertyBrowsing *LPPERPROPERTYBROWSING;
1009 typedef struct tagCALPOLESTR
1011 ULONG cElems;
1012 [size_is(cElems)] LPOLESTR *pElems;
1013 } CALPOLESTR, *LPCALPOLESTR;
1015 typedef struct tagCADWORD
1017 ULONG cElems;
1018 [size_is(cElems)] DWORD *pElems;
1019 } CADWORD, *LPCADWORD;
1021 HRESULT GetDisplayString(
1022 [in] DISPID dispID,
1023 [out] BSTR *pBstr);
1025 HRESULT MapPropertyToPage(
1026 [in] DISPID dispID,
1027 [out] CLSID *pClsid);
1029 HRESULT GetPredefinedStrings(
1030 [in] DISPID dispID,
1031 [out] CALPOLESTR *pCaStringsOut,
1032 [out] CADWORD *pCaCookiesOut);
1034 HRESULT GetPredefinedValue(
1035 [in] DISPID dispID,
1036 [in] DWORD dwCookie,
1037 [out] VARIANT *pVarOut);
1041 /*****************************************************************************
1042 * IAdviseSinkEx interface
1045 object,
1046 uuid(3af24290-0c96-11ce-a0cf-00aa00600ab8),
1047 pointer_default(unique)
1049 interface IAdviseSinkEx : IAdviseSink
1051 typedef IAdviseSinkEx *LPADVISESINKEX;
1053 [local]
1054 void OnViewStatusChange( [in] DWORD dwViewStatus );
1056 [call_as(OnViewStatusChange)]
1057 HRESULT RemoteOnViewStatusChange( [in] DWORD dwViewStatus );
1061 /*****************************************************************************
1062 * IPointerInactive interface
1065 object,
1066 uuid(55980ba0-35aa-11cf-b671-00aa004cd6d8),
1067 pointer_default(unique)
1069 interface IPointerInactive : IUnknown
1071 typedef IPointerInactive *LPPOINTERINACTIVE;
1073 HRESULT GetActivationPolicy(
1074 [out] DWORD *pdwPolicy);
1076 HRESULT OnInactiveMouseMove(
1077 [in] LPCRECT pRectBounds,
1078 [in] LONG x,
1079 [in] LONG y,
1080 [in] DWORD grfKeyState);
1082 HRESULT OnInactiveSetCursor(
1083 [in] LPCRECT pRectBounds,
1084 [in] LONG x,
1085 [in] LONG y,
1086 [in] DWORD dwMouseMsg,
1087 [in] BOOL fSetAlways);
1091 /*****************************************************************************
1092 * IObjectWithSite interface
1095 object,
1096 uuid(fc4801a3-2ba9-11cf-a229-00aa003d7352),
1097 pointer_default(unique)
1099 interface IObjectWithSite : IUnknown
1101 typedef IObjectWithSite *LPOBJECTWITHSITE;
1103 HRESULT SetSite(
1104 [in] IUnknown * pUnkSite);
1106 HRESULT GetSite(
1107 [in] REFIID riid,
1108 [out, iid_is(riid)] PVOID *ppvSite);
1112 /*****************************************************************************
1113 * IOleUndoUnit interface
1115 interface IOleUndoManager; /* forward declaration */
1117 object,
1118 uuid(894ad3b0-ef97-11ce-9bc9-00aa00608e01),
1119 pointer_default(unique)
1121 interface IOleUndoUnit : IUnknown
1123 typedef IOleUndoUnit *LPOLEUNDOUNIT;
1125 HRESULT Do( [in] IOleUndoManager *pUndoManager );
1126 HRESULT GetDescription( [out] BSTR *pBstr );
1127 HRESULT GetUnitType( [out] CLSID *pClsid, [out] LONG *plID );
1128 HRESULT OnNextAdd();
1132 /*****************************************************************************
1133 * IOleParentUndoUnit interface
1136 object,
1137 uuid(a1faf330-ef97-11ce-9bc9-00aa00608e01),
1138 pointer_default(unique)
1140 interface IOleParentUndoUnit : IOleUndoUnit
1142 typedef IOleParentUndoUnit *LPOLEPARENTUNDOUNIT;
1144 HRESULT Open( [in] IOleParentUndoUnit *pPUU );
1145 HRESULT Close( [in] IOleParentUndoUnit *pPUU, [in] BOOL fCommit );
1146 HRESULT Add( [in] IOleUndoUnit *pUU );
1147 HRESULT FindUnit( [in] IOleUndoUnit *pUU );
1148 HRESULT GetParentState( [out] DWORD *pdwState );
1152 /*****************************************************************************
1153 * IEnumOleUndoUnits interface
1156 object,
1157 uuid(b3e7c340-ef97-11ce-9bc9-00aa00608e01),
1158 pointer_default(unique)
1160 interface IEnumOleUndoUnits : IUnknown
1162 typedef IEnumOleUndoUnits *LPENUMOLEUNDOUNITS;
1164 [local]
1165 HRESULT Next(
1166 [in] ULONG cElt,
1167 [out, size_is(cElt), length_is(*pcEltFetched)] IOleUndoUnit **rgElt,
1168 [out] ULONG *pcEltFetched);
1170 [call_as(Next)]
1171 HRESULT RemoteNext(
1172 [in] ULONG cElt,
1173 [out, size_is(cElt), length_is(*pcEltFetched)] IOleUndoUnit **rgElt,
1174 [out] ULONG *pcEltFetched);
1176 HRESULT Skip( [in] ULONG cElt );
1178 HRESULT Reset();
1180 HRESULT Clone( [out] IEnumOleUndoUnits **ppEnum );
1184 /*****************************************************************************
1185 * IOleUndoManager interface
1188 object,
1189 uuid(d001f200-ef97-11ce-9bc9-00aa00608e01),
1190 pointer_default(unique)
1192 interface IOleUndoManager : IUnknown
1194 typedef IOleUndoManager *LPOLEUNDOMANAGER;
1196 HRESULT Open( [in] IOleParentUndoUnit *pPUU );
1197 HRESULT Close( [in] IOleParentUndoUnit *pPUU, [in] BOOL fCommit );
1198 HRESULT Add( [in] IOleUndoUnit *pUU );
1199 HRESULT GetOpenParentState( [out] DWORD *pdwState );
1200 HRESULT DiscardFrom( [in] IOleUndoUnit *pUU );
1201 HRESULT UndoTo( [in] IOleUndoUnit *pUU );
1202 HRESULT RedoTo( [in] IOleUndoUnit *pUU );
1203 HRESULT EnumUndoable( [out] IEnumOleUndoUnits **ppEnum );
1204 HRESULT EnumRedoable( [out] IEnumOleUndoUnits **ppEnum );
1205 HRESULT GetLastUndoDescription( [out] BSTR *pBstr );
1206 HRESULT GetLastRedoDescription( [out] BSTR *pBstr );
1207 HRESULT Enable( [in] BOOL fEnable );
1211 /*****************************************************************************
1212 * IQuickActivate interface
1215 object,
1216 uuid(cf51ed10-62fe-11cf-bf86-00a0c9034836),
1217 pointer_default(unique)
1219 interface IQuickActivate : IUnknown
1221 typedef IQuickActivate *LPQUICKACTIVATE;
1223 typedef enum tagQACONTAINERFLAGS
1225 QACONTAINER_SHOWHATCHING = 0x1,
1226 QACONTAINER_SHOWGRABHANDLES = 0x2,
1227 QACONTAINER_USERMODE = 0x4,
1228 QACONTAINER_DISPLAYASDEFAULT = 0x8,
1229 QACONTAINER_UIDEAD = 0x10,
1230 QACONTAINER_AUTOCLIP = 0x20,
1231 QACONTAINER_MESSAGEREFLECT = 0x40,
1232 QACONTAINER_SUPPORTSMNEMONICS = 0x80
1233 } QACONTAINERFLAGS;
1235 typedef DWORD OLE_COLOR;
1237 typedef struct tagQACONTAINER
1239 ULONG cbSize;
1240 IOleClientSite *pClientSite;
1241 IAdviseSinkEx *pAdviseSink;
1242 IPropertyNotifySink *pPropertyNotifySink;
1243 IUnknown *pUnkEventSink;
1244 DWORD dwAmbientFlags;
1245 OLE_COLOR colorFore;
1246 OLE_COLOR colorBack;
1247 IFont *pFont;
1248 IOleUndoManager *pUndoMgr;
1249 DWORD dwAppearance;
1250 LONG lcid;
1251 HPALETTE hpal;
1252 IBindHost *pBindHost;
1253 IOleControlSite *pOleControlSite;
1254 IServiceProvider *pServiceProvider;
1255 } QACONTAINER;
1257 typedef struct tagQACONTROL
1259 ULONG cbSize;
1260 DWORD dwMiscStatus;
1261 DWORD dwViewStatus;
1262 DWORD dwEventCookie;
1263 DWORD dwPropNotifyCookie;
1264 DWORD dwPointerActivationPolicy;
1265 } QACONTROL;
1267 [local]
1268 HRESULT QuickActivate(
1269 [in] QACONTAINER *pQaContainer,
1270 [in,out] QACONTROL *pQaControl);
1272 [call_as(QuickActivate)]
1273 HRESULT RemoteQuickActivate(
1274 [in] QACONTAINER *pQaContainer,
1275 [out] QACONTROL *pQaControl);
1277 HRESULT SetContentExtent( [in] LPSIZEL pSizel );
1279 HRESULT GetContentExtent( [out] LPSIZEL pSizel );