Added wine_get_argv0_path() to retrieve the path of the wine binary.
[wine/wine64.git] / include / oleidl.idl
blobdf6eb9ca711f476532b05ca23f67464c45bc9024
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 [local]
112 HRESULT TranslateAccelerator(
113 [in] LPMSG lpmsg);
115 [call_as(TranslateAccelerator)]
116 HRESULT RemoteTranslateAccelerator();
118 HRESULT OnFrameWindowActivate(
119 [in] BOOL fActivate);
121 HRESULT OnDocWindowActivate(
122 [in] BOOL fActivate);
124 [local]
125 HRESULT ResizeBorder(
126 [in] LPCRECT prcBorder,
127 [in, unique] IOleInPlaceUIWindow *pUIWindow,
128 [in] BOOL fFrameWindow);
130 [call_as(ResizeBorder)]
131 HRESULT RemoteResizeBorder(
132 [in] LPCRECT prcBorder,
133 [in] REFIID riid,
134 [in, unique, iid_is(riid)] IOleInPlaceUIWindow *pUIWindow,
135 [in] BOOL fFrameWindow);
137 HRESULT EnableModeless(
138 [in] BOOL fEnable);
142 /*****************************************************************************
143 * IOleInPlaceUIWindow interface
146 object,
147 uuid(00000115-0000-0000-c000-000000000046),
148 pointer_default(unique)
151 interface IOleInPlaceUIWindow : IOleWindow
153 typedef [unique] IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW;
155 typedef RECT BORDERWIDTHS;
156 typedef LPRECT LPBORDERWIDTHS;
157 typedef LPCRECT LPCBORDERWIDTHS;
159 HRESULT GetBorder(
160 [out] LPRECT lprectBorder);
162 HRESULT RequestBorderSpace(
163 [in, unique] LPCBORDERWIDTHS pborderwidths);
165 HRESULT SetBorderSpace(
166 [in, unique] LPCBORDERWIDTHS pborderwidths);
168 HRESULT SetActiveObject(
169 [in, unique] IOleInPlaceActiveObject *pActiveObject,
170 [in, string, unique] LPCOLESTR pszObjName);
174 /*****************************************************************************
175 * IOleInPlaceFrame interface
178 object,
179 uuid(00000116-0000-0000-c000-000000000046),
180 pointer_default(unique)
182 interface IOleInPlaceFrame : IOleInPlaceUIWindow
184 typedef [unique] IOleInPlaceFrame *LPOLEINPLACEFRAME;
186 typedef struct tagOleInPlaceFrameInfo
188 UINT cb;
189 BOOL fMDIApp;
190 HWND hwndFrame;
191 HACCEL haccel;
192 UINT cAccelEntries;
193 } OLEINPLACEFRAMEINFO, *LPOLEINPLACEFRAMEINFO;
195 typedef struct tagOleMenuGroupWidths
197 LONG width[ 6 ];
198 } OLEMENUGROUPWIDTHS, *LPOLEMENUGROUPWIDTHS;
200 typedef HGLOBAL HOLEMENU;
202 HRESULT InsertMenus(
203 [in] HMENU hmenuShared,
204 [in,out] LPOLEMENUGROUPWIDTHS lpMenuWidths);
206 HRESULT SetMenu(
207 [in] HMENU hmenuShared,
208 [in] HOLEMENU holemenu,
209 [in] HWND hwndActiveObject);
211 HRESULT RemoveMenus(
212 [in] HMENU hmenuShared);
214 HRESULT SetStatusText(
215 [in, unique] LPCOLESTR pszStatusText);
217 HRESULT EnableModeless(
218 [in] BOOL fEnable);
220 HRESULT TranslateAccelerator(
221 [in] LPMSG lpmsg,
222 [in] WORD wID);
226 /*****************************************************************************
227 * IOleInPlaceSite interface
230 object,
231 uuid(00000119-0000-0000-c000-000000000046),
232 pointer_default(unique)
234 interface IOleInPlaceSite : IOleWindow
236 typedef [unique] IOleInPlaceSite *LPOLEINPLACESITE;
238 HRESULT CanInPlaceActivate();
239 HRESULT OnInPlaceActivate();
240 HRESULT OnUIActivate();
242 HRESULT GetWindowContext(
243 [out] IOleInPlaceFrame **ppFrame,
244 [out] IOleInPlaceUIWindow **ppDoc,
245 [out] LPRECT lprcPosRect,
246 [out] LPRECT lprcClipRect,
247 [in, out] LPOLEINPLACEFRAMEINFO lpFrameInfo);
249 HRESULT Scroll(
250 [in] SIZE scrollExtant);
252 HRESULT OnUIDeactivate(
253 [in] BOOL fUndoable);
255 HRESULT OnInPlaceDeactivate();
256 HRESULT DiscardUndoState();
257 HRESULT DeactivateAndUndo();
259 HRESULT OnPosRectChange(
260 [in] LPCRECT lprcPosRect);
264 /*****************************************************************************
265 * IParseDisplayName interface
268 object,
269 uuid(0000011a-0000-0000-c000-000000000046),
270 pointer_default(unique)
272 interface IParseDisplayName : IUnknown
274 typedef [unique] IParseDisplayName *LPPARSEDISPLAYNAME;
276 HRESULT ParseDisplayName(
277 [in, unique] IBindCtx *pbc,
278 [in] LPOLESTR pszDisplayName,
279 [out] ULONG *pchEaten,
280 [out] IMoniker **ppmkOut);
284 /*****************************************************************************
285 * IOleContainer interface
288 object,
289 uuid(0000011b-0000-0000-c000-000000000046),
290 pointer_default(unique)
292 interface IOleContainer : IParseDisplayName
294 typedef [unique] IOleContainer *LPOLECONTAINER;
296 HRESULT EnumObjects(
297 [in] DWORD grfFlags,
298 [out] IEnumUnknown **ppenum);
300 HRESULT LockContainer(
301 [in] BOOL fLock);
305 /*****************************************************************************
306 * IOleItemContainer interface
309 object,
310 uuid(0000011c-0000-0000-c000-000000000046),
311 pointer_default(unique)
313 interface IOleItemContainer : IOleContainer
315 typedef [unique] IOleItemContainer *LPOLEITEMCONTAINER;
317 typedef enum tagBINDSPEED
319 BINDSPEED_INDEFINITE = 1,
320 BINDSPEED_MODERATE = 2,
321 BINDSPEED_IMMEDIATE = 3
322 } BINDSPEED;
324 typedef enum tagOLECONTF
326 OLECONTF_EMBEDDINGS = 1,
327 OLECONTF_LINKS = 2,
328 OLECONTF_OTHERS = 4,
329 OLECONTF_OLNYUSER = 8,
330 OLECONTF_ONLYIFRUNNING = 16
331 } OLECONTF;
333 cpp_quote("#ifdef __WINESRC__")
334 cpp_quote("#undef GetObject")
335 cpp_quote("#endif")
336 HRESULT GetObject(
337 [in] LPOLESTR pszItem,
338 [in] DWORD dwSpeedNeeded,
339 [in, unique] IBindCtx *pbc,
340 [in] REFIID riid,
341 [out, iid_is(riid)] void **ppvObject);
343 HRESULT GetObjectStorage(
344 [in] LPOLESTR pszItem,
345 [in, unique] IBindCtx *pbc,
346 [in] REFIID riid,
347 [out, iid_is(riid)] void **ppvStorage);
349 HRESULT IsRunning(
350 [in] LPOLESTR pszItem);
354 /*****************************************************************************
355 * IOleLink interface
358 object,
359 uuid(0000011d-0000-0000-c000-000000000046)
361 interface IOleLink : IUnknown
363 typedef [unique] IOleLink *LPOLELINK;
365 typedef enum tagOLEUPDATE
367 OLEUPDATE_ALWAYS = 1,
368 OLEUPDATE_ONCALL = 3
369 } OLEUPDATE, *POLEUPDATE, *LPOLEUPDATE;
371 typedef enum tagOLELINKBIND
373 OLELINKBIND_EVENIFCLASSDIFF = 1
374 } OLELINKBIND;
376 HRESULT SetUpdateOptions(
377 [in] DWORD dwUpdateOpt);
379 HRESULT GetUpdateOptions(
380 [out] DWORD *pdwUpdateOpt);
382 HRESULT SetSourceMoniker(
383 [in, unique] IMoniker *pmk,
384 [in] REFCLSID rclsid);
386 HRESULT GetSourceMoniker(
387 [out] IMoniker **ppmk);
389 HRESULT SetSourceDisplayName(
390 [in]LPCOLESTR pszStatusText);
392 HRESULT GetSourceDisplayName(
393 [out] LPOLESTR *ppszDisplayName);
395 HRESULT BindToSource(
396 [in] DWORD bindflags,
397 [in, unique] IBindCtx *pbc);
399 HRESULT BindIfRunning();
401 HRESULT GetBoundSource(
402 [out] IUnknown **ppunk);
404 HRESULT UnbindSource();
406 HRESULT Update(
407 [in, unique] IBindCtx *pbc);
411 /*****************************************************************************
412 * IOleClientSite interface
415 object,
416 uuid(00000118-0000-0000-c000-000000000046),
417 pointer_default(unique)
419 interface IOleClientSite : IUnknown
421 typedef [unique] IOleClientSite * LPOLECLIENTSITE;
423 HRESULT SaveObject();
425 HRESULT GetMoniker(
426 [in] DWORD dwAssign,
427 [in] DWORD dwWhichMoniker,
428 [out] IMoniker **ppmk);
430 HRESULT GetContainer(
431 [out] IOleContainer **ppContainer);
433 HRESULT ShowObject();
435 HRESULT OnShowWindow(
436 [in] BOOL fShow);
438 HRESULT RequestNewObjectLayout();
442 /*****************************************************************************
443 * IOleCache interface
446 object,
447 uuid(0000011e-0000-0000-c000-000000000046),
448 pointer_default(unique)
450 interface IOleCache : IUnknown
452 typedef [unique] IOleCache *LPOLECACHE;
454 HRESULT Cache(
455 [in, unique] FORMATETC *pformatetc,
456 [in] DWORD advf,
457 [out] DWORD *pdwConnection);
459 HRESULT Uncache(
460 [in] DWORD dwConnection);
462 HRESULT EnumCache(
463 [out] IEnumSTATDATA **ppenumSTATDATA);
465 HRESULT InitCache(
466 [in, unique] IDataObject *pDataObject);
468 HRESULT SetData(
469 [in, unique] FORMATETC *pformatetc,
470 [in, unique] STGMEDIUM *pmedium,
471 [in] BOOL fRelease);
475 /*****************************************************************************
476 * IOleCache2 interface
479 object,
480 uuid(00000128-0000-0000-c000-000000000046),
481 pointer_default(unique)
483 interface IOleCache2 : IOleCache
485 typedef [unique] IOleCache2 *LPOLECACHE2;
487 const DWORD UPDFCACHE_NODATACACHE = 0x00000001;
488 const DWORD UPDFCACHE_ONSAVECACHE = 0x00000002;
489 const DWORD UPDFCACHE_ONSTOPCACHE = 0x00000004;
490 const DWORD UPDFCACHE_NORMALCACHE = 0x00000008;
491 const DWORD UPDFCACHE_IFBLANK = 0x00000010;
492 const DWORD UPDFCACHE_ONLYIFBLANK = 0x80000000;
494 const DWORD UPDFCACHE_IFBLANKORONSAVECACHE = (UPDFCACHE_IFBLANK | UPDFCACHE_ONSAVECACHE);
495 const DWORD UPDFCACHE_ALL = ((DWORD)(~(UPDFCACHE_ONLYIFBLANK)));
496 const DWORD UPDFCACHE_ALLBUTNODATACACHE = (UPDFCACHE_ALL & ((DWORD)(~UPDFCACHE_NODATACACHE)));
498 typedef enum tagDISCARDCACHE
500 DISCARDCACHE_SAVEIFDIRTY = 0,
501 DISCARDCACHE_NOSAVE = 1
502 } DISCARDCACHE;
504 [local]
505 HRESULT UpdateCache(
506 [in] LPDATAOBJECT pDataObject,
507 [in] DWORD grfUpdf,
508 [in] LPVOID pReserved);
510 [call_as(UpdateCache)]
511 HRESULT RemoteUpdateCache(
512 [in] LPDATAOBJECT pDataObject,
513 [in] DWORD grfUpdf,
514 [in] LONG_PTR pReserved);
516 HRESULT DiscardCache(
517 [in] DWORD dwDiscardOptions);
521 /*****************************************************************************
522 * IOleCacheControl interface
525 object,
526 uuid(00000129-0000-0000-c000-000000000046)
528 interface IOleCacheControl : IUnknown
530 typedef [unique] IOleCacheControl *LPOLECACHECONTROL;
532 HRESULT OnRun(
533 LPDATAOBJECT pDataObject);
535 HRESULT OnStop();
539 /*****************************************************************************
540 * IEnumOLEVERB interface
543 object,
544 uuid(00000104-0000-0000-c000-000000000046),
545 pointer_default(unique)
547 interface IEnumOLEVERB : IUnknown
549 typedef [unique] IEnumOLEVERB *LPENUMOLEVERB;
551 typedef struct tagOLEVERB
553 LONG lVerb;
554 LPOLESTR lpszVerbName;
555 DWORD fuFlags;
556 DWORD grfAttribs;
557 } OLEVERB, *LPOLEVERB;
559 typedef enum tagOLEVERBATTRIB
561 OLEVERBATTRIB_NEVERDIRTIES = 1,
562 OLEVERBATTRIB_ONCONTAINERMENU = 2
563 } OLEVERBATTRIB;
565 [local]
566 HRESULT Next(
567 [in] ULONG celt,
568 [out, size_is(celt), length_is(*pceltFetched)] LPOLEVERB rgelt,
569 [out] ULONG *pceltFetched);
571 [call_as(Next)]
572 HRESULT RemoteNext(
573 [in] ULONG celt,
574 [out, size_is(celt), length_is(*pceltFetched)] LPOLEVERB rgelt,
575 [out] ULONG *pceltFetched);
577 HRESULT Skip(
578 [in] ULONG celt);
580 HRESULT Reset();
582 HRESULT Clone(
583 [out] IEnumOLEVERB **ppenum);
587 /*****************************************************************************
588 * IOleObject interface
591 object,
592 uuid(00000112-0000-0000-c000-000000000046),
593 pointer_default(unique)
595 interface IOleObject : IUnknown
597 typedef [unique] IOleObject *LPOLEOBJECT;
599 typedef enum tagOLEGETMONIKER
601 OLEGETMONIKER_ONLYIFTHERE = 1,
602 OLEGETMONIKER_FORCEASSIGN = 2,
603 OLEGETMONIKER_UNASSIGN = 3,
604 OLEGETMONIKER_TEMPFORUSER = 4
605 } OLEGETMONIKER;
607 typedef enum tagOLEWHICHMK
609 OLEWHICHMK_CONTAINER = 1,
610 OLEWHICHMK_OBJREL = 2,
611 OLEWHICHMK_OBJFULL = 3
612 } OLEWHICHMK;
614 typedef enum tagUSERCLASSTYPE
616 USERCLASSTYPE_FULL = 1,
617 USERCLASSTYPE_SHORT = 2,
618 USERCLASSTYPE_APPNAME = 3
619 } USERCLASSTYPE;
621 typedef enum tagOLEMISC
623 OLEMISC_RECOMPOSEONRESIZE = 0x1,
624 OLEMISC_ONLYICONIC = 0x2,
625 OLEMISC_INSERTNOTREPLACE = 0x4,
626 OLEMISC_STATIC = 0x8,
627 OLEMISC_CANTLINKINSIDE = 0x10,
628 OLEMISC_CANLINKBYOLE1 = 0x20,
629 OLEMISC_ISLINKOBJECT = 0x40,
630 OLEMISC_INSIDEOUT = 0x80,
631 OLEMISC_ACTIVATEWHENVISIBLE = 0x100,
632 OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x200,
633 OLEMISC_INVISIBLEATRUNTIME = 0x400,
634 OLEMISC_ALWAYSRUN = 0x800,
635 OLEMISC_ACTSLIKEBUTTON = 0x1000,
636 OLEMISC_ACTSLIKELABEL = 0x2000,
637 OLEMISC_NOUIACTIVATE = 0x4000,
638 OLEMISC_ALIGNABLE = 0x8000,
639 OLEMISC_SIMPLEFRAME = 0x10000,
640 OLEMISC_SETCLIENTSITEFIRST = 0x20000,
641 OLEMISC_IMEMODE = 0x40000,
642 OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x80000,
643 OLEMISC_WANTSTOMENUMERGE = 0x100000,
644 OLEMISC_SUPPORTSMULTILEVELUNDO = 0x200000
645 } OLEMISC;
647 typedef enum tagOLECLOSE
649 OLECLOSE_SAVEIFDIRTY = 0,
650 OLECLOSE_NOSAVE = 1,
651 OLECLOSE_PROMPTSAVE = 2
652 } OLECLOSE;
654 HRESULT SetClientSite(
655 [in, unique] IOleClientSite *pClientSite);
657 HRESULT GetClientSite(
658 [out] IOleClientSite **ppClientSite);
660 HRESULT SetHostNames(
661 [in] LPCOLESTR szContainerApp,
662 [in, unique] LPCOLESTR szContainerObj);
664 HRESULT Close(
665 [in] DWORD dwSaveOption);
667 HRESULT SetMoniker(
668 [in] DWORD dwWhichMoniker,
669 [in, unique] IMoniker *pmk);
671 HRESULT GetMoniker(
672 [in] DWORD dwAssign,
673 [in] DWORD dwWhichMoniker,
674 [out] IMoniker **ppmk);
676 HRESULT InitFromData(
677 [in, unique] IDataObject *pDataObject,
678 [in] BOOL fCreation,
679 [in] DWORD dwReserved);
681 HRESULT GetClipboardData(
682 [in] DWORD dwReserved,
683 [out] IDataObject **ppDataObject);
685 HRESULT DoVerb(
686 [in] LONG iVerb,
687 [in, unique] LPMSG lpmsg,
688 [in, unique] IOleClientSite *pActiveSite,
689 [in] LONG lindex,
690 [in] HWND hwndParent,
691 [in, unique] LPCRECT lprcPosRect);
693 HRESULT EnumVerbs(
694 [out] IEnumOLEVERB **ppEnumOleVerb);
696 HRESULT Update();
698 HRESULT IsUpToDate();
700 HRESULT GetUserClassID(
701 [out] CLSID *pClsid);
703 HRESULT GetUserType(
704 [in] DWORD dwFormOfType,
705 [out] LPOLESTR *pszUserType);
707 HRESULT SetExtent(
708 [in] DWORD dwDrawAspect,
709 [in] SIZEL *psizel);
711 HRESULT GetExtent(
712 [in] DWORD dwDrawAspect,
713 [out] SIZEL *psizel);
715 HRESULT Advise(
716 [in, unique] IAdviseSink *pAdvSink,
717 [out] DWORD *pdwConnection);
719 HRESULT Unadvise(
720 [in] DWORD dwConnection);
722 HRESULT EnumAdvise(
723 [out] IEnumSTATDATA **ppenumAdvise);
725 HRESULT GetMiscStatus(
726 [in] DWORD dwAspect,
727 [out] DWORD *pdwStatus);
729 HRESULT SetColorScheme(
730 [in] LOGPALETTE *pLogpal);
734 /*****************************************************************************
735 * IOleAdviseHolder interface
738 local,
739 object,
740 uuid(00000111-0000-0000-c000-000000000046)
742 interface IOleAdviseHolder : IUnknown
744 typedef [unique] IOleAdviseHolder * LPOLEADVISEHOLDER;
746 HRESULT Advise(
747 [in, unique] IAdviseSink *pAdvise,
748 [out] DWORD *pdwConnection);
750 HRESULT Unadvise(
751 [in] DWORD dwConnection);
753 HRESULT EnumAdvise(
754 [out] IEnumSTATDATA **ppenumAdvise);
756 HRESULT SendOnRename(
757 [in, unique] IMoniker *pmk);
759 HRESULT SendOnSave();
760 HRESULT SendOnClose();
764 /*****************************************************************************
765 * IContinue interface
768 object,
769 uuid(0000012a-0000-0000-c000-000000000046)
771 interface IContinue : IUnknown
773 HRESULT FContinue();
777 /*****************************************************************************
778 * IViewObject interface
781 object,
782 uuid(0000010d-0000-0000-c000-000000000046)
784 interface IViewObject : IUnknown
786 typedef [unique] IViewObject *LPVIEWOBJECT;
788 [local]
789 HRESULT Draw(
790 [in] DWORD dwDrawAspect,
791 [in] LONG lindex,
792 [in, unique] void * pvAspect,
793 [in, unique] DVTARGETDEVICE *ptd,
794 [in] HDC hdcTargetDev,
795 [in] HDC hdcDraw,
796 [in] LPCRECTL lprcBounds,
797 [in, unique] LPCRECTL lprcWBounds,
798 [in] BOOL (*pfnContinue)(ULONG_PTR dwContinue),
799 [in] ULONG_PTR dwContinue);
801 [call_as(Draw)]
802 HRESULT RemoteDraw(
803 [in] DWORD dwDrawAspect,
804 [in] LONG lindex,
805 [in] ULONG_PTR pvAspect,
806 [in, unique] DVTARGETDEVICE *ptd,
807 [in] ULONG_PTR hdcTargetDev,
808 [in] ULONG_PTR hdcDraw,
809 [in] LPCRECTL lprcBounds,
810 [in, unique] LPCRECTL lprcWBounds,
811 [in] IContinue *pContinue);
813 [local]
814 HRESULT GetColorSet(
815 [in] DWORD dwDrawAspect,
816 [in] LONG lindex,
817 [in, unique] void *pvAspect,
818 [in, unique] DVTARGETDEVICE *ptd,
819 [in] HDC hicTargetDev,
820 [out] LOGPALETTE **ppColorSet);
822 [call_as(GetColorSet)]
823 HRESULT RemoteGetColorSet(
824 [in] DWORD dwDrawAspect,
825 [in] LONG lindex,
826 [in] ULONG_PTR pvAspect,
827 [in, unique] DVTARGETDEVICE *ptd,
828 [in] ULONG_PTR hicTargetDev,
829 [out] LOGPALETTE **ppColorSet);
831 [local]
832 HRESULT Freeze(
833 [in] DWORD dwDrawAspect,
834 [in] LONG lindex,
835 [in, unique] void *pvAspect,
836 [out] DWORD *pdwFreeze);
838 [call_as(Freeze)]
839 HRESULT RemoteFreeze(
840 [in] DWORD dwDrawAspect,
841 [in] LONG lindex,
842 [in] ULONG_PTR pvAspect,
843 [out] DWORD *pdwFreeze);
845 HRESULT Unfreeze(
846 [in] DWORD dwFreeze);
848 HRESULT SetAdvise(
849 [in] DWORD aspects,
850 [in] DWORD advf,
851 [in, unique] IAdviseSink *pAdvSink);
853 [local]
854 HRESULT GetAdvise(
855 [out, unique] DWORD *pAspects,
856 [out, unique] DWORD *pAdvf,
857 [out] IAdviseSink **ppAdvSink);
859 [call_as(GetAdvise)]
860 HRESULT RemoteGetAdvise(
861 [out] DWORD *pAspects,
862 [out] DWORD *pAdvf,
863 [out] IAdviseSink **ppAdvSink);
867 /*****************************************************************************
868 * IViewObject2 interface
871 object,
872 uuid(00000127-0000-0000-c000-000000000046)
874 interface IViewObject2 : IViewObject
876 typedef [unique] IViewObject2 *LPVIEWOBJECT2;
878 HRESULT GetExtent(
879 [in] DWORD dwDrawAspect,
880 [in] LONG lindex,
881 [in, unique] DVTARGETDEVICE* ptd,
882 [out] LPSIZEL lpsizel);
886 /*****************************************************************************
887 * IDropSource interface
890 local,
891 object,
892 uuid(00000121-0000-0000-c000-000000000046)
894 interface IDropSource : IUnknown
896 typedef [unique] IDropSource *LPDROPSOURCE;
898 HRESULT QueryContinueDrag(
899 [in] BOOL fEscapePressed,
900 [in] DWORD grfKeyState);
902 HRESULT GiveFeedback(
903 [in] DWORD dwEffect);
907 /*****************************************************************************
908 * IDropTarget interface
911 object,
912 uuid(00000122-0000-0000-c000-000000000046),
913 pointer_default(unique)
915 interface IDropTarget : IUnknown
917 typedef [unique] IDropTarget *LPDROPTARGET;
919 const DWORD MK_ALT = 0x20;
920 const DWORD DROPEFFECT_NONE = 0;
921 const DWORD DROPEFFECT_COPY = 1;
922 const DWORD DROPEFFECT_MOVE = 2;
923 const DWORD DROPEFFECT_LINK = 4;
924 const DWORD DROPEFFECT_SCROLL = 0x80000000;
925 const DWORD DD_DEFSCROLLINSET = 11;
926 const DWORD DD_DEFSCROLLDELAY = 50;
927 const DWORD DD_DEFSCROLLINTERVAL = 50;
928 const DWORD DD_DEFDRAGDELAY = 200;
929 const DWORD DD_DEFDRAGMINDIST = 2;
931 HRESULT DragEnter(
932 [in, unique] IDataObject *pDataObj,
933 [in] DWORD grfKeyState,
934 [in] POINTL pt,
935 [in, out] DWORD *pdwEffect);
937 HRESULT DragOver(
938 [in] DWORD grfKeyState,
939 [in] POINTL pt,
940 [in, out] DWORD *pdwEffect);
942 HRESULT DragLeave();
944 HRESULT Drop(
945 [in, unique] IDataObject *pDataObj,
946 [in] DWORD grfKeyState,
947 [in] POINTL pt,
948 [in, out] DWORD *pdwEffect);