Removed no longer needed include protections.
[wine/multimedia.git] / include / oleidl.idl
blobcac48e8f8b5399737145e4c663382deab6e149f8
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 "objidl.idl";
24 /*****************************************************************************
25 * IOleTypes interface
28 uuid(b0916c84-7416-101a-bcea-08002b2b79ef)
30 interface IOLETypes
32 typedef enum tagOLERENDER
34 OLERENDER_NONE = 0,
35 OLERENDER_DRAW = 1,
36 OLERENDER_FORMAT = 2,
37 OLERENDER_ASIS = 3
38 } OLERENDER, *LPOLERENDER;
40 typedef struct tagOBJECTDESCRIPTOR
42 ULONG cbSize;
43 CLSID clsid;
44 DWORD dwDrawAspect;
45 SIZEL sizel;
46 POINTL pointl;
47 DWORD dwStatus;
48 DWORD dwFullUserTypeName;
49 DWORD dwSrcOfCopy;
50 } OBJECTDESCRIPTOR, *POBJECTDESCRIPTOR, *LPOBJECTDESCRIPTOR,
51 LINKSRCDESCRIPTOR, *PLINKSRCDESCRIPTOR, *LPLINKSRCDESCRIPTOR;
55 /*****************************************************************************
56 * IOleWindow interface
59 object,
60 uuid(00000114-0000-0000-c000-000000000046),
61 pointer_default(unique)
63 interface IOleWindow : IUnknown
65 typedef [unique] IOleWindow *LPOLEWINDOW;
67 HRESULT GetWindow(
68 [out] HWND *phwnd);
70 HRESULT ContextSensitiveHelp(
71 [in] BOOL fEnterMode);
75 /*****************************************************************************
76 * IOleInPlaceObject interface
79 object,
80 uuid(00000113-0000-0000-c000-000000000046),
81 pointer_default(unique)
83 interface IOleInPlaceObject : IOleWindow
85 typedef [unique] IOleInPlaceObject *LPOLEINPLACEOBJECT;
87 HRESULT InPlaceDeactivate();
89 HRESULT UIDeactivate();
91 HRESULT SetObjectRects(
92 [in] LPCRECT lprcPosRect,
93 [in] LPCRECT lprcClipRect);
95 HRESULT ReactivateAndUndo();
99 /*****************************************************************************
100 * IOleInPlaceActiveObject interface
102 interface IOleInPlaceUIWindow; /* forward declaration */
104 object,
105 uuid(00000117-0000-0000-c000-000000000046)
107 interface IOleInPlaceActiveObject : IOleWindow
109 typedef [unique] IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT;
111 cpp_quote("struct tagMSG;") /* FIXME */
113 [local]
114 HRESULT TranslateAccelerator(
115 [in] struct tagMSG *lpmsg);
117 [call_as(TranslateAccelerator)]
118 HRESULT RemoteTranslateAccelerator();
120 HRESULT OnFrameWindowActivate(
121 [in] BOOL fActivate);
123 HRESULT OnDocWindowActivate(
124 [in] BOOL fActivate);
126 [local]
127 HRESULT ResizeBorder(
128 [in] LPCRECT prcBorder,
129 [in, unique] IOleInPlaceUIWindow *pUIWindow,
130 [in] BOOL fFrameWindow);
132 [call_as(ResizeBorder)]
133 HRESULT RemoteResizeBorder(
134 [in] LPCRECT prcBorder,
135 [in] REFIID riid,
136 [in, unique, iid_is(riid)] IOleInPlaceUIWindow *pUIWindow,
137 [in] BOOL fFrameWindow);
139 HRESULT EnableModeless(
140 [in] BOOL fEnable);
144 /*****************************************************************************
145 * IOleInPlaceUIWindow interface
148 object,
149 uuid(00000115-0000-0000-c000-000000000046),
150 pointer_default(unique)
153 interface IOleInPlaceUIWindow : IOleWindow
155 typedef [unique] IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW;
157 typedef RECT BORDERWIDTHS;
158 typedef LPRECT LPBORDERWIDTHS;
159 typedef LPCRECT LPCBORDERWIDTHS;
161 HRESULT GetBorder(
162 [out] LPRECT lprectBorder);
164 HRESULT RequestBorderSpace(
165 [in, unique] LPCBORDERWIDTHS pborderwidths);
167 HRESULT SetBorderSpace(
168 [in, unique] LPCBORDERWIDTHS pborderwidths);
170 HRESULT SetActiveObject(
171 [in, unique] IOleInPlaceActiveObject *pActiveObject,
172 [in, string, unique] LPCOLESTR pszObjName);
176 /*****************************************************************************
177 * IOleInPlaceFrame interface
180 object,
181 uuid(00000116-0000-0000-c000-000000000046),
182 pointer_default(unique)
184 interface IOleInPlaceFrame : IOleInPlaceUIWindow
186 typedef [unique] IOleInPlaceFrame *LPOLEINPLACEFRAME;
188 typedef struct tagOleInPlaceFrameInfo
190 UINT cb;
191 BOOL fMDIApp;
192 HWND hwndFrame;
193 HACCEL haccel;
194 UINT cAccelEntries;
195 } OLEINPLACEFRAMEINFO, *LPOLEINPLACEFRAMEINFO;
197 typedef struct tagOleMenuGroupWidths
199 LONG width[ 6 ];
200 } OLEMENUGROUPWIDTHS, *LPOLEMENUGROUPWIDTHS;
202 typedef HGLOBAL HOLEMENU;
204 HRESULT InsertMenus(
205 [in] HMENU hmenuShared,
206 [in,out] LPOLEMENUGROUPWIDTHS lpMenuWidths);
208 HRESULT SetMenu(
209 [in] HMENU hmenuShared,
210 [in] HOLEMENU holemenu,
211 [in] HWND hwndActiveObject);
213 HRESULT RemoveMenus(
214 [in] HMENU hmenuShared);
216 HRESULT SetStatusText(
217 [in, unique] LPCOLESTR pszStatusText);
219 HRESULT EnableModeless(
220 [in] BOOL fEnable);
222 HRESULT TranslateAccelerator(
223 [in] struct tagMSG *lpmsg,
224 [in] WORD wID);
228 /*****************************************************************************
229 * IOleInPlaceSite interface
232 object,
233 uuid(00000119-0000-0000-c000-000000000046),
234 pointer_default(unique)
236 interface IOleInPlaceSite : IOleWindow
238 typedef [unique] IOleInPlaceSite *LPOLEINPLACESITE;
240 HRESULT CanInPlaceActivate();
241 HRESULT OnInPlaceActivate();
242 HRESULT OnUIActivate();
244 HRESULT GetWindowContext(
245 [out] IOleInPlaceFrame **ppFrame,
246 [out] IOleInPlaceUIWindow **ppDoc,
247 [out] LPRECT lprcPosRect,
248 [out] LPRECT lprcClipRect,
249 [in, out] LPOLEINPLACEFRAMEINFO lpFrameInfo);
251 HRESULT Scroll(
252 [in] SIZE scrollExtant);
254 HRESULT OnUIDeactivate(
255 [in] BOOL fUndoable);
257 HRESULT OnInPlaceDeactivate();
258 HRESULT DiscardUndoState();
259 HRESULT DeactivateAndUndo();
261 HRESULT OnPosRectChange(
262 [in] LPCRECT lprcPosRect);
266 /*****************************************************************************
267 * IParseDisplayName interface
270 object,
271 uuid(0000011a-0000-0000-c000-000000000046),
272 pointer_default(unique)
274 interface IParseDisplayName : IUnknown
276 typedef [unique] IParseDisplayName *LPPARSEDISPLAYNAME;
278 HRESULT ParseDisplayName(
279 [in, unique] IBindCtx *pbc,
280 [in] LPOLESTR pszDisplayName,
281 [out] ULONG *pchEaten,
282 [out] IMoniker **ppmkOut);
286 /*****************************************************************************
287 * IOleContainer interface
290 object,
291 uuid(0000011b-0000-0000-c000-000000000046),
292 pointer_default(unique)
294 interface IOleContainer : IParseDisplayName
296 typedef [unique] IOleContainer *LPOLECONTAINER;
298 HRESULT EnumObjects(
299 [in] DWORD grfFlags,
300 [out] IEnumUnknown **ppenum);
302 HRESULT LockContainer(
303 [in] BOOL fLock);
307 /*****************************************************************************
308 * IOleItemContainer interface
311 object,
312 uuid(0000011c-0000-0000-c000-000000000046),
313 pointer_default(unique)
315 interface IOleItemContainer : IOleContainer
317 typedef [unique] IOleItemContainer *LPOLEITEMCONTAINER;
319 typedef enum tagBINDSPEED
321 BINDSPEED_INDEFINITE = 1,
322 BINDSPEED_MODERATE = 2,
323 BINDSPEED_IMMEDIATE = 3
324 } BINDSPEED;
326 typedef enum tagOLECONTF
328 OLECONTF_EMBEDDINGS = 1,
329 OLECONTF_LINKS = 2,
330 OLECONTF_OTHERS = 4,
331 OLECONTF_OLNYUSER = 8,
332 OLECONTF_ONLYIFRUNNING = 16
333 } OLECONTF;
335 cpp_quote("#ifdef __WINESRC__")
336 cpp_quote("#undef GetObject")
337 cpp_quote("#endif")
338 HRESULT GetObject(
339 [in] LPOLESTR pszItem,
340 [in] DWORD dwSpeedNeeded,
341 [in, unique] IBindCtx *pbc,
342 [in] REFIID riid,
343 [out, iid_is(riid)] void **ppvObject);
345 HRESULT GetObjectStorage(
346 [in] LPOLESTR pszItem,
347 [in, unique] IBindCtx *pbc,
348 [in] REFIID riid,
349 [out, iid_is(riid)] void **ppvStorage);
351 HRESULT IsRunning(
352 [in] LPOLESTR pszItem);
356 /*****************************************************************************
357 * IOleLink interface
360 object,
361 uuid(0000011d-0000-0000-c000-000000000046)
363 interface IOleLink : IUnknown
365 typedef [unique] IOleLink *LPOLELINK;
367 typedef enum tagOLEUPDATE
369 OLEUPDATE_ALWAYS = 1,
370 OLEUPDATE_ONCALL = 3
371 } OLEUPDATE, *POLEUPDATE, *LPOLEUPDATE;
373 typedef enum tagOLELINKBIND
375 OLELINKBIND_EVENIFCLASSDIFF = 1
376 } OLELINKBIND;
378 HRESULT SetUpdateOptions(
379 [in] DWORD dwUpdateOpt);
381 HRESULT GetUpdateOptions(
382 [out] DWORD *pdwUpdateOpt);
384 HRESULT SetSourceMoniker(
385 [in, unique] IMoniker *pmk,
386 [in] REFCLSID rclsid);
388 HRESULT GetSourceMoniker(
389 [out] IMoniker **ppmk);
391 HRESULT SetSourceDisplayName(
392 [in]LPCOLESTR pszStatusText);
394 HRESULT GetSourceDisplayName(
395 [out] LPOLESTR *ppszDisplayName);
397 HRESULT BindToSource(
398 [in] DWORD bindflags,
399 [in, unique] IBindCtx *pbc);
401 HRESULT BindIfRunning();
403 HRESULT GetBoundSource(
404 [out] IUnknown **ppunk);
406 HRESULT UnbindSource();
408 HRESULT Update(
409 [in, unique] IBindCtx *pbc);
413 /*****************************************************************************
414 * IOleClientSite interface
417 object,
418 uuid(00000118-0000-0000-c000-000000000046),
419 pointer_default(unique)
421 interface IOleClientSite : IUnknown
423 typedef [unique] IOleClientSite * LPOLECLIENTSITE;
425 HRESULT SaveObject();
427 HRESULT GetMoniker(
428 [in] DWORD dwAssign,
429 [in] DWORD dwWhichMoniker,
430 [out] IMoniker **ppmk);
432 HRESULT GetContainer(
433 [out] IOleContainer **ppContainer);
435 HRESULT ShowObject();
437 HRESULT OnShowWindow(
438 [in] BOOL fShow);
440 HRESULT RequestNewObjectLayout();
444 /*****************************************************************************
445 * IOleCache interface
448 object,
449 uuid(0000011e-0000-0000-c000-000000000046),
450 pointer_default(unique)
452 interface IOleCache : IUnknown
454 typedef [unique] IOleCache *LPOLECACHE;
456 HRESULT Cache(
457 [in, unique] FORMATETC *pformatetc,
458 [in] DWORD advf,
459 [out] DWORD *pdwConnection);
461 HRESULT Uncache(
462 [in] DWORD dwConnection);
464 HRESULT EnumCache(
465 [out] IEnumSTATDATA **ppenumSTATDATA);
467 HRESULT InitCache(
468 [in, unique] IDataObject *pDataObject);
470 HRESULT SetData(
471 [in, unique] FORMATETC *pformatetc,
472 [in, unique] STGMEDIUM *pmedium,
473 [in] BOOL fRelease);
477 /*****************************************************************************
478 * IOleCache2 interface
481 object,
482 uuid(00000128-0000-0000-c000-000000000046),
483 pointer_default(unique)
485 interface IOleCache2 : IOleCache
487 typedef [unique] IOleCache2 *LPOLECACHE2;
489 const DWORD UPDFCACHE_NODATACACHE = 0x00000001;
490 const DWORD UPDFCACHE_ONSAVECACHE = 0x00000002;
491 const DWORD UPDFCACHE_ONSTOPCACHE = 0x00000004;
492 const DWORD UPDFCACHE_NORMALCACHE = 0x00000008;
493 const DWORD UPDFCACHE_IFBLANK = 0x00000010;
494 const DWORD UPDFCACHE_ONLYIFBLANK = 0x80000000;
496 const DWORD UPDFCACHE_IFBLANKORONSAVECACHE = (UPDFCACHE_IFBLANK | UPDFCACHE_ONSAVECACHE);
497 const DWORD UPDFCACHE_ALL = ((DWORD)(~(UPDFCACHE_ONLYIFBLANK)));
498 const DWORD UPDFCACHE_ALLBUTNODATACACHE = (UPDFCACHE_ALL & ((DWORD)(~UPDFCACHE_NODATACACHE)));
500 typedef enum tagDISCARDCACHE
502 DISCARDCACHE_SAVEIFDIRTY = 0,
503 DISCARDCACHE_NOSAVE = 1
504 } DISCARDCACHE;
506 [local]
507 HRESULT UpdateCache(
508 [in] LPDATAOBJECT pDataObject,
509 [in] DWORD grfUpdf,
510 [in] LPVOID pReserved);
512 [call_as(UpdateCache)]
513 HRESULT RemoteUpdateCache(
514 [in] LPDATAOBJECT pDataObject,
515 [in] DWORD grfUpdf,
516 [in] LONG_PTR pReserved);
518 HRESULT DiscardCache(
519 [in] DWORD dwDiscardOptions);
523 /*****************************************************************************
524 * IOleCacheControl interface
527 object,
528 uuid(00000129-0000-0000-c000-000000000046)
530 interface IOleCacheControl : IUnknown
532 typedef [unique] IOleCacheControl *LPOLECACHECONTROL;
534 HRESULT OnRun(
535 LPDATAOBJECT pDataObject);
537 HRESULT OnStop();
541 /*****************************************************************************
542 * IEnumOLEVERB interface
545 object,
546 uuid(00000104-0000-0000-c000-000000000046),
547 pointer_default(unique)
549 interface IEnumOLEVERB : IUnknown
551 typedef [unique] IEnumOLEVERB *LPENUMOLEVERB;
553 typedef struct tagOLEVERB
555 LONG lVerb;
556 LPOLESTR lpszVerbName;
557 DWORD fuFlags;
558 DWORD grfAttribs;
559 } OLEVERB, *LPOLEVERB;
561 typedef enum tagOLEVERBATTRIB
563 OLEVERBATTRIB_NEVERDIRTIES = 1,
564 OLEVERBATTRIB_ONCONTAINERMENU = 2
565 } OLEVERBATTRIB;
567 [local]
568 HRESULT Next(
569 [in] ULONG celt,
570 [out, size_is(celt), length_is(*pceltFetched)] LPOLEVERB rgelt,
571 [out] ULONG *pceltFetched);
573 [call_as(Next)]
574 HRESULT RemoteNext(
575 [in] ULONG celt,
576 [out, size_is(celt), length_is(*pceltFetched)] LPOLEVERB rgelt,
577 [out] ULONG *pceltFetched);
579 HRESULT Skip(
580 [in] ULONG celt);
582 HRESULT Reset();
584 HRESULT Clone(
585 [out] IEnumOLEVERB **ppenum);
589 /*****************************************************************************
590 * IOleObject interface
593 object,
594 uuid(00000112-0000-0000-c000-000000000046),
595 pointer_default(unique)
597 interface IOleObject : IUnknown
599 typedef [unique] IOleObject *LPOLEOBJECT;
601 typedef enum tagOLEGETMONIKER
603 OLEGETMONIKER_ONLYIFTHERE = 1,
604 OLEGETMONIKER_FORCEASSIGN = 2,
605 OLEGETMONIKER_UNASSIGN = 3,
606 OLEGETMONIKER_TEMPFORUSER = 4
607 } OLEGETMONIKER;
609 typedef enum tagOLEWHICHMK
611 OLEWHICHMK_CONTAINER = 1,
612 OLEWHICHMK_OBJREL = 2,
613 OLEWHICHMK_OBJFULL = 3
614 } OLEWHICHMK;
616 typedef enum tagUSERCLASSTYPE
618 USERCLASSTYPE_FULL = 1,
619 USERCLASSTYPE_SHORT = 2,
620 USERCLASSTYPE_APPNAME = 3
621 } USERCLASSTYPE;
623 typedef enum tagOLEMISC
625 OLEMISC_RECOMPOSEONRESIZE = 0x1,
626 OLEMISC_ONLYICONIC = 0x2,
627 OLEMISC_INSERTNOTREPLACE = 0x4,
628 OLEMISC_STATIC = 0x8,
629 OLEMISC_CANTLINKINSIDE = 0x10,
630 OLEMISC_CANLINKBYOLE1 = 0x20,
631 OLEMISC_ISLINKOBJECT = 0x40,
632 OLEMISC_INSIDEOUT = 0x80,
633 OLEMISC_ACTIVATEWHENVISIBLE = 0x100,
634 OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x200,
635 OLEMISC_INVISIBLEATRUNTIME = 0x400,
636 OLEMISC_ALWAYSRUN = 0x800,
637 OLEMISC_ACTSLIKEBUTTON = 0x1000,
638 OLEMISC_ACTSLIKELABEL = 0x2000,
639 OLEMISC_NOUIACTIVATE = 0x4000,
640 OLEMISC_ALIGNABLE = 0x8000,
641 OLEMISC_SIMPLEFRAME = 0x10000,
642 OLEMISC_SETCLIENTSITEFIRST = 0x20000,
643 OLEMISC_IMEMODE = 0x40000,
644 OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x80000,
645 OLEMISC_WANTSTOMENUMERGE = 0x100000,
646 OLEMISC_SUPPORTSMULTILEVELUNDO = 0x200000
647 } OLEMISC;
649 typedef enum tagOLECLOSE
651 OLECLOSE_SAVEIFDIRTY = 0,
652 OLECLOSE_NOSAVE = 1,
653 OLECLOSE_PROMPTSAVE = 2
654 } OLECLOSE;
656 HRESULT SetClientSite(
657 [in, unique] IOleClientSite *pClientSite);
659 HRESULT GetClientSite(
660 [out] IOleClientSite **ppClientSite);
662 HRESULT SetHostNames(
663 [in] LPCOLESTR szContainerApp,
664 [in, unique] LPCOLESTR szContainerObj);
666 HRESULT Close(
667 [in] DWORD dwSaveOption);
669 HRESULT SetMoniker(
670 [in] DWORD dwWhichMoniker,
671 [in, unique] IMoniker *pmk);
673 HRESULT GetMoniker(
674 [in] DWORD dwAssign,
675 [in] DWORD dwWhichMoniker,
676 [out] IMoniker **ppmk);
678 HRESULT InitFromData(
679 [in, unique] IDataObject *pDataObject,
680 [in] BOOL fCreation,
681 [in] DWORD dwReserved);
683 HRESULT GetClipboardData(
684 [in] DWORD dwReserved,
685 [out] IDataObject **ppDataObject);
687 HRESULT DoVerb(
688 [in] LONG iVerb,
689 [in, unique] struct tagMSG *lpmsg,
690 [in, unique] IOleClientSite *pActiveSite,
691 [in] LONG lindex,
692 [in] HWND hwndParent,
693 [in, unique] LPCRECT lprcPosRect);
695 HRESULT EnumVerbs(
696 [out] IEnumOLEVERB **ppEnumOleVerb);
698 HRESULT Update();
700 HRESULT IsUpToDate();
702 HRESULT GetUserClassID(
703 [out] CLSID *pClsid);
705 HRESULT GetUserType(
706 [in] DWORD dwFormOfType,
707 [out] LPOLESTR *pszUserType);
709 HRESULT SetExtent(
710 [in] DWORD dwDrawAspect,
711 [in] SIZEL *psizel);
713 HRESULT GetExtent(
714 [in] DWORD dwDrawAspect,
715 [out] SIZEL *psizel);
717 HRESULT Advise(
718 [in, unique] IAdviseSink *pAdvSink,
719 [out] DWORD *pdwConnection);
721 HRESULT Unadvise(
722 [in] DWORD dwConnection);
724 HRESULT EnumAdvise(
725 [out] IEnumSTATDATA **ppenumAdvise);
727 HRESULT GetMiscStatus(
728 [in] DWORD dwAspect,
729 [out] DWORD *pdwStatus);
731 HRESULT SetColorScheme(
732 [in] LOGPALETTE *pLogpal);
736 /*****************************************************************************
737 * IOleAdviseHolder interface
740 local,
741 object,
742 uuid(00000111-0000-0000-c000-000000000046)
744 interface IOleAdviseHolder : IUnknown
746 typedef [unique] IOleAdviseHolder * LPOLEADVISEHOLDER;
748 HRESULT Advise(
749 [in, unique] IAdviseSink *pAdvise,
750 [out] DWORD *pdwConnection);
752 HRESULT Unadvise(
753 [in] DWORD dwConnection);
755 HRESULT EnumAdvise(
756 [out] IEnumSTATDATA **ppenumAdvise);
758 HRESULT SendOnRename(
759 [in, unique] IMoniker *pmk);
761 HRESULT SendOnSave();
762 HRESULT SendOnClose();
766 /*****************************************************************************
767 * IContinue interface
770 object,
771 uuid(0000012a-0000-0000-c000-000000000046)
773 interface IContinue : IUnknown
775 HRESULT FContinue();
779 /*****************************************************************************
780 * IViewObject interface
783 object,
784 uuid(0000010d-0000-0000-c000-000000000046)
786 interface IViewObject : IUnknown
788 typedef [unique] IViewObject *LPVIEWOBJECT;
790 [local]
791 HRESULT Draw(
792 [in] DWORD dwDrawAspect,
793 [in] LONG lindex,
794 [in, unique] void * pvAspect,
795 [in, unique] DVTARGETDEVICE *ptd,
796 [in] HDC hdcTargetDev,
797 [in] HDC hdcDraw,
798 [in] LPCRECTL lprcBounds,
799 [in, unique] LPCRECTL lprcWBounds,
800 [in] BOOL (*pfnContinue)(ULONG_PTR dwContinue),
801 [in] ULONG_PTR dwContinue);
803 [call_as(Draw)]
804 HRESULT RemoteDraw(
805 [in] DWORD dwDrawAspect,
806 [in] LONG lindex,
807 [in] ULONG_PTR pvAspect,
808 [in, unique] DVTARGETDEVICE *ptd,
809 [in] ULONG_PTR hdcTargetDev,
810 [in] ULONG_PTR hdcDraw,
811 [in] LPCRECTL lprcBounds,
812 [in, unique] LPCRECTL lprcWBounds,
813 [in] IContinue *pContinue);
815 [local]
816 HRESULT GetColorSet(
817 [in] DWORD dwDrawAspect,
818 [in] LONG lindex,
819 [in, unique] void *pvAspect,
820 [in, unique] DVTARGETDEVICE *ptd,
821 [in] HDC hicTargetDev,
822 [out] LOGPALETTE **ppColorSet);
824 [call_as(GetColorSet)]
825 HRESULT RemoteGetColorSet(
826 [in] DWORD dwDrawAspect,
827 [in] LONG lindex,
828 [in] ULONG_PTR pvAspect,
829 [in, unique] DVTARGETDEVICE *ptd,
830 [in] ULONG_PTR hicTargetDev,
831 [out] LOGPALETTE **ppColorSet);
833 [local]
834 HRESULT Freeze(
835 [in] DWORD dwDrawAspect,
836 [in] LONG lindex,
837 [in, unique] void *pvAspect,
838 [out] DWORD *pdwFreeze);
840 [call_as(Freeze)]
841 HRESULT RemoteFreeze(
842 [in] DWORD dwDrawAspect,
843 [in] LONG lindex,
844 [in] ULONG_PTR pvAspect,
845 [out] DWORD *pdwFreeze);
847 HRESULT Unfreeze(
848 [in] DWORD dwFreeze);
850 HRESULT SetAdvise(
851 [in] DWORD aspects,
852 [in] DWORD advf,
853 [in, unique] IAdviseSink *pAdvSink);
855 [local]
856 HRESULT GetAdvise(
857 [out, unique] DWORD *pAspects,
858 [out, unique] DWORD *pAdvf,
859 [out] IAdviseSink **ppAdvSink);
861 [call_as(GetAdvise)]
862 HRESULT RemoteGetAdvise(
863 [out] DWORD *pAspects,
864 [out] DWORD *pAdvf,
865 [out] IAdviseSink **ppAdvSink);
869 /*****************************************************************************
870 * IViewObject2 interface
873 object,
874 uuid(00000127-0000-0000-c000-000000000046)
876 interface IViewObject2 : IViewObject
878 typedef [unique] IViewObject2 *LPVIEWOBJECT2;
880 HRESULT GetExtent(
881 [in] DWORD dwDrawAspect,
882 [in] LONG lindex,
883 [in, unique] DVTARGETDEVICE* ptd,
884 [out] LPSIZEL lpsizel);
888 /*****************************************************************************
889 * IDropSource interface
892 local,
893 object,
894 uuid(00000121-0000-0000-c000-000000000046)
896 interface IDropSource : IUnknown
898 typedef [unique] IDropSource *LPDROPSOURCE;
900 HRESULT QueryContinueDrag(
901 [in] BOOL fEscapePressed,
902 [in] DWORD grfKeyState);
904 HRESULT GiveFeedback(
905 [in] DWORD dwEffect);
909 /*****************************************************************************
910 * IDropTarget interface
913 object,
914 uuid(00000122-0000-0000-c000-000000000046),
915 pointer_default(unique)
917 interface IDropTarget : IUnknown
919 typedef [unique] IDropTarget *LPDROPTARGET;
921 const DWORD MK_ALT = 0x20;
922 const DWORD DROPEFFECT_NONE = 0;
923 const DWORD DROPEFFECT_COPY = 1;
924 const DWORD DROPEFFECT_MOVE = 2;
925 const DWORD DROPEFFECT_LINK = 4;
926 const DWORD DROPEFFECT_SCROLL = 0x80000000;
927 const DWORD DD_DEFSCROLLINSET = 11;
928 const DWORD DD_DEFSCROLLDELAY = 50;
929 const DWORD DD_DEFSCROLLINTERVAL = 50;
930 const DWORD DD_DEFDRAGDELAY = 200;
931 const DWORD DD_DEFDRAGMINDIST = 2;
933 HRESULT DragEnter(
934 [in, unique] IDataObject *pDataObj,
935 [in] DWORD grfKeyState,
936 [in] POINTL pt,
937 [in, out] DWORD *pdwEffect);
939 HRESULT DragOver(
940 [in] DWORD grfKeyState,
941 [in] POINTL pt,
942 [in, out] DWORD *pdwEffect);
944 HRESULT DragLeave();
946 HRESULT Drop(
947 [in, unique] IDataObject *pDataObj,
948 [in] DWORD grfKeyState,
949 [in] POINTL pt,
950 [in, out] DWORD *pdwEffect);