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/_olectl.d) 8 */ 9 module nulib.system.win32.olectl; 10 import nulib.system.win32.ocidl; 11 import nulib.system.win32.olectlid; 12 import nulib.system.win32.basetyps; 13 import nulib.system.win32.oaidl; 14 import nulib.system.win32.oleauto; 15 import nulib.system.win32.windef; 16 import nulib.system.win32.wingdi; 17 import nulib.system.win32.winuser; 18 import nulib.system.win32.wtypes; 19 import nulib.system.win32.ntdef; // for NTSTATUS 20 import nulib.system.win32.winerror; // for SCODE 21 import nulib.system.win32.objidl; 22 import nulib.system.com; 23 24 // In conversion from MinGW, the following was deleted: 25 //#define FONTSIZE(n) {n##0000, 0} 26 27 28 29 30 private { 31 // These replace C macros. 32 template ITF_ERROR_SCODE_FOR_D(int c) 33 { 34 enum SCODE ITF_ERROR_SCODE_FOR_D 35 = (SEVERITY_ERROR << 31) | (FACILITY_ITF << 16) | c; 36 } 37 38 template ITF_SUCCESS_SCODE_FOR_D(int c) 39 { 40 enum SCODE ITF_SUCCESS_SCODE_FOR_D 41 = (SEVERITY_SUCCESS << 31) | (FACILITY_ITF << 16) | c; 42 } 43 44 template STD_CTL_SCODE(int c) 45 { 46 enum SCODE STD_CTL_SCODE 47 = (SEVERITY_ERROR << 31) | (FACILITY_CONTROL << 16) | c; 48 } 49 } 50 51 enum : SCODE { 52 CTL_E_ILLEGALFUNCTIONCALL = STD_CTL_SCODE!(5), 53 CTL_E_OVERFLOW = STD_CTL_SCODE!(6), 54 CTL_E_OUTOFMEMORY = STD_CTL_SCODE!(7), 55 CTL_E_DIVISIONBYZERO = STD_CTL_SCODE!(11), 56 CTL_E_OUTOFSTRINGSPACE = STD_CTL_SCODE!(14), 57 CTL_E_OUTOFSTACKSPACE = STD_CTL_SCODE!(28), 58 CTL_E_BADFILENAMEORNUMBER = STD_CTL_SCODE!(52), 59 CTL_E_FILENOTFOUND = STD_CTL_SCODE!(53), 60 CTL_E_BADFILEMODE = STD_CTL_SCODE!(54), 61 CTL_E_FILEALREADYOPEN = STD_CTL_SCODE!(55), 62 CTL_E_DEVICEIOERROR = STD_CTL_SCODE!(57), 63 CTL_E_FILEALREADYEXISTS = STD_CTL_SCODE!(58), 64 CTL_E_BADRECORDLENGTH = STD_CTL_SCODE!(59), 65 CTL_E_DISKFULL = STD_CTL_SCODE!(61), 66 CTL_E_BADRECORDNUMBER = STD_CTL_SCODE!(63), 67 CTL_E_BADFILENAME = STD_CTL_SCODE!(64), 68 CTL_E_TOOMANYFILES = STD_CTL_SCODE!(67), 69 CTL_E_DEVICEUNAVAILABLE = STD_CTL_SCODE!(68), 70 CTL_E_PERMISSIONDENIED = STD_CTL_SCODE!(70), 71 CTL_E_DISKNOTREADY = STD_CTL_SCODE!(71), 72 CTL_E_PATHFILEACCESSERROR = STD_CTL_SCODE!(75), 73 CTL_E_PATHNOTFOUND = STD_CTL_SCODE!(76), 74 CTL_E_INVALIDPATTERNSTRING = STD_CTL_SCODE!(93), 75 CTL_E_INVALIDUSEOFNULL = STD_CTL_SCODE!(94), 76 CTL_E_INVALIDFILEFORMAT = STD_CTL_SCODE!(321), 77 CTL_E_INVALIDPROPERTYVALUE = STD_CTL_SCODE!(380), 78 CTL_E_INVALIDPROPERTYARRAYINDEX = STD_CTL_SCODE!(381), 79 CTL_E_SETNOTSUPPORTEDATRUNTIME = STD_CTL_SCODE!(382), 80 CTL_E_SETNOTSUPPORTED = STD_CTL_SCODE!(383), 81 CTL_E_NEEDPROPERTYARRAYINDEX = STD_CTL_SCODE!(385), 82 CTL_E_SETNOTPERMITTED = STD_CTL_SCODE!(387), 83 CTL_E_GETNOTSUPPORTEDATRUNTIME = STD_CTL_SCODE!(393), 84 CTL_E_GETNOTSUPPORTED = STD_CTL_SCODE!(394), 85 CTL_E_PROPERTYNOTFOUND = STD_CTL_SCODE!(422), 86 CTL_E_INVALIDCLIPBOARDFORMAT = STD_CTL_SCODE!(460), 87 CTL_E_INVALIDPICTURE = STD_CTL_SCODE!(481), 88 CTL_E_PRINTERERROR = STD_CTL_SCODE!(482), 89 CTL_E_CANTSAVEFILETOTEMP = STD_CTL_SCODE!(735), 90 CTL_E_SEARCHTEXTNOTFOUND = STD_CTL_SCODE!(744), 91 CTL_E_REPLACEMENTSTOOLONG = STD_CTL_SCODE!(746), 92 CTL_E_CUSTOM_FIRST = STD_CTL_SCODE!(600) 93 } 94 95 enum SCODE CLASS_E_NOTLICENSED = CLASSFACTORY_E_FIRST+2; 96 97 enum : SCODE { 98 CONNECT_E_FIRST = ITF_ERROR_SCODE_FOR_D!(0x200), 99 CONNECT_E_LAST = ITF_ERROR_SCODE_FOR_D!(0x20F), 100 CONNECT_S_FIRST = ITF_SUCCESS_SCODE_FOR_D!(0x200), 101 CONNECT_S_LAST = ITF_SUCCESS_SCODE_FOR_D!(0x20F), 102 CONNECT_E_NOCONNECTION = CONNECT_E_FIRST + 0, 103 CONNECT_E_ADVISELIMIT = CONNECT_E_FIRST + 1, 104 CONNECT_E_CANNOTCONNECT = CONNECT_E_FIRST + 2, 105 CONNECT_E_OVERRIDDEN = CONNECT_E_FIRST + 3, 106 107 SELFREG_E_FIRST = ITF_ERROR_SCODE_FOR_D!(0x200), 108 SELFREG_E_LAST = ITF_ERROR_SCODE_FOR_D!(0x20F), 109 SELFREG_S_FIRST = ITF_SUCCESS_SCODE_FOR_D!(0x200), 110 SELFREG_S_LAST = ITF_SUCCESS_SCODE_FOR_D!(0x20F), 111 SELFREG_E_TYPELIB = SELFREG_E_FIRST + 0, 112 SELFREG_E_CLASS = SELFREG_E_FIRST + 1, 113 114 PERPROP_E_FIRST = ITF_ERROR_SCODE_FOR_D!(0x200), 115 PERPROP_E_LAST = ITF_ERROR_SCODE_FOR_D!(0x20F), 116 PERPROP_S_FIRST = ITF_SUCCESS_SCODE_FOR_D!(0x200), 117 PERPROP_S_LAST = ITF_SUCCESS_SCODE_FOR_D!(0x20F), 118 PERPROP_E_NOPAGEAVAILABLE = PERPROP_E_FIRST 119 } 120 121 enum { 122 OLEMISC_RECOMPOSEONRESIZE = 0x1, 123 OLEMISC_ONLYICONIC = 0x2, 124 OLEMISC_INSERTNOTREPLACE = 0x4, 125 OLEMISC_STATIC = 0x8, 126 OLEMISC_CANTLINKINSIDE = 0x10, 127 OLEMISC_CANLINKBYOLE1 = 0x20, 128 OLEMISC_ISLINKOBJECT = 0x40, 129 OLEMISC_INSIDEOUT = 0x80, 130 OLEMISC_ACTIVATEWHENVISIBLE = 0x100, 131 OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x200, 132 OLEMISC_INVISIBLEATRUNTIME = 0x400, 133 OLEMISC_ALWAYSRUN = 0x800, 134 OLEMISC_ACTSLIKEBUTTON = 0x1000, 135 OLEMISC_ACTSLIKELABEL = 0x2000, 136 OLEMISC_NOUIACTIVATE = 0x4000, 137 OLEMISC_ALIGNABLE = 0x8000, 138 OLEMISC_SIMPLEFRAME = 0x10000, 139 OLEMISC_SETCLIENTSITEFIRST = 0x20000, 140 OLEMISC_IMEMODE = 0x40000, 141 OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x80000, 142 OLEMISC_WANTSTOMENUMERGE = 0x100000, 143 OLEMISC_SUPPORTSMULTILEVELUNDO = 0x200000 144 } 145 enum OLEIVERB_PROPERTIES = -7; 146 147 enum VT_STREAMED_PROPSET = 73; 148 enum VT_STORED_PROPSET = 74; 149 enum VT_BLOB_PROPSET = 75; 150 enum VT_VERBOSE_ENUM = 76; 151 enum VT_COLOR = VARENUM.VT_I4; 152 enum VT_XPOS_PIXELS = VARENUM.VT_I4; 153 enum VT_YPOS_PIXELS = VARENUM.VT_I4; 154 enum VT_XSIZE_PIXELS = VARENUM.VT_I4; 155 enum VT_YSIZE_PIXELS = VARENUM.VT_I4; 156 enum VT_XPOS_HIMETRIC = VARENUM.VT_I4; 157 enum VT_YPOS_HIMETRIC = VARENUM.VT_I4; 158 enum VT_XSIZE_HIMETRIC = VARENUM.VT_I4; 159 enum VT_YSIZE_HIMETRIC = VARENUM.VT_I4; 160 enum VT_TRISTATE = VARENUM.VT_I2; 161 enum VT_OPTEXCLUSIVE = VARENUM.VT_BOOL; 162 enum VT_FONT = VARENUM.VT_DISPATCH; 163 enum VT_PICTURE = VARENUM.VT_DISPATCH; 164 enum VT_HANDLE = VARENUM.VT_I4; 165 166 enum { 167 OCM__BASE = WM_USER + 0x1c00, 168 OCM_COMMAND = OCM__BASE + WM_COMMAND, 169 OCM_CTLCOLORBTN = OCM__BASE + WM_CTLCOLORBTN, 170 OCM_CTLCOLOREDIT = OCM__BASE + WM_CTLCOLOREDIT, 171 OCM_CTLCOLORDLG = OCM__BASE + WM_CTLCOLORDLG, 172 OCM_CTLCOLORLISTBOX = OCM__BASE + WM_CTLCOLORLISTBOX, 173 OCM_CTLCOLORMSGBOX = OCM__BASE + WM_CTLCOLORMSGBOX, 174 OCM_CTLCOLORSCROLLBAR = OCM__BASE + WM_CTLCOLORSCROLLBAR, 175 OCM_CTLCOLORSTATIC = OCM__BASE + WM_CTLCOLORSTATIC, 176 OCM_DRAWITEM = OCM__BASE + WM_DRAWITEM, 177 OCM_MEASUREITEM = OCM__BASE + WM_MEASUREITEM, 178 OCM_DELETEITEM = OCM__BASE + WM_DELETEITEM, 179 OCM_VKEYTOITEM = OCM__BASE + WM_VKEYTOITEM, 180 OCM_CHARTOITEM = OCM__BASE + WM_CHARTOITEM, 181 OCM_COMPAREITEM = OCM__BASE + WM_COMPAREITEM, 182 OCM_HSCROLL = OCM__BASE + WM_HSCROLL, 183 OCM_VSCROLL = OCM__BASE + WM_VSCROLL, 184 OCM_PARENTNOTIFY = OCM__BASE + WM_PARENTNOTIFY, 185 OCM_NOTIFY = OCM__BASE + WM_NOTIFY 186 } 187 188 enum { 189 CTRLINFO_EATS_RETURN = 1, 190 CTRLINFO_EATS_ESCAPE 191 } 192 193 enum { 194 XFORMCOORDS_POSITION = 1, 195 XFORMCOORDS_SIZE = 2, 196 XFORMCOORDS_HIMETRICTOCONTAINER = 4, 197 XFORMCOORDS_CONTAINERTOHIMETRIC = 8 198 } 199 200 enum GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1; 201 202 enum { 203 PROPPAGESTATUS_DIRTY = 1, 204 PROPPAGESTATUS_VALIDATE = 2 205 } 206 207 enum { 208 PICTURE_SCALABLE = 1, 209 PICTURE_TRANSPARENT = 2 210 } 211 212 enum { 213 PICTYPE_UNINITIALIZED = -1, 214 PICTYPE_NONE, // = 0 215 PICTYPE_BITMAP, 216 PICTYPE_METAFILE, 217 PICTYPE_ICON, 218 PICTYPE_ENHMETAFILE // = 4 219 } 220 221 enum { 222 DISPID_AUTOSIZE = -500, 223 DISPID_BACKCOLOR = -501, 224 DISPID_BACKSTYLE = -502, 225 DISPID_BORDERCOLOR = -503, 226 DISPID_BORDERSTYLE = -504, 227 DISPID_BORDERWIDTH = -505, 228 DISPID_DRAWMODE = -507, 229 DISPID_DRAWSTYLE = -508, 230 DISPID_DRAWWIDTH = -509, 231 DISPID_FILLCOLOR = -510, 232 DISPID_FILLSTYLE = -511, 233 DISPID_FONT = -512, 234 DISPID_FORECOLOR = -513, 235 DISPID_ENABLED = -514, 236 DISPID_HWND = -515, 237 DISPID_TABSTOP = -516, 238 DISPID_TEXT = -517, 239 DISPID_CAPTION = -518, 240 DISPID_BORDERVISIBLE = -519, 241 DISPID_APPEARANCE = -520, 242 DISPID_MOUSEPOINTER = -521, 243 DISPID_MOUSEICON = -522, 244 DISPID_PICTURE = -523, 245 DISPID_VALID = -524, 246 DISPID_REFRESH = -550, 247 DISPID_DOCLICK = -551, 248 DISPID_ABOUTBOX = -552, 249 DISPID_CLICK = -600, 250 DISPID_DBLCLICK = -601, 251 DISPID_KEYDOWN = -602, 252 DISPID_KEYPRESS = -603, 253 DISPID_KEYUP = -604, 254 DISPID_MOUSEDOWN = -605, 255 DISPID_MOUSEMOVE = -606, 256 DISPID_MOUSEUP = -607, 257 DISPID_ERROREVENT = -608, 258 DISPID_AMBIENT_BACKCOLOR = -701, 259 DISPID_AMBIENT_DISPLAYNAME = -702, 260 DISPID_AMBIENT_FONT = -703, 261 DISPID_AMBIENT_FORECOLOR = -704, 262 DISPID_AMBIENT_LOCALEID = -705, 263 DISPID_AMBIENT_MESSAGEREFLECT = -706, 264 DISPID_AMBIENT_SCALEUNITS = -707, 265 DISPID_AMBIENT_TEXTALIGN = -708, 266 DISPID_AMBIENT_USERMODE = -709, 267 DISPID_AMBIENT_UIDEAD = -710, 268 DISPID_AMBIENT_SHOWGRABHANDLES = -711, 269 DISPID_AMBIENT_SHOWHATCHING = -712, 270 DISPID_AMBIENT_DISPLAYASDEFAULT = -713, 271 DISPID_AMBIENT_SUPPORTSMNEMONICS = -714, 272 DISPID_AMBIENT_AUTOCLIP = -715, 273 DISPID_AMBIENT_APPEARANCE = -716, 274 DISPID_AMBIENT_CODEPAGE = -725, 275 DISPID_AMBIENT_PALETTE = -726, 276 DISPID_AMBIENT_CHARSET = -727, 277 DISPID_AMBIENT_RIGHTTOLEFT = -732, 278 DISPID_AMBIENT_TOPTOBOTTOM = -733 279 } 280 281 enum { 282 DISPID_FONT_NAME = 0, 283 DISPID_FONT_SIZE = 2, 284 DISPID_FONT_BOLD, 285 DISPID_FONT_ITALIC, 286 DISPID_FONT_UNDER, 287 DISPID_FONT_STRIKE, 288 DISPID_FONT_WEIGHT, 289 DISPID_FONT_CHARSET // = 8 290 } 291 292 enum { 293 DISPID_PICT_HANDLE = 0, 294 DISPID_PICT_HPAL = 2, 295 DISPID_PICT_TYPE, 296 DISPID_PICT_WIDTH, 297 DISPID_PICT_HEIGHT, 298 DISPID_PICT_RENDER // = 6 299 } 300 301 alias LPOLECONTROL = IOleControl; 302 alias LPOLECONTROLSITE = IOleControlSite; 303 alias LPSIMPLEFRAMESITE = ISimpleFrameSite; 304 alias LPPERSISTPROPERTYBAG = IPersistPropertyBag; 305 alias LPPERSISTSTREAMINIT = IPersistStreamInit; 306 alias LPPERSISTMEMORY = IPersistMemory; 307 alias LPPROPERTYNOTIFYSINK = IPropertyNotifySink; 308 alias LPPROVIDECLASSINFO = IProvideClassInfo; 309 alias LPPROVIDECLASSINFO2 = IProvideClassInfo2; 310 alias LPCONNECTIONPOINTCONTAINER = IConnectionPointContainer; 311 alias LPCLASSFACTORY2 = IClassFactory2; 312 alias LPSPECIFYPROPERTYPAGES = ISpecifyPropertyPages; 313 alias LPPERPROPERTYBROWSING = IPerPropertyBrowsing; 314 alias LPPROPERTYPAGE = IPropertyPage; 315 alias LPPROPERTYPAGE2 = IPropertyPage2; 316 317 alias LPPICTURE = IPicture; 318 alias LPPICTUREDISP = IPictureDisp; 319 alias OLE_XPOS_PIXELS = int; 320 alias OLE_YPOS_PIXELS = int; 321 alias OLE_XSIZE_PIXELS = int; 322 alias OLE_YSIZE_PIXELS = int; 323 alias OLE_XPOS_CONTAINER = float; 324 alias OLE_YPOS_CONTAINER = float; 325 alias OLE_XSIZE_CONTAINER = float; 326 327 alias OLE_OPTEXCLUSIVE = VARIANT_BOOL; 328 alias OLE_CANCELBOOL = VARIANT_BOOL; 329 alias OLE_ENABLEDEFAULTBOOL = VARIANT_BOOL; 330 331 align(8): 332 333 enum OLE_TRISTATE { 334 triUnchecked, 335 triChecked1, 336 triGray 337 } 338 339 struct OCPFIPARAMS { 340 ULONG cbStructSize; 341 HWND hWndOwner; 342 int x; 343 int y; 344 LPCOLESTR lpszCaption; 345 ULONG cObjects; 346 LPUNKNOWN *lplpUnk; 347 ULONG cPages; 348 CLSID *lpPages; 349 LCID lcid; 350 DISPID dispidInitialProperty; 351 } 352 alias LPOCPFIPARAMS = OCPFIPARAMS*; 353 354 struct FONTDESC { 355 UINT cbSizeofstruct; 356 LPOLESTR lpstrName; 357 CY cySize; 358 SHORT sWeight; 359 SHORT sCharset; 360 BOOL fItalic; 361 BOOL fUnderline; 362 BOOL fStrikethrough; 363 } 364 alias LPFONTDESC = FONTDESC*; 365 366 struct PICTDESC 367 { 368 UINT cbSizeofstruct; 369 UINT picType; 370 union { 371 struct _bmp { 372 HBITMAP hbitmap; 373 HPALETTE hpal; 374 } 375 _bmp bmp; 376 struct _wmf { 377 HMETAFILE hmeta; 378 int xExt; 379 int yExt; 380 } 381 _wmf wmf; 382 struct _icon { 383 HICON hicon; 384 } 385 _icon icon; 386 struct _emf { 387 HENHMETAFILE hemf; 388 } 389 _emf emf; 390 } 391 } 392 alias LPPICTDESC = PICTDESC*; 393 394 extern(Windows) { 395 HRESULT DllRegisterServer(); 396 HRESULT DllUnregisterServer(); 397 HRESULT OleCreateFontIndirect(LPFONTDESC, REFIID, PVOID*); 398 HRESULT OleCreatePictureIndirect(LPPICTDESC, REFIID, BOOL, PVOID*); 399 HRESULT OleCreatePropertyFrame(HWND, UINT, UINT, LPCOLESTR, ULONG, LPUNKNOWN*, ULONG, LPCLSID, LCID, DWORD, PVOID); 400 HRESULT OleCreatePropertyFrameIndirect(LPOCPFIPARAMS); 401 HCURSOR OleIconToCursor(HINSTANCE, HICON); 402 HRESULT OleLoadPicture(LPSTREAM, LONG, BOOL, REFIID, PVOID*); 403 HRESULT OleLoadPictureEx(LPSTREAM, LONG, BOOL, REFIID, DWORD, DWORD, DWORD, LPVOID*); 404 HRESULT OleLoadPicturePath(LPOLESTR, LPUNKNOWN, DWORD, OLE_COLOR, REFIID, LPVOID*); 405 HRESULT OleLoadPictureFile(VARIANT, LPDISPATCH*); 406 HRESULT OleLoadPictureFileEx(VARIANT, DWORD, DWORD, DWORD, LPDISPATCH*); 407 HRESULT OleSavePictureFile(LPDISPATCH, BSTR); 408 HRESULT OleTranslateColor(OLE_COLOR, HPALETTE, COLORREF*); 409 }