Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • cevio_wmi
  • master
  • oldstable
  • stable
  • wine-0.0.2
  • wine-0.0.3
  • wine-0.1.0
  • wine-0.2.0
  • wine-0.3.0
  • wine-0.4.0
  • wine-0.4.10
  • wine-0.4.3
  • wine-0.4.7
  • wine-0.5
  • wine-0.6
  • wine-0.7
  • wine-0.9
  • wine-0.9.1
  • wine-0.9.10
  • wine-0.9.11
  • wine-0.9.12
  • wine-0.9.13
  • wine-0.9.14
  • wine-0.9.15
  • wine-0.9.16
  • wine-0.9.17
  • wine-0.9.18
  • wine-0.9.19
  • wine-0.9.2
  • wine-0.9.20
  • wine-0.9.21
  • wine-0.9.22
  • wine-0.9.23
  • wine-0.9.24
  • wine-0.9.25
  • wine-0.9.26
  • wine-0.9.27
  • wine-0.9.28
  • wine-0.9.29
  • wine-0.9.3
  • wine-0.9.30
  • wine-0.9.31
  • wine-0.9.32
  • wine-0.9.33
  • wine-0.9.34
  • wine-0.9.35
  • wine-0.9.36
  • wine-0.9.37
  • wine-0.9.38
  • wine-0.9.39
  • wine-0.9.4
  • wine-0.9.40
  • wine-0.9.41
  • wine-0.9.42
  • wine-0.9.43
  • wine-0.9.44
  • wine-0.9.45
  • wine-0.9.46
  • wine-0.9.47
  • wine-0.9.48
  • wine-0.9.49
  • wine-0.9.5
  • wine-0.9.50
  • wine-0.9.51
  • wine-0.9.52
  • wine-0.9.53
  • wine-0.9.54
  • wine-0.9.55
  • wine-0.9.56
  • wine-0.9.57
  • wine-0.9.58
  • wine-0.9.59
  • wine-0.9.6
  • wine-0.9.60
  • wine-0.9.61
  • wine-0.9.7
  • wine-0.9.8
  • wine-0.9.9
  • wine-1.0
  • wine-1.0-rc1
  • wine-1.0-rc2
  • wine-1.0-rc3
  • wine-1.0-rc4
  • wine-1.0-rc5
  • wine-1.0.1
  • wine-1.1.0
  • wine-1.1.1
  • wine-1.1.10
  • wine-1.1.11
  • wine-1.1.12
  • wine-1.1.13
  • wine-1.1.14
  • wine-1.1.15
  • wine-1.1.16
  • wine-1.1.17
  • wine-1.1.18
  • wine-1.1.19
  • wine-1.1.2
  • wine-1.1.20
  • wine-1.1.21
  • wine-1.1.22
  • wine-1.1.23
  • wine-1.1.24
  • wine-1.1.25
104 results

Target

Select target project
  • wine/wine
  • rbernon/wine
  • stefan/wine
  • FireBurn/wine
  • alesliehughes/wine
  • zhiyi/wine
  • huw/wine
  • jsikorski/wine
  • hmc/wine
  • dadangnh/wine
  • epo/wine
  • dlesho/wine
  • DarkShadow44/wine
  • iamahuman/wine
  • jacek/wine
  • mstorsjo/wine
  • gofman/wine
  • alexhenrie/wine
  • giomasce/wine
  • tclem/wine
  • besentv/wine
  • dlehman25/wine
  • aeikum/wine
  • cdavis5e/wine
  • sbaars/wine
  • baskanov/wine
  • pperdigao/wine
  • DavidHusicka/wine
  • DadSchoorse/wine
  • gverm/wine
  • bshanks/wine
  • gonzoMD/wine
  • Mystral/wine
  • tmatthies/wine
  • zlice/wine
  • AndreRH/wine
  • madewokherd/wine
  • zfigura/wine
  • fgouget/wine
  • nsivov/wine
  • ElementalWarrior/wine
  • piotr/wine
  • franzitrone/wine
  • DavidCurtiss/wine
  • cmcadams/wine
  • davidebeatrici/wine
  • hans/wine
  • insn/wine
  • danrm/wine
  • jklemann/wine
  • saedo/wine
  • sgwaki/wine
  • puetzk/wine
  • bernhardu/wine
  • ReDress/wine
  • jlucfarias/wine
  • sloper42/wine
  • ivyl/wine
  • zhui/wine
  • julliard/wine
  • ClearlyClaire/wine
  • Alexander-Wilms/wine
  • rndtrash/wine
  • redmcg/wine
  • jkfloris/wine
  • maljaf/wine
  • Tuupertunut/wine
  • bsjeon/wine
  • tati/wine
  • whydoubt/wine
  • doitsujin/wine
  • shaunren/wine
  • szanni/wine
  • tobi.goergens/wine-cabinet-patch
  • winspool/wine
  • olivierfrdierick/wine
  • linkmauve/wine
  • jin-king1/wine
  • yeyeshun/wine
  • sulix/wine
  • bgc/wine
  • fanwenjie/wine
  • IncubusRK/wine
  • js6pak/wine
  • AurimasF/wine
  • etaash.mathamsetty/wine
  • hverbeet/wine
  • Fox2Code/wine
  • jhol/wine
  • jrueger/wine
  • afrantzis/wine
  • lauri.kentta/wine
  • ehoover/wine
  • cdenton/wine
  • jkloetzke/wine
  • baryluk/wine
  • restet/wine-personal
  • orudge/wine
  • Gcenx/wine
  • mstefani/wine
  • hibbsncc1701/wine
  • jchw/wine
  • moceap/wine
  • Skryptonyte/wine
  • marzent/wine
  • msmeissn/wine
  • learn-more/wine
  • logos128/wine
  • xe/wine
  • florian-kuebler/wine
  • eason329/wine
  • gang65/wine
  • binarymaster/wine
  • nbosio1001/wine
  • sh.owais95/wine
  • yaoyuan.0553/wine
  • AnthonyLaurienti/wine
  • mivanchev/wine
  • Hi-Angel/wine
  • vt/wine
  • wyrquill/wine
  • waynus/wine
  • wuliande/wine
  • yao.yuan.wn/wine
  • K1K1/wine
  • lukehutch1027/wine
  • etang-cw/wine
  • Josueblanco/wine
  • jplotz/wine
  • j20001970/wine
  • jsm174/wine
  • aricstewart/wine
  • uncoveryoureyestheresnosun/wine
  • VitorRamos/wine
  • 0e4ef622/wine
  • tj4048750/wine
  • xantares/wine
  • maxfigura/wine
  • sanane/wine
  • juniorjr9345/wine
  • lucaspereira1234/wine
  • gerald/wine
  • lepemiguel32/wine
  • caibb2018/wine
  • CNB_Kevin/wine
  • thc13/wine
  • jaihysc/wine
  • youngsecurity/wine
  • chendeqiang1024/wine
  • rhendric/wine
  • databoose/wine
  • memory-thrasher/wine
  • salman.tajik22/wine
  • CowFroggers/wine
  • kbdharun/wine
  • dreamer/wine
  • babyjoey711/wine
  • ripxorip/wine
  • PSzczepanski1996/wine
  • steveshe006/wine
  • joshua/wine
  • cmccarthy/wine
  • tomjansen/wine
  • sonyps5201314/wine
  • katelynnking4281/wine
  • dhary686/wine
  • mathematician/wine
  • rhabacker/wine
  • steveschnepp/wine
  • nekotekina/wine
  • Aaron1011/wine
  • catsout/wine
  • kasper93/wine
  • beef331/wine
  • ESD/wine
  • sarosib/wine
  • ghurmcardash/wine
  • AMZN-hgoffin/wine
  • gtmikw/wine
  • Keming/wine
  • dpjh747-gl/wine
  • tzluo/wine
  • rfz/wine
  • illia.a.polishchuk/wine
  • new_kleth/wine
  • serkan-maker/wine
  • w-flo/wine
  • mikayahlevi/wine
  • nulleve/wine
  • pgruebele/wine
  • athiele/wine
  • paparaha4/wine
  • novenary/wine
  • Plavil/wine
  • longjunyu/wine
  • chrisli/wine
  • samkottler/wine
  • danielzgtg/wine
  • twcassel/wine
  • guo/wine
  • didier31/wine
  • Zhaoyi/wine
  • twhitehead/wine
  • svyatpro/wine
  • infyquest/wine-iq-devel
  • sebres/wine
  • endrift/wine
  • zhengbl/wine
  • joelikeyan/wine
  • IsaacMarovitz/wine
  • LouiseTheGoldenGoddess/wine
  • SergeGautherie/wine
  • Klittiklatsch/wine
  • ldhacker/wine
  • dk1006498/wine
  • ishitatsuyuki/wine
  • h3c/wine
  • wincenty.bandyta41/wine
  • ayhankus482/wine
  • q4a/wine
  • mjgarton/wine
  • agusev/wine
  • vovams/wine
  • shardulsb08/wine
  • lylythechosenone/wine
  • artemist/wine
  • dropbear/wine
  • Cherser-s/wine
  • smayr/wine
  • loveptong/wine
  • chendeqiang/wine
  • gaber139/wine
  • shytzedaka/wine
  • ghkmufc/wine
  • TornadoCookie/wine
  • klownwolfman/wine
  • bylaws/wine
  • vitorhnn/wine
  • mide1337/wine
  • mewinkler/wine
  • firelzrd/wine
  • Samsuper/wine
  • kkartaltepe/wine
  • petravion/wine
  • Maaka00524/jacob-wine
  • petrathekat/wine
  • dj/wine
  • liam-middlebrook/wine
  • padolkarlucky/wine
  • maarten/wine
  • yhd986/wine
  • linkmecry/wine
  • tehrantoday/wine
  • xuxin12345/wine
  • dmjc/wine
  • sedwards/wine
  • hanslehnert/wine
  • 3ts75/wine
  • EkaterinePapava/wine
  • lav/wine
  • lygstate/wine
  • mxkrsv/wine
  • xutaxkamay/wine
  • cbialorucki/wine
  • yshui/wine
  • baikaishiuc/wine
  • HuwCampbell/wine
  • llde/wine
  • rockdrilla/wine
  • aidanhs/wine
  • SwimmingTiger/wine
  • fvalasiad/wine
  • zsoltiv/wine
  • mailnew4ster/wine
  • ake.rehnman/wine
  • IDocin/wine
  • dmitry/wine
  • Cthuflu/wine
  • corngood/wine
  • whindsaks/wine
  • telans/wine
  • DmitrySokolov/wine
  • Pospelove/wine
  • ellingtonsantos/wine
  • roro/wine
  • wurenny/wine
  • KokoseiJ/wine
  • amurzeau/wine
  • spazzymoto/wine
  • searchingin/wine
  • marler8997/wine
  • Alcaro/wine
  • aunali1/wine
  • snaccslocc420/wine
  • ajkhoury/wine
  • qsniyg/wine
  • Matheus-TestUser1/wine
  • adamrehn/wine
  • brobston/wine
  • aalyaev/wine
  • thongthai/wine
  • j.bayer1988/wine
  • skitt/wine
  • benben/wine
  • ahmouse15/wine
  • achurch/wine
  • mfaqiri2/wine
  • yseo/wine
  • kingjinni/wine
  • userid0x0/wine
  • titan/wine
  • Komoszek/wine
  • GamzeeRakoon/wine
  • joanluc/wine
  • Alan/wine
  • meshine/wine
  • EBADF/wine
  • vibhavp/wine
  • quininer/wine
  • pawelulita/wine
  • muek2211/wine
  • chenhaoyang/wine
  • nishiyama/wine
  • silviuxgaming/wine
  • nell/wine
  • 29jm/wine
  • arilou/wine
  • Mini-Gaunt/wine
  • DodoGTA/wine
  • davispuh/wine
  • mzent/wine
  • arakmar/wine
  • number201724/wine
  • yhd986/wine-up
  • rpisl/wine
  • zp1/wine-zp-cs-464
  • h0tc0d3/wine
  • Snowiiii/wine
  • gabrielb/wine
  • PureBulb/wine
  • OO/wine
  • Clara/wine
  • Saancreed/wine
  • enolp/wine
  • arthunix/wine
  • halfline/wine
  • carlo-bramini/wine
  • jfmu/wine
  • russelltg/wine
  • ntay/wine
  • YellowOnion/wine
  • niversesu/wine
  • gilvbp/wine
  • tingling0072/wine
  • DandD1517/wine
  • rastos/rastos-at-wine
  • gnif/wine
  • gibsonpil/wine
  • antenabr2/wine
  • kvashis/wine
  • CKolle/wine
  • kubni/wine
  • ten0s/wine
  • Yvonne8873/wine
  • kurikaesu/wine
  • minggr/wine
  • JohnSebastienNadeau/wine
  • karshnicholas/wine
  • SamB/wine
  • apgrc/wine
  • Samiklom/wine
  • llyyr/wine
  • nberner/wine
  • katharinechui/wine
  • kirill.zhumarin/wine
  • vaxerski/wine
  • infiniteloop/wine
  • K0bin/wine
  • arethusa/wine
  • mrdeathjr28/wine
  • dank_meme/wine
  • dh/wine
  • tuomasjjrasanen/wine
  • mmcdonnell/wine
  • mxnny00/wine-manjaro-arch-compatibility
  • Joan/wine
  • g.mo.alcauter/wine
  • zhenbo_li/wine
  • tsmx/wine
  • xaqumin/wine
  • peterjc123/wine
  • ruslangaripov/wine
  • blyss/wine
  • xanathar/wine
  • michael.bond/wine
  • Quix0r/wine
  • sinisa.susnjar/wine
  • Rapid/wine
  • theli.ua/wine
  • shaun.din/wine
  • zhaohongxin/wine
  • dylan.eskew/wine
  • humbertoperezs991/wine
  • vaevi/wine
  • Riesi/wine
  • francisdb/wine
  • 1480c1/wine
  • trcrsired/wine
  • npatt/wine
  • muhammmadalli/wine9.0
  • Czahrien/wine
  • nilsen.jonas/wine
  • underdogest/wine
  • djordjem/wine
  • frubin/wine
  • LucasChollet/wine
  • lipengfei-loongson/wine
  • JacobCzekalla/wine-fork-jacob
  • omar_elantil/wine
  • lumarel/wine
  • principeagustin/wine
  • gotzl/wine
  • OneTester250376/wine
  • austin987/wine
  • unknown62627/wine
  • navi/wine
  • somedevfox/wine
  • notaz/wine
  • fcasas/wine
  • Asteroz/wine
  • MariusSchiffer/wine
  • kevinrmartinez/wine-devel
  • St1gven/wine
  • maarten256/wine
  • rcstarr87/wine
  • tinozzo123/wine
  • GermanAizek/wine
  • spencerwallace/wine
  • schloegl/wine
  • giuppococco/wine
  • shayan7878/wine
  • N080DY12/wine
  • ralf.habacker/wine
  • oh-ok/wine
  • johnporter/wine
  • Low-power/wine
  • thelande/wine
  • yurih/wine
  • kubapet/wine
  • Ivan_83/wine
  • SmithGoll/wine
  • gmesmer/wine
  • akarisu.de/wine
  • jwffrey9046/wine
  • anders/wine
  • markbhasawut/wine
  • dy-tea/wine
  • Benjamin_Loison/wine
  • frmdstryr/wine
  • zzam/wine
  • haydenhestad/wine
  • Deppy04/wine
  • osbre/wine
  • CharlottePabst/wine
  • SunlitTango/wine
  • ritalat/wine
  • AlexeyLushnikov/wine
  • mickdermack/wine
  • s1UMBa/wine
  • huangqinjin/wine
  • caseyr297/wine
  • d1saster/wine
  • ayufdh222/wine
  • janstrakowski/wine
  • petur/wine
  • matheus.venturini/wine-fix-ohm-sign
  • rayrapetyan/wine
  • xiaotong/wine
  • ovarley1/wine
  • dos1/wine
  • BZZZZ/wine
  • joesoroka/wine
  • toadking/wine
  • JoshuaBrest/wine
  • elias/wine
  • michele.dionisio/wine
  • garlett/wine-send-arp
  • eugenemcardle/wine
  • hugwijst/wine
  • whrvt/wine
  • loisgomez/wine
  • ramleejo/wine
  • self/wine
  • fr33z00/wine
  • JoeS209/wine
  • JacKeTUs/wine
  • nak.ak2015/wine
  • morgwai/wine
  • funfunctor/wine
  • donnyjoe/wine
  • sitter/wine
  • atticf/wine
  • xipster/wine
  • sebastian/wine
  • AlexanderWillner/wine
  • yaoyongjie/wine
  • wayne/wine
  • AMark/wine
  • zamaudio/wine
  • TomaszPakula/wine
  • Freakness109/wine
  • amorozov/wine
  • HP/wine
  • danlm/wine
  • rariema/wine
  • Biswa96/wine
  • rlippmann/wine
  • yangkun/wine
  • greyghoster/wine
  • toxieainc/wine
  • kgzod/wine
  • sflint/wine
  • thdaemon/wine
  • M23SNEZ3/wine
  • TobiX/wine
  • jszakmeister/wine
  • graham/wine
  • jpr/wine
  • pali/wine
529 results
Select Git revision
  • master
  • oldstable
  • stable
  • wine-0.0.2
  • wine-0.0.3
  • wine-0.1.0
  • wine-0.2.0
  • wine-0.3.0
  • wine-0.4.0
  • wine-0.4.10
  • wine-0.4.3
  • wine-0.4.7
  • wine-0.5
  • wine-0.6
  • wine-0.7
  • wine-0.9
  • wine-0.9.1
  • wine-0.9.10
  • wine-0.9.11
  • wine-0.9.12
  • wine-0.9.13
  • wine-0.9.14
  • wine-0.9.15
  • wine-0.9.16
  • wine-0.9.17
  • wine-0.9.18
  • wine-0.9.19
  • wine-0.9.2
  • wine-0.9.20
  • wine-0.9.21
  • wine-0.9.22
  • wine-0.9.23
  • wine-0.9.24
  • wine-0.9.25
  • wine-0.9.26
  • wine-0.9.27
  • wine-0.9.28
  • wine-0.9.29
  • wine-0.9.3
  • wine-0.9.30
  • wine-0.9.31
  • wine-0.9.32
  • wine-0.9.33
  • wine-0.9.34
  • wine-0.9.35
  • wine-0.9.36
  • wine-0.9.37
  • wine-0.9.38
  • wine-0.9.39
  • wine-0.9.4
  • wine-0.9.40
  • wine-0.9.41
  • wine-0.9.42
  • wine-0.9.43
  • wine-0.9.44
  • wine-0.9.45
  • wine-0.9.46
  • wine-0.9.47
  • wine-0.9.48
  • wine-0.9.49
  • wine-0.9.5
  • wine-0.9.50
  • wine-0.9.51
  • wine-0.9.52
  • wine-0.9.53
  • wine-0.9.54
  • wine-0.9.55
  • wine-0.9.56
  • wine-0.9.57
  • wine-0.9.58
  • wine-0.9.59
  • wine-0.9.6
  • wine-0.9.60
  • wine-0.9.61
  • wine-0.9.7
  • wine-0.9.8
  • wine-0.9.9
  • wine-1.0
  • wine-1.0-rc1
  • wine-1.0-rc2
  • wine-1.0-rc3
  • wine-1.0-rc4
  • wine-1.0-rc5
  • wine-1.0.1
  • wine-1.1.0
  • wine-1.1.1
  • wine-1.1.10
  • wine-1.1.11
  • wine-1.1.12
  • wine-1.1.13
  • wine-1.1.14
  • wine-1.1.15
  • wine-1.1.16
  • wine-1.1.17
  • wine-1.1.18
  • wine-1.1.19
  • wine-1.1.2
  • wine-1.1.20
  • wine-1.1.21
  • wine-1.1.22
  • wine-1.1.23
  • wine-1.1.24
  • wine-1.1.25
103 results
Show changes
Commits on Source (157)
Showing
with 530 additions and 402 deletions
The Wine team is proud to announce that the stable release Wine 8.0
is now available.
The Wine stable release 8.0.2 is now available.
This release represents a year of development effort and over 8,600
individual changes. It contains a large number of improvements that
are listed in the release notes below. The main achievement is the
completion of the conversion to PE format.
What's new in this release:
- Various bug fixes
The source is available at:
https://dl.winehq.org/wine/source/8.0/wine-8.0.tar.xz
https://dl.winehq.org/wine/source/8.0/wine-8.0.2.tar.xz
Binary packages for various distributions will be available from:
......@@ -24,336 +21,166 @@ AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
What's new in Wine 8.0
======================
Bugs fixed in 8.0.2 (total 27):
- #11436 Pepakura viewer: err:wgl:X11DRV_wglShareLists Could not share display lists, context already created !
- #35254 Freemake Video Converter 4.1 installer complains about running Freemake processes (builtin 'findstr' stub app always returns "match")
- #49964 32-bit dxdiag doesn't support '/64bit' command line switch (launch 64-bit dxdiag)
- #51178 The Bat! v9.3.4.12: Missing content in TTreeViews on Windows versions higher than 8
- #52322 wineserver memory leak during HTTPs download (Genshin Impact Launcher, Qt5)
- #53073 mfplat: unimplemented function while loading Devil May Cry 1
- #53704 Bible Black ~La Noche de Walpurgis~ won't start
- #53781 Multiple apps crash on unimplemented function CFGMGR32.dll.CM_MapCrToWin32Err (Matrix Awakens MegaCity Unreal Engine 5.1 demo, Hogwarts Legacy)
- #53794 Sins of the Solar Empire Rebellion (Gog 1.975.1) crashes on unimplemented function concrt140.dll.?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ
- #53826 Attempting to install / update battle.net fails with Qt error
- #53983 Chromium broken sandbox, needs NtQueryInformationProcess with ProcessHandleTable
- #54110 CubicSDR crashes on unimplemented function msvcp140.dll.?_Rethrow_future_exception@std@@YAXVexception_ptr@1@@Z
- #54618 VARA FM crashes on unimplemented function pdh.dll.PdhVbGetDoubleCounterValue
- #54640 Treecomp listviews and possibly other widgets are not drawn
- #54675 Chocolatey OpenSSH installer fails
- #54687 LibreVR Revive fails to run (CertGetNameStringW with dwType=CERT_NAME_ATTR_TYPE and pvTypePara missing additional fallbacks)
- #54702 ldp.exe crashes when attempting to add, delete, modify, or compare an entry without a name
- #54724 LDAP bind over SSL to a server and port that do not support SSL hangs forever
- #54728 Pro Evolution Soccer 2008 demo takes +- 9 minutes to complete extracting 'Pro Evolution Soccer 2008 DEMO.msi' (disabling 'Light' theme works around)
- #54733 Notepad3 crashes on unimplemented function SHLWAPI.dll.StrFormatByteSizeEx
- #54799 wininet:internet - test_InternetGetConnectedStateExA() fails in the Japanese and Chinese locales in Wine
- #54808 Access violation in ntdll when running Adolix Split and Merge PDF with .NET Framework installed
- #54819 DnsQuery_A() mishandles CNAME DNS records
- #54882 Conemu fails to start (cannot attach to process)
- #54939 Dotted files are shown - but "don't show dotted" files is active
- #54960 winhttp:winhttp - test_websocket() fails on Windows and Wine
- #55008 wininet:http - test_secure_connection() fails on Windows and Wine
*** PE modules
- After 4 years of work, the PE conversion is finally complete: all modules can
be built in PE format. This is an important milestone on the road to supporting
various features such as copy protection, 32-bit applications on 64-bit hosts,
Windows debuggers, x86 applications on ARM, etc.
However, some modules still perform direct calls between the PE and the Unix
part, instead of going through the NT system call interface. The remaining
direct calls will be removed during the Wine 8.x development phase.
- A special syscall dispatcher is used for PE -> Unix transitions, to avoid the
overhead of a full NT system call. This minimizes the performance impact of the
new architecture, in particular for the OpenGL and Vulkan libraries.
- Building mixed Windows/Unix libraries in ELF format (.dll.so libraries) is
still supported for use in Winelib applications. However, such applications
won't support features enabled by the NT syscall interface, such as WoW64
without 32-bit libraries.
*** WoW64
- WoW64 thunks are implemented for essentially all Unix libraries, enabling a
32-bit PE module to call a 64-bit Unix library. Once the remaining direct
PE/Unix calls have been removed, this will make it fully possible to run
32-bit Windows applications without any 32-bit Unix library.
- When the 32-bit Wine loader isn't found, 32-bit applications are started in
the new experimental "Windows-like" WoW64 mode (where 32-bit code runs inside
a 64-bit host process). This mode can be enabled by building with the
'--enable-archs' configure option. This is still under development and not yet
recommended for general use. Since in case of configuration errors it is
possible for it to be triggered inadvertently, applications started in this
mode print the warning "starting in experimental wow64 mode".
*** Graphics
- The "Light" theme is enabled in the default configuration, for a more modern
look. Other themes can still be configured through WineCfg.
- The graphics drivers (winex11.drv, winemac.drv, wineandroid.drv) are converted
to run on the Unix side of the syscall boundary, and interface with the Unix
side of the Win32u library.
- The Print Processor architecture is implemented. This will be used to avoid
direct PE<->Unix calls in the printer driver.
- Effects are supported in Direct2D, including description parsing and a number
of core objects.
- Command lists recording and playback are implemented in Direct2D.
- The Vulkan driver supports up to version 1.3.237 of the Vulkan spec.
*** Direct3D
- Many optimizations related to streaming map acceleration are implemented, in
common code as well as in the GL renderer. Depending on the application, this
may result in major performance improvements.
- Adapter video memory budget change notifications are implemented.
- The Vulkan renderer supports setting multiple viewports and scissor rectangles.
- Several Direct3D 10 and 11 features, which were already implemented, are
accurately reported through capability flags:
- Per-format support for vertex and index buffers.
- Per-format support for all capabilities via D3D11_FEATURE_FORMAT_SUPPORT.
- No-overwrite maps on shader resources and constant buffers.
- Partial range binding of constant buffers.
- For convenience, a new WINE_D3D_CONFIG environment variable may be used instead
of modifying the HKEY_CURRENT_USER\Software\Wine\Direct3D registry key. The
value is a comma- or semicolon-separated list of key-value pairs, e.g.:
WINE_D3D_CONFIG="renderer=vulkan;VideoPciVendorID=0xc0de"
If an individual setting is specified in both the environment variable and the
registry, the former takes precedence.
- The Direct3D graphics card database recognizes more graphics cards.
- The Vulkan renderer limits the maximum Direct3D feature level based on
available Vulkan features.
*** Direct3D helper libraries
- A new HLSL compiler is implemented using the vkd3d-shader library.
- A new HLSL disassembler is implemented using the vkd3d-shader library.
- The HLSL preprocessor is reimplemented using the vkd3d-shader HLSL
preprocessor.
- The D3DX 10 Thread Pump is implemented.
- Many more expressions are supported in Direct3D 10 effects.
- Cubemap projection is implemented in the D3DX 9 helper library.
*** Audio / Video
- The MPEG-1 audio decoder filter for layers 1 and 2, and the separate filter for
layer 3, are both implemented on top of GStreamer.
- The ASF reader filter is implemented.
- The OpenAL32.dll wrapper library is removed, in favor of the native
OpenAL32.dll library shipped by Windows applications.
*** Media Foundation
- Content type resolution is improved in the Media Foundation Player.
- Rate control is implemented.
- The Enhanced Video Renderer default mixer and presenter are better supported.
- The DirectShow filter is implemented in the Enhanced Video Renderer.
- An initial framework is implemented for the Writer encoding API.
- The topology loader is better supported.
*** Input devices
- Controller hotplug support is greatly improved, and controller removal and
insertion are correctly dispatched to applications.
- Driving wheel device detection and reporting is better implemented, using the
SDL library and HID usages as hints for the device types.
- Force feedback effect support is improved, specifically with driving wheel
controllers.
- The HID Haptics specification is used for left / right motor rumble and trigger
rumble. It makes it possible for device drivers to expose haptics support over
HidRaw, and overcome EvDev limitations.
- The Joystick Control Panel is redesigned, with new graphics and a dedicated
view for XInput gamepads.
- Sony DualShock and DualSense controllers are supported when the hidraw backend
is used, and exposed to applications in the same way as they are on Windows.
- The Windows.Gaming.Input module is introduced, one of the first WinRT modules
in Wine, implementing a new programming interface to access gamepads, joysticks
and driving wheel devices. For this new input API, hotplug notifications are
also implemented, as well as force feedback effects and haptics. This API is
the first one to support trigger rumble.
*** Internationalization
- A proper locale database, in Windows locale.nls format, is generated from the
Unicode CLDR database. The list of supported locales is essentially identical
to that of the latest Windows version.
- Unicode string comparison is based on the Windows Sortkey database and
algorithms instead of the Unicode Collation Algorithm, yielding more compatible
results.
- Characters from high Unicode planes (in UTF-16 encoding) are supported in most
functions, in particular for case mappings, BiDi formatting, and character
shaping.
- The UTF-8 encoding is supported as Ansi codepage. It is enabled when requested
by the application's manifest.
- Unicode character tables are based on version 15.0.0 of the Unicode Standard.
- The timezone data is generated from the IANA timezone database version 2022g.
*** Text and fonts
- Font linking is enabled for most system fonts, which should fix missing glyphs
in CJK locales.
- Font fallback in DirectWrite is reworked, with additional support for an large
number of scripts.
*** Kernel
- The ApiSetSchema database is implemented, replacing all the api-ms-* forwarding
modules. This reduces both disk space and address space usage.
- DOS file attributes are persistent, and stored on disk using the filesystem's
extended attributes, in a format compatible with Samba.
*** Internet and networking
- The Online Certificate Status Protocol (OCSP) is implemented.
- More EcmaScript features are supported in JScript standard-compliant mode.
- The JScript garbage collector is implemented.
- Accessibility support is enabled in Wine Gecko package.
- Web Storage, Performance object and more event objects are implemented in
MSHTML.
*** Mono / .NET
- The Mono engine is updated to version 7.4.0. The list of changes can be viewed
at https://github.com/madewokherd/wine-mono/releases/tag/wine-mono-7.4.0
*** Builtin applications
- All the builtin applications use Common Controls version 6, which enables
theming and high-DPI rendering by default.
- The Wine Debugger (winedbg) prints thread names in the 'info thread' listing,
for applications that set the names of their threads. All internal Wine threads
also set their own name.
- The QWORD type is supported in the REGEDIT and REG registry tools.
- Notepad has a status bar displaying the current cursor position. The Goto Line
functionality is also implemented.
- The builtin console programs print data in the OEM codepage, for better
compatibility with applications reading their output.
- The Service Control tool (sc.exe) supports the 'query' command.
*** Development tools
- The PE conversion has made it necessary to implement a new mechanism to run
static C++ constructors in Winelib ELF applications. Unfortunately, this
requires the corresponding modules to be rebuilt with Wine 8.0. The rebuilt
modules will still run correctly on older Wine versions, but older modules will
no longer execute static constructors when run on Wine 8.0.
- In regression tests, individual checks can be marked as "flaky". This is useful
for checks that depend on external factors such as network timings. The errors
are still reported but not counted as failures.
- Test failure messages can be printed in color by setting the WINETEST_COLOR
environment variable, to make them easier to spot in the test log.
- The Resource Compiler (WRC) and Message Compiler (WMC) use the locale.nls
database to detect languages and codepages, and thus support all the Windows
locales.
- The WineDump tool supports printing the contents of Enhanced Metafile spool
files, as well as more contents from PDB files.
*** Build infrastructure
- PE binaries can be built for multiple architectures from the same build tree,
using the '--enable-archs' option to configure, for example
'--enable-archs=i386,x86_64'. This can be used to enable the experimental
WoW64 mode, where 32-bit applications can run without any 32-bit host
libraries. Note that this mode is still under development and not yet
recommended for general use.
- Data types that are defined as 'long' on Windows are defined as 'long' instead
of 'int' on all platforms with a 32-bit long type. This is more compatible, but
it can cause printf format warnings with Unix compilers. In Winelib code, it
can be disabled by defining WINE_NO_LONG_TYPES.
- Import libraries can be generated without using dlltool, by passing the
'--without-dlltool' option to winebuild. This is used to avoid dlltool bugs
with delay import libraries.
- Libraries that contain only resources and no code can be built with the
'--data-only' option to winegcc, which makes them smaller and more efficient to
load.
*** Bundled libraries
- Faudio is updated to the upstream release 22.11.
- LCMS2 is updated to the upstream release 2.14.
- LibJPEG is updated to the upstream release 9e.
- LibMPG123 is updated to the upstream release 1.31.1.
- LibPng is updated to the upstream release 1.6.39.
- LibTiff is updated to the upstream release 4.4.0.
- LibXml2 is updated to the upstream release 2.10.3.
- LibXslt is updated to the upstream release 1.1.37.
- Zlib is updated to the upstream release 1.2.13.
*** Platform-specific features
- The experimental WoW64 architecture is supported on macOS versions from 10.15.
- 64-bit time_t is supported on 32-bit Linux with recent Glibc versions.
- Exception unwinding on ARM platforms is extended with EHABI support on ARM32
and Dwarf support on ARM64.
*** Miscellaneous
- RSA encryption and the RSA-PSS signing algorithm are implemented.
- An initial version of the UI Automation API is implemented.
- Function name demangling supports various C++11 features.
*** External dependencies
- The vkd3d and LDAP libraries are bundled in the source tree and built as
PE. The corresponding Unix libraries are no longer needed.
----------------------------------------------------------------
- The OpenAL library is no longer used.
Changes since 8.0.1:
Alex Henrie (12):
comctl32/treeview: Ignore the lParam to WM_PRINTCLIENT and add tests.
wldap32: Handle null DN or null message in ldap_add* and add tests.
wldap32: Handle null DN or null message in ldap_modify* and add tests.
wldap32: Handle null DN or null attr in ldap_compare* and add tests.
wldap32/tests: Use the same context in test_ldap_(add|modify_compare).
wldap32: Handle null DN or null message in ldap_delete* and add tests.
winex11: Simplify confusing condition and error messages in wglShareLists.
opengl32/tests: Make the wglShareLists tests comprehensive.
winex11: Allow replacing either context in wglShareLists.
kernel32/tests: Check that lpSectionBase != NULL before dereferencing.
ntdll: Increment offset by len in build_clr_surrogate_section.
winemenubuilder: Skip desktop integration for certain associations.
Alexandre Julliard (3):
kernelbase: Move to a higher address on 64-bit.
ntdll: Fix typo in the check for hidden files.
wininet/tests: Update expected WineHQ certificate.
Alistair Leslie-Hughes (1):
activeds: Free memory on error paths (coverity).
Bernhard Übelacker (1):
ntoskrnl: Do not leak memory by setting input buffer to NULL.
Biswapriyo Nath (2):
include: Fix c++ compiler error with msxml2.idl.
include: Fix IDirectXVideoDecoderService declaration in dxva2api.idl.
Brendan Shanks (7):
include/msvcrt: Add __WINE_(DEALLOC|MALLOC) attributes to _strdup and _wcsdup.
msvcrt: Fix crash when rethrowing after a non-C++ exception on x86_64.
winemac: Fix memory leak in UpdateDisplayDevices.
winemac: Refactor constrain_window_frame() to use separate origin and size arguments.
winemac: Set the Cocoa window contentMaxSize to the size limits from constrain_window_frame().
winemac: Don't constrain surface dimensions to the onscreen part of a window.
winemac: Initialize retina_on to avoid incorrect cached display data in high-res/retina mode.
David Kahurani (1):
shlwapi: Implement StrFormatByteSizeEx.
Eric Pouech (3):
winedbg: Don't crash when no search path has been set.
evr: Fix incorrect integral computation.
winedump: Fix out of bounds access (spotted by GCC13).
François Gouget (2):
wininet/tests: Dump the state string if it is not as expected.
wininet: InternetGetConnectedStateExA() must always null-terminate the state string.
Gabriel Ivăncescu (8):
mshtml: Fix nsevent leak in create_document_event.
mshtml: Fix nsscript leak in bind_event_scripts.
mshtml: Fix nsuri leak if create_channelbsc failed.
mshtml: Fix nsparser leak if script_elem_from_nsscript failed.
mshtml: Fix factory leak in init_nsio.
mshtml: Fix nsIFile dir leak in init_xpcom.
mshtml: Fix URI leak in NewURI on failure.
mshtml: Store minimum compat mode required for events in the ctor table.
Hans Leidekker (3):
ldap: Return an error when the server doesn't respond to the SSL handshake.
ws2_32: Skip non-address records in dns_only_query().
winhttp/tests: Fix a test failure.
Jactry Zeng (1):
wordpad: Resize buttons of toolbar to make them align with height of the font list combox.
Jinoh Kang (2):
kernel32/tests: Test for manifest file open share mode in CreateActCtxW.
ntdll: Open application manifest files with FILE_SHARE_DELETE.
Louis Lenders (1):
wine.inf: Add EditionID to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion.
Michael Stefaniuc (2):
dmsynth: Don't crash when Open() gets a DMUS_PORTPARAMS7.
threadpoolwinrt: Forward a Release() to a Release() method.
Mohamad Al-Jaf (4):
pdh: Implement PdhVbGetDoubleCounterValue().
pdh/tests: Add PdhVbGetDoubleCounterValue() tests.
cfgmgr32: Implement CM_MapCrToWin32Err.
cfgmgr32/tests: Add CM_MapCrToWin32Err tests.
Nikolay Sivov (1):
mfplat: Implement MFCreatePathFromURL().
Olivier F. R. Dierick (1):
dxdiag: Ignore option /64bit on the commandline.
Paul Gofman (2):
ntdll: Add stub for NtQueryInformationProcess( ProcessHandleTable ).
ntdll: Avoid integer overflow in block_get_subheap().
Piotr Caban (1):
localspl: Don't pass original document name to cupsStartDocument.
Sven Baars (1):
wine.inf: Put the Clients key in the right place.
Tim Clem (1):
winemac.drv: Force a window in front of its peers if its level is decreased.
Torge Matthies (4):
ntdll/tests: Add test for file attributes of files with names beginning with a dot.
ntdll: Handle hidden file names inside get_file_info instead of after it.
ntdll: Only infer hidden attribute from file name if xattr is not present.
ntdll: Set xattr in NtCreateFile if inferred and requested attributes don't match.
Tyson Whitehead (2):
crypt32: Add some CertGetNameStringW fallback cases.
crypt32/tests: Test for CertGetNameStringW fallback cases.
Vijay Kiran Kamuju (2):
msvcr100: Add _UnrealizedChore::_CheckTaskCollection stub.
msvcp110: Add std::_Rethrow_future_exception implementation.
Zebediah Figura (1):
ntdll: Make fd_set_file_info() static.
Zhiyi Zhang (4):
light.msstyles: Use border fill background for progress parts.
light.msstyles: Don't draw a border for progress fill parts.
findstr: Add basic functionality.
wined3d: Add GPU information for AMD Raphael.
Ziqing Hui (1):
mfreadwrite: Fix an address of operator typo.
......@@ -684,6 +684,7 @@ Igor Stepin
Igor Tarasov
Ihsan Akmal
Ilia Mirkin
Illia Polishchuk
Ilya Basin
Ilya Konstantinov
Ilya Korniyko
......@@ -951,6 +952,7 @@ Karol Herbst
Karsten Elfenbein
Kasper Sandberg
Katarzyna Caban
K.B.Dharun Krishna
Kees Cook
Kees Schoenmakers
Keith Bowes
......@@ -1575,6 +1577,7 @@ Sergey Kalinichev
Sergey Khodych
Sergey Turchanov
Sergio Gómez Del Real
Serkan Önder
Seth Shelnutt
Shachar Shemesh
Shanren Zhou
......@@ -1696,6 +1699,7 @@ Tim Segall
Tim Wanders
Tim Worthington
Tim Wright
Tingzhong Luo
Tisheng Chen
Tobias Burnus
Tobias Gruetzmacher
......@@ -1728,6 +1732,7 @@ Tristan Schmelcher
Tristan Tarrant
Troy Rollo
Trygve Vea
Tyson Whitehead
Ulrich Czekalla
Ulrich Hecht
Ulrich Schmid
......
Wine version 8.0
Wine version 8.0.2
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for Wine 8.0.
# Generated by GNU Autoconf 2.71 for Wine 8.0.2.
#
# Report bugs to <wine-devel@winehq.org>.
#
......@@ -611,8 +611,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Wine'
PACKAGE_TARNAME='wine'
PACKAGE_VERSION='8.0'
PACKAGE_STRING='Wine 8.0'
PACKAGE_VERSION='8.0.2'
PACKAGE_STRING='Wine 8.0.2'
PACKAGE_BUGREPORT='wine-devel@winehq.org'
PACKAGE_URL='https://www.winehq.org'
 
......@@ -2321,7 +2321,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures Wine 8.0 to adapt to many kinds of systems.
\`configure' configures Wine 8.0.2 to adapt to many kinds of systems.
 
Usage: $0 [OPTION]... [VAR=VALUE]...
 
......@@ -2391,7 +2391,7 @@ fi
 
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of Wine 8.0:";;
short | recursive ) echo "Configuration of Wine 8.0.2:";;
esac
cat <<\_ACEOF
 
......@@ -2660,7 +2660,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
Wine configure 8.0
Wine configure 8.0.2
generated by GNU Autoconf 2.71
 
Copyright (C) 2021 Free Software Foundation, Inc.
......@@ -3111,7 +3111,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
 
It was created by Wine $as_me 8.0, which was
It was created by Wine $as_me 8.0.2, which was
generated by GNU Autoconf 2.71. Invocation command line was
 
$ $0$ac_configure_args_raw
......@@ -5857,11 +5857,11 @@ if test x$ac_prog_cxx_stdcxx = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
printf %s "checking for $CXX option to enable C++11 features... " >&6; }
if test ${ac_cv_prog_cxx_11+y}
if test ${ac_cv_prog_cxx_cxx11+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cxx_11=no
ac_cv_prog_cxx_cxx11=no
ac_save_CXX=$CXX
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
......@@ -5903,11 +5903,11 @@ if test x$ac_prog_cxx_stdcxx = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
printf %s "checking for $CXX option to enable C++98 features... " >&6; }
if test ${ac_cv_prog_cxx_98+y}
if test ${ac_cv_prog_cxx_cxx98+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cxx_98=no
ac_cv_prog_cxx_cxx98=no
ac_save_CXX=$CXX
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
......@@ -21054,6 +21054,7 @@ wine_fn_config_makefile dlls/capi2032 enable_capi2032
wine_fn_config_makefile dlls/cards enable_cards
wine_fn_config_makefile dlls/cdosys enable_cdosys
wine_fn_config_makefile dlls/cfgmgr32 enable_cfgmgr32
wine_fn_config_makefile dlls/cfgmgr32/tests enable_tests
wine_fn_config_makefile dlls/clusapi enable_clusapi
wine_fn_config_makefile dlls/cng.sys enable_cng_sys
wine_fn_config_makefile dlls/combase enable_combase
......@@ -21985,6 +21986,7 @@ wine_fn_config_makefile programs/fc enable_fc
wine_fn_config_makefile programs/find enable_find
wine_fn_config_makefile programs/find/tests enable_tests
wine_fn_config_makefile programs/findstr enable_findstr
wine_fn_config_makefile programs/findstr/tests enable_tests
wine_fn_config_makefile programs/fsutil enable_fsutil
wine_fn_config_makefile programs/fsutil/tests enable_tests
wine_fn_config_makefile programs/hh enable_hh
......@@ -22729,7 +22731,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by Wine $as_me 8.0, which was
This file was extended by Wine $as_me 8.0.2, which was
generated by GNU Autoconf 2.71. Invocation command line was
 
CONFIG_FILES = $CONFIG_FILES
......@@ -22793,7 +22795,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
Wine config.status 8.0
Wine config.status 8.0.2
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
 
......
......@@ -2392,6 +2392,7 @@ WINE_CONFIG_MAKEFILE(dlls/capi2032)
WINE_CONFIG_MAKEFILE(dlls/cards)
WINE_CONFIG_MAKEFILE(dlls/cdosys)
WINE_CONFIG_MAKEFILE(dlls/cfgmgr32)
WINE_CONFIG_MAKEFILE(dlls/cfgmgr32/tests)
WINE_CONFIG_MAKEFILE(dlls/clusapi)
WINE_CONFIG_MAKEFILE(dlls/cng.sys)
WINE_CONFIG_MAKEFILE(dlls/combase)
......@@ -3323,6 +3324,7 @@ WINE_CONFIG_MAKEFILE(programs/fc)
WINE_CONFIG_MAKEFILE(programs/find)
WINE_CONFIG_MAKEFILE(programs/find/tests)
WINE_CONFIG_MAKEFILE(programs/findstr)
WINE_CONFIG_MAKEFILE(programs/findstr/tests)
WINE_CONFIG_MAKEFILE(programs/fsutil)
WINE_CONFIG_MAKEFILE(programs/fsutil/tests)
WINE_CONFIG_MAKEFILE(programs/hh)
......
......@@ -136,7 +136,10 @@ static HRESULT parse_path(BSTR path, BSTR *provider, BSTR *server, BSTR *dn)
if (!*p) return S_OK;
if (*p++ != '/' || *p++ != '/' || !*p)
{
SysFreeString(*provider);
return E_ADS_BAD_PATHNAME;
}
p_server = p;
server_len = 0;
......@@ -145,7 +148,11 @@ static HRESULT parse_path(BSTR path, BSTR *provider, BSTR *server, BSTR *dn)
p++;
server_len++;
}
if (server_len == 0) return E_ADS_BAD_PATHNAME;
if (server_len == 0)
{
SysFreeString(*provider);
return E_ADS_BAD_PATHNAME;
}
*server = SysAllocStringLen(p_server, server_len);
if (!*server)
......
......@@ -37,6 +37,8 @@ DEFINE_GUID(CLSID_LDAP,0x228d9a81,0xc302,0x11cf,0x9a,0xa4,0x00,0xaa,0x00,0x4a,0x
DEFINE_GUID(CLSID_LDAPNamespace,0x228d9a82,0xc302,0x11cf,0x9a,0xa4,0x00,0xaa,0x00,0x4a,0x56,0x91);
DEFINE_OLEGUID(CLSID_PointerMoniker,0x306,0,0);
static BOOL server_down;
static const struct
{
const WCHAR *path;
......@@ -74,6 +76,8 @@ static void test_LDAP(void)
BSTR path, user, password;
int i;
if (server_down) return;
hr = CoCreateInstance(&CLSID_LDAPNamespace, 0, CLSCTX_INPROC_SERVER, &IID_IADs, (void **)&ads);
ok(hr == S_OK, "got %#lx\n", hr);
IADs_Release(ads);
......@@ -99,6 +103,7 @@ static void test_LDAP(void)
{
SysFreeString(path);
skip("server is down\n");
server_down = TRUE;
break;
}
ok(hr == test[i].hr || hr == test[i].hr_ads_open, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr);
......@@ -110,6 +115,7 @@ static void test_LDAP(void)
{
SysFreeString(path);
skip("server is down\n");
server_down = TRUE;
break;
}
ok(hr == test[i].hr || hr == test[i].hr_ads_get, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr);
......@@ -121,6 +127,7 @@ static void test_LDAP(void)
{
SysFreeString(path);
skip("server is down\n");
server_down = TRUE;
break;
}
ok(hr == test[i].hr || hr == test[i].hr_ads_get, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr);
......@@ -149,6 +156,8 @@ static void test_ParseDisplayName(void)
ULONG count;
int i;
if (server_down) return;
hr = CoCreateInstance(&CLSID_LDAP, 0, CLSCTX_INPROC_SERVER, &IID_IParseDisplayName, (void **)&parse);
ok(hr == S_OK, "got %#lx\n", hr);
IParseDisplayName_Release(parse);
......@@ -172,6 +181,7 @@ static void test_ParseDisplayName(void)
{
SysFreeString(path);
skip("server is down\n");
server_down = TRUE;
break;
}
ok(hr == test[i].hr || hr == test[i].hr_ads_open, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr);
......@@ -190,6 +200,12 @@ static void test_ParseDisplayName(void)
count = 0xdeadbeef;
hr = MkParseDisplayName(bc, test[i].path, &count, &mk);
if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN))
{
skip("server is down\n");
server_down = TRUE;
break;
}
todo_wine_if(i == 0 || i == 1 || i == 11 || i == 12)
ok(hr == test[i].hr, "%d: got %#lx, expected %#lx\n", i, hr, test[i].hr);
if (hr == S_OK)
......@@ -232,12 +248,15 @@ static void do_search(const struct search *s)
LPWSTR name;
const struct result *res;
if (server_down) return;
trace("search DN %s\n", wine_dbgstr_w(s->dn));
hr = ADsGetObject(s->dn, &IID_IDirectorySearch, (void **)&ds);
if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN))
{
skip("server is down\n");
server_down = TRUE;
return;
}
ok(hr == S_OK, "got %#lx\n", hr);
......@@ -291,8 +310,6 @@ static void do_search(const struct search *s)
"expected %s, got %s\n", wine_dbgstr_w(res->values[i]), wine_dbgstr_w(col.pADsValues[i].CaseIgnoreString));
}
ok(!res->values[i], "expected extra value %s\n", wine_dbgstr_w(res->values[i]));
IDirectorySearch_FreeColumn(ds, &col);
FreeADsMem(name);
res++;
......@@ -358,6 +375,8 @@ static void test_DirectorySearch(void)
ADS_SEARCH_COLUMN col;
LPWSTR name;
if (server_down) return;
hr = ADsGetObject(L"LDAP:", &IID_IDirectorySearch, (void **)&ds);
ok(hr == E_NOINTERFACE, "got %#lx\n", hr);
......@@ -365,6 +384,7 @@ static void test_DirectorySearch(void)
if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN))
{
skip("server is down\n");
server_down = TRUE;
return;
}
ok(hr == E_NOINTERFACE, "got %#lx\n", hr);
......@@ -373,6 +393,7 @@ static void test_DirectorySearch(void)
if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN))
{
skip("server is down\n");
server_down = TRUE;
return;
}
ok(hr == S_OK, "got %#lx\n", hr);
......@@ -487,10 +508,13 @@ static void test_DirectoryObject(void)
ADS_SEARCH_HANDLE sh;
ADS_SEARCH_COLUMN col;
if (server_down) return;
hr = ADsGetObject(L"LDAP://ldap.forumsys.com/OU=scientists,DC=example,DC=com", &IID_IDirectoryObject, (void **)&dirobj);
if (hr == HRESULT_FROM_WIN32(ERROR_DS_SERVER_DOWN))
{
skip("server is down\n");
server_down = TRUE;
return;
}
ok(hr == S_OK, "got %#lx\n", hr);
......
......@@ -2390,7 +2390,7 @@ static CRITICAL_SECTION_DEBUG random_debug =
};
static CRITICAL_SECTION random_cs = { &random_debug, -1, 0, 0, 0, 0 };
#define MAX_CPUS 128
#define MAX_CPUS 256
static char random_buf[sizeof(SYSTEM_INTERRUPT_INFORMATION) * MAX_CPUS];
static ULONG random_len;
static ULONG random_pos;
......
......@@ -384,6 +384,7 @@ apiset ext-ms-win-mm-pehelper-l1-1-0 = mf.dll
apiset ext-ms-win-mm-wmvcore-l1-1-0 = wmvcore.dll
apiset ext-ms-win-msi-misc-l1-1-0 = msi.dll
apiset ext-ms-win-msimg-draw-l1-1-0 = msimg32.dll
apiset ext-ms-win-networking-wlanapi-l1-1-0 = wlanapi.dll
apiset ext-ms-win-ntdsapi-activedirectoryclient-l1-1-1 = ntdsapi.dll
apiset ext-ms-win-ntuser-caret-l1-1-0 = user32.dll
apiset ext-ms-win-ntuser-chartranslation-l1-1-0 = user32.dll
......
MODULE = cfgmgr32.dll
IMPORTLIB = cfgmgr32
IMPORTS = setupapi
C_SRCS = \
main.c
......@@ -126,6 +126,7 @@
@ stdcall CM_Locate_DevNodeW(ptr wstr long) setupapi.CM_Locate_DevNodeW
@ stdcall CM_Locate_DevNode_ExA(ptr str long long) setupapi.CM_Locate_DevNode_ExA
@ stdcall CM_Locate_DevNode_ExW(ptr wstr long long) setupapi.CM_Locate_DevNode_ExW
@ stdcall CM_MapCrToWin32Err(long long)
@ stub CM_Merge_Range_List
@ stub CM_Modify_Res_Des
@ stub CM_Modify_Res_Des_Ex
......
/*
* Copyright (C) 2023 Mohamad Al-Jaf
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "wine/debug.h"
#include "cfgmgr32.h"
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
/***********************************************************************
* CM_MapCrToWin32Err (cfgmgr32.@)
*/
DWORD WINAPI CM_MapCrToWin32Err( CONFIGRET code, DWORD default_error )
{
TRACE( "code: %#lx, default_error: %ld\n", code, default_error );
switch (code)
{
case CR_SUCCESS: return ERROR_SUCCESS;
case CR_OUT_OF_MEMORY: return ERROR_NOT_ENOUGH_MEMORY;
case CR_INVALID_POINTER: return ERROR_INVALID_USER_BUFFER;
case CR_INVALID_FLAG: return ERROR_INVALID_FLAGS;
case CR_INVALID_DEVNODE:
case CR_INVALID_DEVICE_ID:
case CR_INVALID_MACHINENAME:
case CR_INVALID_PROPERTY:
case CR_INVALID_REFERENCE_STRING: return ERROR_INVALID_DATA;
case CR_NO_SUCH_DEVNODE:
case CR_NO_SUCH_VALUE:
case CR_NO_SUCH_DEVICE_INTERFACE: return ERROR_NOT_FOUND;
case CR_ALREADY_SUCH_DEVNODE: return ERROR_ALREADY_EXISTS;
case CR_BUFFER_SMALL: return ERROR_INSUFFICIENT_BUFFER;
case CR_NO_REGISTRY_HANDLE: return ERROR_INVALID_HANDLE;
case CR_REGISTRY_ERROR: return ERROR_REGISTRY_CORRUPT;
case CR_NO_SUCH_REGISTRY_KEY: return ERROR_FILE_NOT_FOUND;
case CR_REMOTE_COMM_FAILURE:
case CR_MACHINE_UNAVAILABLE:
case CR_NO_CM_SERVICES: return ERROR_SERVICE_NOT_ACTIVE;
case CR_ACCESS_DENIED: return ERROR_ACCESS_DENIED;
case CR_CALL_NOT_IMPLEMENTED: return ERROR_CALL_NOT_IMPLEMENTED;
}
return default_error;
}
TESTDLL = cfgmgr32.dll
IMPORTS = cfgmgr32
C_SRCS = \
cfgmgr32.c
/*
* Copyright (C) 2023 Mohamad Al-Jaf
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "wine/test.h"
#include "cfgmgr32.h"
static void test_CM_MapCrToWin32Err(void)
{
unsigned int i;
DWORD ret;
static const struct
{
CONFIGRET code;
DWORD win32_error;
}
map_codes[] =
{
{ CR_SUCCESS, ERROR_SUCCESS },
{ CR_OUT_OF_MEMORY, ERROR_NOT_ENOUGH_MEMORY },
{ CR_INVALID_POINTER, ERROR_INVALID_USER_BUFFER },
{ CR_INVALID_FLAG, ERROR_INVALID_FLAGS },
{ CR_INVALID_DEVNODE, ERROR_INVALID_DATA },
{ CR_INVALID_DEVINST, ERROR_INVALID_DATA },
{ CR_NO_SUCH_DEVNODE, ERROR_NOT_FOUND },
{ CR_NO_SUCH_DEVINST, ERROR_NOT_FOUND },
{ CR_ALREADY_SUCH_DEVNODE, ERROR_ALREADY_EXISTS },
{ CR_ALREADY_SUCH_DEVINST, ERROR_ALREADY_EXISTS },
{ CR_BUFFER_SMALL, ERROR_INSUFFICIENT_BUFFER },
{ CR_NO_REGISTRY_HANDLE, ERROR_INVALID_HANDLE },
{ CR_REGISTRY_ERROR, ERROR_REGISTRY_CORRUPT },
{ CR_INVALID_DEVICE_ID, ERROR_INVALID_DATA },
{ CR_NO_SUCH_VALUE, ERROR_NOT_FOUND },
{ CR_NO_SUCH_REGISTRY_KEY, ERROR_FILE_NOT_FOUND },
{ CR_INVALID_MACHINENAME, ERROR_INVALID_DATA },
{ CR_REMOTE_COMM_FAILURE, ERROR_SERVICE_NOT_ACTIVE },
{ CR_MACHINE_UNAVAILABLE, ERROR_SERVICE_NOT_ACTIVE },
{ CR_NO_CM_SERVICES, ERROR_SERVICE_NOT_ACTIVE },
{ CR_ACCESS_DENIED, ERROR_ACCESS_DENIED },
{ CR_CALL_NOT_IMPLEMENTED, ERROR_CALL_NOT_IMPLEMENTED },
{ CR_INVALID_PROPERTY, ERROR_INVALID_DATA },
{ CR_NO_SUCH_DEVICE_INTERFACE, ERROR_NOT_FOUND },
{ CR_INVALID_REFERENCE_STRING, ERROR_INVALID_DATA },
{ CR_DEFAULT, 0xdeadbeef },
{ CR_INVALID_RES_DES, 0xdeadbeef },
{ CR_INVALID_LOG_CONF, 0xdeadbeef },
{ CR_INVALID_ARBITRATOR, 0xdeadbeef },
{ CR_INVALID_NODELIST, 0xdeadbeef },
{ CR_DEVNODE_HAS_REQS, 0xdeadbeef },
{ CR_DEVINST_HAS_REQS, 0xdeadbeef },
{ CR_INVALID_RESOURCEID, 0xdeadbeef },
{ CR_DLVXD_NOT_FOUND, 0xdeadbeef },
{ CR_NO_MORE_LOG_CONF, 0xdeadbeef },
{ CR_NO_MORE_RES_DES, 0xdeadbeef },
{ CR_INVALID_RANGE_LIST, 0xdeadbeef },
{ CR_INVALID_RANGE, 0xdeadbeef },
{ CR_FAILURE, 0xdeadbeef },
{ CR_NO_SUCH_LOGICAL_DEV, 0xdeadbeef },
{ CR_CREATE_BLOCKED, 0xdeadbeef },
{ CR_NOT_SYSTEM_VM, 0xdeadbeef },
{ CR_REMOVE_VETOED, 0xdeadbeef },
{ CR_APM_VETOED, 0xdeadbeef },
{ CR_INVALID_LOAD_TYPE, 0xdeadbeef },
{ CR_NO_ARBITRATOR, 0xdeadbeef },
{ CR_INVALID_DATA, 0xdeadbeef },
{ CR_INVALID_API, 0xdeadbeef },
{ CR_DEVLOADER_NOT_READY, 0xdeadbeef },
{ CR_NEED_RESTART, 0xdeadbeef },
{ CR_NO_MORE_HW_PROFILES, 0xdeadbeef },
{ CR_DEVICE_NOT_THERE, 0xdeadbeef },
{ CR_WRONG_TYPE, 0xdeadbeef },
{ CR_INVALID_PRIORITY, 0xdeadbeef },
{ CR_NOT_DISABLEABLE, 0xdeadbeef },
{ CR_FREE_RESOURCES, 0xdeadbeef },
{ CR_QUERY_VETOED, 0xdeadbeef },
{ CR_CANT_SHARE_IRQ, 0xdeadbeef },
{ CR_NO_DEPENDENT, 0xdeadbeef },
{ CR_SAME_RESOURCES, 0xdeadbeef },
{ CR_DEVICE_INTERFACE_ACTIVE, 0xdeadbeef },
{ CR_INVALID_CONFLICT_LIST, 0xdeadbeef },
{ CR_INVALID_INDEX, 0xdeadbeef },
{ CR_INVALID_STRUCTURE_SIZE, 0xdeadbeef },
{ NUM_CR_RESULTS, 0xdeadbeef },
};
for ( i = 0; i < ARRAY_SIZE(map_codes); i++ )
{
ret = CM_MapCrToWin32Err( map_codes[i].code, 0xdeadbeef );
ok( ret == map_codes[i].win32_error, "%#lx returned unexpected %ld.\n", map_codes[i].code, ret );
}
}
START_TEST(cfgmgr32)
{
test_CM_MapCrToWin32Err();
}
......@@ -11212,6 +11212,7 @@ static INT LISTVIEW_StyleChanged(LISTVIEW_INFO *infoPtr, WPARAM wStyleType,
const STYLESTRUCT *lpss)
{
UINT uNewView, uOldView;
BOOL repaint = FALSE;
UINT style;
TRACE("styletype %Ix, styleOld %#lx, styleNew %#lx\n",
......@@ -11236,6 +11237,8 @@ static INT LISTVIEW_StyleChanged(LISTVIEW_INFO *infoPtr, WPARAM wStyleType,
{
HIMAGELIST himl;
repaint = TRUE;
/* LVM_SETVIEW doesn't change window style bits within LVS_TYPEMASK,
changing style updates current view only when view bits change. */
map_style_view(infoPtr);
......@@ -11297,6 +11300,9 @@ static INT LISTVIEW_StyleChanged(LISTVIEW_INFO *infoPtr, WPARAM wStyleType,
/* add scrollbars if needed */
LISTVIEW_UpdateScroll(infoPtr);
if (repaint)
LISTVIEW_InvalidateList(infoPtr);
return 0;
}
......
......@@ -1021,6 +1021,15 @@ static const struct message wm_stylechanged_combox_seq[] =
{0}
};
static const struct message wm_stylechanged_listview_report_seq[] =
{
{WM_STYLECHANGED, sent},
{WM_ERASEBKGND, sent | defwinproc},
{WM_PAINT, sent},
{WM_ERASEBKGND, sent | defwinproc},
{0}
};
static const struct message wm_stylechanged_pager_seq[] =
{
{WM_STYLECHANGED, sent},
......@@ -1081,37 +1090,39 @@ static void test_WM_STYLECHANGED(void)
static const struct test
{
const CHAR *class_name;
DWORD add_style;
const struct message *seq;
BOOL todo;
}
tests[] =
{
{ANIMATE_CLASSA, wm_stylechanged_seq},
{WC_BUTTONA, wm_stylechanged_seq},
{WC_COMBOBOXA, wm_stylechanged_combox_seq, TRUE},
{WC_COMBOBOXEXA, wm_stylechanged_seq},
{DATETIMEPICK_CLASSA, wm_stylechanged_seq},
{WC_EDITA, wm_stylechanged_seq},
{WC_HEADERA, wm_stylechanged_repaint_seq, TRUE},
{HOTKEY_CLASSA, wm_stylechanged_seq},
{WC_IPADDRESSA, wm_stylechanged_seq},
{WC_LISTBOXA, wm_stylechanged_repaint_seq, TRUE},
{WC_LISTVIEWA, wm_stylechanged_seq},
{MONTHCAL_CLASSA, wm_stylechanged_repaint_seq, TRUE},
{WC_NATIVEFONTCTLA, wm_stylechanged_seq},
{WC_PAGESCROLLERA, wm_stylechanged_pager_seq, TRUE},
{PROGRESS_CLASSA, wm_stylechanged_progress_seq},
{REBARCLASSNAMEA, wm_stylechanged_seq},
{WC_STATICA, wm_stylechanged_seq},
{STATUSCLASSNAMEA, wm_stylechanged_seq},
{"SysLink", wm_stylechanged_seq},
{WC_TABCONTROLA, wm_stylechanged_seq},
{TOOLBARCLASSNAMEA, wm_stylechanged_seq},
{TOOLTIPS_CLASSA, wm_stylechanged_seq},
{TRACKBAR_CLASSA, wm_stylechanged_trackbar_seq, TRUE},
{WC_TREEVIEWA, wm_stylechanged_seq},
{UPDOWN_CLASSA, wm_stylechanged_seq},
{WC_SCROLLBARA, wm_stylechanged_seq},
{ANIMATE_CLASSA, WS_TABSTOP, wm_stylechanged_seq},
{WC_BUTTONA, WS_TABSTOP, wm_stylechanged_seq},
{WC_COMBOBOXA, WS_TABSTOP, wm_stylechanged_combox_seq, TRUE},
{WC_COMBOBOXEXA, WS_TABSTOP, wm_stylechanged_seq},
{DATETIMEPICK_CLASSA, WS_TABSTOP, wm_stylechanged_seq},
{WC_EDITA, WS_TABSTOP, wm_stylechanged_seq},
{WC_HEADERA, WS_TABSTOP, wm_stylechanged_repaint_seq, TRUE},
{HOTKEY_CLASSA, WS_TABSTOP, wm_stylechanged_seq},
{WC_IPADDRESSA, WS_TABSTOP, wm_stylechanged_seq},
{WC_LISTBOXA, WS_TABSTOP, wm_stylechanged_repaint_seq, TRUE},
{WC_LISTVIEWA, WS_TABSTOP, wm_stylechanged_seq},
{WC_LISTVIEWA, LVS_REPORT, wm_stylechanged_listview_report_seq, TRUE},
{MONTHCAL_CLASSA, WS_TABSTOP, wm_stylechanged_repaint_seq, TRUE},
{WC_NATIVEFONTCTLA, WS_TABSTOP, wm_stylechanged_seq},
{WC_PAGESCROLLERA, WS_TABSTOP, wm_stylechanged_pager_seq, TRUE},
{PROGRESS_CLASSA, WS_TABSTOP, wm_stylechanged_progress_seq},
{REBARCLASSNAMEA, WS_TABSTOP, wm_stylechanged_seq},
{WC_STATICA, WS_TABSTOP, wm_stylechanged_seq},
{STATUSCLASSNAMEA, WS_TABSTOP, wm_stylechanged_seq},
{"SysLink", WS_TABSTOP, wm_stylechanged_seq},
{WC_TABCONTROLA, WS_TABSTOP, wm_stylechanged_seq},
{TOOLBARCLASSNAMEA, WS_TABSTOP, wm_stylechanged_seq},
{TOOLTIPS_CLASSA, WS_TABSTOP, wm_stylechanged_seq},
{TRACKBAR_CLASSA, WS_TABSTOP, wm_stylechanged_trackbar_seq, TRUE},
{WC_TREEVIEWA, WS_TABSTOP, wm_stylechanged_seq},
{UPDOWN_CLASSA, WS_TABSTOP, wm_stylechanged_seq},
{WC_SCROLLBARA, WS_TABSTOP, wm_stylechanged_seq},
};
parent = CreateWindowA(WC_STATICA, "parent", WS_POPUP | WS_VISIBLE, 100, 100, 100, 100,
......@@ -1137,7 +1148,7 @@ static void test_WM_STYLECHANGED(void)
flush_sequences(sequences, NUM_MSG_SEQUENCES);
style.styleOld = GetWindowLongA(hwnd, GWL_STYLE);
style.styleNew = style.styleOld | WS_TABSTOP;
style.styleNew = style.styleOld | tests[i].add_style;
SendMessageA(hwnd, WM_STYLECHANGED, GWL_STYLE, (LPARAM)&style);
flush_events();
ok_sequence(sequences, CHILD_SEQ_INDEX, tests[i].seq, "WM_STYLECHANGED", tests[i].todo);
......
......@@ -2181,6 +2181,66 @@ static void test_WM_PAINT(void)
DestroyWindow(hTree);
}
static void test_WM_PRINTCLIENT(void)
{
static const LPARAM params[] = {0, PRF_CHECKVISIBLE, PRF_NONCLIENT, PRF_CLIENT, PRF_ERASEBKGND,
PRF_CHILDREN, PRF_OWNED};
BOOL glyph_is_transparent;
HTHEME hTheme;
HWND hTree;
COLORREF clr;
LONG ret;
RECT rc;
HDC hdc;
int i;
hTree = create_treeview_control(0);
clr = SendMessageA(hTree, TVM_SETBKCOLOR, 0, RGB(255, 0, 0));
ok(clr == CLR_NONE, "got 0x%lx, expected 0x%lx\n", clr, CLR_NONE);
hdc = GetDC(hMainWnd);
GetClientRect(hMainWnd, &rc);
hTheme = pGetWindowTheme(hTree);
glyph_is_transparent = hTheme && pIsThemeBackgroundPartiallyTransparent(hTheme, TVP_GLYPH, 0);
/* test parameters when the treeview is visible */
for (i = 0; i < ARRAY_SIZE(params); i++)
{
winetest_push_context("lParam=0x%Ix", params[i]);
FillRect(hdc, &rc, GetStockObject(BLACK_BRUSH));
clr = GetPixel(hdc, 1, 1);
ok(clr == RGB(0, 0, 0), "got 0x%lx\n", clr);
ret = SendMessageA(hTree, WM_PRINTCLIENT, (WPARAM)hdc, params[i]);
ok(ret == 0, "got %ld\n", ret);
clr = GetPixel(hdc, 1, 1);
ok(clr == RGB(255, 0, 0) || (glyph_is_transparent && clr == GetSysColor(COLOR_WINDOW)),
"got 0x%lx\n", clr);
winetest_pop_context();
}
/* test parameters when the treeview is hidden */
ShowWindow(hTree, SW_HIDE);
for (i = 0; i < ARRAY_SIZE(params); i++)
{
winetest_push_context("lParam=0x%Ix", params[i]);
FillRect(hdc, &rc, GetStockObject(BLACK_BRUSH));
clr = GetPixel(hdc, 1, 1);
ok(clr == RGB(0, 0, 0), "got 0x%lx\n", clr);
ret = SendMessageA(hTree, WM_PRINTCLIENT, (WPARAM)hdc, params[i]);
ok(ret == 0, "got %ld\n", ret);
clr = GetPixel(hdc, 1, 1);
ok(clr == RGB(255, 0, 0) || (glyph_is_transparent && clr == GetSysColor(COLOR_WINDOW)),
"got 0x%lx\n", clr);
winetest_pop_context();
}
ShowWindow(hTree, SW_SHOW);
ReleaseDC(hMainWnd, hdc);
DestroyWindow(hTree);
}
static void test_delete_items(void)
{
const struct message *msg;
......@@ -3042,6 +3102,7 @@ START_TEST(treeview)
test_expandnotify();
test_TVS_SINGLEEXPAND();
test_WM_PAINT();
test_WM_PRINTCLIENT();
test_delete_items();
test_cchildren();
test_htreeitem_layout(FALSE);
......
......@@ -3114,20 +3114,13 @@ TREEVIEW_Paint(TREEVIEW_INFO *infoPtr, HDC hdc_ref)
static LRESULT
TREEVIEW_PrintClient(TREEVIEW_INFO *infoPtr, HDC hdc, DWORD options)
{
FIXME("Partial Stub: (hdc=%p options=%#lx)\n", hdc, options);
if ((options & PRF_CHECKVISIBLE) && !IsWindowVisible(infoPtr->hwnd))
return 0;
RECT rc;
if (options & PRF_ERASEBKGND)
TREEVIEW_EraseBackground(infoPtr, hdc);
FIXME("Partial Stub: (hdc=%p options=%#lx)\n", hdc, options);
if (options & PRF_CLIENT)
{
RECT rc;
GetClientRect(infoPtr->hwnd, &rc);
TREEVIEW_Refresh(infoPtr, hdc, &rc);
}
TREEVIEW_EraseBackground(infoPtr, hdc);
GetClientRect(infoPtr->hwnd, &rc);
TREEVIEW_Refresh(infoPtr, hdc, &rc);
return 0;
}
......
......@@ -440,9 +440,9 @@
@ stub -arch=arm ?_Cancel@_TaskCollection@details@Concurrency@@QAAXXZ
@ stub -arch=i386 ?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ
@ stub -arch=win64 ?_Cancel@_TaskCollection@details@Concurrency@@QEAAXXZ
@ stub -arch=arm ?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAAXXZ
@ stub -arch=i386 ?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ
@ stub -arch=win64 ?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IEAAXXZ
@ cdecl -arch=arm ?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAAXXZ(ptr) _UnrealizedChore__CheckTaskCollection
@ thiscall -arch=i386 ?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ(ptr) _UnrealizedChore__CheckTaskCollection
@ cdecl -arch=win64 ?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IEAAXXZ(ptr) _UnrealizedChore__CheckTaskCollection
@ stub -arch=arm ?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@AAAXXZ
@ stub -arch=i386 ?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@AAEXXZ
@ stub -arch=win64 ?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@AEAAXXZ
......
......@@ -965,11 +965,22 @@ static DWORD cert_get_name_from_rdn_attr(DWORD encodingType,
if (CryptDecodeObjectEx(encodingType, X509_NAME, name->pbData,
name->cbData, CRYPT_DECODE_ALLOC_FLAG, NULL, &nameInfo, &bytes))
{
PCERT_RDN_ATTR nameAttr;
PCERT_RDN_ATTR nameAttr = NULL;
if (!oid)
oid = szOID_RSA_emailAddr;
nameAttr = CertFindRDNAttr(oid, nameInfo);
if (oid)
nameAttr = CertFindRDNAttr(oid, nameInfo);
else
{
static const LPCSTR attributeOIDs[] =
{
szOID_RSA_emailAddr, szOID_COMMON_NAME,
szOID_ORGANIZATIONAL_UNIT_NAME, szOID_ORGANIZATION_NAME
};
DWORD i;
for (i = 0; !nameAttr && i < ARRAY_SIZE(attributeOIDs); i++)
nameAttr = CertFindRDNAttr(attributeOIDs[i], nameInfo);
}
if (nameAttr)
ret = rdn_value_to_strW(nameAttr->dwValueType, &nameAttr->Value,
pszNameString, cchNameString, TRUE);
......