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