1 /** 2 * Windows API header module 3 * 4 * Part of the Internet Development SDK 5 * 6 * Translated from MinGW Windows headers 7 * 8 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 9 * Source: $(DRUNTIMESRC src/core/sys/windows/_ocidl.d) 10 */ 11 module core.sys.windows.ocidl; 12 version (Windows): 13 @system: 14 15 import core.sys.windows.ole2, core.sys.windows.oleidl, core.sys.windows.oaidl, core.sys.windows.objfwd, 16 core.sys.windows.windef, core.sys.windows.wtypes; 17 import core.sys.windows.objidl; // for CLIPFORMAT 18 import core.sys.windows.wingdi; // for TEXTMETRICW 19 import core.sys.windows.winuser; // for LPMSG 20 21 interface IBindHost : IUnknown {} 22 23 interface IServiceProvider : IUnknown{ 24 HRESULT QueryService(REFGUID,REFIID,void**); 25 } 26 27 /* 28 // TODO: 29 //import core.sys.windows.servprov; // for IServiceProvider 30 // import core.sys.windows.urlmon; // for IBindHost. This is not included in MinGW. 31 32 // core.sys.windows.urlmon should contain: 33 interface IBindHost : IUnknown 34 { 35 HRESULT CreateMoniker(LPOLESTR szName, IBindCtx pBC, IMoniker* ppmk, DWORD); 36 HRESULT MonikerBindToObject(IMoniker pMk, IBindCtx pBC, IBindStatusCallback pBSC, REFIID, void** ); 37 HRESULT MonikerBindToStorage(IMoniker pMk, IBindCtx pBC, IBindStatusCallback pBSC, REFIID, void** ); 38 } 39 */ 40 41 42 43 44 //[Yes] #ifndef OLE2ANSI 45 alias TEXTMETRICW TEXTMETRICOLE; 46 //} else { 47 //alias TEXTMETRIC TEXTMETRICOLE; 48 //} 49 alias TEXTMETRICOLE* LPTEXTMETRICOLE; 50 51 alias DWORD OLE_COLOR; 52 alias UINT OLE_HANDLE; 53 alias int OLE_XPOS_HIMETRIC; 54 alias int OLE_YPOS_HIMETRIC; 55 alias int OLE_XSIZE_HIMETRIC; 56 alias int OLE_YSIZE_HIMETRIC; 57 58 enum READYSTATE { 59 READYSTATE_UNINITIALIZED = 0, 60 READYSTATE_LOADING = 1, 61 READYSTATE_LOADED = 2, 62 READYSTATE_INTERACTIVE = 3, 63 READYSTATE_COMPLETE = 4 64 } 65 66 enum PROPBAG2_TYPE { 67 PROPBAG2_TYPE_UNDEFINED, 68 PROPBAG2_TYPE_DATA, 69 PROPBAG2_TYPE_URL, 70 PROPBAG2_TYPE_OBJECT, 71 PROPBAG2_TYPE_STREAM, 72 PROPBAG2_TYPE_STORAGE, 73 PROPBAG2_TYPE_MONIKER // = 6 74 } 75 76 struct PROPBAG2 { 77 DWORD dwType; 78 VARTYPE vt; 79 CLIPFORMAT cfType; 80 DWORD dwHint; 81 LPOLESTR pstrName; 82 CLSID clsid; 83 } 84 85 enum QACONTAINERFLAGS { 86 QACONTAINER_SHOWHATCHING = 1, 87 QACONTAINER_SHOWGRABHANDLES = 2, 88 QACONTAINER_USERMODE = 4, 89 QACONTAINER_DISPLAYASDEFAULT = 8, 90 QACONTAINER_UIDEAD = 16, 91 QACONTAINER_AUTOCLIP = 32, 92 QACONTAINER_MESSAGEREFLECT = 64, 93 QACONTAINER_SUPPORTSMNEMONICS = 128 94 } 95 96 struct QACONTAINER { 97 ULONG cbSize = this.sizeof; 98 IOleClientSite pClientSite; 99 IAdviseSinkEx pAdviseSink; 100 IPropertyNotifySink pPropertyNotifySink; 101 IUnknown pUnkEventSink; 102 DWORD dwAmbientFlags; 103 OLE_COLOR colorFore; 104 OLE_COLOR colorBack; 105 IFont pFont; 106 IOleUndoManager pUndoMgr; 107 DWORD dwAppearance; 108 LONG lcid; 109 HPALETTE hpal; 110 IBindHost pBindHost; 111 IOleControlSite pOleControlSite; 112 IServiceProvider pServiceProvider; 113 } 114 115 struct QACONTROL { 116 ULONG cbSize = this.sizeof; 117 DWORD dwMiscStatus; 118 DWORD dwViewStatus; 119 DWORD dwEventCookie; 120 DWORD dwPropNotifyCookie; 121 DWORD dwPointerActivationPolicy; 122 } 123 124 struct POINTF { 125 float x; 126 float y; 127 } 128 alias POINTF* LPPOINTF; 129 130 struct CONTROLINFO { 131 ULONG cb; 132 HACCEL hAccel; 133 USHORT cAccel; 134 DWORD dwFlags; 135 } 136 alias CONTROLINFO* LPCONTROLINFO; 137 138 struct CONNECTDATA { 139 LPUNKNOWN pUnk; 140 DWORD dwCookie; 141 } 142 alias CONNECTDATA* LPCONNECTDATA; 143 144 struct LICINFO { 145 int cbLicInfo; 146 BOOL fRuntimeKeyAvail; 147 BOOL fLicVerified; 148 } 149 alias LICINFO* LPLICINFO; 150 151 struct CAUUID { 152 ULONG cElems; 153 GUID* pElems; 154 } 155 alias CAUUID* LPCAUUID; 156 157 struct CALPOLESTR { 158 ULONG cElems; 159 LPOLESTR* pElems; 160 } 161 alias CALPOLESTR* LPCALPOLESTR; 162 163 struct CADWORD { 164 ULONG cElems; 165 DWORD* pElems; 166 } 167 alias CADWORD* LPCADWORD; 168 169 struct PROPPAGEINFO { 170 ULONG cb; 171 LPOLESTR pszTitle; 172 SIZE size; 173 LPOLESTR pszDocString; 174 LPOLESTR pszHelpFile; 175 DWORD dwHelpContext; 176 } 177 alias PROPPAGEINFO* LPPROPPAGEINFO; 178 179 interface IOleControl : IUnknown { 180 HRESULT GetControlInfo(LPCONTROLINFO); 181 HRESULT OnMnemonic(LPMSG); 182 HRESULT OnAmbientPropertyChange(DISPID); 183 HRESULT FreezeEvents(BOOL); 184 } 185 186 interface IOleControlSite : IUnknown { 187 HRESULT OnControlInfoChanged(); 188 HRESULT LockInPlaceActive(BOOL); 189 HRESULT GetExtendedControl(LPDISPATCH*); 190 HRESULT TransformCoords(POINTL*, POINTF*, DWORD); 191 HRESULT TranslateAccelerator(LPMSG, DWORD); 192 HRESULT OnFocus(BOOL); 193 HRESULT ShowPropertyFrame(); 194 } 195 196 interface ISimpleFrameSite : IUnknown { 197 HRESULT PreMessageFilter(HWND, UINT, WPARAM, LPARAM, LRESULT*, PDWORD); 198 HRESULT PostMessageFilter(HWND, UINT, WPARAM, LPARAM, LRESULT*, DWORD); 199 } 200 201 interface IErrorLog : IUnknown { 202 HRESULT AddError(LPCOLESTR, LPEXCEPINFO); 203 } 204 alias IErrorLog LPERRORLOG; 205 206 interface IPropertyBag : IUnknown { 207 HRESULT Read(LPCOLESTR, LPVARIANT, LPERRORLOG); 208 HRESULT Write(LPCOLESTR, LPVARIANT); 209 } 210 alias IPropertyBag LPPROPERTYBAG; 211 212 interface IPropertyBag2 : IUnknown { 213 HRESULT Read(ULONG, PROPBAG2*, LPERRORLOG, VARIANT*, HRESULT*); 214 HRESULT Write(ULONG, PROPBAG2*, VARIANT*); 215 HRESULT CountProperties(ULONG*); 216 HRESULT GetPropertyInfo(ULONG, ULONG, PROPBAG2*, ULONG*); 217 HRESULT LoadObject(LPCOLESTR, DWORD, IUnknown, LPERRORLOG); 218 } 219 alias IPropertyBag2 LPPROPERTYBAG2; 220 221 interface IPersistPropertyBag : IPersist { 222 HRESULT InitNew(); 223 HRESULT Load(LPPROPERTYBAG, LPERRORLOG); 224 HRESULT Save(LPPROPERTYBAG, BOOL, BOOL); 225 } 226 227 interface IPersistPropertyBag2 : IPersist { 228 HRESULT InitNew(); 229 HRESULT Load(LPPROPERTYBAG2, LPERRORLOG); 230 HRESULT Save(LPPROPERTYBAG2, BOOL, BOOL); 231 HRESULT IsDirty(); 232 } 233 234 interface IPersistStreamInit : IPersist { 235 HRESULT IsDirty(); 236 HRESULT Load(LPSTREAM); 237 HRESULT Save(LPSTREAM, BOOL); 238 HRESULT GetSizeMax(PULARGE_INTEGER); 239 HRESULT InitNew(); 240 } 241 242 interface IPersistMemory : IPersist { 243 HRESULT IsDirty(); 244 HRESULT Load(PVOID, ULONG); 245 HRESULT Save(PVOID, BOOL, ULONG); 246 HRESULT GetSizeMax(PULONG); 247 HRESULT InitNew(); 248 } 249 250 interface IPropertyNotifySink : IUnknown { 251 HRESULT OnChanged(DISPID); 252 HRESULT OnRequestEdit(DISPID); 253 } 254 255 interface IProvideClassInfo : IUnknown { 256 HRESULT GetClassInfo(LPTYPEINFO*); 257 } 258 259 interface IProvideClassInfo2 : IProvideClassInfo { 260 HRESULT GetGUID(DWORD, GUID*); 261 } 262 263 interface IConnectionPointContainer : IUnknown { 264 HRESULT EnumConnectionPoints(LPENUMCONNECTIONPOINTS*); 265 HRESULT FindConnectionPoint(REFIID, LPCONNECTIONPOINT*); 266 } 267 268 interface IEnumConnectionPoints : IUnknown { 269 HRESULT Next(ULONG, LPCONNECTIONPOINT*, ULONG*); 270 HRESULT Skip(ULONG); 271 HRESULT Reset(); 272 HRESULT Clone(LPENUMCONNECTIONPOINTS*); 273 } 274 alias IEnumConnectionPoints LPENUMCONNECTIONPOINTS; 275 276 interface IConnectionPoint : IUnknown { 277 HRESULT GetConnectionInterface(IID*); 278 HRESULT GetConnectionPointContainer(IConnectionPointContainer*); 279 HRESULT Advise(LPUNKNOWN, PDWORD); 280 HRESULT Unadvise(DWORD); 281 HRESULT EnumConnections(LPENUMCONNECTIONS*); 282 } 283 alias IConnectionPoint LPCONNECTIONPOINT; 284 285 interface IEnumConnections : IUnknown { 286 HRESULT Next(ULONG, LPCONNECTDATA, PULONG); 287 HRESULT Skip(ULONG); 288 HRESULT Reset(); 289 HRESULT Clone(LPENUMCONNECTIONS*); 290 } 291 alias IEnumConnections LPENUMCONNECTIONS; 292 293 interface IClassFactory2 : IClassFactory { 294 HRESULT GetLicInfo(LPLICINFO); 295 HRESULT RequestLicKey(DWORD, BSTR*); 296 HRESULT CreateInstanceLic(LPUNKNOWN, LPUNKNOWN, REFIID, BSTR, PVOID*); 297 } 298 299 interface ISpecifyPropertyPages : IUnknown { 300 HRESULT GetPages(CAUUID*); 301 } 302 303 interface IPerPropertyBrowsing : IUnknown { 304 HRESULT GetDisplayString(DISPID, BSTR*); 305 HRESULT MapPropertyToPage(DISPID, LPCLSID); 306 HRESULT GetPredefinedStrings(DISPID, CALPOLESTR*, CADWORD*); 307 HRESULT GetPredefinedValue(DISPID, DWORD, VARIANT*); 308 } 309 310 interface IPropertyPageSite : IUnknown { 311 HRESULT OnStatusChange(DWORD); 312 HRESULT GetLocaleID(LCID*); 313 HRESULT GetPageContainer(LPUNKNOWN*); 314 HRESULT TranslateAccelerator(LPMSG); 315 } 316 alias IPropertyPageSite LPPROPERTYPAGESITE; 317 318 interface IPropertyPage : IUnknown { 319 HRESULT SetPageSite(LPPROPERTYPAGESITE); 320 HRESULT Activate(HWND, LPCRECT, BOOL); 321 HRESULT Deactivate(); 322 HRESULT GetPageInfo(LPPROPPAGEINFO); 323 HRESULT SetObjects(ULONG, LPUNKNOWN*); 324 HRESULT Show(UINT); 325 HRESULT Move(LPCRECT); 326 HRESULT IsPageDirty(); 327 HRESULT Apply(); 328 HRESULT Help(LPCOLESTR); 329 HRESULT TranslateAccelerator(LPMSG); 330 } 331 332 333 interface IPropertyPage2 : IPropertyPage 334 { HRESULT EditProperty(DISPID); 335 } 336 337 interface IFont : IUnknown { 338 HRESULT get_Name(BSTR*); 339 HRESULT put_Name(BSTR); 340 HRESULT get_Size(CY*); 341 HRESULT put_Size(CY); 342 HRESULT get_Bold(BOOL*); 343 HRESULT put_Bold(BOOL); 344 HRESULT get_Italic(BOOL*); 345 HRESULT put_Italic(BOOL); 346 HRESULT get_Underline(BOOL*); 347 HRESULT put_Underline(BOOL); 348 HRESULT get_Strikethrough(BOOL*); 349 HRESULT put_Strikethrough(BOOL); 350 HRESULT get_Weight(short*); 351 HRESULT put_Weight(short); 352 HRESULT get_Charset(short*); 353 HRESULT put_Charset(short); 354 HRESULT get_hFont(HFONT*); 355 HRESULT Clone(IFont*); 356 HRESULT IsEqual(IFont); 357 HRESULT SetRatio(int, int); 358 HRESULT QueryTextMetrics(LPTEXTMETRICOLE); 359 HRESULT AddRefHfont(HFONT); 360 HRESULT ReleaseHfont(HFONT); 361 HRESULT SetHdc(HDC); 362 } 363 alias IFont LPFONT; 364 365 interface IFontDisp : IDispatch { 366 } 367 alias IFontDisp LPFONTDISP; 368 369 interface IPicture : IUnknown { 370 HRESULT get_Handle(OLE_HANDLE*); 371 HRESULT get_hPal(OLE_HANDLE*); 372 HRESULT get_Type(short*); 373 HRESULT get_Width(OLE_XSIZE_HIMETRIC*); 374 HRESULT get_Height(OLE_YSIZE_HIMETRIC*); 375 HRESULT Render(HDC, int, int, int, int, OLE_XPOS_HIMETRIC, 376 OLE_YPOS_HIMETRIC, OLE_XSIZE_HIMETRIC, OLE_YSIZE_HIMETRIC, LPCRECT); 377 HRESULT set_hPal(OLE_HANDLE); 378 HRESULT get_CurDC(HDC*); 379 HRESULT SelectPicture(HDC, HDC*, OLE_HANDLE*); 380 HRESULT get_KeepOriginalFormat(BOOL*); 381 HRESULT put_KeepOriginalFormat(BOOL); 382 HRESULT PictureChanged(); 383 HRESULT SaveAsFile(LPSTREAM, BOOL, LONG*); 384 HRESULT get_Attributes(PDWORD); 385 } 386 387 interface IPictureDisp : IDispatch { 388 } 389 390 interface IOleInPlaceSiteEx : IOleInPlaceSite { 391 HRESULT OnInPlaceActivateEx(BOOL*, DWORD); 392 HRESULT OnInPlaceDeactivateEx(BOOL); 393 HRESULT RequestUIActivate(); 394 } 395 396 interface IObjectWithSite : IUnknown { 397 HRESULT SetSite(IUnknown); 398 HRESULT GetSite(REFIID, void**); 399 } 400 401 interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx { 402 HRESULT CanWindowlessActivate(); 403 HRESULT GetCapture(); 404 HRESULT SetCapture(BOOL); 405 HRESULT GetFocus(); 406 HRESULT SetFocus(BOOL); 407 HRESULT GetDC(LPCRECT, DWORD, HDC*); 408 HRESULT ReleaseDC(HDC); 409 HRESULT InvalidateRect(LPCRECT, BOOL); 410 HRESULT InvalidateRgn(HRGN, BOOL); 411 HRESULT ScrollRect(INT, INT, LPCRECT, LPCRECT); 412 HRESULT AdjustRect(LPCRECT); 413 HRESULT OnDefWindowMessage(UINT, WPARAM, LPARAM, LRESULT*); 414 } 415 416 interface IAdviseSinkEx : IUnknown { 417 void OnDataChange(FORMATETC*, STGMEDIUM*); 418 void OnViewChange(DWORD, LONG); 419 void OnRename(IMoniker); 420 void OnSave(); 421 void OnClose(); 422 HRESULT OnViewStatusChange(DWORD); 423 } 424 425 interface IPointerInactive : IUnknown { 426 HRESULT GetActivationPolicy(DWORD*); 427 HRESULT OnInactiveMouseMove(LPCRECT, LONG, LONG, DWORD); 428 HRESULT OnInactiveSetCursor(LPCRECT, LONG, LONG, DWORD, BOOL); 429 } 430 431 interface IOleUndoUnit : IUnknown { 432 HRESULT Do(LPOLEUNDOMANAGER); 433 HRESULT GetDescription(BSTR*); 434 HRESULT GetUnitType(CLSID*, LONG*); 435 HRESULT OnNextAdd(); 436 } 437 438 interface IOleParentUndoUnit : IOleUndoUnit { 439 HRESULT Open(IOleParentUndoUnit); 440 HRESULT Close(IOleParentUndoUnit, BOOL); 441 HRESULT Add(IOleUndoUnit); 442 HRESULT FindUnit(IOleUndoUnit); 443 HRESULT GetParentState(DWORD*); 444 } 445 446 interface IEnumOleUndoUnits : IUnknown { 447 HRESULT Next(ULONG, IOleUndoUnit*, ULONG*); 448 HRESULT Skip(ULONG); 449 HRESULT Reset(); 450 HRESULT Clone(IEnumOleUndoUnits*); 451 } 452 453 interface IOleUndoManager : IUnknown { 454 HRESULT Open(IOleParentUndoUnit); 455 HRESULT Close(IOleParentUndoUnit, BOOL); 456 HRESULT Add(IOleUndoUnit); 457 HRESULT GetOpenParentState(DWORD*); 458 HRESULT DiscardFrom(IOleUndoUnit); 459 HRESULT UndoTo(IOleUndoUnit); 460 HRESULT RedoTo(IOleUndoUnit); 461 HRESULT EnumUndoable(IEnumOleUndoUnits*); 462 HRESULT EnumRedoable(IEnumOleUndoUnits*); 463 HRESULT GetLastUndoDescription(BSTR*); 464 HRESULT GetLastRedoDescription(BSTR*); 465 HRESULT Enable(BOOL); 466 } 467 alias IOleUndoManager LPOLEUNDOMANAGER; 468 469 interface IQuickActivate : IUnknown { 470 HRESULT QuickActivate(QACONTAINER*, QACONTROL*); 471 HRESULT SetContentExtent(LPSIZEL); 472 HRESULT GetContentExtent(LPSIZEL); 473 } 474