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