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