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