1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7  * Source: $(DRUNTIMESRC core/sys/windows/_oleidl.d)
8  */
9 /// Automatically imported and edited from the druntime module
10 /// core.sys.windows.oleidl for the auto-generated win32 package.
11 module win32.oleidl;
12 //version (Windows):
13 @system:
14 
15 // DAC: This is defined in ocidl !!
16 // what is it doing in here?
17 //alias IEnumOleUndoUnits LPENUMOLEUNDOUNITS;
18 
19 import win32.basetyps, win32.objidl, win32.unknwn, win32.windef,
20   win32.winuser, win32.wtypes;
21 import win32.objfwd; // for LPMONIKER
22 import win32.wingdi; // for LPLOGPALETTE
23 
24 enum MK_ALT = 32;
25 
26 enum BINDSPEED {
27     BINDSPEED_INDEFINITE = 1,
28     BINDSPEED_MODERATE,
29     BINDSPEED_IMMEDIATE
30 }
31 
32 enum OLEWHICHMK {
33     OLEWHICHMK_CONTAINER = 1,
34     OLEWHICHMK_OBJREL,
35     OLEWHICHMK_OBJFULL
36 }
37 
38 enum OLEGETMONIKER {
39     OLEGETMONIKER_ONLYIFTHERE = 1,
40     OLEGETMONIKER_FORCEASSIGN,
41     OLEGETMONIKER_UNASSIGN,
42     OLEGETMONIKER_TEMPFORUSER
43 }
44 
45 enum USERCLASSTYPE {
46     USERCLASSTYPE_FULL = 1,
47     USERCLASSTYPE_SHORT,
48     USERCLASSTYPE_APPNAME
49 }
50 
51 enum DROPEFFECT {
52     DROPEFFECT_NONE   = 0,
53     DROPEFFECT_COPY   = 1,
54     DROPEFFECT_MOVE   = 2,
55     DROPEFFECT_LINK   = 4,
56     DROPEFFECT_SCROLL = 0x80000000
57 }
58 
59 struct OLEMENUGROUPWIDTHS {
60     LONG[6] width;
61 }
62 alias OLEMENUGROUPWIDTHS* LPOLEMENUGROUPWIDTHS;
63 
64 alias HGLOBAL HOLEMENU;
65 
66 enum OLECLOSE {
67     OLECLOSE_SAVEIFDIRTY,
68     OLECLOSE_NOSAVE,
69     OLECLOSE_PROMPTSAVE
70 }
71 
72 struct OLEVERB {
73     LONG lVerb;
74     LPWSTR lpszVerbName;
75     DWORD fuFlags;
76     DWORD grfAttribs;
77 }
78 alias OLEVERB* LPOLEVERB;
79 
80 alias RECT BORDERWIDTHS;
81 alias LPRECT LPBORDERWIDTHS;
82 alias LPCRECT LPCBORDERWIDTHS;
83 
84 struct OLEINPLACEFRAMEINFO {
85     UINT cb;
86     BOOL fMDIApp;
87     HWND hwndFrame;
88     HACCEL haccel;
89     UINT cAccelEntries;
90 }
91 alias OLEINPLACEFRAMEINFO* LPOLEINPLACEFRAMEINFO;
92 
93 interface IEnumOLEVERB : IUnknown
94 {
95       HRESULT Next(ULONG,OLEVERB*,ULONG*);
96       HRESULT Skip(ULONG);
97       HRESULT Reset();
98       HRESULT Clone(IEnumOLEVERB*);
99 }
100 //alias IEnumOLEVERB IEnumOleVerb;
101 alias IEnumOLEVERB LPENUMOLEVERB;
102 
103 
104 interface IParseDisplayName : IUnknown {
105     HRESULT ParseDisplayName(IBindCtx,LPOLESTR,ULONG*,IMoniker*);
106 }
107 alias IParseDisplayName LPPARSEDISPLAYNAME;
108 
109 interface IOleContainer : IParseDisplayName {
110     HRESULT EnumObjects(DWORD,IEnumUnknown*);
111     HRESULT LockContainer(BOOL);
112 }
113 alias IOleContainer LPOLECONTAINER;
114 
115 interface IOleItemContainer : IOleContainer {
116     HRESULT GetObject(LPOLESTR,DWORD,IBindCtx,REFIID,void**);
117     HRESULT GetObjectStorage(LPOLESTR,IBindCtx,REFIID,void**);
118     HRESULT IsRunning(LPOLESTR);
119 }
120 
121 
122 interface IOleClientSite : IUnknown {
123     HRESULT SaveObject();
124     HRESULT GetMoniker(DWORD,DWORD,LPMONIKER*);
125     HRESULT GetContainer(LPOLECONTAINER*);
126     HRESULT ShowObject();
127     HRESULT OnShowWindow(BOOL);
128     HRESULT RequestNewObjectLayout();
129 }
130 alias IOleClientSite LPOLECLIENTSITE;
131 
132 interface IOleObject : IUnknown {
133     HRESULT SetClientSite(LPOLECLIENTSITE);
134     HRESULT GetClientSite(LPOLECLIENTSITE*);
135     HRESULT SetHostNames(LPCOLESTR,LPCOLESTR);
136     HRESULT Close(DWORD);
137     HRESULT SetMoniker(DWORD,LPMONIKER);
138     HRESULT GetMoniker(DWORD,DWORD,LPMONIKER*);
139     HRESULT InitFromData(LPDATAOBJECT,BOOL,DWORD);
140     HRESULT GetClipboardData(DWORD,LPDATAOBJECT*);
141     HRESULT DoVerb(LONG,LPMSG,LPOLECLIENTSITE,LONG,HWND,LPCRECT);
142     HRESULT EnumVerbs(LPENUMOLEVERB*);
143     HRESULT Update();
144     HRESULT IsUpToDate();
145     HRESULT GetUserClassID(LPCLSID);
146     HRESULT GetUserType(DWORD,LPOLESTR*);
147     HRESULT SetExtent(DWORD,SIZEL*);
148     HRESULT GetExtent(DWORD,SIZEL*);
149     HRESULT Advise(LPADVISESINK,PDWORD);
150     HRESULT Unadvise(DWORD);
151     HRESULT EnumAdvise(LPENUMSTATDATA*);
152     HRESULT GetMiscStatus(DWORD,PDWORD);
153     HRESULT SetColorScheme(LPLOGPALETTE);
154 }
155 alias IOleObject LPOLEOBJECT;
156 
157 interface IOleWindow : IUnknown {
158     HRESULT GetWindow(HWND*);
159     HRESULT ContextSensitiveHelp(BOOL);
160 }
161 alias IOleWindow LPOLEWINDOW;
162 
163 interface IOleInPlaceUIWindow : IOleWindow {
164     HRESULT GetBorder(LPRECT);
165     HRESULT RequestBorderSpace(LPCBORDERWIDTHS);
166     HRESULT SetBorderSpace(LPCBORDERWIDTHS);
167     HRESULT SetActiveObject(LPOLEINPLACEACTIVEOBJECT,LPCOLESTR);
168 }
169 alias IOleInPlaceUIWindow LPOLEINPLACEUIWINDOW;
170 
171 interface IOleInPlaceObject : IOleWindow {
172     HRESULT InPlaceDeactivate();
173     HRESULT UIDeactivate();
174     HRESULT SetObjectRects(LPCRECT,LPCRECT);
175     HRESULT ReactivateAndUndo();
176 }
177 
178 
179 interface IOleInPlaceActiveObject : IOleWindow {
180     HRESULT TranslateAccelerator(LPMSG);
181     HRESULT OnFrameWindowActivate(BOOL);
182     HRESULT OnDocWindowActivate(BOOL);
183     HRESULT ResizeBorder(LPCRECT,LPOLEINPLACEUIWINDOW,BOOL);
184     HRESULT EnableModeless(BOOL);
185 }
186 alias IOleInPlaceActiveObject LPOLEINPLACEACTIVEOBJECT;
187 
188 interface IOleInPlaceFrame : IOleInPlaceUIWindow {
189     HRESULT InsertMenus(HMENU,LPOLEMENUGROUPWIDTHS);
190     HRESULT SetMenu(HMENU,HOLEMENU,HWND);
191     HRESULT RemoveMenus(HMENU);
192     HRESULT SetStatusText(LPCOLESTR);
193     HRESULT EnableModeless(BOOL);
194     HRESULT TranslateAccelerator(LPMSG,WORD);
195 }
196 alias IOleInPlaceFrame LPOLEINPLACEFRAME;
197 
198 interface IOleInPlaceSite  : IOleWindow {
199     HRESULT CanInPlaceActivate();
200     HRESULT OnInPlaceActivate();
201     HRESULT OnUIActivate();
202     HRESULT GetWindowContext(IOleInPlaceFrame,IOleInPlaceUIWindow,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO);
203     HRESULT Scroll(SIZE);
204     HRESULT OnUIDeactivate(BOOL);
205     HRESULT OnInPlaceDeactivate();
206     HRESULT DiscardUndoState();
207     HRESULT DeactivateAndUndo();
208     HRESULT OnPosRectChange(LPCRECT);
209 }
210 
211 interface IOleAdviseHolder : IUnknown {
212     HRESULT Advise(LPADVISESINK,PDWORD);
213     HRESULT Unadvise(DWORD);
214     HRESULT EnumAdvise(LPENUMSTATDATA*);
215     HRESULT SendOnRename(LPMONIKER);
216     HRESULT SendOnSave();
217     HRESULT SendOnClose();
218 }
219 alias IOleAdviseHolder LPOLEADVISEHOLDER;
220 
221 interface IDropSource : IUnknown {
222     HRESULT QueryContinueDrag(BOOL,DWORD);
223     HRESULT GiveFeedback(DWORD);
224 }
225 alias IDropSource LPDROPSOURCE;
226 
227 interface IDropTarget : IUnknown {
228     HRESULT DragEnter(LPDATAOBJECT,DWORD,POINTL,PDWORD);
229     HRESULT DragOver(DWORD,POINTL,PDWORD);
230     HRESULT DragLeave();
231     HRESULT Drop(LPDATAOBJECT,DWORD,POINTL,PDWORD);
232 }
233 alias IDropTarget LPDROPTARGET;
234 
235 extern (Windows) {
236     alias BOOL function(ULONG_PTR) __IView_pfncont;
237 }
238 
239 interface IViewObject : IUnknown {
240     HRESULT Draw(DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,ULONG_PTR);
241     HRESULT GetColorSet(DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*);
242     HRESULT Freeze(DWORD,LONG,PVOID,PDWORD);
243     HRESULT Unfreeze(DWORD);
244     HRESULT SetAdvise(DWORD,DWORD,IAdviseSink);
245     HRESULT GetAdvise(PDWORD,PDWORD,IAdviseSink*);
246 }
247 alias IViewObject LPVIEWOBJECT;
248 
249 interface IViewObject2 : IViewObject {
250     HRESULT GetExtent(DWORD,LONG,DVTARGETDEVICE*,LPSIZEL);
251 }
252 alias IViewObject2 LPVIEWOBJECT2;
253 
254 interface IOleCache : IUnknown {
255     HRESULT Cache(FORMATETC*,DWORD,DWORD*);
256     HRESULT Uncache(DWORD);
257     HRESULT EnumCache(IEnumSTATDATA*);
258     HRESULT InitCache(LPDATAOBJECT);
259     HRESULT SetData(FORMATETC*,STGMEDIUM*,BOOL);
260 }
261 alias IOleCache LPOLECACHE;
262 
263 interface IOleCache2 : IOleCache {
264     HRESULT UpdateCache(LPDATAOBJECT,DWORD,LPVOID);
265     HRESULT DiscardCache(DWORD);
266 }
267 alias IOleCache2 LPOLECACHE2;
268 
269 interface IOleCacheControl : IUnknown {
270     HRESULT OnRun(LPDATAOBJECT);
271     HRESULT OnStop();
272 }
273 alias IOleCacheControl LPOLECACHECONTROL;