diff -Nru wine1.7-1.7.18/ANNOUNCE wine1.7-1.7.19/ANNOUNCE --- wine1.7-1.7.18/ANNOUNCE 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/ANNOUNCE 2014-05-16 19:06:48.000000000 +0000 @@ -1,17 +1,17 @@ -The Wine development release 1.7.18 is now available. +The Wine development release 1.7.19 is now available. What's new in this release (see below for details): - - Improved OLE Accessible Object support. - - Window sizing improvements in the Mac driver. + - New JSProxy DLL for automatic proxy configuration. + - More OLE Accessible Object support. + - Improvements to the XML writer. - Fixes for various memory issues found by Valgrind. - - A few more MSHTML functions. - - Some DirectDraw cleanups. + - Initial headers for Direct2D support. - Various bug fixes. The source is available from the following locations: - http://prdownloads.sourceforge.net/wine/wine-1.7.18.tar.bz2 - http://mirrors.ibiblio.org/wine/source/1.7/wine-1.7.18.tar.bz2 + http://prdownloads.sourceforge.net/wine/wine-1.7.19.tar.bz2 + http://mirrors.ibiblio.org/wine/source/1.7/wine-1.7.19.tar.bz2 Binary packages for various distributions will be available from: @@ -27,347 +27,397 @@ ---------------------------------------------------------------- -Bugs fixed in 1.7.18 (total 80): +Bugs fixed in 1.7.19 (total 99): - 5944 IBM Lotus Notes 7.x/8.x: 'File > Preferences > User Preferences...' results in crash - 9667 Grim Fandango hangs if X in 24bpp mode - 13581 mouse corruption in lionheart - 14060 Magic: The Gathering Online 3.x fails to connect/login to server - 15784 Grim Fandango: altered colors - 16966 Powerslide segfaults - 17105 Magic: The Gathering Online 3.0 fails to log in with L0014 - 18119 SmartDraw 2009/2010/CI aborts after displaying trial window - 18433 Rosetta Stone Online Spanish (version 0.87594D 221) hangs at "5" during startup - 18614 Problem with starting of wine or winecfg - 19151 Spotify crashes in the mittle of a song and give me a pop-up fault message - 19896 GPS Utility 5.02 fails to connect to GPS device (USB serial) - 20336 GetDriveTypeW exposes partially uninitialized out parameter iosb in NtDeviceIoControlFile ? - 20853 Write buffer overflow in msi/tests/automation.c? - 22515 Gothic 2 1.3 Infogrames Edition installer crashes - 22781 ExpressPCB crashes when you try to upload a board - 23857 Half-Life (Steam) doesn't run - 23995 Football Manager 2010 fails to start - 24064 Many steam games crash because of GameOverlayRenderer.dll - 25241 Steam: Source based games will not start - 26043 advapi32/security tests shows some leaks in valgrind - 26066 use after free in X11DRV_GetKeyboardLayout? - 26639 Steam: crashes randomly while downloading L4D2 - 26895 Microsoft 3D Movie Maker: rendering is red mesh/black text on black background - 27102 VoipBuster 4.x crashes on startup - 27413 Segmentation fault in Kudos 2 Demo - 27441 El Matador crashes when starting a level(ASSERTION failed) - 28398 Might & Magic VI Heroes - fails to start game, crashes right after menu - 28621 Magic: The Gathering Online 3.x updater tool 'Kicker.exe' hangs - 28628 advapi32/security.ok: GetTokenInformation(Token, TokenGroups,...) returns partial garbage leading to uninitialized memory accesses? - 28695 Uninitialized variables in create_rebar - 28697 ieframe/tests/ie.ok: Use-after-free (after ImageList_ReplaceIcon) - 28708 gdiplus/tests/image.ok: test_fromhicon triggers reference of uninitialized variable from SetDIBits - 28712 winhttp/notification.ok: invalid read in check_notification - 28761 ddraw/tests: invalid writes in ddraw_surface7_Release and friends - 28767 shell32: uninitialized memory used during TRASH_EnumItems, triggered by "make recyclebin.ok" - 28797 comctl32/tests/listview.ok triggers uninitialized memory read of local variable in NC_DrawCaption() - 28815 kernel32/tests/fiber.ok shows longjmp-related uninitialised memory references - 28921 Battlefield 3 crashes on installation - 28943 Notepad2 v4.2.25 installation fails - 29882 Authorware Web Player 2004 Plugin - mouseClicks and keystroke are not recognized - 30352 builtin iexplore + selenium hangs on startup - 30518 Multiple 64-bit applications need KERNEL32.dll.RtlInstallFunctionTableCallback (Mono, Metatrader 5 Agent) - 30616 7.62 High Calibre configuration tool unusable (can't make changes) - 31918 Saints Row the Third (Steam) crashes on startup (needs support for PrimitiveMiscCaps 'D3DPMISCCAPS_PERSTAGECONSTANT') - 32108 Borderlands 2 (Steam) fails to start - 32138 Dishonored crashes on startup - 32348 Crysis 2 fails to launch - 33146 Path of Exile "Allocating Space" very slow, due to NtFlushVirtualMemory being synchronous - 33347 WISO (Steuer) Sparbuch 2012/2013 fails during online activation (needs HTMLElementCollection_get__newEnum) - 33606 Spin Tires: black menu with missing text (per-stage constants handling needed) - 33745 SimCity Societies launcher (.NET app) crashes on startup (incorrect canonicalization of URL containing trade mark sign character U+2122) - 33958 wine programs crash with joystick connected (OS X) - 34581 Shadow Era client v20120 (Mono game) reports 'Fatal error in gc - GetThreadContext failed' during update/patching - 34698 QQGame 2011 can't load (broken app uses LocalAlloc handle as direct buffer without prior locking) - 34823 Sybase PowerDesigner 16.5 'pdshell16.exe' (.NET 4.x app) fails on startup - 35321 Wolverine: game crash after Unreal technology logo - 35788 Planetside 2 crashes on launch (uninitialized/implausible MONITORINFOA.cbSize passed to GetMonitorInfoA, causing stack buffer overwrite) - 35835 Symantec Norton 360 installer crashes on unimplemented function advapi32.dll.GetTraceLoggerHandle - 36015 FIFA 2002 demo crashes because gethostbyaddr with magic loopback address return NULL - 36024 Adobe Reader 8.1.1 fails to install - 36026 Hawking control center driver install tool crashes during uninstallation (needs shlwapi.SHRegCreateUSKeyA implementation) - 36036 Does not run WorldOfTanks 0.9 in 1.7.17 - 36043 Battlefield 1942: Crashes after map loading - 36046 Absolute Blue demo launcher refuses to run - 36050 Dragon NaturallySpeaking 12.x crashes on unimplemented function msvcr100.dll._wcsupr_l - 36068 Symantec Norton 360 installer needs advapi32.dll GetTraceEnableLevel and GetTraceEnableFlags stubs - 36069 invalid free in oleaut32/tests/vartype test - 36070 Football Manager 2010 demo WMI query 'SELECT Manufacturer,CurrentClockSpeed FROM Win32_Processor' results in endless looping - 36078 .NET 3.0 installer encounters an error and rolls back the installation - 36080 Fifa 11 demo crashes on startup - 36099 Ankh 2: Heart of Osiris fails to start - 36106 Installshield Wizard: scrollbar appears where it shouldn't be - 36114 msi/action definite leak in is_process_limited - 36132 valgrind shows some leaks in gdiplus/tests/graphics.c - 36149 valgrind shows some an unintialized variable in jscript/tests/run.c - 36161 valgrind shows a leak in wmiutils/tests/path.c - 36177 Saints Row the Third (Steam) crashes on startup (expects 'PixelShader1xMaxValue' >= 32) - 36207 Steel Beasts v1.19 demo installer crashes on exit - 36210 Sybase PowerDesigner 16.5 'pdshell16.exe' (.NET 4.x WPF app) wants oleacc.CreateStdAccessibleObject + 4264 Multiple apps refuse to install, complain about registry security (The 4th coming, Google Pack Installer expect a non-null DACL) + 10202 Battery visualization not working in WMP9 + 12326 SHELL_FindExecutable breaks "mailto:" URL + 14222 RpcBindingSetAuthInfo(Ex) fails with RPC_C_AUTHN_GSS_NEGOTIATE (Outlook 2007 connecting to Exchange server) + 14690 Winamp Equalizer and playlist keeps always on top + 15841 Counter-Strike: Source (Steam) crashes when joining game + 16484 Dramatica Demo 4.0 file open dialog has the file name text box cursor in an incorrect position + 16503 Gears of War fails on startup + 17004 C&C Red Alert 3: black screen when Shadow Quality > Low + 17083 Counter-Strike: Source (Steam): background artefacts + 17798 Deus Ex: Invisible War crashed upon loading the main menu. + 18447 fr-minus-012 hangs without doing seemingly anything + 18592 ICQ 6.x fail to load + 19427 Radio Manager 1.4 (.NET 2.0 app) fails on startup + 19841 Wolfenstein (2009)(Steam): mouse cursor remains onscreen during FPS gameplay even after all menus are closed. + 20126 HuluDesktop 0.9.x fails to start + 21239 Left 4 Dead 2 (Steam) crashes trying to join a multiplayer game + 22999 Lord of the Rings online: keyboard input doesn't work after the window was restored + 23593 Supreme Commander 2 Demo (Steam) has some rendering artifacts + 23988 Alt + Tab woes on Ubuntu and Debian. + 24901 Sky Track: Crashes unexpectedly + 25036 Warhammer 40k: Dawn of War II (Steam) starts to load gives no error and stops + 25245 Gears of War fails on startup (ICustomDoc::SetUIHandler is a stub) + 25343 mstsc fails when using rdp 7 client protocol + 25479 Fussball Manager 11 crashes after showing the EA Logo + 25595 Source engine games don't even launch + 26016 Multiple Microsoft installers crash with heap corruption (StringTableXXX: binary compatible string table helps to reduce crash frequency)(XmlLite, XPSEP, IE7) + 26296 Future Pinball could not load more than two or three different table in a row + 26396 Roller Coaster Tycoon 3 has no audio without native quartz + 26487 Game menu items installed by steam don't work + 26717 Minitroid tech demo shows animation then stops + 27963 Multiple games fail to start due to unimplemented function USER32.dll.RegisterTouchWindow (Anomaly: Warzone Earth, Shadowrun Returns) + 27976 Software Astronav Crash + 27992 Pazera Free Audio Extractor - Shift problem + 27993 Pazera Free Audio Extractor - Directory problem + 28439 Panzer Corps: fonts barely readable + 28473 uTorrent 3.x hangs randomly + 28496 From Dust (Steam) crashes after loading screen + 29534 RIFF File Viewer crashes on choosing an item in a context menu + 29906 wine build broken on clang from trunk + 30450 Restarting a mission in Urban Chaos causes a crash + 30565 monogame drawing flickers + 30694 Fallout 3: Game of the Year Edition (Steam): game launcher crashes instantly + 30743 hydorah is unbelievable slow + 31362 Grand Theft Auto IV (Steam) fails to start, reportings 'DD3D20: reinstall the game and/or DirectX' + 32177 Left 4 Dead 2 (Steam): can't enable multicore rendering option + 32190 Forex Strategy Builder Professional(.NET app) fails to start + 32472 Sonic CD (Steam) crashes with invalid parameters received + 32511 BioShock 2 (Steam): Bioshock2.exe cannot be launched directly, please launch using Bioshock2Launcher.exe + 32595 Guild Wars 2: mini map is rendered incorrectly + 32784 Open Morrowind fails to start without native d3dx9 + 33114 Bioshock (Steam) crashes on exit + 33797 DigiCel FlipBook crashes when attempting to load the main UI. + 34100 Artemis Spaceship Bridge Simulator (demo version 1.66) crashes on startup + 34371 Batman: Arkham City launcher needs native dotnet20 + 34448 League Of Legends v3.11: crash before game start since last patch + 34659 Bioshock 2 (Steam): mouse can't be moved in main menu + 34670 ManiaPlanet thinks it's not connected to the internet + 34881 32-bit Python 3.3.2 fails to install + 34999 Huawei HedEx Lite V2.0 fails to start + 35079 DisplayFusion v5.1.1 (.NET 2.0 app) fails to run + 35177 A Vampyre Story crashes + 35335 MSVC 2013 C compiler (cl.exe) fails/crashes + 35389 64-bit Newsbin Pro 6.50 crashes on startup + 35468 Telepone (MTSP FIM) needs msvcr100.dll.__AdjustPointer + 36003 mshtml/htmldoc tests crash with WINEDEBUG=warn+heap + 36049 Marangatu (VB6 app) reports 'Run-time error -2147467259 (80004005)' when clicking 'about...' menu + 36067 Fallout 3: semi-random crashes + 36108 Chantelise crashes on start + 36118 kernel32/actctx tests have a couple leaks + 36119 valgrind shows leaks in ntdll/tests/file.c + 36120 valgrind shows a leak in d3d9/vertextdeclaration test + 36125 valgrind shows a leak in oleaut32/tests/olefont.c + 36140 Dungeons & Dragons Online crashes upon login (needs msvcp100.dll.?uncaught_exception@std@@YA_NXZ) + 36144 Airport Tycoon 2 demo needs msvcp70.dll.??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z + 36178 HearthStone fails to start (Failed to load asset PlayErrors32) + 36204 TrySim v5.0 demo has problem displaying the help window + 36206 Wine Not lietening on UDP Port 9998 while running odindiet.exe application + 36209 Sybase PowerDesigner 16.5 'pdshell16.exe' (.NET 4.x WPF app) wants non-blocking wait behaviour for ntdll.LdrLockLoaderLock (flag 0x02) + 36215 Inspect tool (Microsoft Active Accessibility inspector), part of Windows 7 SDK needs oleacc.dll.GetProcessHandleFromHwnd + 36227 Salammbo: invisible mouse pointer in the menus + 36228 Lotus Notes 8.x installer aborts with SAX parser exception (XSL pattern syntax error) + 36250 valgrind shows an uninitialized value in ddraw/tests/ddraw{1,2}.c + 36253 Add Nvidia gtx 750 support to the device list + 36277 valgrind shows a leak in fusion/tests/asm.c + 36293 valgrind shows some unitialized memory in msvcp60/tests/ios.c + 36294 valgrind shows some uninitialized memory in msvcp60/tests/string.c + 36296 valgrind shows a potential leak in msvcp90/tests/ios.c + 36307 valgrind shows a possible leak in netcfg/tests/netcfgx.c + 36311 valgrind shows some leaks in oledb32/tests/database.c + 36329 valgrind shows an invalid read in sccrun/tests/filesystem.c + 36358 valgrind shows some uninitialized memory used in dplayx/tests/dplayx.c + 36372 Inspect tool (Microsoft Active Accessibility inspector), part of Windows 7 SDK needs oleacc.dll.GetStateTextW + 36376 eRacer demo doesn't start, fails to create d3d object + 36387 Multiple Microsoft installers crash or hang with heap corruption (XmlLite, XPSEP, IE7) + 36409 valgrind shows a couple leaks in netcfgx/tests/netcfgx.c + 36444 ICQ 7.x crashes during post-install step + 36458 wine tries to run all 16 bit programs with dosbox + 36470 Inspect tool (Microsoft Active Accessibility inspector), part of Windows 7 SDK needs oleacc.dll.WindowFromAccessibleObject ---------------------------------------------------------------- -Changes since 1.7.17: +Changes since 1.7.18: -Akihiro Sagawa (4): - gdi32/tests: Make bmi structure const. - msvfw32/tests: Add tests for drawdib. - msvfw32: Drawdib doesn't support inverted DIBs. - msvfw32: Fix uncompressed bitmap size handling in DrawDibDraw. - -Alex Henrie (1): - bcrypt: Add stub for BCryptOpenAlgorithmProvider. - -Alexandre Julliard (8): - msvcrt: Update comments for non-exported functions. - dxguid: Remove some symbols that aren't exported in native. - ntdll: Don't wait for writes to complete in NtFlushVirtualMemory. - gdi32/tests: Don't fetch the bits into the DIB itself. - msvcp90: Fix the mbstowcs_s macro return value. - winegcc: Only pass large-address-aware option for i386 builds. - user32: Don't bother returning a value from the SetWindowRgn driver entry point. - comctl32/imagelist: Correctly resize the alpha flags when clearing the image list. - -Alistair Leslie-Hughes (4): - include: Add dvoice.h. - dpnet/tests: Use dxguid for tests. - dpnet: Improve error checking in Get/Set SP. - dpnet: Cleanup IDirectPlay8Address. - -Andrew Eikum (2): - user32: Allow setting horizontal extent even without WS_HSCROLL. - user32: Only update listbox horizontal scroll info if WS_HSCROLL is set. - -Andrew Sheldon (1): - wined3d: Add NVIDIA Geforce GTX 780 to supported device list. - -André Hentschel (9): - advapi32: Add stub for GetTraceLoggerHandle. - winemenubuilder: Use boolean return values in boolean functions. - wined3d: Add NVIDIA Geforce GTX 780 Ti to supported device list. - advapi32: Add stubs for GetTraceEnableFlags and GetTraceEnableLevel. - shell32: Use boolean return value in boolean function. - dbghelp: Use boolean return value in boolean function. - dbghelp: Make pdb_load_stream_name_table a void function. - winemenubuilder: Return FALSE on error when processing links and URLs. - wscript: Fix function types. +Akihiro Sagawa (1): + taskmgr: Show whether the process is running under WOW64. + +Alex Henrie (2): + gdi32: Simplify family_matches and face_matches. + gdi32/tests: Add MS Shell Dlg tests. + +Alexandre Julliard (16): + include: Add some more media type uuids. + ntdll: Determine the mapping type automatically from the WRITECOPY flag. + advpack: Remove unnecessary DllMain implementation. + dciman32: Remove unnecessary DllMain implementation. + msimg32: Remove unnecessary DllMain implementation. + wintrust: Remove unnecessary DllMain implementation. + d3d8: Remove unnecessary DllMain implementation. + d3d9: Remove unnecessary DllMain implementation. + d3d10: Remove unnecessary DllMain implementation. + d3d10_1: Remove unnecessary DllMain implementation. + bcrypt: Remove unnecessary DllMain implementation. + d2d1: Remove unnecessary DllMain implementation. + d3d10core: Remove unnecessary DllMain implementation. + winemapi: Remove unnecessary DllMain implementation. + sane.ds: Remove unnecessary DllMain implementation when SANE is missing. + wnaspi32: Remove unnecessary DllMain implementation on non-Linux. + +Alistair Leslie-Hughes (8): + dplayx: Initial msgtid variable (Valgrind). + netcfgx: Fix memory leak (valgrind). + dpnet/tests: Add IDirectPlay8Client tests. + dpnet: Implement IDirectPlay8Client Initialize. + dpnet: Store DPN_SP_CAPS as part of the object. + dpnet: Implement IDirectPlay8Client GetSPCaps. + dxguid: Include dplobby8.h. + dpnet: Implement IDirectPlay8LobbiedApplication Initialize. + +Aric Stewart (1): + user32: Pass WM_IME_CONTROL messages to the IME. + +Aurimas Fišeras (1): + po: Update Lithuanian translation. Austin English (1): - msxml3: Complain louder if libxslt was missing at compile time. + user32: Add a stub for RegisterTouchWindow. -Bruno Jesus (1): - dinput: Remove duplicated TRACE check. +Bruno Jesus (4): + ws2_32/tests: Test more the behavior of SO_REUSEADDR. + ws2_32: Avoid using WS_ prefix on unix sockaddr struct. + ws2_32: Return the correct error if SO_REUSEADDR is set in bind error. + ws2_32: Avoid magic numbers in shutdown() function. -Dmitry Timoshkov (3): - user32/tests: Add AppendMenu/ModifyMenu MF_POPUP tests. - user32: When converting from MF_ flags to MENUITEMINFO ignore MF_POPUP if id is not a menu. - ole32: Add support for VT_DISPATCH/VT_UNKNOWN to PropVariantClear and PropVariantCopy. +Christoph von Wittich (1): + comctl32/treeview: Notify the parent on a return key press. + +Damjan Jovanovic (1): + winex11: Fix a WM_DROPFILES memory ownership ambiguity. Erich Hoover (1): - user32: Reduce the minimum Set[System]Timer from 15 ms to 10 ms. + hhctrl.ocx: Fix an off by one mistake in searching for the node endpoint. + +François Gouget (1): + ddraw/tests: Fix compilation on systems that don't support nameless unions. -François Gouget (3): - ddraw: Remove WINAPI on static functions where not needed. - ole32/tests: Add a trailing '\n' to an ok() call. - dpnet/tests: Add a trailing '\n' to an ok() call. - -Frédéric Delanoy (2): - po: Update French translation. - Assorted spelling/grammar fixes. - -Gerald Pfeifer (1): - readme: Raise the minimum version of FreeBSD to 8.0. - -Hans Leidekker (6): - wbemprox: Return selected properties only from IWbemClassObject::GetNames. - wbemprox: Return selected properties only from IWbemClassObject::Next. - wbemprox: Implement Win32_Processor.CurrentClockSpeed. - wmiutils: Fix a memory leak (valgrind). - msi/tests: Fix a couple of memory leaks (valgrind). - msi: Avoid a crash when MIME entries point to non-existing extensions. - -Henri Verbeet (30): - d3d8/tests: Use a separate device for offscreen_test(). - d3d8/tests: Use a separate device for z_range_test(). - d3d8/tests: Use a separate device for fog_test(). - d3d8/tests: Use a separate device for clear_test(). - d3d8/tests: Use a separate device for lighting_test(). - d3d8/tests: Use a separate device for depth_clamp_test(). - d3d8/tests: Use a separate device for test_sanity(). - d3d8/tests: Handle the Windows 8 testbot results in zenable_test(). - d3d8/tests: Handle the Windows 8 testbot results in cnd_test(). - wined3d: Ignore invalid PCI vendor/device overrides. - wined3d: Simplify the driver version info lookup in init_driver_info(). - wined3d: Introduce a separate function to calculate the pitch for a given format and width. - ddraw: Validate the pitch for user memory surfaces against the unaligned minimum pitch. - wined3d: Implement support for per-stage texture stage constants. - wined3d: Get rid of surface_set_texture_target(). - ddraw: Implement D3DOP_STATELIGHT on top of IDirect3DDevice3_SetLightState(). - ddraw: Implement D3DOP_STATERENDER on top of IDirect3DDevice3_SetRenderState(). - ddraw: Cleanup the D3DOP_PROCESSVERTICES implementation a bit. - ddraw: Cleanup d3d_execute_buffer_QueryInterface(). - ddraw: Don't return an error when setting a 0 material handle in d3d_device3_SetLightState(). - ddraw/tests: Handle the Windows 8 testbot in test_primary_palette(). - ddraw: Disable lighting when a 0 material handle is set. - ddraw: Reject setting a 0 material handle in d3d_viewport_SetBackground(). - ddraw: Only output a warning when clearing a viewport without background material. - ddraw/tests: Add some basic material tests. - wined3d: Bump ps_1x_max_value. - wined3d: Fix a couple of string declarations. - ddraw: Cleanup DDRAW_dump_pixelformat(). - d3dcompiler: Make some string arrays const. - d3d9/tests: Merge vertexdeclaration.c into device.c. - -Huw D. M. Davies (4): - include: Add a few missing out-precision and clip-precision defines. - shlwapi/tests: Fix win8 test failures. - ole32/tests: Fix win8 test failures. - kernel32/tests: Fix test for win8 heap layout. - -Jacek Caban (17): - mshtml: Added IHTMLElementCollection::get__newEnum implementation. - mshtml: Added IHTMLElementCollection::get__newEnum tests. - mshtml: Fixed HTMLElementCollectionEnum_Next implementation for NULL pCeltFetched. - mshtml: Added IHTMLDOMChildrenCollection::get__newEnum implementation. - mshtml: Added IHTMLDOMChildrenCollection::get__newEnum tests. - vbscript: Return proper error on invalid argument in Chr. - mshtml: Added IConnectionPoint::EnumConnections implementation. - ieframe: Improved debug traces. - mshtml: Introduce a new debugstr_mshtml_guid helper for printing GUIDs. - mshtml: Renamed nsIDOMHTMLSelectElement::Remove to select_Remove to avoid conflict with nsIDOMElement. - mshtml: Removed invalid nsAString_InitDepend from HTMLTable_put_bgColor and fixed error handling. - jscript: Fixed uninitialized variable access in interp_end_finally. - iexplore: Mark iexplore.exe as large address aware. - vbscript: Forward Invoke call to InvokeEx. - msctf: Added ITfInputProcessorProfileMgr interface stub implementation. - vbscript: Allow property getters to take arguments. - vbscript: Added InvokeEx(DISPATCH_PROPERTYGET) implementation. - -Jérôme Gardou (1): - msi: Expand REG_EXPAND_SZ keys when resolving AppSearch entries. - -Ken Thomases (5): - winex11: Remove dead store into win_gravity in get_window_attributes(). - winemac: For GetKeyNameText(), use the hard-coded table in preference to the Mac keyboard layout. - winemac: Send WM_SIZING messages during resizing to let app alter the proposed size. - winemac: Disable moving or resizing windows when cursor clipping is in effect. - configure: Use the discovered LCMS2_LIBS when testing linking against lcms2. - -Matteo Bruni (7): - d3dx9/tests: Release the device when skipping some tests. - d3dx9/tests: Don't fail a test if volume textures are not supported. - d3dx9/tests: Fix expected values when mipmaps on cube maps are not supported. - d3dx9/tests: Take MaxVolumeExtent into account in some tests. - d3dcompiler: Remove a couple of noisy traces. - d3dcompiler: Pre/post increment/decrement operators are unary. - d3dcompiler: add_func_parameter is only used in hlsl.y. - -Nikolay Sivov (23): - gdiplus: Properly delete a DC. - services: Remove loop that's not really used anymore (Coverity). - atl: Move IUnknown methods to IOleClientSite. +Frédéric Delanoy (3): + usp10: Silence a noisy fixme in ScriptPlaceOpenType. + user32/tests: Constify some arrays. + oleacc: Add message context for object state string resources. + +Hans Leidekker (17): + wininet: Use a semicolon to delimit registered proxy servers. + wininet: Fix a couple of memory leaks. + wininet: Only parse proxy URLs taken from the environment. + wininet: Handle secure proxy connections inside the main loop. + wininet: Add support for retrieving the proxy automatic configuration URL on Mac OS X. + wbemprox: Use a separate index variable to build the safearray in get_properties. + wbemprox: No longer prefer native. + wmiutils: Always null-terminate the server string in build_server (valgrind). + fusion: Fix a couple of memory leaks (valgrind). + wininet: Fix a memory leak (valgrind). + winhttp: Fix a couple of memory leaks (valgrind). + include: Add missing proxy definitions. + jsproxy: New dll. + jsproxy: Implement InternetInitializeAutoProxyDll and InternetDeinitializeAutoProxyDll. + jsproxy: Implement InternetGetProxyInfo. + winhttp: Reimplement WinHttpGetProxyForUrl on top of jsproxy. + winhttp: Add support for retrieving the proxy automatic configuration URL on Mac OS X. + +Henri Verbeet (26): + gdi32: Use FIELD_OFFSET to calculate the structure size in GetRegionData(). + d2d1: Add the ID2D1Resource interface. + d2d1: Add the ID2D1StrokeStyle interface. + d2d1: Add the ID2D1TessellationSink interface. + d2d1: Add the ID2D1Geometry interface. + d2d1: Add the ID2D1RectangleGeometry interface. + d2d1: Add the ID2D1RoundedRectangleGeometry interface. + d2d1: Add the ID2D1EllipseGeometry interface. + d2d1: Add the ID2D1GeometryGroup interface. + d2d1: Add the ID2D1TransformedGeometry interface. + d2d1: Add the ID2D1GeometrySink interface. + d2d1: Add the ID2D1PathGeometry interface. + d2d1: Add the ID2D1DrawingStateBlock interface. + d2d1: Add the ID2D1Image interface. + d2d1: Add the ID2D1Bitmap interface. + d2d1: Add the ID2D1Brush interface. + d2d1: Get rid of "optional" attributes. + d2d1: Add the ID2D1BitmapBrush interface. + d2d1: Add the ID2D1SolidColorBrush interface. + d2d1: Add the ID2D1GradientStopCollection interface. + d2d1: Add the ID2D1LinearGradientBrush interface. + d2d1: Add the ID2D1RadialGradientBrush interface. + d2d1: Add the ID2D1Layer interface. + d2d1: Add the ID2D1Mesh interface. + d2d1: Add the ID2D1RenderTarget interface. + d2d1: Add the ID2D1BitmapRenderTarget interface. + +Huw D. M. Davies (14): + usp10/tests: Mark two failing Hebrew strings as broken under win8. + wintrust/tests: Fix failing test on win8. + include: Add a couple of new win 8 access rights. + advapi32/tests: Fix access rights tests in win 8. + gdi32: In a Hebrew locale the last char of a symbol font is reported as 0xf896 rather than 0xf0ff. + msxml3/tests: Don't overwrite a variant which is later used in a QueryInterface call. + imagehlp/tests: Don't assume the certificate chain is originally empty. + msxml3/tests: Don't test the values of alignment holes in the variant structure. + msxml3/tests: Fix a failing test on win 8. + msxml3/tests: Don't test the variant payload for the VT_EMPTY type. + msxml3/tests: Fix test on win 8. + shell32/tests: Fix the tests when run from the top directory. + shell32/tests: Fix tests on win 8. + wininet/tests: Don't test GetLastError() on success. + +Jacek Caban (20): + mshtml: Use debugstr_mshtml_guid in a few more places. + mshtml: Use debugmsg_mshtml_guid in a few more places. + mshtml: Forward IHTMLImageElementFactory IDispatch functions to IDispatchEx implementation. + ntdll: Always use MAP_SHARED in NtMapViewOfSection. + kernel32/tests: Added more shared memory tests, exposing MAP_PRIVATE mapping for read only mapping problem. + mshtml: Use debugmsg_mshtml_guid in a few more places. + mshtml: Added IDispatchEx support to HTMLStyleSheetRulesCollection object. + mshtml: Fixed leaks in IHTMLStyleSheet::Release and IHTMLStyleSheetsCollection::Release implementations. + mshtml: Use debugmsg_mshtml_guid in a few more places. + mshtml: Added IDispatchEx support to HTMLOptionElementFactory object. + mshtml: Forward IHTMLScreen's IDispatch methods to IDispatchEx. + ntdll: Use MAP_PRIVATE for copy on write mappings. + mshtml: Use debugstr_mshtml_guid in a few more places. + oleaut32: Added debugstr_variant helper for better debug traces. + wmvcore: Added IWMReader interface stub implementation. + oleaut32: Use debugstr_variant in variant.c where appropriate. + msctf: Added IEnumTfInputProcessorProfiles interface stub implementation. + ieframe/tests: Fixed tests on IE11. + mshtml/tests: Fixed a few more IE11 test failures. + urlmon: Avoid ProtocolHandler being destroyed in Terminate call. + +Joachim Priesner (1): + wined3d: Clear active lights when cleaning up a D3D stateblock. + +Ken Thomases (4): + winex11: Consolidate duplicate code from glxdrv_wglSetPixelFormat() and X11DRV_wglSetPixelFormatWINE(). + winemac: Don't bring owned windows to the front when they're clicked. + winemac: Fix a memory leak if posting WM_DROPFILES fails. + winemac: Add the ability to disable high-resolution scrolling. + +Lauri Kenttä (1): + po: Update Finnish translation. + +Marcus Meissner (1): + ver.dll16: filelen is an in/out parameter (Coverity). + +Mark Harmstone (1): + setupapi: Add CM_Get_DevNode_Registry_Property wrapper around CM_Get_DevNode_Registry_Property_Ex. + +Martin Storsjo (2): + ntdll: Don't write uninitialized bytes at the end of filenames. + ntdll: Align FILE_*_DIRECTORY_INFORMATION structs to 8 bytes. + +Michael Stefaniuc (1): + dmusic: Move a struct to the .c file it is used. + +Nikolay Sivov (30): + ntdll: Fix a 'tlbid' string value leak (Valgrind). + msxml3/tests: Fix a BSTR leak (Valgrind). + msxml3/tests: Null-terminate a string before A->W conversion (Valgrind). + msxml3/tests: Fix some stream instance leaks (Valgrind). + msxml3: Fix a string leak in msxml6 mode (Valgrind). + oledb32: Fix IDBInitialize instance leak on error path (Valgrind). + oledb32/tests: Simplify IMalloc handling. + dmime: Fix handling of NULL out pointer in QI. + scrrun: Fix use-after-free of version info (Valgrind). + scrrun: Fix invalid read/write access to path buffer (Valgrind). + msxml3: Fix some string leaks (Valgrind). + oleaut32/tests: Fixed a couple of string leaks (Valgrind). + ntdll/tests: Fix some string leaks (Valgrind). + setupapi: Implement a binary compatible string table. + setupapi: Make default context structure layout compatible. + comctl32/listview: Fix custom draw stage sequence. + comctl32/treeview: Added a test for NM_RETURN. + msxml3: Support 'any attribute' selection [@*] in XSLPattern predicates. + msxml3: Implement empty tagname case of getElementsByTagName() for document. + xmllite: Support external IMalloc for writer. + xmllite/writer: Implement SetOutput() for writer. + xmllite/writer: Implement GetProperty(). + msxml3: Remove no longer used helper. + xmllite/reader: Create reader input with same IMalloc as reader. + xmllite/writer: Initial support of output buffer creation. + xmllite/writer: Initial support for starting a document. + xmllite/writer: Implement Flush() method. + ntdll: Implement non-blocking mode for LdrLockLoaderLock(). po: Update Russian translation. - comctl32/treeview: Restore hdc before CDDS_ITEMPOSTPAINT. - mshtml/tests: Remove old system version check that doesn't work anymore. - netprofm/tests: Fix a test failure on Win7/Win2008 systems. - shlwapi: Implement SHRegCreateUSKeyA(). - oleaut32: Properly free record name (Valgrind). - uxtheme/tests: No need to check last error when error code is explicitly returned. - advapi32/tests: Fix some leaks in tests (Valgrind). - comctl32/tests: Initialize text buffer pointer (Valgrind). - crypt32/tests: Fix some leaks (Valgrind). - gdi32/dibdrv: Fix a clipped_rects leak (Valgrind). - dwrite/tests: Fix a font instance leak (Valgrind). - gdiplus/tests: Fix some leaks when running with Wine (Valgrind). - gdiplus: Simplify GdipResetImageAttributes(), fix remap table leak (Valgrind). - msxml3: Fix a leak when trying to add to readonly collection (Valgrind). - msxml3/tests: Fix enumerator instance leak (Valgrind). - msxml3: Fixed attribute value string leak (Valgrind). - msxml3: Fix XPath query result leak (Valgrind). - msxml3/tests: Fixed attributes map leak (Valgrind). - oleaut32: Always free TLIBATTR in LoadRegTypeLib() (Valgrind). - -Patrick Rudolph (4): - user32: Check for valid cbSize in GetMonitorInfoA. - user32/tests: Add tests for valid cbSize in GetMonitorInfoA. - user32: Check for valid cbSize in GetMonitorInfoW. - user32/tests: Add tests for valid cbSize in GetMonitorInfoW. - -Piotr Caban (28): - msvcrt: Don't raise exception in _invalid_parameter. - msvcrt: Remove _set_invalid_parameter_handler calls from msvcrt tests. - msvcrt: Remove no longer needed exports. - msvcrt: Use win_skip when function is not exported. - msvcrt/tests: Fix _popen test failures when path contains spaces. - msvcr80: Add type_info::name partial implementation. - msvcrt: Don't use default process heap. - include: Don't redefine LIBID_Accessibility in oleacc.idl. - oleacc: Add LresultFromObject implementation. - oleacc: Add ObjectFromLresult implementation. - oleacc: Add initial LresultFromObject tests. - oleacc: Add AccessibleObjectFromWindow implementation. - oleacc: Add AccessibleObjectFromWindow tests. - msvcrt: Add _wcsupr_l implementation. - msvcrt: Handle seh exception rethrowing in catch_function_nested_handler. - msvcrt: Handle seh exceptions rethrowing in cxx_frame_handler. - oleaut32: Handle VariantCopy errors in VariantChangeTypeEx. - oleacc: Add default client accessible object stub. - oleacc: Add Client_get_accChildCount implementation. - oleacc: Add Client_get_accName implementation. - oleacc: Add Client_get_accValue implementation. - oleacc: Add Client_get_accDescription implementation. - oleacc: Add Client_get_accRole implementation. - oleacc: Add Client_get_accHelp implementation. - oleacc: Add Client_get_accDefaultAction implementation. - oleacc: Add Client_get_accHelpTopic implementation. - oleacc: Add Client_get_accRole implementaiton. - oleacc: Add tests for default client accessible object. + xmllite/writer: Fix Flush() behaviour on partial writes. + +Piotr Caban (26): + oleacc: Add GetProcessHandleFromHwnd implementation. + msvcr80: Update exceptions RTTI data to reflect it's part of std namespace. + msvcrt: Add __ExceptionPtr* functions implementation. + msvcrt: Fix ioinfo structure size. + msvcp70: Add basic_fstream(const char*, int) constructor implementation. + msvcr80: Add __AdjustPointer implementation. + msvcp60: Fix uninitialized variable access in basic_string::_Tidy. + msvcp: Fix global_locale leak. + msvcp/tests: Force dll cleanup code to get executed (for valgrind). + oleacc: Add default window accessible object stub. + oleacc: Add Client_accHitTest implementation. + oleacc: Add Client_get_accParent implementation. + oleacc: Add Client_accLocation implementation. + msvcrt: Don't crash on NULL struct _tm in asctime. + user32: Fix LoadStringA behavior on 1-character long buffer. + include: Add STATE_SYSTEM_* definition to oleacc.idl. + oleacc: Add GetStateText implementation. + oleacc: Modify output buffer on incorrect role in GetRoleTextA. + oleacc: Don't return partial data in GetRoleTextA if buffer is too small. + oleacc: Disable tests on old oleacc. + oleacc: Add IOleWindow interface stub to default client accessible object. + oleacc: Add IOleWindow interface stub to default window accessible object. + oleacc: Add IOleWindow::GetWindow implementation in default client accessible object. + oleacc: Add WindowFromAccessibleObject implementation. + oleacc: Add IID_IAccessible, IID_IAccessibleHandler and LIBID_Accessibility exports. + oleacc: Prepare CreateStdAccessibleObject to support class specific accessibility objects. Qian Hong (2): - wscript: Don't fail silently for unsupported switches. - include: Added some ATL function prototypes. + include: Added atlcom.h. + atl: Include atlcom.h for ATL_PROPMAP_ENTRY. -Stefan Dösinger (7): - ddraw: Only ddraw7 disallows SetPalette on sublevels. - ddraw/tests: Add a test for mipmap palettes. - ddraw/tests: Test P8 to RGB blits. - ddraw/tests: Skip the ddraw7 primary palette test if 8 bpp mode doesn't work. - ddraw/tests: Add a test for getdc palette handling. - ddraw/tests: Test mipmap GetDC behavior. - wined3d: Remove broken gdi palette code. - -Thomas Faber (2): - usp10: Do not write to last script item if buffer space is insufficient. - qmgr: Register WINE_REGISTRY resource in DllRegisterServer instead of a nonexistent inf file. - -Victor Martinez Calvo (2): - dbghelp: Fix invalid assignment in symt_fill_sym_info. - msvcrt: Avoid null dereference in TRACE in MSVCRT__wfreopen. - -Vincent Povirk (14): - user32/tests: Add test calling EndMenu from WM_ENTERMENULOOP. - user32/tests: Add a message test for popup menus on windows that have capture. - user32/tests: Our popup test window loses capture to itself. - shell32: Respect CMIC_MASK_NO_CONSOLE in ShellLink InvokeCommand. - shell32: Pass MASK_NO_CONSOLE through to context menu handlers. - shell32: Use CREATE_NEW_CONSOLE when SEE_MASK_NOCONSOLE is omitted. - shell32/tests: Use SEE_MASK_NO_CONSOLE with ShellExecuteExA. - start: Don't use SEE_MASK_NO_CONSOLE. - appwiz.cpl: Don't use SEE_MASK_NO_CONSOLE to run installers. - ole32/tests: Add tests for storage locking. - ole32/tests: Add tests for sharing storages in transacted mode. - ole32: Reserve the range lock sector. - ole32: Initial storage file locking implementation. - gdiplus/tests: Fix image leak in graphics test. +Shuai Meng (2): + vbscript: Fixed CBool handling. + vbscript: Implemented CByte. + +Stefan Dösinger (14): + gdi32/tests: Test RGBQUAD.rgbReserved in SetDIBColorTable. + wined3d: Copy the DIB to sysmem when PIN_SYSMEM is set. + wined3d: Store RGBQUADs in palettes. + ddraw: Alpha palettes can only be attached to textures. + ddraw/tests: Test palette alpha behavior. + wined3d: Implement DDBLTFX_MIRRORUPDOWN for DXT2. + wined3d: Remove wined3d_surface_get_palette. + wined3d: Always store the palette index in the alpha component. + wined3d: Remove WINED3D_CT_PALETTED_CK. + wined3d: Always provide P8 GL texture information. + wined3d: Use GL_ALPHA8 for WINED3DFMT_P8_UINT surfaces. + wined3d: Don't update the color table on palette changes. + wined3d: Move get_dc palette updates to ddraw. + wined3d: Fix indentation in d3dfmt_p8_init_palette. + +Victor Martinez Calvo (4): + ieframe: Compare against the correct IID in ShellUIHelper. + quartz: Check correct dwReserved item before tracing. + msdmo: Actually copy output string in IEnumDMO_fnNext. + shlwapi: Check correct attributes in PathRelativePath. + +Vijay Kiran Kamuju (1): + usp10: Show fixme once in ScriptShapeOpenType. + +Vincent Povirk (10): + ole32: Use symbolic names for range lock offsets. + ole32: Use share modes when creating storage files. + ole32: Map STGM_SHARE_EXCLUSIVE to FILE_SHARE_READ. + ole32: Accept STGM_TRANSACTED with no share mode specified. + ole32: Initial implementation of transaction locking. + shell32/tests: Use SW_HIDE with ShellExecuteA in tests. + ole32: Warn in cases where we might corrupt storage files. + ole32: Use real blocking operations for storage locking when possible. + server: Try to get a read lock if we can't get a write lock. + ole32: STGM_NOSNAPSHOT implies deny write. Zhenbo Li (2): - mshtml: Added IHTMLElement3::contentEditable property implemention. - mshtml: Added IHTMLTable::width property implementation. + mshtml: Removed invalid nsAString_InitDepend from HTMLTableRow_put_bgColor and fixed error handling. + mshtml: Added IHTMLSelectElement::remove method implementation. -- Alexandre Julliard diff -Nru wine1.7-1.7.18/AUTHORS wine1.7-1.7.19/AUTHORS --- wine1.7-1.7.18/AUTHORS 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/AUTHORS 2014-05-16 19:06:48.000000000 +0000 @@ -637,6 +637,7 @@ Jimmy Tirtawangsa Jim Peterson Jiuming Luo +Joachim Priesner Jochen Hoenicke Jochen Karrer Jody Goldberg @@ -852,6 +853,7 @@ Mariusz Pluciński Mark Dufour Mark G. Adams +Mark Harmstone Marko Kreen Marko Nikolic Markus Amsler diff -Nru wine1.7-1.7.18/configure wine1.7-1.7.19/configure --- wine1.7-1.7.18/configure 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/configure 2014-05-16 19:06:48.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Wine 1.7.18. +# Generated by GNU Autoconf 2.69 for Wine 1.7.19. # # Report bugs to . # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='Wine' PACKAGE_TARNAME='wine' -PACKAGE_VERSION='1.7.18' -PACKAGE_STRING='Wine 1.7.18' +PACKAGE_VERSION='1.7.19' +PACKAGE_STRING='Wine 1.7.19' PACKAGE_BUGREPORT='wine-devel@winehq.org' PACKAGE_URL='http://www.winehq.org' @@ -1063,6 +1063,7 @@ enable_itss enable_joy_cpl enable_jscript +enable_jsproxy enable_kernel32 enable_ktmw32 enable_loadperf @@ -1973,7 +1974,7 @@ # 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 1.7.18 to adapt to many kinds of systems. +\`configure' configures Wine 1.7.19 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2042,7 +2043,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Wine 1.7.18:";; + short | recursive ) echo "Configuration of Wine 1.7.19:";; esac cat <<\_ACEOF @@ -2237,7 +2238,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Wine configure 1.7.18 +Wine configure 1.7.19 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2755,7 +2756,7 @@ 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 1.7.18, which was +It was created by Wine $as_me 1.7.19, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -16937,6 +16938,7 @@ wine_fn_config_dll joy.cpl enable_joy_cpl po wine_fn_config_dll jscript enable_jscript clean,po wine_fn_config_test dlls/jscript/tests jscript_test +wine_fn_config_dll jsproxy enable_jsproxy implib wine_fn_config_dll kernel32 enable_kernel32 clean,implib,mc wine_fn_config_test dlls/kernel32/tests kernel32_test wine_fn_config_dll keyboard.drv16 enable_win16 @@ -18082,7 +18084,7 @@ # 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 1.7.18, which was +This file was extended by Wine $as_me 1.7.19, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18153,7 +18155,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Wine config.status 1.7.18 +Wine config.status 1.7.19 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru wine1.7-1.7.18/configure.ac wine1.7-1.7.19/configure.ac --- wine1.7-1.7.18/configure.ac 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/configure.ac 2014-05-16 19:06:48.000000000 +0000 @@ -2914,6 +2914,7 @@ WINE_CONFIG_DLL(joy.cpl,,[po]) WINE_CONFIG_DLL(jscript,,[clean,po]) WINE_CONFIG_TEST(dlls/jscript/tests) +WINE_CONFIG_DLL(jsproxy,,[implib]) WINE_CONFIG_DLL(kernel32,,[clean,implib,mc]) WINE_CONFIG_TEST(dlls/kernel32/tests) WINE_CONFIG_DLL(keyboard.drv16,enable_win16) diff -Nru wine1.7-1.7.18/debian/changelog wine1.7-1.7.19/debian/changelog --- wine1.7-1.7.18/debian/changelog 2014-05-07 12:55:16.000000000 +0000 +++ wine1.7-1.7.19/debian/changelog 2014-05-19 19:19:19.000000000 +0000 @@ -1,3 +1,25 @@ +wine1.7 (1:1.7.19-0ubuntu2~trusty1) trusty; urgency=medium + + * New upstream release + - New JSProxy DLL for automatic proxy configuration. + - More OLE Accessible Object support. + - Improvements to the XML writer. + - Fixes for various memory issues found by Valgrind. + - Initial headers for Direct2D support. + - Various bug fixes. + * Downgrade winbind from Recommends to Suggests (LP: #302148) + - This should be done in wine1.6 for Utopic+ as well. + * Import changes from wine1.6 package in Trusty: + * Ensure libOpenCl.so is present at build time (LP: #1297315) + - build-depend on ocl-icd-libopencl1 + - add ocl-icd-libopencl1 to recommends + * Recommend new p11-kit-modules package on i386/amd64 (LP: #1027299) + * Move wine package from section otherosfs to metapackages + - This will cause wine1.6 to be "manually installed" when someone installs + the wine package. + + -- Scott Ritchie Mon, 19 May 2014 11:59:35 -0700 + wine1.7 (1:1.7.18-0ubuntu1~trusty1) trusty; urgency=low * No-change backport to trusty diff -Nru wine1.7-1.7.18/debian/control wine1.7-1.7.19/debian/control --- wine1.7-1.7.18/debian/control 2014-03-26 08:49:18.000000000 +0000 +++ wine1.7-1.7.19/debian/control 2014-05-19 19:19:30.000000000 +0000 @@ -51,6 +51,7 @@ libxt-dev, libxxf86vm-dev, linux-kernel-headers, + ocl-icd-libopencl1, opencl-headers, oss4-dev, prelink, @@ -92,6 +93,8 @@ libxslt1.1, libxt6, libxxf86vm1, + ocl-icd-libopencl1, + p11-kit-modules, unixodbc, wine-gecko2.24, wine-mono4.5.2 @@ -142,6 +145,8 @@ libxslt1.1, libxt6, libxxf86vm1, + ocl-icd-libopencl1, + p11-kit-modules, unixodbc, wine-gecko2.24, wine-mono4.5.2 @@ -178,10 +183,9 @@ fonts-horai-umefont, fonts-unfonts-core, ttf-wqy-microhei, - winbind, winetricks, xdg-utils -Suggests: dosbox:any +Suggests: dosbox:any, winbind Conflicts: wine1.0, wine1.2, wine1.3, wine1.4, wine1.5, wine1.6 Replaces: wine, wine1.0, wine1.2, wine1.3, wine1.4, wine1.5, wine1.6 Provides: wine @@ -236,7 +240,7 @@ Package: wine Architecture: i386 amd64 Multi-Arch: foreign -Section: otherosfs +Section: metapackages Pre-Depends: ${misc:Pre-Depends} Depends: wine1.6 | wine1.7 Priority: extra diff -Nru wine1.7-1.7.18/dlls/advapi32/tests/security.c wine1.7-1.7.19/dlls/advapi32/tests/security.c --- wine1.7-1.7.18/dlls/advapi32/tests/security.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/advapi32/tests/security.c 2014-05-16 19:06:48.000000000 +0000 @@ -5073,12 +5073,16 @@ { case GENERIC_READ: case GENERIC_EXECUTE: - ok(access == map[i].mapped || access == (map[i].mapped | THREAD_QUERY_LIMITED_INFORMATION) /* Vista+ */, + ok(access == map[i].mapped || + access == (map[i].mapped | THREAD_QUERY_LIMITED_INFORMATION) /* Vista+ */ || + access == (map[i].mapped | THREAD_QUERY_LIMITED_INFORMATION | THREAD_RESUME) /* win8 */, "%d: expected %#x, got %#x\n", i, map[i].mapped, access); break; case GENERIC_WRITE: todo_wine - ok(access == map[i].mapped || access == (map[i].mapped | THREAD_SET_LIMITED_INFORMATION) /* Vista+ */, + ok(access == map[i].mapped || + access == (map[i].mapped | THREAD_SET_LIMITED_INFORMATION) /* Vista+ */ || + access == (map[i].mapped | THREAD_SET_LIMITED_INFORMATION | THREAD_RESUME) /* win8 */, "%d: expected %#x, got %#x\n", i, map[i].mapped, access); break; case GENERIC_ALL: @@ -5144,7 +5148,9 @@ "%d: expected %#x, got %#x\n", i, map[i].mapped, access); break; case GENERIC_WRITE: - ok(access == map[i].mapped || access == (map[i].mapped | PROCESS_TERMINATE) /* before Vista */, + ok(access == map[i].mapped || + access == (map[i].mapped | PROCESS_TERMINATE) /* before Vista */ || + access == (map[i].mapped | PROCESS_SET_LIMITED_INFORMATION) /* win8 */, "%d: expected %#x, got %#x\n", i, map[i].mapped, access); break; case GENERIC_EXECUTE: diff -Nru wine1.7-1.7.18/dlls/advpack/advpack.c wine1.7-1.7.19/dlls/advpack/advpack.c --- wine1.7-1.7.18/dlls/advpack/advpack.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/advpack/advpack.c 2014-05-16 19:06:48.000000000 +0000 @@ -208,19 +208,6 @@ } /*********************************************************************** - * DllMain (ADVPACK.@) - */ -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) -{ - TRACE("(%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved); - - if (fdwReason == DLL_PROCESS_ATTACH) - DisableThreadLibraryCalls(hinstDLL); - - return TRUE; -} - -/*********************************************************************** * IsNTAdmin (ADVPACK.@) * * Checks if the user has admin privileges. diff -Nru wine1.7-1.7.18/dlls/atl/atl.c wine1.7-1.7.19/dlls/atl/atl.c --- wine1.7-1.7.18/dlls/atl/atl.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/atl/atl.c 2014-05-16 19:06:48.000000000 +0000 @@ -20,6 +20,7 @@ #define COBJMACROS #include "atlbase.h" +#include "atlcom.h" #include "wine/debug.h" #include "wine/unicode.h" @@ -249,18 +250,6 @@ return rc; } -/* FIXME: should be in a header file */ -typedef struct ATL_PROPMAP_ENTRY -{ - LPCOLESTR szDesc; - DISPID dispid; - const CLSID* pclsidPropPage; - const IID* piidDispatch; - DWORD dwOffsetData; - DWORD dwSizeData; - VARTYPE vt; -} ATL_PROPMAP_ENTRY; - /*********************************************************************** * AtlIPersistStreamInit_Load [atl100.@] */ diff -Nru wine1.7-1.7.18/dlls/bcrypt/bcrypt_main.c wine1.7-1.7.19/dlls/bcrypt/bcrypt_main.c --- wine1.7-1.7.18/dlls/bcrypt/bcrypt_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/bcrypt/bcrypt_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -31,20 +31,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(bcrypt); -BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv) -{ - TRACE("fdwReason %u\n", fdwReason); - - switch(fdwReason) - { - case DLL_PROCESS_ATTACH: - DisableThreadLibraryCalls(hInstDLL); - break; - } - - return TRUE; -} - NTSTATUS WINAPI BCryptEnumAlgorithms(ULONG dwAlgOperations, ULONG *pAlgCount, BCRYPT_ALGORITHM_IDENTIFIER **ppAlgList, ULONG dwFlags) { diff -Nru wine1.7-1.7.18/dlls/cfgmgr32/cfgmgr32.spec wine1.7-1.7.19/dlls/cfgmgr32/cfgmgr32.spec --- wine1.7-1.7.18/dlls/cfgmgr32/cfgmgr32.spec 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/cfgmgr32/cfgmgr32.spec 2014-05-16 19:06:48.000000000 +0000 @@ -56,8 +56,8 @@ @ stdcall CM_Get_Class_Registry_PropertyW(ptr long ptr ptr long long ptr) setupapi.CM_Get_Class_Registry_PropertyW @ stub CM_Get_Depth @ stub CM_Get_Depth_Ex -@ stub CM_Get_DevNode_Registry_PropertyA -@ stub CM_Get_DevNode_Registry_PropertyW +@ stdcall CM_Get_DevNode_Registry_PropertyA(long long ptr ptr long long) setupapi.CM_Get_DevNode_Registry_PropertyA +@ stdcall CM_Get_DevNode_Registry_PropertyW(long long ptr ptr long long) setupapi.CM_Get_DevNode_Registry_PropertyW @ stdcall CM_Get_DevNode_Registry_Property_ExA(long long ptr ptr ptr long ptr) setupapi.CM_Get_DevNode_Registry_Property_ExA @ stdcall CM_Get_DevNode_Registry_Property_ExW(long long ptr ptr ptr long ptr) setupapi.CM_Get_DevNode_Registry_Property_ExW @ stub CM_Get_DevNode_Status diff -Nru wine1.7-1.7.18/dlls/comctl32/listview.c wine1.7-1.7.19/dlls/comctl32/listview.c --- wine1.7-1.7.18/dlls/comctl32/listview.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/comctl32/listview.c 2014-05-16 19:06:48.000000000 +0000 @@ -6,7 +6,7 @@ * Copyright 2000 Jason Mawdsley * Copyright 2001 CodeWeavers Inc. * Copyright 2002 Dimitrie O. Paun - * Copyright 2009-2013 Nikolay Sivov + * Copyright 2009-2014 Nikolay Sivov * Copyright 2009 Owen Rudge for CodeWeavers * Copyright 2012-2013 Daniel Jelinski * @@ -331,7 +331,6 @@ WCHAR szSearchParam[ MAX_PATH ]; /* painting */ - DWORD cditemmode; /* Keep the custom draw flags for an item/row */ BOOL bIsDrawing; /* Drawing in progress */ INT nMeasureItemHeight; /* WM_MEASUREITEM result */ BOOL bRedraw; /* WM_SETREDRAW switch */ @@ -1052,10 +1051,7 @@ static void prepaint_setup (const LISTVIEW_INFO *infoPtr, HDC hdc, NMLVCUSTOMDRAW *lpnmlvcd, BOOL SubItem) { - if (lpnmlvcd->clrTextBk == CLR_DEFAULT) - lpnmlvcd->clrTextBk = comctl32_color.clrWindow; - if (lpnmlvcd->clrText == CLR_DEFAULT) - lpnmlvcd->clrText = comctl32_color.clrWindowText; + COLORREF backcolor, textcolor; /* apparently, for selected items, we have to override the returned values */ if (!SubItem) @@ -1075,15 +1071,23 @@ } } + backcolor = lpnmlvcd->clrTextBk; + textcolor = lpnmlvcd->clrText; + + if (backcolor == CLR_DEFAULT) + backcolor = comctl32_color.clrWindow; + if (textcolor == CLR_DEFAULT) + textcolor = comctl32_color.clrWindowText; + /* Set the text attributes */ - if (lpnmlvcd->clrTextBk != CLR_NONE) + if (backcolor != CLR_NONE) { SetBkMode(hdc, OPAQUE); - SetBkColor(hdc,lpnmlvcd->clrTextBk); + SetBkColor(hdc, backcolor); } else SetBkMode(hdc, TRANSPARENT); - SetTextColor(hdc, lpnmlvcd->clrText); + SetTextColor(hdc, textcolor); } static inline DWORD notify_postpaint (const LISTVIEW_INFO *infoPtr, NMLVCUSTOMDRAW *lpnmlvcd) @@ -4543,87 +4547,28 @@ return FillRect(hdc, lprcBox, infoPtr->hBkBrush); } -/*** - * DESCRIPTION: - * Draws an item. - * - * PARAMETER(S): - * [I] infoPtr : valid pointer to the listview structure - * [I] hdc : device context handle - * [I] nItem : item index - * [I] nSubItem : subitem index - * [I] pos : item position in client coordinates - * [I] cdmode : custom draw mode - * - * RETURN: - * Success: TRUE - * Failure: FALSE - */ -static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, INT nSubItem, POINT pos, DWORD cdmode) +/* Draw main item or subitem */ +static void LISTVIEW_DrawItemPart(LISTVIEW_INFO *infoPtr, LVITEMW *item, const NMLVCUSTOMDRAW *nmlvcd, const POINT *pos) { - UINT uFormat; - WCHAR szDispText[DISP_TEXT_SIZE] = { '\0' }; - static WCHAR szCallback[] = { '(', 'c', 'a', 'l', 'l', 'b', 'a', 'c', 'k', ')', 0 }; - DWORD cdsubitemmode = CDRF_DODEFAULT; - LPRECT lprcFocus; - RECT rcSelect, rcBox, rcIcon, rcLabel, rcStateIcon; - NMLVCUSTOMDRAW nmlvcd; + RECT rcSelect, rcLabel, rcBox, rcStateIcon, rcIcon; HIMAGELIST himl; - LVITEMW lvItem; - - TRACE("(hdc=%p, nItem=%d, nSubItem=%d, pos=%s)\n", hdc, nItem, nSubItem, wine_dbgstr_point(&pos)); - - /* get information needed for drawing the item */ - lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM; - if (nSubItem == 0) lvItem.mask |= LVIF_STATE; - if (infoPtr->uView == LV_VIEW_DETAILS) lvItem.mask |= LVIF_INDENT; - lvItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED | LVIS_STATEIMAGEMASK | LVIS_CUT | LVIS_OVERLAYMASK; - lvItem.iItem = nItem; - lvItem.iSubItem = nSubItem; - lvItem.state = 0; - lvItem.lParam = 0; - lvItem.cchTextMax = DISP_TEXT_SIZE; - lvItem.pszText = szDispText; - if (!LISTVIEW_GetItemW(infoPtr, &lvItem)) return FALSE; - if (nSubItem > 0 && (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT)) - lvItem.state = LISTVIEW_GetItemState(infoPtr, nItem, LVIS_SELECTED); - if (lvItem.pszText == LPSTR_TEXTCALLBACKW) lvItem.pszText = szCallback; - TRACE(" lvItem=%s\n", debuglvitem_t(&lvItem, TRUE)); + UINT format; + RECT *focus; /* now check if we need to update the focus rectangle */ - lprcFocus = infoPtr->bFocus && (lvItem.state & LVIS_FOCUSED) ? &infoPtr->rcFocus : 0; + focus = infoPtr->bFocus && (item->state & LVIS_FOCUSED) ? &infoPtr->rcFocus : 0; + if (!focus) item->state &= ~LVIS_FOCUSED; - if (!lprcFocus) lvItem.state &= ~LVIS_FOCUSED; - LISTVIEW_GetItemMetrics(infoPtr, &lvItem, &rcBox, &rcSelect, &rcIcon, &rcStateIcon, &rcLabel); - OffsetRect(&rcBox, pos.x, pos.y); - OffsetRect(&rcSelect, pos.x, pos.y); - OffsetRect(&rcIcon, pos.x, pos.y); - OffsetRect(&rcStateIcon, pos.x, pos.y); - OffsetRect(&rcLabel, pos.x, pos.y); + LISTVIEW_GetItemMetrics(infoPtr, item, &rcBox, &rcSelect, &rcIcon, &rcStateIcon, &rcLabel); + OffsetRect(&rcBox, pos->x, pos->y); + OffsetRect(&rcSelect, pos->x, pos->y); + OffsetRect(&rcIcon, pos->x, pos->y); + OffsetRect(&rcStateIcon, pos->x, pos->y); + OffsetRect(&rcLabel, pos->x, pos->y); TRACE(" rcBox=%s, rcSelect=%s, rcIcon=%s. rcLabel=%s\n", wine_dbgstr_rect(&rcBox), wine_dbgstr_rect(&rcSelect), wine_dbgstr_rect(&rcIcon), wine_dbgstr_rect(&rcLabel)); - /* fill in the custom draw structure */ - customdraw_fill(&nmlvcd, infoPtr, hdc, &rcBox, &lvItem); - - if (nSubItem > 0) cdmode = infoPtr->cditemmode; - if (cdmode & CDRF_SKIPDEFAULT) goto postpaint; - if (cdmode & CDRF_NOTIFYITEMDRAW) - cdsubitemmode = notify_customdraw(infoPtr, CDDS_PREPAINT, &nmlvcd); - if (nSubItem == 0) infoPtr->cditemmode = cdsubitemmode; - if (cdsubitemmode & CDRF_SKIPDEFAULT) goto postpaint; - /* we have to send a CDDS_SUBITEM customdraw explicitly for subitem 0 */ - if (nSubItem == 0 && (cdsubitemmode & CDRF_NOTIFYITEMDRAW) != 0) - { - cdsubitemmode = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPREPAINT, &nmlvcd); - if (cdsubitemmode & CDRF_SKIPDEFAULT) goto postpaint; - } - if (nSubItem == 0 || (cdmode & CDRF_NOTIFYITEMDRAW)) - prepaint_setup(infoPtr, hdc, &nmlvcd, FALSE); - else if ((infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT) == FALSE) - prepaint_setup(infoPtr, hdc, &nmlvcd, TRUE); - /* FIXME: temporary hack */ rcSelect.left = rcLabel.left; @@ -4632,16 +4577,15 @@ /* in detail mode, we want to paint background for label rect when * item is not selected or listview has full row select; otherwise paint * background for text only */ - if (infoPtr->uView == LV_VIEW_ICON || - (infoPtr->uView == LV_VIEW_DETAILS && - (!(lvItem.state & LVIS_SELECTED) || - (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT) != 0))) + if ( infoPtr->uView == LV_VIEW_ICON || + (infoPtr->uView == LV_VIEW_DETAILS && (!(item->state & LVIS_SELECTED) || + (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT)))) rcSelect = rcLabel; - if (nmlvcd.clrTextBk != CLR_NONE) - ExtTextOutW(hdc, rcSelect.left, rcSelect.top, ETO_OPAQUE, &rcSelect, NULL, 0, NULL); + if (nmlvcd->clrTextBk != CLR_NONE) + ExtTextOutW(nmlvcd->nmcd.hdc, rcSelect.left, rcSelect.top, ETO_OPAQUE, &rcSelect, NULL, 0, NULL); - if(nSubItem == 0 && infoPtr->nFocusedItem == nItem) + if (item->state & LVIS_FOCUSED) { if (infoPtr->uView == LV_VIEW_DETAILS && (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT)) { @@ -4653,7 +4597,7 @@ if ((leftmost = SendMessageW(infoPtr->hwndHeader, HDM_ORDERTOINDEX, 0, 0))) { - INT Originx = pos.x - LISTVIEW_GetColumnInfo(infoPtr, 0)->rcHeader.left; + INT Originx = pos->x - LISTVIEW_GetColumnInfo(infoPtr, 0)->rcHeader.left; INT index = SendMessageW(infoPtr->hwndHeader, HDM_ORDERTOINDEX, DPA_GetPtrCount(infoPtr->hdpaColumns) - 1, 0); @@ -4670,68 +4614,196 @@ } /* state icons */ - if (infoPtr->himlState && STATEIMAGEINDEX(lvItem.state) && (nSubItem == 0)) + if (infoPtr->himlState && STATEIMAGEINDEX(item->state) && (item->iSubItem == 0)) { - UINT uStateImage = STATEIMAGEINDEX(lvItem.state); - if (uStateImage) + UINT stateimage = STATEIMAGEINDEX(item->state); + if (stateimage) { - TRACE("uStateImage=%d\n", uStateImage); - ImageList_Draw(infoPtr->himlState, uStateImage - 1, hdc, - rcStateIcon.left, rcStateIcon.top, ILD_NORMAL); + TRACE("stateimage=%d\n", stateimage); + ImageList_Draw(infoPtr->himlState, stateimage-1, nmlvcd->nmcd.hdc, rcStateIcon.left, rcStateIcon.top, ILD_NORMAL); } } /* item icons */ himl = (infoPtr->uView == LV_VIEW_ICON ? infoPtr->himlNormal : infoPtr->himlSmall); - if (himl && lvItem.iImage >= 0 && !IsRectEmpty(&rcIcon)) + if (himl && item->iImage >= 0 && !IsRectEmpty(&rcIcon)) { UINT style; - TRACE("iImage=%d\n", lvItem.iImage); + TRACE("iImage=%d\n", item->iImage); - if (lvItem.state & (LVIS_SELECTED | LVIS_CUT) && infoPtr->bFocus) + if (item->state & (LVIS_SELECTED | LVIS_CUT) && infoPtr->bFocus) style = ILD_SELECTED; else style = ILD_NORMAL; - ImageList_DrawEx(himl, lvItem.iImage, hdc, rcIcon.left, rcIcon.top, + ImageList_DrawEx(himl, item->iImage, nmlvcd->nmcd.hdc, rcIcon.left, rcIcon.top, rcIcon.right - rcIcon.left, rcIcon.bottom - rcIcon.top, infoPtr->clrBk, - lvItem.state & LVIS_CUT ? RGB(255, 255, 255) : CLR_DEFAULT, - style | (lvItem.state & LVIS_OVERLAYMASK)); + item->state & LVIS_CUT ? RGB(255, 255, 255) : CLR_DEFAULT, + style | (item->state & LVIS_OVERLAYMASK)); } /* Don't bother painting item being edited */ - if (infoPtr->hwndEdit && nItem == infoPtr->nEditLabelItem && nSubItem == 0) goto postpaint; - + if (infoPtr->hwndEdit && item->iItem == infoPtr->nEditLabelItem && item->iSubItem == 0) return; + /* figure out the text drawing flags */ - uFormat = (infoPtr->uView == LV_VIEW_ICON ? (lprcFocus ? LV_FL_DT_FLAGS : LV_ML_DT_FLAGS) : LV_SL_DT_FLAGS); + format = (infoPtr->uView == LV_VIEW_ICON ? (focus ? LV_FL_DT_FLAGS : LV_ML_DT_FLAGS) : LV_SL_DT_FLAGS); if (infoPtr->uView == LV_VIEW_ICON) - uFormat = (lprcFocus ? LV_FL_DT_FLAGS : LV_ML_DT_FLAGS); - else if (nSubItem) + format = (focus ? LV_FL_DT_FLAGS : LV_ML_DT_FLAGS); + else if (item->iSubItem) { - switch (LISTVIEW_GetColumnInfo(infoPtr, nSubItem)->fmt & LVCFMT_JUSTIFYMASK) + switch (LISTVIEW_GetColumnInfo(infoPtr, item->iSubItem)->fmt & LVCFMT_JUSTIFYMASK) { - case LVCFMT_RIGHT: uFormat |= DT_RIGHT; break; - case LVCFMT_CENTER: uFormat |= DT_CENTER; break; - default: uFormat |= DT_LEFT; + case LVCFMT_RIGHT: format |= DT_RIGHT; break; + case LVCFMT_CENTER: format |= DT_CENTER; break; + default: format |= DT_LEFT; } } - if (!(uFormat & (DT_RIGHT | DT_CENTER))) + if (!(format & (DT_RIGHT | DT_CENTER))) { - if (himl && lvItem.iImage >= 0 && !IsRectEmpty(&rcIcon)) rcLabel.left += IMAGE_PADDING; + if (himl && item->iImage >= 0 && !IsRectEmpty(&rcIcon)) rcLabel.left += IMAGE_PADDING; else rcLabel.left += LABEL_HOR_PADDING; } - else if (uFormat & DT_RIGHT) rcLabel.right -= LABEL_HOR_PADDING; + else if (format & DT_RIGHT) rcLabel.right -= LABEL_HOR_PADDING; /* for GRIDLINES reduce the bottom so the text formats correctly */ if (infoPtr->uView == LV_VIEW_DETAILS && infoPtr->dwLvExStyle & LVS_EX_GRIDLINES) rcLabel.bottom--; - DrawTextW(hdc, lvItem.pszText, -1, &rcLabel, uFormat); + DrawTextW(nmlvcd->nmcd.hdc, item->pszText, -1, &rcLabel, format); +} + +/*** + * DESCRIPTION: + * Draws an item. + * + * PARAMETER(S): + * [I] infoPtr : valid pointer to the listview structure + * [I] hdc : device context handle + * [I] nItem : item index + * [I] nSubItem : subitem index + * [I] pos : item position in client coordinates + * [I] cdmode : custom draw mode + * + * RETURN: + * Success: TRUE + * Failure: FALSE + */ +static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, ITERATOR *subitems, POINT pos, DWORD cdmode) +{ + WCHAR szDispText[DISP_TEXT_SIZE] = { '\0' }; + static WCHAR callbackW[] = { '(', 'c', 'a', 'l', 'l', 'b', 'a', 'c', 'k', ')', 0 }; + DWORD cdsubitemmode = CDRF_DODEFAULT; + RECT *focus, rcBox; + NMLVCUSTOMDRAW nmlvcd; + LVITEMW lvItem; + + TRACE("(hdc=%p, nItem=%d, subitems=%p, pos=%s)\n", hdc, nItem, subitems, wine_dbgstr_point(&pos)); + + /* get information needed for drawing the item */ + lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM | LVIF_STATE; + if (infoPtr->uView == LV_VIEW_DETAILS) lvItem.mask |= LVIF_INDENT; + lvItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED | LVIS_STATEIMAGEMASK | LVIS_CUT | LVIS_OVERLAYMASK; + lvItem.iItem = nItem; + lvItem.iSubItem = 0; + lvItem.state = 0; + lvItem.lParam = 0; + lvItem.cchTextMax = DISP_TEXT_SIZE; + lvItem.pszText = szDispText; + if (!LISTVIEW_GetItemW(infoPtr, &lvItem)) return FALSE; + if (lvItem.pszText == LPSTR_TEXTCALLBACKW) lvItem.pszText = callbackW; + TRACE(" lvItem=%s\n", debuglvitem_t(&lvItem, TRUE)); + + /* now check if we need to update the focus rectangle */ + focus = infoPtr->bFocus && (lvItem.state & LVIS_FOCUSED) ? &infoPtr->rcFocus : 0; + if (!focus) lvItem.state &= ~LVIS_FOCUSED; + + LISTVIEW_GetItemMetrics(infoPtr, &lvItem, &rcBox, NULL, NULL, NULL, NULL); + OffsetRect(&rcBox, pos.x, pos.y); + + /* Full custom draw stage sequence looks like this: + + LV_VIEW_DETAILS: + + - CDDS_ITEMPREPAINT + - CDDS_ITEMPREPAINT|CDDS_SUBITEM | => sent n times, where n is number of subitems, + CDDS_ITEMPOSTPAINT|CDDS_SUBITEM | including item iself + - CDDS_ITEMPOSTPAINT + + other styles: + + - CDDS_ITEMPREPAINT + - CDDS_ITEMPOSTPAINT + */ + + /* fill in the custom draw structure */ + customdraw_fill(&nmlvcd, infoPtr, hdc, &rcBox, &lvItem); + if (cdmode & CDRF_NOTIFYITEMDRAW) + cdsubitemmode = notify_customdraw(infoPtr, CDDS_ITEMPREPAINT, &nmlvcd); + if (cdsubitemmode & CDRF_SKIPDEFAULT) goto postpaint; + + if (subitems) + { + while (iterator_next(subitems)) + { + DWORD subitemstage = CDRF_DODEFAULT; + + /* We need to query for each subitem, item's data (subitem == 0) is already here at this point */ + if (subitems->nItem) + { + lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM | LVIF_INDENT; + lvItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED | LVIS_STATEIMAGEMASK | LVIS_CUT | LVIS_OVERLAYMASK; + lvItem.iItem = nItem; + lvItem.iSubItem = subitems->nItem; + lvItem.state = 0; + lvItem.lParam = 0; + lvItem.cchTextMax = DISP_TEXT_SIZE; + lvItem.pszText = szDispText; + if (!LISTVIEW_GetItemW(infoPtr, &lvItem)) return FALSE; + if (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT) + lvItem.state = LISTVIEW_GetItemState(infoPtr, nItem, LVIS_SELECTED); + if (lvItem.pszText == LPSTR_TEXTCALLBACKW) lvItem.pszText = callbackW; + TRACE(" lvItem=%s\n", debuglvitem_t(&lvItem, TRUE)); + + /* update custom draw data */ + LISTVIEW_GetItemMetrics(infoPtr, &lvItem, &nmlvcd.nmcd.rc, NULL, NULL, NULL, NULL); + OffsetRect(&nmlvcd.nmcd.rc, pos.x, pos.y); + nmlvcd.iSubItem = subitems->nItem; + } + + if (cdsubitemmode & CDRF_NOTIFYSUBITEMDRAW) + subitemstage = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPREPAINT, &nmlvcd); + else + { + nmlvcd.clrTextBk = infoPtr->clrTextBk; + nmlvcd.clrText = infoPtr->clrText; + } + + if (subitems->nItem == 0 || (cdmode & CDRF_NOTIFYITEMDRAW)) + prepaint_setup(infoPtr, hdc, &nmlvcd, FALSE); + else if (!(infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT)) + prepaint_setup(infoPtr, hdc, &nmlvcd, TRUE); + + if (!(subitemstage & CDRF_SKIPDEFAULT)) + LISTVIEW_DrawItemPart(infoPtr, &lvItem, &nmlvcd, &pos); + + if (subitemstage & CDRF_NOTIFYPOSTPAINT) + subitemstage = notify_customdraw(infoPtr, CDDS_SUBITEM | CDDS_ITEMPOSTPAINT, &nmlvcd); + } + } + else + { + prepaint_setup(infoPtr, hdc, &nmlvcd, FALSE); + LISTVIEW_DrawItemPart(infoPtr, &lvItem, &nmlvcd, &pos); + } postpaint: if (cdsubitemmode & CDRF_NOTIFYPOSTPAINT) - notify_postpaint(infoPtr, &nmlvcd); + { + nmlvcd.iSubItem = 0; + notify_customdraw(infoPtr, CDDS_ITEMPOSTPAINT, &nmlvcd); + } + return TRUE; } @@ -4858,10 +4930,15 @@ /* iterate through the invalidated rows */ while(iterator_next(i)) { + RANGES subitems; + ITERATOR k; + SelectObject(hdc, infoPtr->hFont); LISTVIEW_GetItemOrigin(infoPtr, i->nItem, &Position); Position.y += Origin.y; + subitems = ranges_create(DPA_GetPtrCount(infoPtr->hdpaColumns)); + /* iterate through the invalidated columns */ while(iterator_next(&j)) { @@ -4876,8 +4953,12 @@ if (!RectVisible(hdc, &rcItem)) continue; } - LISTVIEW_DrawItem(infoPtr, hdc, i->nItem, j.nItem, Position, cdmode); + ranges_additem(subitems, j.nItem); } + + iterator_rangesitems(&k, subitems); + LISTVIEW_DrawItem(infoPtr, hdc, i->nItem, &k, Position, cdmode); + iterator_destroy(&k); } iterator_destroy(&j); } @@ -5011,7 +5092,7 @@ Position.x += Origin.x; Position.y += Origin.y; - LISTVIEW_DrawItem(infoPtr, hdc, i->nItem, 0, Position, cdmode); + LISTVIEW_DrawItem(infoPtr, hdc, i->nItem, NULL, Position, cdmode); } } @@ -5087,8 +5168,6 @@ hdcOrig, infoPtr->rcList.left, infoPtr->rcList.top, SRCCOPY); } - infoPtr->cditemmode = CDRF_DODEFAULT; - GetClientRect(infoPtr->hwndSelf, &rcClient); customdraw_fill(&nmlvcd, infoPtr, hdc, &rcClient, 0); cdmode = notify_customdraw(infoPtr, CDDS_PREPAINT, &nmlvcd); @@ -5350,7 +5429,7 @@ FillRect(hdc, &rcItem, infoPtr->hBkBrush); pos.x = pos.y = 0; - if (LISTVIEW_DrawItem(infoPtr, hdc, iItem, 0, pos, infoPtr->cditemmode)) + if (LISTVIEW_DrawItem(infoPtr, hdc, iItem, NULL, pos, CDRF_DODEFAULT)) { dragList = ImageList_Create(size.cx, size.cy, ILC_COLOR, 10, 10); SelectObject(hdc, hOldbmp); diff -Nru wine1.7-1.7.18/dlls/comctl32/tests/listview.c wine1.7-1.7.19/dlls/comctl32/tests/listview.c --- wine1.7-1.7.18/dlls/comctl32/tests/listview.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/comctl32/tests/listview.c 2014-05-16 19:06:48.000000000 +0000 @@ -3,7 +3,7 @@ * * Copyright 2006 Mike McCormack for CodeWeavers * Copyright 2007 George Gov - * Copyright 2009-2013 Nikolay Sivov + * Copyright 2009-2014 Nikolay Sivov * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -28,12 +28,15 @@ #include "v6util.h" #include "msg.h" -#define PARENT_SEQ_INDEX 0 -#define PARENT_FULL_SEQ_INDEX 1 -#define LISTVIEW_SEQ_INDEX 2 -#define EDITBOX_SEQ_INDEX 3 -#define COMBINED_SEQ_INDEX 4 -#define NUM_MSG_SEQUENCES 5 +enum seq_index { + PARENT_SEQ_INDEX, + PARENT_FULL_SEQ_INDEX, + PARENT_CD_SEQ_INDEX, + LISTVIEW_SEQ_INDEX, + EDITBOX_SEQ_INDEX, + COMBINED_SEQ_INDEX, + NUM_MSG_SEQUENCES +}; #define LISTVIEW_ID 0 #define HEADER_ID 1 @@ -389,6 +392,26 @@ { 0 } }; +static const struct message parent_report_cd_seq[] = { + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_PREPAINT }, + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_ITEMPREPAINT }, + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_ITEMPREPAINT|CDDS_SUBITEM }, + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_ITEMPOSTPAINT|CDDS_SUBITEM }, + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_ITEMPREPAINT|CDDS_SUBITEM }, + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_ITEMPOSTPAINT|CDDS_SUBITEM }, + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_ITEMPOSTPAINT }, + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_POSTPAINT }, + { 0 } +}; + +static const struct message parent_list_cd_seq[] = { + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_PREPAINT }, + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_ITEMPREPAINT }, + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_ITEMPOSTPAINT }, + { WM_NOTIFY, sent|id|custdraw, 0, 0, NM_CUSTOMDRAW, CDDS_POSTPAINT }, + { 0 } +}; + static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static LONG defwndproc_counter = 0; @@ -1758,24 +1781,36 @@ DestroyWindow(hwnd); } -static LRESULT WINAPI cd_wndproc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) +static LRESULT WINAPI cd_wndproc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { COLORREF clr, c0ffee = RGB(0xc0, 0xff, 0xee); - if(msg == WM_NOTIFY) { - NMHDR *nmhdr = (PVOID)lp; + if(message == WM_NOTIFY) { + NMHDR *nmhdr = (NMHDR*)lParam; if(nmhdr->code == NM_CUSTOMDRAW) { NMLVCUSTOMDRAW *nmlvcd = (NMLVCUSTOMDRAW*)nmhdr; + struct message msg; + + msg.message = message; + msg.flags = sent|wparam|lparam|custdraw; + msg.wParam = wParam; + msg.lParam = lParam; + msg.id = nmhdr->code; + msg.stage = nmlvcd->nmcd.dwDrawStage; + add_message(sequences, PARENT_CD_SEQ_INDEX, &msg); switch(nmlvcd->nmcd.dwDrawStage) { case CDDS_PREPAINT: SetBkColor(nmlvcd->nmcd.hdc, c0ffee); - return CDRF_NOTIFYITEMDRAW; + return CDRF_NOTIFYITEMDRAW|CDRF_NOTIFYPOSTPAINT; case CDDS_ITEMPREPAINT: nmlvcd->clrTextBk = CLR_DEFAULT; - return CDRF_NOTIFYSUBITEMDRAW; + nmlvcd->clrText = RGB(0, 255, 0); + return CDRF_NOTIFYSUBITEMDRAW|CDRF_NOTIFYPOSTPAINT; case CDDS_ITEMPREPAINT | CDDS_SUBITEM: clr = GetBkColor(nmlvcd->nmcd.hdc); + ok(nmlvcd->clrTextBk == CLR_DEFAULT, "got 0x%x\n", nmlvcd->clrTextBk); + ok(nmlvcd->clrText == RGB(0, 255, 0), "got 0x%x\n", nmlvcd->clrText); if (nmlvcd->iSubItem) todo_wine ok(clr == c0ffee, "clr=%.8x\n", clr); else @@ -1784,13 +1819,15 @@ case CDDS_ITEMPOSTPAINT | CDDS_SUBITEM: clr = GetBkColor(nmlvcd->nmcd.hdc); todo_wine ok(clr == c0ffee, "clr=%.8x\n", clr); + ok(nmlvcd->clrTextBk == CLR_DEFAULT, "got 0x%x\n", nmlvcd->clrTextBk); + ok(nmlvcd->clrText == RGB(0, 255, 0), "got 0x%x\n", nmlvcd->clrText); return CDRF_DODEFAULT; } return CDRF_DODEFAULT; } } - return DefWindowProcA(hwnd, msg, wp, lp); + return DefWindowProcA(hwnd, message, wParam, lParam); } static void test_customdraw(void) @@ -1810,9 +1847,27 @@ InvalidateRect(hwnd, NULL, TRUE); UpdateWindow(hwnd); - SetWindowLongPtrA(hwndparent, GWLP_WNDPROC, (LONG_PTR)oldwndproc); + /* message tests */ + flush_sequences(sequences, NUM_MSG_SEQUENCES); + InvalidateRect(hwnd, NULL, TRUE); + UpdateWindow(hwnd); + ok_sequence(sequences, PARENT_CD_SEQ_INDEX, parent_report_cd_seq, "parent customdraw, LVS_REPORT", FALSE); DestroyWindow(hwnd); + + hwnd = create_listview_control(LVS_LIST); + + insert_column(hwnd, 0); + insert_column(hwnd, 1); + insert_item(hwnd, 0); + + flush_sequences(sequences, NUM_MSG_SEQUENCES); + InvalidateRect(hwnd, NULL, TRUE); + UpdateWindow(hwnd); + ok_sequence(sequences, PARENT_CD_SEQ_INDEX, parent_list_cd_seq, "parent customdraw, LVS_LIST", FALSE); + + SetWindowLongPtrA(hwndparent, GWLP_WNDPROC, (LONG_PTR)oldwndproc); + DestroyWindow(hwnd); } static void test_icon_spacing(void) diff -Nru wine1.7-1.7.18/dlls/comctl32/tests/treeview.c wine1.7-1.7.19/dlls/comctl32/tests/treeview.c --- wine1.7-1.7.18/dlls/comctl32/tests/treeview.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/comctl32/tests/treeview.c 2014-05-16 19:06:48.000000000 +0000 @@ -252,6 +252,13 @@ { 0 } }; +static const struct message parent_vk_return_seq[] = { + { WM_NOTIFY, sent|id, 0, 0, TVN_KEYDOWN }, + { WM_NOTIFY, sent|id, 0, 0, NM_RETURN }, + { WM_CHANGEUISTATE, sent|optional }, + { 0 } +}; + static HWND hMainWnd; static HTREEITEM hRoot, hChild; @@ -2126,6 +2133,29 @@ DestroyWindow(hwnd); } +static void test_WM_KEYDOWN(void) +{ + static const char *rootA = "root"; + TVINSERTSTRUCTA ins; + HTREEITEM hRoot; + HWND hwnd; + + hwnd = create_treeview_control(0); + + ins.hParent = TVI_ROOT; + ins.hInsertAfter = TVI_ROOT; + U(ins).item.mask = TVIF_TEXT; + U(ins).item.pszText = (char*)rootA; + hRoot = TreeView_InsertItemA(hwnd, &ins); + ok(hRoot != NULL, "got %p\n", hRoot); + + flush_sequences(sequences, NUM_MSG_SEQUENCES); + SendMessageA(hwnd, WM_KEYDOWN, VK_RETURN, 0); + ok_sequence(sequences, PARENT_SEQ_INDEX, parent_vk_return_seq, "WM_KEYDOWN/VK_RETURN parent notification", TRUE); + + DestroyWindow(hwnd); +} + START_TEST(treeview) { HMODULE hComctl32; @@ -2200,6 +2230,7 @@ test_TVM_HITTEST(); test_WM_GETDLGCODE(); test_customdraw(); + test_WM_KEYDOWN(); if (!load_v6_module(&ctx_cookie, &hCtx)) { diff -Nru wine1.7-1.7.18/dlls/comctl32/treeview.c wine1.7-1.7.19/dlls/comctl32/treeview.c --- wine1.7-1.7.18/dlls/comctl32/treeview.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/comctl32/treeview.c 2014-05-16 19:06:48.000000000 +0000 @@ -5259,6 +5259,10 @@ newSelection = TREEVIEW_GetNextListItem(infoPtr, prevItem); break; + case VK_RETURN: + TREEVIEW_SendSimpleNotify(infoPtr, NM_RETURN); + break; + case VK_HOME: newSelection = infoPtr->root->firstChild; break; diff -Nru wine1.7-1.7.18/dlls/d2d1/d2d1_main.c wine1.7-1.7.19/dlls/d2d1/d2d1_main.c --- wine1.7-1.7.18/dlls/d2d1/d2d1_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/d2d1/d2d1_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -26,18 +26,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(d2d); -BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, void *reserved) -{ - switch (reason) - { - case DLL_PROCESS_ATTACH: - DisableThreadLibraryCalls(inst); - break; - } - - return TRUE; -} - HRESULT WINAPI D2D1CreateFactory(D2D1_FACTORY_TYPE factory_type, REFIID iid, const D2D1_FACTORY_OPTIONS *factory_options, void **factory) { diff -Nru wine1.7-1.7.18/dlls/d3d10/d3d10_main.c wine1.7-1.7.19/dlls/d3d10/d3d10_main.c --- wine1.7-1.7.18/dlls/d3d10/d3d10_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/d3d10/d3d10_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -27,18 +27,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d10); -BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, void *reserved) -{ - switch (reason) - { - case DLL_PROCESS_ATTACH: - DisableThreadLibraryCalls(inst); - break; - } - - return TRUE; -} - HRESULT WINAPI D3D10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, HMODULE swrast, UINT flags, UINT sdk_version, ID3D10Device **device) { diff -Nru wine1.7-1.7.18/dlls/d3d10_1/d3d10_1_main.c wine1.7-1.7.19/dlls/d3d10_1/d3d10_1_main.c --- wine1.7-1.7.18/dlls/d3d10_1/d3d10_1_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/d3d10_1/d3d10_1_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -63,18 +63,6 @@ #undef WINE_D3D10_TO_STR -BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, void *reserved) -{ - switch (reason) - { - case DLL_PROCESS_ATTACH: - DisableThreadLibraryCalls(inst); - break; - } - - return TRUE; -} - HRESULT WINAPI D3D10CreateDevice1(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, HMODULE swrast, UINT flags, D3D10_FEATURE_LEVEL1 hw_level, UINT sdk_version, ID3D10Device1 **device) { diff -Nru wine1.7-1.7.18/dlls/d3d10core/d3d10core_main.c wine1.7-1.7.19/dlls/d3d10core/d3d10core_main.c --- wine1.7-1.7.18/dlls/d3d10core/d3d10core_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/d3d10core/d3d10core_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -25,18 +25,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d10core); -BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, void *reserved) -{ - switch (reason) - { - case DLL_PROCESS_ATTACH: - DisableThreadLibraryCalls(inst); - break; - } - - return TRUE; -} - static HRESULT WINAPI layer_init(enum dxgi_device_layer_id id, DWORD *count, DWORD *values) { TRACE("id %#x, count %p, values %p\n", id, count, values); diff -Nru wine1.7-1.7.18/dlls/d3d8/d3d8_main.c wine1.7-1.7.19/dlls/d3d8/d3d8_main.c --- wine1.7-1.7.18/dlls/d3d8/d3d8_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/d3d8/d3d8_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -56,15 +56,6 @@ return &object->IDirect3D8_iface; } -/* At process attach */ -BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, void *reserved) -{ - if (reason == DLL_PROCESS_ATTACH) - DisableThreadLibraryCalls(inst); - - return TRUE; -} - /*********************************************************************** * ValidateVertexShader (D3D8.@) * diff -Nru wine1.7-1.7.18/dlls/d3d9/d3d9_main.c wine1.7-1.7.19/dlls/d3d9/d3d9_main.c --- wine1.7-1.7.18/dlls/d3d9/d3d9_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/d3d9/d3d9_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -90,17 +90,6 @@ return NULL; } -/******************************************************************* - * DllMain - */ -BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, void *reserved) -{ - if (reason == DLL_PROCESS_ATTACH) - DisableThreadLibraryCalls(inst); - - return TRUE; -} - /*********************************************************************** * D3DPERF_BeginEvent (D3D9.@) */ diff -Nru wine1.7-1.7.18/dlls/dciman32/dciman_main.c wine1.7-1.7.19/dlls/dciman32/dciman_main.c --- wine1.7-1.7.18/dlls/dciman32/dciman_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dciman32/dciman_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -31,18 +31,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(dciman); /*********************************************************************** - * DllEntryPoint (DCIMAN32.@) - * - * DCIMAN32 initialisation routine. - */ -BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) -{ - if (reason == DLL_PROCESS_ATTACH) DisableThreadLibraryCalls( inst ); - return TRUE; -} - - -/*********************************************************************** * DCIOpenProvider (DCIMAN32.@) */ HDC WINAPI diff -Nru wine1.7-1.7.18/dlls/ddraw/ddraw_private.h wine1.7-1.7.19/dlls/ddraw/ddraw_private.h --- wine1.7-1.7.18/dlls/ddraw/ddraw_private.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ddraw/ddraw_private.h 2014-05-16 19:06:48.000000000 +0000 @@ -575,6 +575,13 @@ void multiply_matrix(D3DMATRIX *dst, const D3DMATRIX *src1, const D3DMATRIX *src2) DECLSPEC_HIDDEN; +static inline BOOL format_is_paletteindexed(const DDPIXELFORMAT *fmt) +{ + DWORD flags = DDPF_PALETTEINDEXED1 | DDPF_PALETTEINDEXED2 | DDPF_PALETTEINDEXED4 + | DDPF_PALETTEINDEXED8 | DDPF_PALETTEINDEXEDTO8; + return !!(fmt->dwFlags & flags); +} + /* Used for generic dumping */ struct flag_info { diff -Nru wine1.7-1.7.18/dlls/ddraw/device.c wine1.7-1.7.19/dlls/ddraw/device.c --- wine1.7-1.7.18/dlls/ddraw/device.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ddraw/device.c 2014-05-16 19:06:48.000000000 +0000 @@ -1798,11 +1798,8 @@ static BOOL validate_surface_palette(struct ddraw_surface *surface) { - return !(surface->surface_desc.u4.ddpfPixelFormat.dwFlags - & (DDPF_PALETTEINDEXED1 | DDPF_PALETTEINDEXED2 - | DDPF_PALETTEINDEXED4 | DDPF_PALETTEINDEXED8 - | DDPF_PALETTEINDEXEDTO8)) - || wined3d_surface_get_palette(surface->wined3d_surface); + return !format_is_paletteindexed(&surface->surface_desc.u4.ddpfPixelFormat) + || surface->palette; } static HRESULT d3d_device_set_render_target(struct d3d_device *device, diff -Nru wine1.7-1.7.18/dlls/ddraw/surface.c wine1.7-1.7.19/dlls/ddraw/surface.c --- wine1.7-1.7.18/dlls/ddraw/surface.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ddraw/surface.c 2014-05-16 19:06:48.000000000 +0000 @@ -454,8 +454,14 @@ TRACE("iface %p, palette %p.\n", surface, palette); - if (!(surface->surface_desc.u4.ddpfPixelFormat.dwFlags & (DDPF_PALETTEINDEXED1 | DDPF_PALETTEINDEXED2 - | DDPF_PALETTEINDEXED4 | DDPF_PALETTEINDEXED8 | DDPF_PALETTEINDEXEDTO8))) + if (palette_impl && palette_impl->flags & DDPCAPS_ALPHA + && !(surface->surface_desc.ddsCaps.dwCaps & DDSCAPS_TEXTURE)) + { + WARN("Alpha palette set on non-texture surface, returning DDERR_INVALIDSURFACETYPE.\n"); + return DDERR_INVALIDSURFACETYPE; + } + + if (!format_is_paletteindexed(&surface->surface_desc.u4.ddpfPixelFormat)) return DDERR_INVALIDPIXELFORMAT; wined3d_mutex_lock(); @@ -2010,6 +2016,22 @@ hr = ddraw_surface_update_frontbuffer(surface, NULL, TRUE); if (SUCCEEDED(hr)) hr = wined3d_surface_getdc(surface->wined3d_surface, hdc); + + if (SUCCEEDED(hr) && format_is_paletteindexed(&surface->surface_desc.u4.ddpfPixelFormat)) + { + const struct ddraw_palette *palette; + + if (surface->palette) + palette = surface->palette; + else if (surface->ddraw->primary) + palette = surface->ddraw->primary->palette; + else + palette = NULL; + + if (palette) + wined3d_palette_apply_to_dc(palette->wineD3DPalette, *hdc); + } + wined3d_mutex_unlock(); switch(hr) { @@ -4975,7 +4997,7 @@ for (;;) { - struct wined3d_palette *wined3d_dst_pal, *wined3d_src_pal; + struct ddraw_palette *dst_pal, *src_pal; DDSURFACEDESC *src_desc, *dst_desc; TRACE("Copying surface %p to surface %p (mipmap level %d).\n", @@ -4985,20 +5007,20 @@ dst_surface->surface_desc.ddsCaps.dwCaps &= ~DDSCAPS_ALLOCONLOAD; /* Get the palettes */ - wined3d_dst_pal = wined3d_surface_get_palette(dst_surface->wined3d_surface); - wined3d_src_pal = wined3d_surface_get_palette(src_surface->wined3d_surface); + dst_pal = dst_surface->palette; + src_pal = src_surface->palette; - if (wined3d_src_pal) + if (src_pal) { PALETTEENTRY palent[256]; - if (!wined3d_dst_pal) + if (!dst_pal) { wined3d_mutex_unlock(); return DDERR_NOPALETTEATTACHED; } - wined3d_palette_get_entries(wined3d_src_pal, 0, 0, 256, palent); - wined3d_palette_set_entries(wined3d_dst_pal, 0, 0, 256, palent); + IDirectDrawPalette_GetEntries(&src_pal->IDirectDrawPalette_iface, 0, 0, 256, palent); + IDirectDrawPalette_SetEntries(&dst_pal->IDirectDrawPalette_iface, 0, 0, 256, palent); } /* Copy one surface on the other */ diff -Nru wine1.7-1.7.18/dlls/ddraw/tests/ddraw1.c wine1.7-1.7.19/dlls/ddraw/tests/ddraw1.c --- wine1.7-1.7.18/dlls/ddraw/tests/ddraw1.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ddraw/tests/ddraw1.c 2014-05-16 19:06:48.000000000 +0000 @@ -5126,7 +5126,7 @@ i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -5139,7 +5139,7 @@ i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -5315,6 +5315,163 @@ DestroyWindow(window); } +static void test_palette_alpha(void) +{ + IDirectDrawSurface *surface; + DDSURFACEDESC surface_desc; + IDirectDraw *ddraw; + IDirectDrawPalette *palette; + ULONG refcount; + HWND window; + HRESULT hr; + PALETTEENTRY palette_entries[256]; + unsigned int i; + static const struct + { + DWORD caps, flags; + BOOL attach_allowed; + const char *name; + } + test_data[] = + { + {DDSCAPS_OFFSCREENPLAIN, DDSD_WIDTH | DDSD_HEIGHT, FALSE, "offscreenplain"}, + {DDSCAPS_TEXTURE, DDSD_WIDTH | DDSD_HEIGHT, TRUE, "texture"}, + {DDSCAPS_PRIMARYSURFACE, 0, FALSE, "primary"} + }; + + window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW, + 0, 0, 640, 480, 0, 0, 0, 0); + ddraw = create_ddraw(); + ok(!!ddraw, "Failed to create a ddraw object.\n"); + if (FAILED(hr = IDirectDraw_SetDisplayMode(ddraw, 640, 480, 8))) + { + win_skip("Failed to set 8 bpp display mode, skipping test.\n"); + IDirectDraw_Release(ddraw); + DestroyWindow(window); + return; + } + ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr); + hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); + ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr); + + memset(palette_entries, 0, sizeof(palette_entries)); + palette_entries[1].peFlags = 0x42; + palette_entries[2].peFlags = 0xff; + palette_entries[3].peFlags = 0x80; + hr = IDirectDraw_CreatePalette(ddraw, DDPCAPS_ALLOW256 | DDPCAPS_8BIT, palette_entries, &palette, NULL); + ok(SUCCEEDED(hr), "Failed to create palette, hr %#x.\n", hr); + + memset(palette_entries, 0x66, sizeof(palette_entries)); + hr = IDirectDrawPalette_GetEntries(palette, 0, 1, 4, palette_entries); + ok(SUCCEEDED(hr), "Failed to get palette entries, hr %#x.\n", hr); + ok(palette_entries[0].peFlags == 0x42, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[0].peFlags); + ok(palette_entries[1].peFlags == 0xff, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[1].peFlags); + ok(palette_entries[2].peFlags == 0x80, "Got unexpected peFlags 0x%02x, expected 0x80.\n", + palette_entries[2].peFlags); + ok(palette_entries[3].peFlags == 0x00, "Got unexpected peFlags 0x%02x, expected 0x00.\n", + palette_entries[3].peFlags); + + IDirectDrawPalette_Release(palette); + + memset(palette_entries, 0, sizeof(palette_entries)); + palette_entries[1].peFlags = 0x42; + palette_entries[1].peRed = 0xff; + palette_entries[2].peFlags = 0xff; + palette_entries[3].peFlags = 0x80; + hr = IDirectDraw_CreatePalette(ddraw, DDPCAPS_ALLOW256 | DDPCAPS_8BIT | DDPCAPS_ALPHA, + palette_entries, &palette, NULL); + ok(SUCCEEDED(hr), "Failed to create palette, hr %#x.\n", hr); + + memset(palette_entries, 0x66, sizeof(palette_entries)); + hr = IDirectDrawPalette_GetEntries(palette, 0, 1, 4, palette_entries); + ok(SUCCEEDED(hr), "Failed to get palette entries, hr %#x.\n", hr); + ok(palette_entries[0].peFlags == 0x42, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[0].peFlags); + ok(palette_entries[1].peFlags == 0xff, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[1].peFlags); + ok(palette_entries[2].peFlags == 0x80, "Got unexpected peFlags 0x%02x, expected 0x80.\n", + palette_entries[2].peFlags); + ok(palette_entries[3].peFlags == 0x00, "Got unexpected peFlags 0x%02x, expected 0x00.\n", + palette_entries[3].peFlags); + + for (i = 0; i < sizeof(test_data) / sizeof(*test_data); i++) + { + memset(&surface_desc, 0, sizeof(surface_desc)); + surface_desc.dwSize = sizeof(surface_desc); + surface_desc.dwFlags = DDSD_CAPS | test_data[i].flags; + surface_desc.dwWidth = 128; + surface_desc.dwHeight = 128; + surface_desc.ddsCaps.dwCaps = test_data[i].caps; + hr = IDirectDraw_CreateSurface(ddraw, &surface_desc, &surface, NULL); + ok(SUCCEEDED(hr), "Failed to create %s surface, hr %#x.\n", test_data[i].name, hr); + + hr = IDirectDrawSurface_SetPalette(surface, palette); + if (test_data[i].attach_allowed) + ok(SUCCEEDED(hr), "Failed to attach palette to %s surface, hr %#x.\n", test_data[i].name, hr); + else + ok(hr == DDERR_INVALIDSURFACETYPE, "Got unexpected hr %#x, %s surface.\n", hr, test_data[i].name); + + if (SUCCEEDED(hr)) + { + HDC dc; + RGBQUAD rgbquad; + UINT retval; + + hr = IDirectDrawSurface_GetDC(surface, &dc); + ok(SUCCEEDED(hr) || broken(hr == DDERR_CANTCREATEDC) /* Win2k testbot */, + "Failed to get DC, hr %#x, %s surface.\n", hr, test_data[i].name); + if (SUCCEEDED(hr)) + { + retval = GetDIBColorTable(dc, 1, 1, &rgbquad); + ok(retval == 1, "GetDIBColorTable returned unexpected result %u.\n", retval); + ok(rgbquad.rgbRed == 0xff, "Expected rgbRed = 0xff, got %#x, %s surface.\n", + rgbquad.rgbRed, test_data[i].name); + ok(rgbquad.rgbGreen == 0, "Expected rgbGreen = 0, got %#x, %s surface.\n", + rgbquad.rgbGreen, test_data[i].name); + ok(rgbquad.rgbBlue == 0, "Expected rgbBlue = 0, got %#x, %s surface.\n", + rgbquad.rgbBlue, test_data[i].name); + todo_wine ok(rgbquad.rgbReserved == 0, "Expected rgbReserved = 0, got %u, %s surface.\n", + rgbquad.rgbReserved, test_data[i].name); + hr = IDirectDrawSurface_ReleaseDC(surface, dc); + ok(SUCCEEDED(hr), "Failed to release DC, hr %#x.\n", hr); + } + } + IDirectDrawSurface_Release(surface); + } + + /* Test INVALIDSURFACETYPE vs INVALIDPIXELFORMAT. */ + memset(&surface_desc, 0, sizeof(surface_desc)); + surface_desc.dwSize = sizeof(surface_desc); + surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT; + surface_desc.dwWidth = 128; + surface_desc.dwHeight = 128; + surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; + surface_desc.ddpfPixelFormat.dwSize = sizeof(surface_desc.ddpfPixelFormat); + surface_desc.ddpfPixelFormat.dwFlags = DDPF_RGB; + U1(surface_desc.ddpfPixelFormat).dwRGBBitCount = 32; + U2(surface_desc.ddpfPixelFormat).dwRBitMask = 0x00ff0000; + U3(surface_desc.ddpfPixelFormat).dwGBitMask = 0x0000ff00; + U4(surface_desc.ddpfPixelFormat).dwBBitMask = 0x000000ff; + hr = IDirectDraw_CreateSurface(ddraw, &surface_desc, &surface, NULL); + ok(SUCCEEDED(hr), "Failed to create surface, hr %#x.\n", hr); + hr = IDirectDrawSurface_SetPalette(surface, palette); + ok(hr == DDERR_INVALIDSURFACETYPE, "Got unexpected hr %#x.\n", hr); + IDirectDrawSurface_Release(surface); + + /* The Windows 8 testbot keeps extra references to the primary + * while in 8 bpp mode. */ + hr = IDirectDraw_RestoreDisplayMode(ddraw); + ok(SUCCEEDED(hr), "Failed to restore display mode, hr %#x.\n", hr); + + refcount = IDirectDrawPalette_Release(palette); + ok(!refcount, "Got unexpected refcount %u.\n", refcount); + refcount = IDirectDraw_Release(ddraw); + ok(!refcount, "Got unexpected refcount %u.\n", refcount); + DestroyWindow(window); +} + START_TEST(ddraw1) { IDirectDraw *ddraw; @@ -5364,4 +5521,5 @@ test_p8_rgb_blit(); test_material(); test_palette_gdi(); + test_palette_alpha(); } diff -Nru wine1.7-1.7.18/dlls/ddraw/tests/ddraw2.c wine1.7-1.7.19/dlls/ddraw/tests/ddraw2.c --- wine1.7-1.7.18/dlls/ddraw/tests/ddraw2.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ddraw/tests/ddraw2.c 2014-05-16 19:06:48.000000000 +0000 @@ -6194,7 +6194,7 @@ i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -6207,7 +6207,7 @@ i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -6383,6 +6383,171 @@ DestroyWindow(window); } +static void test_palette_alpha(void) +{ + IDirectDrawSurface *surface1; + IDirectDrawSurface2 *surface; + DDSURFACEDESC surface_desc; + IDirectDraw2 *ddraw; + IDirectDrawPalette *palette; + ULONG refcount; + HWND window; + HRESULT hr; + PALETTEENTRY palette_entries[256]; + unsigned int i; + static const struct + { + DWORD caps, flags; + BOOL attach_allowed; + const char *name; + } + test_data[] = + { + {DDSCAPS_OFFSCREENPLAIN, DDSD_WIDTH | DDSD_HEIGHT, FALSE, "offscreenplain"}, + {DDSCAPS_TEXTURE, DDSD_WIDTH | DDSD_HEIGHT, TRUE, "texture"}, + {DDSCAPS_PRIMARYSURFACE, 0, FALSE, "primary"} + }; + + window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW, + 0, 0, 640, 480, 0, 0, 0, 0); + ddraw = create_ddraw(); + ok(!!ddraw, "Failed to create a ddraw object.\n"); + if (FAILED(hr = IDirectDraw2_SetDisplayMode(ddraw, 640, 480, 8, 0, 0))) + { + win_skip("Failed to set 8 bpp display mode, skipping test.\n"); + IDirectDraw2_Release(ddraw); + DestroyWindow(window); + return; + } + ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr); + hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); + ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr); + + memset(palette_entries, 0, sizeof(palette_entries)); + palette_entries[1].peFlags = 0x42; + palette_entries[2].peFlags = 0xff; + palette_entries[3].peFlags = 0x80; + hr = IDirectDraw2_CreatePalette(ddraw, DDPCAPS_ALLOW256 | DDPCAPS_8BIT, palette_entries, &palette, NULL); + ok(SUCCEEDED(hr), "Failed to create palette, hr %#x.\n", hr); + + memset(palette_entries, 0x66, sizeof(palette_entries)); + hr = IDirectDrawPalette_GetEntries(palette, 0, 1, 4, palette_entries); + ok(SUCCEEDED(hr), "Failed to get palette entries, hr %#x.\n", hr); + ok(palette_entries[0].peFlags == 0x42, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[0].peFlags); + ok(palette_entries[1].peFlags == 0xff, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[1].peFlags); + ok(palette_entries[2].peFlags == 0x80, "Got unexpected peFlags 0x%02x, expected 0x80.\n", + palette_entries[2].peFlags); + ok(palette_entries[3].peFlags == 0x00, "Got unexpected peFlags 0x%02x, expected 0x00.\n", + palette_entries[3].peFlags); + + IDirectDrawPalette_Release(palette); + + memset(palette_entries, 0, sizeof(palette_entries)); + palette_entries[1].peFlags = 0x42; + palette_entries[1].peRed = 0xff; + palette_entries[2].peFlags = 0xff; + palette_entries[3].peFlags = 0x80; + hr = IDirectDraw2_CreatePalette(ddraw, DDPCAPS_ALLOW256 | DDPCAPS_8BIT | DDPCAPS_ALPHA, + palette_entries, &palette, NULL); + ok(SUCCEEDED(hr), "Failed to create palette, hr %#x.\n", hr); + + memset(palette_entries, 0x66, sizeof(palette_entries)); + hr = IDirectDrawPalette_GetEntries(palette, 0, 1, 4, palette_entries); + ok(SUCCEEDED(hr), "Failed to get palette entries, hr %#x.\n", hr); + ok(palette_entries[0].peFlags == 0x42, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[0].peFlags); + ok(palette_entries[1].peFlags == 0xff, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[1].peFlags); + ok(palette_entries[2].peFlags == 0x80, "Got unexpected peFlags 0x%02x, expected 0x80.\n", + palette_entries[2].peFlags); + ok(palette_entries[3].peFlags == 0x00, "Got unexpected peFlags 0x%02x, expected 0x00.\n", + palette_entries[3].peFlags); + + for (i = 0; i < sizeof(test_data) / sizeof(*test_data); i++) + { + memset(&surface_desc, 0, sizeof(surface_desc)); + surface_desc.dwSize = sizeof(surface_desc); + surface_desc.dwFlags = DDSD_CAPS | test_data[i].flags; + surface_desc.dwWidth = 128; + surface_desc.dwHeight = 128; + surface_desc.ddsCaps.dwCaps = test_data[i].caps; + hr = IDirectDraw2_CreateSurface(ddraw, &surface_desc, &surface1, NULL); + ok(SUCCEEDED(hr), "Failed to create %s surface, hr %#x.\n", test_data[i].name, hr); + hr = IDirectDrawSurface_QueryInterface(surface1, &IID_IDirectDrawSurface2, (void **)&surface); + ok(SUCCEEDED(hr), "Failed to get IDirectDrawSurface2 interface, hr %#x.\n", hr); + IDirectDrawSurface_Release(surface1); + + hr = IDirectDrawSurface2_SetPalette(surface, palette); + if (test_data[i].attach_allowed) + ok(SUCCEEDED(hr), "Failed to attach palette to %s surface, hr %#x.\n", test_data[i].name, hr); + else + ok(hr == DDERR_INVALIDSURFACETYPE, "Got unexpected hr %#x, %s surface.\n", hr, test_data[i].name); + + if (SUCCEEDED(hr)) + { + HDC dc; + RGBQUAD rgbquad; + UINT retval; + + hr = IDirectDrawSurface2_GetDC(surface, &dc); + ok(SUCCEEDED(hr) || broken(hr == DDERR_CANTCREATEDC) /* Win2k testbot */, + "Failed to get DC, hr %#x, %s surface.\n", hr, test_data[i].name); + if (SUCCEEDED(hr)) + { + retval = GetDIBColorTable(dc, 1, 1, &rgbquad); + ok(retval == 1, "GetDIBColorTable returned unexpected result %u.\n", retval); + ok(rgbquad.rgbRed == 0xff, "Expected rgbRed = 0xff, got %#x, %s surface.\n", + rgbquad.rgbRed, test_data[i].name); + ok(rgbquad.rgbGreen == 0, "Expected rgbGreen = 0, got %#x, %s surface.\n", + rgbquad.rgbGreen, test_data[i].name); + ok(rgbquad.rgbBlue == 0, "Expected rgbBlue = 0, got %#x, %s surface.\n", + rgbquad.rgbBlue, test_data[i].name); + todo_wine ok(rgbquad.rgbReserved == 0, "Expected rgbReserved = 0, got %u, %s surface.\n", + rgbquad.rgbReserved, test_data[i].name); + hr = IDirectDrawSurface2_ReleaseDC(surface, dc); + ok(SUCCEEDED(hr), "Failed to release DC, hr %#x.\n", hr); + } + } + IDirectDrawSurface2_Release(surface); + } + + /* Test INVALIDSURFACETYPE vs INVALIDPIXELFORMAT. */ + memset(&surface_desc, 0, sizeof(surface_desc)); + surface_desc.dwSize = sizeof(surface_desc); + surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT; + surface_desc.dwWidth = 128; + surface_desc.dwHeight = 128; + surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; + surface_desc.ddpfPixelFormat.dwSize = sizeof(surface_desc.ddpfPixelFormat); + surface_desc.ddpfPixelFormat.dwFlags = DDPF_RGB; + U1(surface_desc.ddpfPixelFormat).dwRGBBitCount = 32; + U2(surface_desc.ddpfPixelFormat).dwRBitMask = 0x00ff0000; + U3(surface_desc.ddpfPixelFormat).dwGBitMask = 0x0000ff00; + U4(surface_desc.ddpfPixelFormat).dwBBitMask = 0x000000ff; + hr = IDirectDraw2_CreateSurface(ddraw, &surface_desc, &surface1, NULL); + ok(SUCCEEDED(hr), "Failed to create surface, hr %#x.\n", hr); + hr = IDirectDrawSurface_QueryInterface(surface1, &IID_IDirectDrawSurface2, (void **)&surface); + ok(SUCCEEDED(hr), "Failed to get IDirectDrawSurface2 interface, hr %#x.\n", hr); + IDirectDrawSurface_Release(surface1); + + hr = IDirectDrawSurface2_SetPalette(surface, palette); + ok(hr == DDERR_INVALIDSURFACETYPE, "Got unexpected hr %#x.\n", hr); + IDirectDrawSurface2_Release(surface); + + /* The Windows 8 testbot keeps extra references to the primary + * while in 8 bpp mode. */ + hr = IDirectDraw2_RestoreDisplayMode(ddraw); + ok(SUCCEEDED(hr), "Failed to restore display mode, hr %#x.\n", hr); + + refcount = IDirectDrawPalette_Release(palette); + ok(!refcount, "Got unexpected refcount %u.\n", refcount); + refcount = IDirectDraw2_Release(ddraw); + ok(!refcount, "Got unexpected refcount %u.\n", refcount); + DestroyWindow(window); +} + START_TEST(ddraw2) { IDirectDraw2 *ddraw; @@ -6438,4 +6603,5 @@ test_p8_rgb_blit(); test_material(); test_palette_gdi(); + test_palette_alpha(); } diff -Nru wine1.7-1.7.18/dlls/ddraw/tests/ddraw4.c wine1.7-1.7.19/dlls/ddraw/tests/ddraw4.c --- wine1.7-1.7.18/dlls/ddraw/tests/ddraw4.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ddraw/tests/ddraw4.c 2014-05-16 19:06:48.000000000 +0000 @@ -7096,7 +7096,7 @@ i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -7109,7 +7109,7 @@ i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -7285,6 +7285,159 @@ DestroyWindow(window); } +static void test_palette_alpha(void) +{ + IDirectDrawSurface4 *surface; + DDSURFACEDESC2 surface_desc; + IDirectDraw4 *ddraw; + IDirectDrawPalette *palette; + ULONG refcount; + HWND window; + HRESULT hr; + PALETTEENTRY palette_entries[256]; + unsigned int i; + static const struct + { + DWORD caps, flags; + BOOL attach_allowed; + const char *name; + } + test_data[] = + { + {DDSCAPS_OFFSCREENPLAIN, DDSD_WIDTH | DDSD_HEIGHT, FALSE, "offscreenplain"}, + {DDSCAPS_TEXTURE, DDSD_WIDTH | DDSD_HEIGHT, TRUE, "texture"}, + {DDSCAPS_PRIMARYSURFACE, 0, FALSE, "primary"} + }; + + window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW, + 0, 0, 640, 480, 0, 0, 0, 0); + ddraw = create_ddraw(); + ok(!!ddraw, "Failed to create a ddraw object.\n"); + if (FAILED(hr = IDirectDraw4_SetDisplayMode(ddraw, 640, 480, 8, 0, 0))) + { + win_skip("Failed to set 8 bpp display mode, skipping test.\n"); + IDirectDraw4_Release(ddraw); + DestroyWindow(window); + return; + } + ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr); + hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); + ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr); + + memset(palette_entries, 0, sizeof(palette_entries)); + palette_entries[1].peFlags = 0x42; + palette_entries[2].peFlags = 0xff; + palette_entries[3].peFlags = 0x80; + hr = IDirectDraw4_CreatePalette(ddraw, DDPCAPS_ALLOW256 | DDPCAPS_8BIT, palette_entries, &palette, NULL); + ok(SUCCEEDED(hr), "Failed to create palette, hr %#x.\n", hr); + + memset(palette_entries, 0x66, sizeof(palette_entries)); + hr = IDirectDrawPalette_GetEntries(palette, 0, 1, 4, palette_entries); + ok(SUCCEEDED(hr), "Failed to get palette entries, hr %#x.\n", hr); + ok(palette_entries[0].peFlags == 0x42, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[0].peFlags); + ok(palette_entries[1].peFlags == 0xff, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[1].peFlags); + ok(palette_entries[2].peFlags == 0x80, "Got unexpected peFlags 0x%02x, expected 0x80.\n", + palette_entries[2].peFlags); + ok(palette_entries[3].peFlags == 0x00, "Got unexpected peFlags 0x%02x, expected 0x00.\n", + palette_entries[3].peFlags); + + IDirectDrawPalette_Release(palette); + + memset(palette_entries, 0, sizeof(palette_entries)); + palette_entries[1].peFlags = 0x42; + palette_entries[1].peRed = 0xff; + palette_entries[2].peFlags = 0xff; + palette_entries[3].peFlags = 0x80; + hr = IDirectDraw4_CreatePalette(ddraw, DDPCAPS_ALLOW256 | DDPCAPS_8BIT | DDPCAPS_ALPHA, + palette_entries, &palette, NULL); + ok(SUCCEEDED(hr), "Failed to create palette, hr %#x.\n", hr); + + memset(palette_entries, 0x66, sizeof(palette_entries)); + hr = IDirectDrawPalette_GetEntries(palette, 0, 1, 4, palette_entries); + ok(SUCCEEDED(hr), "Failed to get palette entries, hr %#x.\n", hr); + ok(palette_entries[0].peFlags == 0x42, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[0].peFlags); + ok(palette_entries[1].peFlags == 0xff, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[1].peFlags); + ok(palette_entries[2].peFlags == 0x80, "Got unexpected peFlags 0x%02x, expected 0x80.\n", + palette_entries[2].peFlags); + ok(palette_entries[3].peFlags == 0x00, "Got unexpected peFlags 0x%02x, expected 0x00.\n", + palette_entries[3].peFlags); + + for (i = 0; i < sizeof(test_data) / sizeof(*test_data); i++) + { + memset(&surface_desc, 0, sizeof(surface_desc)); + surface_desc.dwSize = sizeof(surface_desc); + surface_desc.dwFlags = DDSD_CAPS | test_data[i].flags; + surface_desc.dwWidth = 128; + surface_desc.dwHeight = 128; + surface_desc.ddsCaps.dwCaps = test_data[i].caps; + hr = IDirectDraw4_CreateSurface(ddraw, &surface_desc, &surface, NULL); + ok(SUCCEEDED(hr), "Failed to create %s surface, hr %#x.\n", test_data[i].name, hr); + + hr = IDirectDrawSurface4_SetPalette(surface, palette); + if (test_data[i].attach_allowed) + ok(SUCCEEDED(hr), "Failed to attach palette to %s surface, hr %#x.\n", test_data[i].name, hr); + else + ok(hr == DDERR_INVALIDSURFACETYPE, "Got unexpected hr %#x, %s surface.\n", hr, test_data[i].name); + + if (SUCCEEDED(hr)) + { + HDC dc; + RGBQUAD rgbquad; + UINT retval; + + hr = IDirectDrawSurface4_GetDC(surface, &dc); + ok(SUCCEEDED(hr), "Failed to get DC, hr %#x, %s surface.\n", hr, test_data[i].name); + retval = GetDIBColorTable(dc, 1, 1, &rgbquad); + ok(retval == 1, "GetDIBColorTable returned unexpected result %u.\n", retval); + ok(rgbquad.rgbRed == 0xff, "Expected rgbRed = 0xff, got %#x, %s surface.\n", + rgbquad.rgbRed, test_data[i].name); + ok(rgbquad.rgbGreen == 0, "Expected rgbGreen = 0, got %#x, %s surface.\n", + rgbquad.rgbGreen, test_data[i].name); + ok(rgbquad.rgbBlue == 0, "Expected rgbBlue = 0, got %#x, %s surface.\n", + rgbquad.rgbBlue, test_data[i].name); + todo_wine ok(rgbquad.rgbReserved == 0, "Expected rgbReserved = 0, got %u, %s surface.\n", + rgbquad.rgbReserved, test_data[i].name); + hr = IDirectDrawSurface4_ReleaseDC(surface, dc); + ok(SUCCEEDED(hr), "Failed to release DC, hr %#x.\n", hr); + } + IDirectDrawSurface4_Release(surface); + } + + /* Test INVALIDSURFACETYPE vs INVALIDPIXELFORMAT. */ + memset(&surface_desc, 0, sizeof(surface_desc)); + surface_desc.dwSize = sizeof(surface_desc); + surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT; + surface_desc.dwWidth = 128; + surface_desc.dwHeight = 128; + surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; + U4(surface_desc).ddpfPixelFormat.dwSize = sizeof(U4(surface_desc).ddpfPixelFormat); + U4(surface_desc).ddpfPixelFormat.dwFlags = DDPF_RGB; + U1(U4(surface_desc).ddpfPixelFormat).dwRGBBitCount = 32; + U2(U4(surface_desc).ddpfPixelFormat).dwRBitMask = 0x00ff0000; + U3(U4(surface_desc).ddpfPixelFormat).dwGBitMask = 0x0000ff00; + U4(U4(surface_desc).ddpfPixelFormat).dwBBitMask = 0x000000ff; + hr = IDirectDraw4_CreateSurface(ddraw, &surface_desc, &surface, NULL); + ok(SUCCEEDED(hr), "Failed to create surface, hr %#x.\n", hr); + hr = IDirectDrawSurface4_SetPalette(surface, palette); + ok(hr == DDERR_INVALIDSURFACETYPE, "Got unexpected hr %#x.\n", hr); + IDirectDrawSurface4_Release(surface); + + /* The Windows 8 testbot keeps extra references to the primary + * while in 8 bpp mode. */ + hr = IDirectDraw4_RestoreDisplayMode(ddraw); + ok(SUCCEEDED(hr), "Failed to restore display mode, hr %#x.\n", hr); + + refcount = IDirectDrawPalette_Release(palette); + ok(!refcount, "Got unexpected refcount %u.\n", refcount); + refcount = IDirectDraw4_Release(ddraw); + ok(!refcount, "Got unexpected refcount %u.\n", refcount); + DestroyWindow(window); +} + START_TEST(ddraw4) { IDirectDraw4 *ddraw; @@ -7346,4 +7499,5 @@ test_p8_rgb_blit(); test_material(); test_palette_gdi(); + test_palette_alpha(); } diff -Nru wine1.7-1.7.18/dlls/ddraw/tests/ddraw7.c wine1.7-1.7.19/dlls/ddraw/tests/ddraw7.c --- wine1.7-1.7.18/dlls/ddraw/tests/ddraw7.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ddraw/tests/ddraw7.c 2014-05-16 19:06:48.000000000 +0000 @@ -6688,19 +6688,19 @@ ok(!memcmp(&U(material).diffuse, &null_color, sizeof(null_color)), "Got unexpected diffuse color {%.8e, %.8e, %.8e, %.8e}.\n", U1(U(material).diffuse).r, U2(U(material).diffuse).g, - U3(U(material).diffuse).b, U3(U(material).diffuse).a); + U3(U(material).diffuse).b, U4(U(material).diffuse).a); ok(!memcmp(&U1(material).ambient, &null_color, sizeof(null_color)), "Got unexpected ambient color {%.8e, %.8e, %.8e, %.8e}.\n", U1(U1(material).ambient).r, U2(U1(material).ambient).g, - U3(U1(material).ambient).b, U3(U1(material).ambient).a); + U3(U1(material).ambient).b, U4(U1(material).ambient).a); ok(!memcmp(&U2(material).specular, &null_color, sizeof(null_color)), "Got unexpected specular color {%.8e, %.8e, %.8e, %.8e}.\n", U1(U2(material).specular).r, U2(U2(material).specular).g, - U3(U2(material).specular).b, U3(U2(material).specular).a); + U3(U2(material).specular).b, U4(U2(material).specular).a); ok(!memcmp(&U3(material).emissive, &null_color, sizeof(null_color)), "Got unexpected emissive color {%.8e, %.8e, %.8e, %.8e}.\n", U1(U3(material).emissive).r, U2(U3(material).emissive).g, - U3(U3(material).emissive).b, U3(U3(material).emissive).a); + U3(U3(material).emissive).b, U4(U3(material).emissive).a); ok(U4(material).power == 0.0f, "Got unexpected power %.8e.\n", U4(material).power); refcount = IDirect3DDevice7_Release(device); @@ -6818,7 +6818,7 @@ i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -6831,7 +6831,7 @@ i = GetDIBColorTable(dc, 4, 1, &rgbquad[4]); ok(i == 1, "Expected count 1, got %u.\n", i); - todo_wine ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), + ok(!memcmp(&rgbquad[4], &expected1[4], sizeof(rgbquad[4])), "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", i, rgbquad[4].rgbRed, rgbquad[4].rgbGreen, rgbquad[4].rgbBlue, expected1[4].rgbRed, expected1[4].rgbGreen, expected1[4].rgbBlue); @@ -7007,6 +7007,159 @@ DestroyWindow(window); } +static void test_palette_alpha(void) +{ + IDirectDrawSurface7 *surface; + DDSURFACEDESC2 surface_desc; + IDirectDraw7 *ddraw; + IDirectDrawPalette *palette; + ULONG refcount; + HWND window; + HRESULT hr; + PALETTEENTRY palette_entries[256]; + unsigned int i; + static const struct + { + DWORD caps, flags; + BOOL attach_allowed; + const char *name; + } + test_data[] = + { + {DDSCAPS_OFFSCREENPLAIN, DDSD_WIDTH | DDSD_HEIGHT, FALSE, "offscreenplain"}, + {DDSCAPS_TEXTURE, DDSD_WIDTH | DDSD_HEIGHT, TRUE, "texture"}, + {DDSCAPS_PRIMARYSURFACE, 0, FALSE, "primary"} + }; + + window = CreateWindowA("static", "ddraw_test", WS_OVERLAPPEDWINDOW, + 0, 0, 640, 480, 0, 0, 0, 0); + ddraw = create_ddraw(); + ok(!!ddraw, "Failed to create a ddraw object.\n"); + if (FAILED(hr = IDirectDraw7_SetDisplayMode(ddraw, 640, 480, 8, 0, 0))) + { + win_skip("Failed to set 8 bpp display mode, skipping test.\n"); + IDirectDraw7_Release(ddraw); + DestroyWindow(window); + return; + } + ok(SUCCEEDED(hr), "Failed to set display mode, hr %#x.\n", hr); + hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); + ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr); + + memset(palette_entries, 0, sizeof(palette_entries)); + palette_entries[1].peFlags = 0x42; + palette_entries[2].peFlags = 0xff; + palette_entries[3].peFlags = 0x80; + hr = IDirectDraw7_CreatePalette(ddraw, DDPCAPS_ALLOW256 | DDPCAPS_8BIT, palette_entries, &palette, NULL); + ok(SUCCEEDED(hr), "Failed to create palette, hr %#x.\n", hr); + + memset(palette_entries, 0x66, sizeof(palette_entries)); + hr = IDirectDrawPalette_GetEntries(palette, 0, 1, 4, palette_entries); + ok(SUCCEEDED(hr), "Failed to get palette entries, hr %#x.\n", hr); + ok(palette_entries[0].peFlags == 0x42, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[0].peFlags); + ok(palette_entries[1].peFlags == 0xff, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[1].peFlags); + ok(palette_entries[2].peFlags == 0x80, "Got unexpected peFlags 0x%02x, expected 0x80.\n", + palette_entries[2].peFlags); + ok(palette_entries[3].peFlags == 0x00, "Got unexpected peFlags 0x%02x, expected 0x00.\n", + palette_entries[3].peFlags); + + IDirectDrawPalette_Release(palette); + + memset(palette_entries, 0, sizeof(palette_entries)); + palette_entries[1].peFlags = 0x42; + palette_entries[1].peRed = 0xff; + palette_entries[2].peFlags = 0xff; + palette_entries[3].peFlags = 0x80; + hr = IDirectDraw7_CreatePalette(ddraw, DDPCAPS_ALLOW256 | DDPCAPS_8BIT | DDPCAPS_ALPHA, + palette_entries, &palette, NULL); + ok(SUCCEEDED(hr), "Failed to create palette, hr %#x.\n", hr); + + memset(palette_entries, 0x66, sizeof(palette_entries)); + hr = IDirectDrawPalette_GetEntries(palette, 0, 1, 4, palette_entries); + ok(SUCCEEDED(hr), "Failed to get palette entries, hr %#x.\n", hr); + ok(palette_entries[0].peFlags == 0x42, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[0].peFlags); + ok(palette_entries[1].peFlags == 0xff, "Got unexpected peFlags 0x%02x, expected 0xff.\n", + palette_entries[1].peFlags); + ok(palette_entries[2].peFlags == 0x80, "Got unexpected peFlags 0x%02x, expected 0x80.\n", + palette_entries[2].peFlags); + ok(palette_entries[3].peFlags == 0x00, "Got unexpected peFlags 0x%02x, expected 0x00.\n", + palette_entries[3].peFlags); + + for (i = 0; i < sizeof(test_data) / sizeof(*test_data); i++) + { + memset(&surface_desc, 0, sizeof(surface_desc)); + surface_desc.dwSize = sizeof(surface_desc); + surface_desc.dwFlags = DDSD_CAPS | test_data[i].flags; + surface_desc.dwWidth = 128; + surface_desc.dwHeight = 128; + surface_desc.ddsCaps.dwCaps = test_data[i].caps; + hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &surface, NULL); + ok(SUCCEEDED(hr), "Failed to create %s surface, hr %#x.\n", test_data[i].name, hr); + + hr = IDirectDrawSurface7_SetPalette(surface, palette); + if (test_data[i].attach_allowed) + ok(SUCCEEDED(hr), "Failed to attach palette to %s surface, hr %#x.\n", test_data[i].name, hr); + else + ok(hr == DDERR_INVALIDSURFACETYPE, "Got unexpected hr %#x, %s surface.\n", hr, test_data[i].name); + + if (SUCCEEDED(hr)) + { + HDC dc; + RGBQUAD rgbquad; + UINT retval; + + hr = IDirectDrawSurface7_GetDC(surface, &dc); + ok(SUCCEEDED(hr), "Failed to get DC, hr %#x, %s surface.\n", hr, test_data[i].name); + retval = GetDIBColorTable(dc, 1, 1, &rgbquad); + ok(retval == 1, "GetDIBColorTable returned unexpected result %u.\n", retval); + ok(rgbquad.rgbRed == 0xff, "Expected rgbRed = 0xff, got %#x, %s surface.\n", + rgbquad.rgbRed, test_data[i].name); + ok(rgbquad.rgbGreen == 0, "Expected rgbGreen = 0, got %#x, %s surface.\n", + rgbquad.rgbGreen, test_data[i].name); + ok(rgbquad.rgbBlue == 0, "Expected rgbBlue = 0, got %#x, %s surface.\n", + rgbquad.rgbBlue, test_data[i].name); + todo_wine ok(rgbquad.rgbReserved == 0, "Expected rgbReserved = 0, got %u, %s surface.\n", + rgbquad.rgbReserved, test_data[i].name); + hr = IDirectDrawSurface7_ReleaseDC(surface, dc); + ok(SUCCEEDED(hr), "Failed to release DC, hr %#x.\n", hr); + } + IDirectDrawSurface7_Release(surface); + } + + /* Test INVALIDSURFACETYPE vs INVALIDPIXELFORMAT. */ + memset(&surface_desc, 0, sizeof(surface_desc)); + surface_desc.dwSize = sizeof(surface_desc); + surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT; + surface_desc.dwWidth = 128; + surface_desc.dwHeight = 128; + surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; + U4(surface_desc).ddpfPixelFormat.dwSize = sizeof(U4(surface_desc).ddpfPixelFormat); + U4(surface_desc).ddpfPixelFormat.dwFlags = DDPF_RGB; + U1(U4(surface_desc).ddpfPixelFormat).dwRGBBitCount = 32; + U2(U4(surface_desc).ddpfPixelFormat).dwRBitMask = 0x00ff0000; + U3(U4(surface_desc).ddpfPixelFormat).dwGBitMask = 0x0000ff00; + U4(U4(surface_desc).ddpfPixelFormat).dwBBitMask = 0x000000ff; + hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &surface, NULL); + ok(SUCCEEDED(hr), "Failed to create surface, hr %#x.\n", hr); + hr = IDirectDrawSurface7_SetPalette(surface, palette); + ok(hr == DDERR_INVALIDSURFACETYPE, "Got unexpected hr %#x.\n", hr); + IDirectDrawSurface7_Release(surface); + + /* The Windows 8 testbot keeps extra references to the primary + * while in 8 bpp mode. */ + hr = IDirectDraw7_RestoreDisplayMode(ddraw); + ok(SUCCEEDED(hr), "Failed to restore display mode, hr %#x.\n", hr); + + refcount = IDirectDrawPalette_Release(palette); + ok(!refcount, "Got unexpected refcount %u.\n", refcount); + refcount = IDirectDraw7_Release(ddraw); + ok(!refcount, "Got unexpected refcount %u.\n", refcount); + DestroyWindow(window); +} + START_TEST(ddraw7) { HMODULE module = GetModuleHandleA("ddraw.dll"); @@ -7075,4 +7228,5 @@ test_p8_rgb_blit(); test_material(); test_palette_gdi(); + test_palette_alpha(); } diff -Nru wine1.7-1.7.18/dlls/dmime/segmentstate.c wine1.7-1.7.19/dlls/dmime/segmentstate.c --- wine1.7-1.7.18/dlls/dmime/segmentstate.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dmime/segmentstate.c 2014-05-16 19:06:48.000000000 +0000 @@ -37,6 +37,9 @@ TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj); + if (!ppobj) + return E_POINTER; + *ppobj = NULL; if (IsEqualIID(riid, &IID_IUnknown) || diff -Nru wine1.7-1.7.18/dlls/dmime/tests/dmime.c wine1.7-1.7.19/dlls/dmime/tests/dmime.c --- wine1.7-1.7.18/dlls/dmime/tests/dmime.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dmime/tests/dmime.c 2014-05-16 19:06:48.000000000 +0000 @@ -293,6 +293,9 @@ ok(refcount == 4, "refcount == %u, expected 4\n", refcount); refcount = IUnknown_Release(unk); + hr = IDirectMusicSegmentState8_QueryInterface(dmss8, &IID_IUnknown, NULL); + ok(hr == E_POINTER, "got %08x\n", hr); + while (IDirectMusicSegmentState8_Release(dmss8)); } diff -Nru wine1.7-1.7.18/dlls/dmusic/collection.c wine1.7-1.7.19/dlls/dmusic/collection.c --- wine1.7-1.7.18/dlls/dmusic/collection.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dmusic/collection.c 2014-05-16 19:06:48.000000000 +0000 @@ -23,6 +23,28 @@ WINE_DEFAULT_DEBUG_CHANNEL(dmusic); WINE_DECLARE_DEBUG_CHANNEL(dmfile); +/***************************************************************************** + * IDirectMusicCollectionImpl implementation + */ +typedef struct IDirectMusicCollectionImpl { + IDirectMusicCollection IDirectMusicCollection_iface; + IDirectMusicObject IDirectMusicObject_iface; + IPersistStream IPersistStream_iface; + LONG ref; + /* IDirectMusicCollectionImpl fields */ + IStream *pStm; /* stream from which we load collection and later instruments */ + LARGE_INTEGER liCollectionPosition; /* offset in a stream where collection was loaded from */ + LARGE_INTEGER liWavePoolTablePosition; /* offset in a stream where wave pool table can be found */ + DMUS_OBJECTDESC *pDesc; + CHAR *szCopyright; /* FIXME: should probably placed somewhere else */ + DLSHEADER *pHeader; + /* pool table */ + POOLTABLE *pPoolTable; + POOLCUE *pPoolCues; + /* instruments */ + struct list Instruments; +} IDirectMusicCollectionImpl; + static inline IDirectMusicCollectionImpl *impl_from_IDirectMusicCollection(IDirectMusicCollection *iface) { return CONTAINING_RECORD(iface, IDirectMusicCollectionImpl, IDirectMusicCollection_iface); @@ -38,9 +60,6 @@ return CONTAINING_RECORD(iface, IDirectMusicCollectionImpl, IPersistStream_iface); } -/***************************************************************************** - * IDirectMusicCollectionImpl implementation - */ /* IDirectMusicCollectionImpl IUnknown part: */ static HRESULT WINAPI IDirectMusicCollectionImpl_IDirectMusicCollection_QueryInterface(LPDIRECTMUSICCOLLECTION iface, REFIID riid, LPVOID *ret_iface) { diff -Nru wine1.7-1.7.18/dlls/dmusic/dmusic_private.h wine1.7-1.7.19/dlls/dmusic/dmusic_private.h --- wine1.7-1.7.18/dlls/dmusic/dmusic_private.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dmusic/dmusic_private.h 2014-05-16 19:06:48.000000000 +0000 @@ -51,7 +51,6 @@ typedef struct IDirectMusicDownloadImpl IDirectMusicDownloadImpl; typedef struct IReferenceClockImpl IReferenceClockImpl; -typedef struct IDirectMusicCollectionImpl IDirectMusicCollectionImpl; typedef struct IDirectMusicInstrumentImpl IDirectMusicInstrumentImpl; typedef struct SynthPortImpl SynthPortImpl; @@ -210,30 +209,6 @@ } DMUS_PRIVATE_POOLCUE, *LPDMUS_PRIVATE_POOLCUE; /***************************************************************************** - * IDirectMusicCollectionImpl implementation structure - */ -struct IDirectMusicCollectionImpl { - /* IUnknown fields */ - IDirectMusicCollection IDirectMusicCollection_iface; - IDirectMusicObject IDirectMusicObject_iface; - IPersistStream IPersistStream_iface; - LONG ref; - - /* IDirectMusicCollectionImpl fields */ - IStream *pStm; /* stream from which we load collection and later instruments */ - LARGE_INTEGER liCollectionPosition; /* offset in a stream where collection was loaded from */ - LARGE_INTEGER liWavePoolTablePosition; /* offset in a stream where wave pool table can be found */ - LPDMUS_OBJECTDESC pDesc; - CHAR* szCopyright; /* FIXME: should probably placed somewhere else */ - LPDLSHEADER pHeader; - /* pool table */ - LPPOOLTABLE pPoolTable; - LPPOOLCUE pPoolCues; - /* instruments */ - struct list Instruments; -}; - -/***************************************************************************** * IDirectMusicInstrumentImpl implementation structure */ struct IDirectMusicInstrumentImpl { diff -Nru wine1.7-1.7.18/dlls/dplayx/dplobby.c wine1.7-1.7.19/dlls/dplayx/dplobby.c --- wine1.7-1.7.18/dlls/dplayx/dplobby.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dplayx/dplobby.c 2014-05-16 19:06:48.000000000 +0000 @@ -2044,6 +2044,7 @@ obj->IDirectPlayLobby3_iface.lpVtbl = &dpl3_vt; obj->IDirectPlayLobby3A_iface.lpVtbl = &dpl3A_vt; obj->numIfaces = 1; + obj->msgtid = 0; obj->ref = 0; obj->refA = 0; obj->ref2 = 0; diff -Nru wine1.7-1.7.18/dlls/dpnet/client.c wine1.7-1.7.19/dlls/dpnet/client.c --- wine1.7-1.7.18/dlls/dpnet/client.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dpnet/client.c 2014-05-16 19:06:48.000000000 +0000 @@ -86,9 +86,18 @@ static HRESULT WINAPI IDirectPlay8ClientImpl_Initialize(IDirectPlay8Client *iface, void * const pvUserContext, const PFNDPNMESSAGEHANDLER pfn, const DWORD dwFlags) { - IDirectPlay8ClientImpl *This = impl_from_IDirectPlay8Client(iface); - FIXME("(%p):(%p,%p,%x): Stub\n", This, pvUserContext, pfn, dwFlags); - return DPN_OK; + IDirectPlay8ClientImpl *This = impl_from_IDirectPlay8Client(iface); + + TRACE("(%p):(%p,%p,%x)\n", This, pvUserContext, pfn, dwFlags); + + if(!pfn) + return DPNERR_INVALIDPARAM; + + This->usercontext = pvUserContext; + This->msghandler = pfn; + This->flags = dwFlags; + + return DPN_OK; } static HRESULT WINAPI IDirectPlay8ClientImpl_EnumServiceProviders(IDirectPlay8Client *iface, @@ -225,9 +234,21 @@ static HRESULT WINAPI IDirectPlay8ClientImpl_GetSPCaps(IDirectPlay8Client *iface, const GUID * const pguidSP, DPN_SP_CAPS * const pdpspCaps, const DWORD dwFlags) { - IDirectPlay8ClientImpl *This = impl_from_IDirectPlay8Client(iface); - FIXME("(%p):(%x): Stub\n", This, dwFlags); - return DPN_OK; + IDirectPlay8ClientImpl *This = impl_from_IDirectPlay8Client(iface); + + TRACE("(%p)->(%p,%p,%x)\n", This, pguidSP, pdpspCaps, dwFlags); + + if(!This->msghandler) + return DPNERR_UNINITIALIZED; + + if(pdpspCaps->dwSize != sizeof(DPN_SP_CAPS)) + { + return DPNERR_INVALIDPARAM; + } + + *pdpspCaps = This->spcaps; + + return DPN_OK; } static HRESULT WINAPI IDirectPlay8ClientImpl_GetConnectionInfo(IDirectPlay8Client *iface, @@ -292,6 +313,8 @@ client->IDirectPlay8Client_iface.lpVtbl = &DirectPlay8Client_Vtbl; client->ref = 1; + init_dpn_sp_caps(&client->spcaps); + hr = IDirectPlay8ClientImpl_QueryInterface(&client->IDirectPlay8Client_iface, riid, ppv); IDirectPlay8ClientImpl_Release(&client->IDirectPlay8Client_iface); diff -Nru wine1.7-1.7.18/dlls/dpnet/dpnet_private.h wine1.7-1.7.19/dlls/dpnet/dpnet_private.h --- wine1.7-1.7.18/dlls/dpnet/dpnet_private.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dpnet/dpnet_private.h 2014-05-16 19:06:48.000000000 +0000 @@ -46,9 +46,15 @@ */ struct IDirectPlay8ClientImpl { - IDirectPlay8Client IDirectPlay8Client_iface; - LONG ref; - /* IDirectPlay8Client fields */ + IDirectPlay8Client IDirectPlay8Client_iface; + LONG ref; + + /* IDirectPlay8Client fields */ + PFNDPNMESSAGEHANDLER msghandler; + DWORD flags; + void *usercontext; + + DPN_SP_CAPS spcaps; }; /* ------------------- */ @@ -72,8 +78,13 @@ */ struct IDirectPlay8LobbiedApplicationImpl { - IDirectPlay8LobbiedApplication IDirectPlay8LobbiedApplication_iface; - LONG ref; + IDirectPlay8LobbiedApplication IDirectPlay8LobbiedApplication_iface; + LONG ref; + + PFNDPNMESSAGEHANDLER msghandler; + DWORD flags; + void *usercontext; + DPNHANDLE *connection; }; /***************************************************************************** @@ -95,6 +106,8 @@ extern HRESULT DPNET_CreateDirectPlay8LobbiedApp(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; extern HRESULT DPNET_CreateDirectPlay8ThreadPool(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; +extern void init_dpn_sp_caps(DPN_SP_CAPS *dpnspcaps) DECLSPEC_HIDDEN; + /* used for generic dumping (copied from ddraw) */ typedef struct { DWORD val; diff -Nru wine1.7-1.7.18/dlls/dpnet/lobbiedapp.c wine1.7-1.7.19/dlls/dpnet/lobbiedapp.c --- wine1.7-1.7.18/dlls/dpnet/lobbiedapp.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dpnet/lobbiedapp.c 2014-05-16 19:06:48.000000000 +0000 @@ -89,9 +89,19 @@ void * const pvUserContext, const PFNDPNMESSAGEHANDLER pfn, DPNHANDLE * const pdpnhConnection, const DWORD dwFlags) { - IDirectPlay8LobbiedApplicationImpl *This = impl_from_IDirectPlay8LobbiedApplication(iface); - FIXME("(%p): stub\n", This); - return DPN_OK; + IDirectPlay8LobbiedApplicationImpl *This = impl_from_IDirectPlay8LobbiedApplication(iface); + + TRACE("(%p)->(%p %p %p %x)\n", This, pvUserContext, pfn, pdpnhConnection, dwFlags); + + if(!pfn) + return DPNERR_INVALIDPOINTER; + + This->msghandler = pfn; + This->flags = dwFlags; + This->usercontext = pvUserContext; + This->connection = pdpnhConnection; + + return DPN_OK; } static HRESULT WINAPI IDirectPlay8LobbiedApplicationImpl_RegisterProgram(IDirectPlay8LobbiedApplication *iface, diff -Nru wine1.7-1.7.18/dlls/dpnet/peer.c wine1.7-1.7.19/dlls/dpnet/peer.c --- wine1.7-1.7.18/dlls/dpnet/peer.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dpnet/peer.c 2014-05-16 19:06:48.000000000 +0000 @@ -47,6 +47,8 @@ PFNDPNMESSAGEHANDLER msghandler; DWORD flags; void *usercontext; + + DPN_SP_CAPS spcaps; } IDirectPlay8PeerImpl; static inline IDirectPlay8PeerImpl *impl_from_IDirectPlay8Peer(IDirectPlay8Peer *iface) @@ -416,22 +418,19 @@ static HRESULT WINAPI IDirectPlay8PeerImpl_GetSPCaps(IDirectPlay8Peer *iface, const GUID * const pguidSP, DPN_SP_CAPS * const pdpspCaps, const DWORD dwFlags) { - TRACE("(%p)->(%p,%p,%x)\n", iface, pguidSP, pdpspCaps, dwFlags); + IDirectPlay8PeerImpl* This = impl_from_IDirectPlay8Peer(iface); + + TRACE("(%p)->(%p,%p,%x)\n", This, pguidSP, pdpspCaps, dwFlags); + + if(!This->msghandler) + return DPNERR_UNINITIALIZED; if(pdpspCaps->dwSize != sizeof(DPN_SP_CAPS)) { return DPNERR_INVALIDPARAM; } - pdpspCaps->dwFlags = DPNSPCAPS_SUPPORTSDPNSRV | DPNSPCAPS_SUPPORTSBROADCAST | - DPNSPCAPS_SUPPORTSALLADAPTERS | DPNSPCAPS_SUPPORTSTHREADPOOL; - pdpspCaps->dwNumThreads = 3; - pdpspCaps->dwDefaultEnumCount = 5; - pdpspCaps->dwDefaultEnumRetryInterval = 1500; - pdpspCaps->dwDefaultEnumTimeout = 1500; - pdpspCaps->dwMaxEnumPayloadSize = 983; - pdpspCaps->dwBuffersPerThread = 1; - pdpspCaps->dwSystemBufferSize = 0x10000; + *pdpspCaps = This->spcaps; return DPN_OK; } @@ -501,6 +500,19 @@ IDirectPlay8PeerImpl_TerminateSession }; +void init_dpn_sp_caps(DPN_SP_CAPS *dpnspcaps) +{ + dpnspcaps->dwFlags = DPNSPCAPS_SUPPORTSDPNSRV | DPNSPCAPS_SUPPORTSBROADCAST | + DPNSPCAPS_SUPPORTSALLADAPTERS | DPNSPCAPS_SUPPORTSTHREADPOOL; + dpnspcaps->dwNumThreads = 3; + dpnspcaps->dwDefaultEnumCount = 5; + dpnspcaps->dwDefaultEnumRetryInterval = 1500; + dpnspcaps->dwDefaultEnumTimeout = 1500; + dpnspcaps->dwMaxEnumPayloadSize = 983; + dpnspcaps->dwBuffersPerThread = 1; + dpnspcaps->dwSystemBufferSize = 0x10000; +}; + HRESULT DPNET_CreateDirectPlay8Peer(IClassFactory *iface, IUnknown *pUnkOuter, REFIID riid, LPVOID *ppobj) { IDirectPlay8PeerImpl* Client; @@ -522,6 +534,8 @@ Client->msghandler = NULL; Client->flags = 0; + init_dpn_sp_caps(&Client->spcaps); + ret = IDirectPlay8Peer_QueryInterface(&Client->IDirectPlay8Peer_iface, riid, ppobj); IDirectPlay8Peer_Release(&Client->IDirectPlay8Peer_iface); diff -Nru wine1.7-1.7.18/dlls/dpnet/tests/client.c wine1.7-1.7.19/dlls/dpnet/tests/client.c --- wine1.7-1.7.18/dlls/dpnet/tests/client.c 1970-01-01 00:00:00.000000000 +0000 +++ wine1.7-1.7.19/dlls/dpnet/tests/client.c 2014-05-16 19:06:48.000000000 +0000 @@ -0,0 +1,237 @@ +/* + * Copyright 2011 Louis Lenders + * Copyright 2014 Alistair Leslie-Hughes + * + * 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 + */ + +#define WIN32_LEAN_AND_MEAN +#include + +#include +#include +#include "wine/test.h" + + +static IDirectPlay8Client* client = NULL; +static IDirectPlay8LobbiedApplication* lobbied = NULL; +static const GUID appguid = { 0xcd0c3d4b, 0xe15e, 0x4cf2, { 0x9e, 0xa8, 0x6e, 0x1d, 0x65, 0x48, 0xc5, 0xa5 } }; + +static HRESULT WINAPI DirectPlayMessageHandler(PVOID context, DWORD message_id, PVOID buffer) +{ + trace("DirectPlayMessageHandler: 0x%08x\n", message_id); + return S_OK; +} + +static HRESULT WINAPI DirectPlayLobbyMessageHandler(PVOID context, DWORD message_id, PVOID buffer) +{ + trace("DirectPlayLobbyMessageHandler: 0x%08x\n", message_id); + return S_OK; +} + +static BOOL test_init_dp(void) +{ + HRESULT hr; + DPN_SP_CAPS caps; + DPNHANDLE lobbyConnection; + + hr = CoInitialize(0); + ok(hr == S_OK, "CoInitialize failed with %x\n", hr); + + hr = CoCreateInstance(&CLSID_DirectPlay8Client, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectPlay8Client, (void **)&client); + ok(hr == S_OK, "CoCreateInstance failed with 0x%x\n", hr); + + memset(&caps, 0, sizeof(DPN_SP_CAPS)); + caps.dwSize = sizeof(DPN_SP_CAPS); + + hr = IDirectPlay8Client_GetSPCaps(client, &CLSID_DP8SP_TCPIP, &caps, 0); + ok(hr == DPNERR_UNINITIALIZED, "GetSPCaps failed with %x\n", hr); + + hr = IDirectPlay8Client_Initialize(client, NULL, NULL, 0); + ok(hr == DPNERR_INVALIDPARAM, "got %x\n", hr); + + hr = IDirectPlay8Client_Initialize(client, NULL, DirectPlayMessageHandler, 0); + ok(hr == S_OK, "IDirectPlay8Client_Initialize failed with %x\n", hr); + + hr = CoCreateInstance(&CLSID_DirectPlay8LobbiedApplication, NULL, CLSCTX_INPROC_SERVER, + &IID_IDirectPlay8LobbiedApplication, (void **)&lobbied); + ok(hr == S_OK, "CoCreateInstance failed with 0x%x\n", hr); + + hr = IDirectPlay8LobbiedApplication_Initialize(lobbied, NULL, DirectPlayLobbyMessageHandler, + &lobbyConnection, 0); + ok(hr == S_OK, "IDirectPlay8LobbiedApplication_Initialize failed with %x\n", hr); + + return client != NULL; +} + +static void test_enum_service_providers(void) +{ + DPN_SERVICE_PROVIDER_INFO *serv_prov_info; + DWORD items, size; + DWORD i; + HRESULT hr; + + size = 0; + items = 0; + + hr = IDirectPlay8Client_EnumServiceProviders(client, NULL, NULL, NULL, &size, NULL, 0); + todo_wine ok(hr == E_POINTER, "IDirectPlay8Client_EnumServiceProviders failed with %x\n", hr); + + hr = IDirectPlay8Client_EnumServiceProviders(client, NULL, NULL, NULL, NULL, &items, 0); + todo_wine ok(hr == E_POINTER, "IDirectPlay8Client_EnumServiceProviders failed with %x\n", hr); + + hr = IDirectPlay8Client_EnumServiceProviders(client, NULL, NULL, NULL, &size, &items, 0); + todo_wine ok(hr == DPNERR_BUFFERTOOSMALL, "IDirectPlay8Client_EnumServiceProviders failed with %x\n", hr); + todo_wine ok(size != 0, "size is unexpectedly 0\n"); + + serv_prov_info = HeapAlloc(GetProcessHeap(), 0, size); + + hr = IDirectPlay8Client_EnumServiceProviders(client, NULL, NULL, serv_prov_info, &size, &items, 0); + ok(hr == S_OK, "IDirectPlay8Client_EnumServiceProviders failed with %x\n", hr); + todo_wine ok(items != 0, "Found unexpectedly no service providers\n"); + + trace("number of items found: %d\n", items); + + for (i=0;i= 3, "got %d\n", caps.dwNumThreads); + ok(caps.dwDefaultEnumCount == 5, "expected 5, got %d\n", caps.dwDefaultEnumCount); + ok(caps.dwDefaultEnumRetryInterval == 1500, "expected 1500, got %d\n", caps.dwDefaultEnumRetryInterval); + ok(caps.dwDefaultEnumTimeout == 1500, "expected 1500, got %d\n", caps.dwDefaultEnumTimeout); + ok(caps.dwMaxEnumPayloadSize == 983, "expected 983, got %d\n", caps.dwMaxEnumPayloadSize); + ok(caps.dwBuffersPerThread == 1, "expected 1, got %d\n", caps.dwBuffersPerThread); + ok(caps.dwSystemBufferSize == 0x10000 || broken(caps.dwSystemBufferSize == 0x2000 /* before Win8 */), + "expected 0x10000, got 0x%x\n", caps.dwSystemBufferSize); +} + +static void test_cleanup_dp(void) +{ + HRESULT hr; + + hr = IDirectPlay8Client_Close(client, 0); + ok(hr == S_OK, "IDirectPlay8Client_Close failed with %x\n", hr); + + if(lobbied) + { + hr = IDirectPlay8LobbiedApplication_Close(lobbied, 0); + ok(hr == S_OK, "IDirectPlay8LobbiedApplication_Close failed with %x\n", hr); + + IDirectPlay8LobbiedApplication_Release(lobbied); + } + + IDirectPlay8Client_Release(client); + + CoUninitialize(); +} + +START_TEST(client) +{ + if(!test_init_dp()) + return; + + test_enum_service_providers(); + test_enum_hosts(); + test_get_sp_caps(); + test_cleanup_dp(); +} diff -Nru wine1.7-1.7.18/dlls/dpnet/tests/Makefile.in wine1.7-1.7.19/dlls/dpnet/tests/Makefile.in --- wine1.7-1.7.18/dlls/dpnet/tests/Makefile.in 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dpnet/tests/Makefile.in 2014-05-16 19:06:48.000000000 +0000 @@ -3,5 +3,6 @@ C_SRCS = \ address.c \ + client.c \ peer.c \ server.c diff -Nru wine1.7-1.7.18/dlls/dpnet/tests/peer.c wine1.7-1.7.19/dlls/dpnet/tests/peer.c --- wine1.7-1.7.18/dlls/dpnet/tests/peer.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dpnet/tests/peer.c 2014-05-16 19:06:48.000000000 +0000 @@ -20,10 +20,12 @@ #include #include +#include #include "wine/test.h" static IDirectPlay8Peer* peer = NULL; +static IDirectPlay8LobbiedApplication* lobbied = NULL; static HRESULT WINAPI DirectPlayMessageHandler(PVOID context, DWORD message_id, PVOID buffer) { @@ -31,9 +33,17 @@ return S_OK; } +static HRESULT WINAPI DirectPlayLobbyMessageHandler(PVOID context, DWORD message_id, PVOID buffer) +{ + trace("DirectPlayLobbyMessageHandler: 0x%08x\n", message_id); + return S_OK; +} + static void test_init_dp(void) { HRESULT hr; + DPN_SP_CAPS caps; + DPNHANDLE lobbyConnection; hr = CoInitialize(0); ok(hr == S_OK, "CoInitialize failed with %x\n", hr); @@ -41,11 +51,29 @@ hr = CoCreateInstance(&CLSID_DirectPlay8Peer, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectPlay8Peer, (void **)&peer); ok(hr == S_OK, "CoCreateInstance failed with 0x%x\n", hr); + memset(&caps, 0, sizeof(DPN_SP_CAPS)); + caps.dwSize = sizeof(DPN_SP_CAPS); + + hr = IDirectPlay8Peer_GetSPCaps(peer, &CLSID_DP8SP_TCPIP, &caps, 0); + ok(hr == DPNERR_UNINITIALIZED, "GetSPCaps failed with %x\n", hr); + hr = IDirectPlay8Peer_Initialize(peer, NULL, NULL, 0); ok(hr == DPNERR_INVALIDPARAM, "got %x\n", hr); hr = IDirectPlay8Peer_Initialize(peer, NULL, DirectPlayMessageHandler, 0); ok(hr == S_OK, "IDirectPlay8Peer_Initialize failed with %x\n", hr); + + hr = CoCreateInstance(&CLSID_DirectPlay8LobbiedApplication, NULL, CLSCTX_INPROC_SERVER, + &IID_IDirectPlay8LobbiedApplication, (void **)&lobbied); + ok(hr == S_OK, "CoCreateInstance failed with 0x%x\n", hr); + + hr = IDirectPlay8LobbiedApplication_Initialize(lobbied, NULL, NULL, + &lobbyConnection, 0); + ok(hr == DPNERR_INVALIDPOINTER, "Failed with %x\n", hr); + + hr = IDirectPlay8LobbiedApplication_Initialize(lobbied, NULL, DirectPlayLobbyMessageHandler, + &lobbyConnection, 0); + ok(hr == S_OK, "IDirectPlay8LobbiedApplication_Initialize failed with %x\n", hr); } static void test_enum_service_providers(void) @@ -191,8 +219,15 @@ hr = IDirectPlay8Peer_Close(peer, 0); ok(hr == S_OK, "IDirectPlay8Peer_Close failed with %x\n", hr); - hr = IDirectPlay8Peer_Release(peer); - ok(hr == S_OK, "IDirectPlay8Peer_Release failed with %x\n", hr); + if(lobbied) + { + hr = IDirectPlay8LobbiedApplication_Close(lobbied, 0); + ok(hr == S_OK, "IDirectPlay8LobbiedApplication_Close failed with %x\n", hr); + + IDirectPlay8LobbiedApplication_Release(lobbied); + } + + IDirectPlay8Peer_Release(peer); CoUninitialize(); } diff -Nru wine1.7-1.7.18/dlls/dxguid/dxguid.c wine1.7-1.7.19/dlls/dxguid/dxguid.c --- wine1.7-1.7.18/dlls/dxguid/dxguid.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/dxguid/dxguid.c 2014-05-16 19:06:48.000000000 +0000 @@ -40,6 +40,7 @@ #include "dplay.h" #include "dplay8.h" #include "dplobby.h" +#include "dplobby8.h" #include "dinput.h" #include "ddrawi.h" #include "dxdiag.h" diff -Nru wine1.7-1.7.18/dlls/fusion/asmname.c wine1.7-1.7.19/dlls/fusion/asmname.c --- wine1.7-1.7.18/dlls/fusion/asmname.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/fusion/asmname.c 2014-05-16 19:06:48.000000000 +0000 @@ -709,6 +709,8 @@ { HeapFree(GetProcessHeap(), 0, name->displayname); HeapFree(GetProcessHeap(), 0, name->name); + HeapFree(GetProcessHeap(), 0, name->culture); + HeapFree(GetProcessHeap(), 0, name->procarch); } return hr; } diff -Nru wine1.7-1.7.18/dlls/gdi32/freetype.c wine1.7-1.7.19/dlls/gdi32/freetype.c --- wine1.7-1.7.18/dlls/gdi32/freetype.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/gdi32/freetype.c 2014-05-16 19:06:48.000000000 +0000 @@ -5709,25 +5709,25 @@ free_font(font); } -static BOOL family_matches(Family *family, const LOGFONTW *lf) +static BOOL family_matches(Family *family, const WCHAR *face_name) { Face *face; const struct list *face_list; - if (!strcmpiW(lf->lfFaceName, family->FamilyName)) return TRUE; + if (!strcmpiW(face_name, family->FamilyName)) return TRUE; face_list = get_face_list_from_family(family); LIST_FOR_EACH_ENTRY(face, face_list, Face, entry) - if (face->FullName && !strcmpiW(lf->lfFaceName, face->FullName)) return TRUE; + if (face->FullName && !strcmpiW(face_name, face->FullName)) return TRUE; return FALSE; } -static BOOL face_matches(const WCHAR *family_name, Face *face, const LOGFONTW *lf) +static BOOL face_matches(const WCHAR *family_name, Face *face, const WCHAR *face_name) { - if (!strcmpiW(lf->lfFaceName, family_name)) return TRUE; + if (!strcmpiW(face_name, family_name)) return TRUE; - return (face->FullName && !strcmpiW(lf->lfFaceName, face->FullName)); + return (face->FullName && !strcmpiW(face_name, face->FullName)); } static BOOL enum_face_charsets(const Family *family, Face *face, struct enum_charset_list *list, @@ -5805,22 +5805,20 @@ GDI_CheckNotLock(); EnterCriticalSection( &freetype_cs ); if(plf->lfFaceName[0]) { - FontSubst *psub; - psub = get_font_subst(&font_subst_list, plf->lfFaceName, plf->lfCharSet); + WCHAR *face_name = plf->lfFaceName; + FontSubst *psub = get_font_subst(&font_subst_list, plf->lfFaceName, plf->lfCharSet); if(psub) { TRACE("substituting %s -> %s\n", debugstr_w(plf->lfFaceName), debugstr_w(psub->to.name)); - lf = *plf; - strcpyW(lf.lfFaceName, psub->to.name); - plf = &lf; + face_name = psub->to.name; } LIST_FOR_EACH_ENTRY( family, &font_list, Family, entry ) { - if (!family_matches(family, plf)) continue; + if (!family_matches(family, face_name)) continue; face_list = get_face_list_from_family(family); LIST_FOR_EACH_ENTRY( face, face_list, Face, entry ) { - if (!face_matches(family->FamilyName, face, plf)) continue; + if (!face_matches(family->FamilyName, face, face_name)) continue; if (!enum_face_charsets(family, face, &enum_charsets, proc, lparam)) return FALSE; } } @@ -7392,6 +7390,9 @@ TM.tmFirstChar = 0; switch(GetACP()) { + case 1255: /* Hebrew */ + TM.tmLastChar = 0xf896; + break; case 1257: /* Baltic */ TM.tmLastChar = 0xf8fd; break; diff -Nru wine1.7-1.7.18/dlls/gdi32/region.c wine1.7-1.7.19/dlls/gdi32/region.c --- wine1.7-1.7.18/dlls/gdi32/region.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/gdi32/region.c 2014-05-16 19:06:48.000000000 +0000 @@ -886,13 +886,13 @@ if(!obj) return 0; size = obj->numRects * sizeof(RECT); - if(count < (size + sizeof(RGNDATAHEADER)) || rgndata == NULL) + if (!rgndata || count < FIELD_OFFSET(RGNDATA, Buffer[size])) { GDI_ReleaseObj( hrgn ); if (rgndata) /* buffer is too small, signal it by return 0 */ return 0; - else /* user requested buffer size with rgndata NULL */ - return size + sizeof(RGNDATAHEADER); + /* user requested buffer size with rgndata NULL */ + return FIELD_OFFSET(RGNDATA, Buffer[size]); } rgndata->rdh.dwSize = sizeof(RGNDATAHEADER); @@ -907,7 +907,7 @@ memcpy( rgndata->Buffer, obj->rects, size ); GDI_ReleaseObj( hrgn ); - return size + sizeof(RGNDATAHEADER); + return FIELD_OFFSET(RGNDATA, Buffer[size]); } diff -Nru wine1.7-1.7.18/dlls/gdi32/tests/bitmap.c wine1.7-1.7.19/dlls/gdi32/tests/bitmap.c --- wine1.7-1.7.18/dlls/gdi32/tests/bitmap.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/gdi32/tests/bitmap.c 2014-05-16 19:06:48.000000000 +0000 @@ -854,6 +854,21 @@ i, colors[i].rgbRed, colors[i].rgbGreen, colors[i].rgbBlue, colors[i].rgbReserved); } + rgb[0].rgbRed = 1; + rgb[0].rgbGreen = 2; + rgb[0].rgbBlue = 3; + rgb[0].rgbReserved = 123; + ret = SetDIBColorTable( hdcmem, 0, 1, rgb ); + ok( ret == 1, "SetDIBColorTable returned unexpected result %u\n", ret ); + ok( rgb[0].rgbReserved == 123, "Expected rgbReserved = 123, got %u\n", rgb[0].rgbReserved ); + + ret = GetDIBColorTable( hdcmem, 0, 1, rgb ); + ok( ret == 1, "GetDIBColorTable returned unexpected result %u\n", ret ); + ok( rgb[0].rgbRed == 1, "Expected rgbRed = 1, got %u\n", rgb[0].rgbRed ); + ok( rgb[0].rgbGreen == 2, "Expected rgbGreen = 2, got %u\n", rgb[0].rgbGreen ); + ok( rgb[0].rgbBlue == 3, "Expected rgbBlue = 3, got %u\n", rgb[0].rgbBlue ); + todo_wine ok( rgb[0].rgbReserved == 0, "Expected rgbReserved = 0, got %u\n", rgb[0].rgbReserved ); + SelectObject(hdcmem, oldbm); DeleteObject(hdib); DeleteObject(hpal); diff -Nru wine1.7-1.7.18/dlls/gdi32/tests/font.c wine1.7-1.7.19/dlls/gdi32/tests/font.c --- wine1.7-1.7.18/dlls/gdi32/tests/font.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/gdi32/tests/font.c 2014-05-16 19:06:48.000000000 +0000 @@ -3543,6 +3543,9 @@ expect_first_W = 0; switch(GetACP()) { + case 1255: /* Hebrew */ + expect_last_W = 0xf896; + break; case 1257: /* Baltic */ expect_last_W = 0xf8fd; break; @@ -4678,6 +4681,7 @@ int ret; LOGFONTA lf; HDC hdc; + struct enum_fullname_data efnd; if (!is_truetype_font_installed("Arial")) { @@ -4738,6 +4742,28 @@ ret = EnumFontFamiliesA(hdc, NULL, enum_all_fonts_proc, (LPARAM)&lf); ok(ret, "font Arial Italic Bold should not be enumerated\n"); + /* MS Shell Dlg and MS Shell Dlg 2 must exist */ + memset(&lf, 0, sizeof(lf)); + lf.lfCharSet = DEFAULT_CHARSET; + + memset(&efnd, 0, sizeof(efnd)); + strcpy(lf.lfFaceName, "MS Shell Dlg"); + ret = EnumFontFamiliesExA(hdc, &lf, enum_fullname_data_proc, (LPARAM)&efnd, 0); + ok(ret, "font MS Shell Dlg is not enumerated\n"); + ret = strcmp((char*)efnd.elf[0].elfLogFont.lfFaceName, "MS Shell Dlg"); + todo_wine ok(!ret, "expected MS Shell Dlg got %s\n", efnd.elf[0].elfLogFont.lfFaceName); + ret = strcmp((char*)efnd.elf[0].elfFullName, "MS Shell Dlg"); + ok(ret, "did not expect MS Shell Dlg\n"); + + memset(&efnd, 0, sizeof(efnd)); + strcpy(lf.lfFaceName, "MS Shell Dlg 2"); + ret = EnumFontFamiliesExA(hdc, &lf, enum_fullname_data_proc, (LPARAM)&efnd, 0); + ok(ret, "font MS Shell Dlg 2 is not enumerated\n"); + ret = strcmp((char*)efnd.elf[0].elfLogFont.lfFaceName, "MS Shell Dlg 2"); + todo_wine ok(!ret, "expected MS Shell Dlg 2 got %s\n", efnd.elf[0].elfLogFont.lfFaceName); + ret = strcmp((char*)efnd.elf[0].elfFullName, "MS Shell Dlg 2"); + ok(ret, "did not expect MS Shell Dlg 2\n"); + DeleteDC(hdc); } diff -Nru wine1.7-1.7.18/dlls/hhctrl.ocx/stream.c wine1.7-1.7.19/dlls/hhctrl.ocx/stream.c --- wine1.7-1.7.18/dlls/hhctrl.ocx/stream.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/hhctrl.ocx/stream.c 2014-05-16 19:06:48.000000000 +0000 @@ -122,7 +122,7 @@ if(buf->len == 0) break; p = &buf->buf[b]; - while((p = memchr(p+1, '"', buf->len-(p-buf->buf))) != NULL) + while((p = memchr(p+1, '"', buf->len-(p+1-buf->buf))) != NULL) tag_count++; b = buf->len; if(tag_count % 2 != 0) diff -Nru wine1.7-1.7.18/dlls/ieframe/shelluihelper.c wine1.7-1.7.19/dlls/ieframe/shelluihelper.c --- wine1.7-1.7.18/dlls/ieframe/shelluihelper.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ieframe/shelluihelper.c 2014-05-16 19:06:48.000000000 +0000 @@ -45,7 +45,7 @@ }else if(IsEqualGUID(&IID_IShellUIHelper, riid)) { TRACE("(%p)->(IID_IShellUIHelper %p)\n", This, ppv); *ppv = &This->IShellUIHelper2_iface; - }else if(IsEqualGUID(&IID_IShellUIHelper, riid)) { + }else if(IsEqualGUID(&IID_IShellUIHelper2, riid)) { TRACE("(%p)->(IID_IShellUIHelper2 %p)\n", This, ppv); *ppv = &This->IShellUIHelper2_iface; }else { diff -Nru wine1.7-1.7.18/dlls/ieframe/tests/webbrowser.c wine1.7-1.7.19/dlls/ieframe/tests/webbrowser.c --- wine1.7-1.7.18/dlls/ieframe/tests/webbrowser.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ieframe/tests/webbrowser.c 2014-05-16 19:06:48.000000000 +0000 @@ -455,6 +455,7 @@ case 140: /* TODO (Win7) */ case 144: /* TODO */ case 178: /* IE11 */ + case 179: /* IE11 */ return E_FAIL; default: ok(0, "unexpected nCmdID %d\n", nCmdID); @@ -699,15 +700,16 @@ V_VT(flags)); ok(V_VARIANTREF(flags) != NULL, "V_VARIANTREF(flags) == NULL)\n"); if(V_VARIANTREF(flags)) { + int f; + ok(V_VT(V_VARIANTREF(flags)) == VT_I4, "V_VT(V_VARIANTREF(flags))=%d, expected VT_I4\n", V_VT(V_VARIANTREF(flags))); - if(is_first_load) { - ok(V_I4(V_VARIANTREF(flags)) == 0, "V_I4(V_VARIANTREF(flags)) = %x, expected 0\n", - V_I4(V_VARIANTREF(flags))); - }else { - ok((V_I4(V_VARIANTREF(flags)) & ~0x40) == 0, "V_I4(V_VARIANTREF(flags)) = %x, expected 0x40 or 0\n", - V_I4(V_VARIANTREF(flags))); - } + f = V_I4(V_VARIANTREF(flags)); + f &= ~0x100; /* IE11 sets this flag */ + if(is_first_load) + ok(!f, "flags = %x, expected 0\n", V_I4(V_VARIANTREF(flags))); + else + ok(!(f & ~0x40), "flags = %x, expected 0x40 or 0\n", V_I4(V_VARIANTREF(flags))); } ok(V_VT(frame) == (VT_BYREF|VT_VARIANT), "V_VT(frame)=%x, expected VT_BYREF|VT_VARIANT\n", @@ -2736,7 +2738,7 @@ test_ready_state((flags & (DWL_FROM_PUT_HREF|DWL_FROM_GOBACK|DWL_FROM_GOFORWARD|DWL_REFRESH)) ? READYSTATE_COMPLETE : READYSTATE_LOADING); - if(flags & (DWL_EXPECT_BEFORE_NAVIGATE|(is_http ? DWL_FROM_PUT_HREF : 0))) + if(flags & (DWL_EXPECT_BEFORE_NAVIGATE|(is_http ? DWL_FROM_PUT_HREF : 0)|DWL_FROM_GOFORWARD)) SET_EXPECT(Invoke_PROPERTYCHANGE); if(flags & DWL_EXPECT_BEFORE_NAVIGATE) { @@ -2780,6 +2782,8 @@ if(flags & (DWL_EXPECT_BEFORE_NAVIGATE|(is_http ? DWL_FROM_PUT_HREF : 0))) todo_wine CHECK_CALLED(Invoke_PROPERTYCHANGE); + else if(flags & DWL_FROM_GOFORWARD) + CLEAR_CALLED(Invoke_PROPERTYCHANGE); /* called by IE11 */ if(flags & DWL_EXPECT_BEFORE_NAVIGATE) { CHECK_CALLED(Invoke_BEFORENAVIGATE2); @@ -2951,10 +2955,12 @@ SET_EXPECT(Invoke_BEFORENAVIGATE2); SET_EXPECT(Invoke_COMMANDSTATECHANGE); + SET_EXPECT(Invoke_PROPERTYCHANGE); hres = IWebBrowser2_GoBack(wb); ok(hres == S_OK, "GoBack failed: %08x\n", hres); CHECK_CALLED(Invoke_BEFORENAVIGATE2); todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE); + CLEAR_CALLED(Invoke_PROPERTYCHANGE); /* called by IE11 */ } static void test_go_forward(IWebBrowser2 *wb, const char *forward_url) diff -Nru wine1.7-1.7.18/dlls/imagehlp/tests/integrity.c wine1.7-1.7.19/dlls/imagehlp/tests/integrity.c --- wine1.7-1.7.18/dlls/imagehlp/tests/integrity.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/imagehlp/tests/integrity.c 2014-05-16 19:06:48.000000000 +0000 @@ -135,7 +135,7 @@ return filesize; } -static void test_add_certificate(const char *cert_data, int len) +static DWORD test_add_certificate(const char *cert_data, int len) { HANDLE hFile; LPWIN_CERTIFICATE cert; @@ -148,7 +148,7 @@ if (hFile == INVALID_HANDLE_VALUE) { skip("Unable to open %s, skipping test\n", test_dll_path); - return; + return ~0; } cert_len = sizeof(WIN_CERTIFICATE) + len; @@ -158,7 +158,7 @@ { skip("Unable to allocate memory, skipping test\n"); CloseHandle(hFile); - return; + return ~0; } cert->dwLength = cert_len; @@ -168,9 +168,11 @@ ret = pImageAddCertificate(hFile, cert, &index); ok(ret, "Unable to add certificate to image, error %x\n", GetLastError()); + trace("added cert index %d\n", index); HeapFree(GetProcessHeap(), 0, cert); CloseHandle(hFile); + return index; } static void test_get_certificate(const char *cert_data, int index) @@ -239,7 +241,7 @@ START_TEST(integrity) { - DWORD file_size, file_size_orig; + DWORD file_size, file_size_orig, first, second; hImageHlp = LoadLibraryA("imagehlp.dll"); @@ -272,25 +274,27 @@ pImageGetCertificateHeader = (void *) GetProcAddress(hImageHlp, "ImageGetCertificateHeader"); pImageRemoveCertificate = (void *) GetProcAddress(hImageHlp, "ImageRemoveCertificate"); - test_add_certificate(test_cert_data, sizeof(test_cert_data)); - test_get_certificate(test_cert_data, 0); - test_remove_certificate(0); + first = test_add_certificate(test_cert_data, sizeof(test_cert_data)); + test_get_certificate(test_cert_data, first); + test_remove_certificate(first); file_size = get_file_size(); ok(file_size == file_size_orig, "File size different after add and remove (old: %d; new: %d)\n", file_size_orig, file_size); /* Try adding multiple certificates */ - test_add_certificate(test_cert_data, sizeof(test_cert_data)); - test_add_certificate(test_cert_data_2, sizeof(test_cert_data_2)); + first = test_add_certificate(test_cert_data, sizeof(test_cert_data)); + second = test_add_certificate(test_cert_data_2, sizeof(test_cert_data_2)); + ok(second == first + 1, "got %d %d\n", first, second); - test_get_certificate(test_cert_data, 0); - test_get_certificate(test_cert_data_2, 1); + test_get_certificate(test_cert_data, first); + test_get_certificate(test_cert_data_2, second); /* Remove the first one and verify the second certificate is intact */ - test_remove_certificate(0); - test_get_certificate(test_cert_data_2, 0); + test_remove_certificate(first); + second--; + test_get_certificate(test_cert_data_2, second); - test_remove_certificate(0); + test_remove_certificate(second); file_size = get_file_size(); ok(file_size == file_size_orig, "File size different after add and remove (old: %d; new: %d)\n", file_size_orig, file_size); diff -Nru wine1.7-1.7.18/dlls/jsproxy/jsproxy.spec wine1.7-1.7.19/dlls/jsproxy/jsproxy.spec --- wine1.7-1.7.18/dlls/jsproxy/jsproxy.spec 1970-01-01 00:00:00.000000000 +0000 +++ wine1.7-1.7.19/dlls/jsproxy/jsproxy.spec 2014-05-16 19:06:48.000000000 +0000 @@ -0,0 +1,5 @@ +@ stdcall InternetInitializeAutoProxyDll(long str str ptr ptr) JSPROXY_InternetInitializeAutoProxyDll +@ stub InternetInitializeExAutoProxyDll +@ stdcall InternetDeInitializeAutoProxyDll(str long) +@ stub InternetDeInitializeExAutoProxyDll +@ stdcall InternetGetProxyInfo(str long str long ptr ptr) diff -Nru wine1.7-1.7.18/dlls/jsproxy/main.c wine1.7-1.7.19/dlls/jsproxy/main.c --- wine1.7-1.7.18/dlls/jsproxy/main.c 1970-01-01 00:00:00.000000000 +0000 +++ wine1.7-1.7.19/dlls/jsproxy/main.c 2014-05-16 19:06:48.000000000 +0000 @@ -0,0 +1,637 @@ +/* + * Copyright 2014 Hans Leidekker for CodeWeavers + * + * 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 "config.h" +#include "wine/port.h" + +#include +#include +#ifdef HAVE_SYS_SOCKET_H +# include +#endif +#ifdef HAVE_NETINET_IN_H +# include +#endif +#ifdef HAVE_NETDB_H +# include +#endif +#if defined(__MINGW32__) || defined (_MSC_VER) +# include +#else +# define closesocket close +# define ioctlsocket ioctl +#endif + +#include "windef.h" +#include "winbase.h" +#ifndef __MINGW32__ +#define USE_WS_PREFIX +#endif +#include "winsock2.h" +#include "ws2ipdef.h" +#include "winnls.h" +#include "wininet.h" +#define COBJMACROS +#include "ole2.h" +#include "dispex.h" +#include "activscp.h" +#include "wine/debug.h" +#include "wine/unicode.h" + +static HINSTANCE instance; + +WINE_DEFAULT_DEBUG_CHANNEL(jsproxy); + +static CRITICAL_SECTION cs_jsproxy; +static CRITICAL_SECTION_DEBUG critsect_debug = +{ + 0, 0, &cs_jsproxy, + { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList }, + 0, 0, { (DWORD_PTR)(__FILE__ ": cs_jsproxy") } +}; +static CRITICAL_SECTION cs_jsproxy = { &critsect_debug, -1, 0, 0, 0, 0 }; + +static const WCHAR global_funcsW[] = {'g','l','o','b','a','l','_','f','u','n','c','s',0}; +static const WCHAR dns_resolveW[] = {'d','n','s','_','r','e','s','o','l','v','e',0}; + +/****************************************************************** + * DllMain (jsproxy.@) + */ +BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved ) +{ + switch (reason) + { + case DLL_PROCESS_ATTACH: + instance = hinst; + DisableThreadLibraryCalls( hinst ); + break; + + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + +static inline void *heap_alloc( SIZE_T size ) +{ + return HeapAlloc( GetProcessHeap(), 0, size ); +} + +static inline BOOL heap_free( LPVOID mem ) +{ + return HeapFree( GetProcessHeap(), 0, mem ); +} + +static inline WCHAR *strdupAW( const char *src, DWORD len ) +{ + WCHAR *dst = NULL; + if (src) + { + int dst_len = MultiByteToWideChar( CP_ACP, 0, src, len, NULL, 0 ); + if ((dst = heap_alloc( (dst_len + 1) * sizeof(WCHAR) ))) len = MultiByteToWideChar( CP_ACP, 0, src, len, dst, dst_len ); + dst[dst_len] = 0; + } + return dst; +} + +static inline char *strdupWA( const WCHAR *src ) +{ + char *dst = NULL; + if (src) + { + int len = WideCharToMultiByte( CP_ACP, 0, src, -1, NULL, 0, NULL, NULL ); + if ((dst = heap_alloc( len ))) WideCharToMultiByte( CP_ACP, 0, src, -1, dst, len, NULL, NULL ); + } + return dst; +} + +static struct pac_script +{ + WCHAR *text; +} pac_script; +static struct pac_script *global_script = &pac_script; + +/****************************************************************** + * InternetDeInitializeAutoProxyDll (jsproxy.@) + */ +BOOL WINAPI InternetDeInitializeAutoProxyDll( LPSTR mime, DWORD reserved ) +{ + TRACE( "%s, %u\n", debugstr_a(mime), reserved ); + + EnterCriticalSection( &cs_jsproxy ); + + heap_free( global_script->text ); + global_script->text = NULL; + + LeaveCriticalSection( &cs_jsproxy ); + return TRUE; +} + +static WCHAR *load_script( const char *filename ) +{ + HANDLE handle; + DWORD size, bytes_read; + char *buffer; + int len; + WCHAR *script = NULL; + + handle = CreateFileA( filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0 ); + if (handle == INVALID_HANDLE_VALUE) return NULL; + + size = GetFileSize( handle, NULL ); + if (!(buffer = heap_alloc( size ))) goto done; + if (!ReadFile( handle, buffer, size, &bytes_read, NULL ) || bytes_read != size) goto done; + + len = MultiByteToWideChar( CP_ACP, 0, buffer, size, NULL, 0 ); + if (!(script = heap_alloc( (len + 1) * sizeof(WCHAR) ))) goto done; + MultiByteToWideChar( CP_ACP, 0, buffer, size, script, len ); + script[len] = 0; + +done: + CloseHandle( handle ); + heap_free( buffer ); + return script; +} + +/****************************************************************** + * InternetInitializeAutoProxyDll (jsproxy.@) + */ +BOOL WINAPI JSPROXY_InternetInitializeAutoProxyDll( DWORD version, LPSTR tmpfile, LPSTR mime, + AutoProxyHelperFunctions *callbacks, + LPAUTO_PROXY_SCRIPT_BUFFER buffer ) +{ + BOOL ret = FALSE; + + TRACE( "%u, %s, %s, %p, %p\n", version, debugstr_a(tmpfile), debugstr_a(mime), callbacks, buffer ); + + if (callbacks) FIXME( "callbacks not supported\n" ); + + EnterCriticalSection( &cs_jsproxy ); + + if (global_script->text) + { + LeaveCriticalSection( &cs_jsproxy ); + return FALSE; + } + if (buffer && buffer->dwStructSize == sizeof(*buffer) && buffer->lpszScriptBuffer && + (global_script->text = strdupAW( buffer->lpszScriptBuffer, buffer->dwScriptBufferSize ))) ret = TRUE; + else if ((global_script->text = load_script( tmpfile ))) ret = TRUE; + + LeaveCriticalSection( &cs_jsproxy ); + return ret; +} + +static HRESULT WINAPI dispex_QueryInterface( + IDispatchEx *iface, REFIID riid, void **ppv ) +{ + *ppv = NULL; + + if (IsEqualGUID( riid, &IID_IUnknown ) || + IsEqualGUID( riid, &IID_IDispatch ) || + IsEqualGUID( riid, &IID_IDispatchEx )) + *ppv = iface; + else + return E_NOINTERFACE; + + return S_OK; +} + +static ULONG WINAPI dispex_AddRef( + IDispatchEx *iface ) +{ + return 2; +} + +static ULONG WINAPI dispex_Release( + IDispatchEx *iface ) +{ + return 1; +} + +static HRESULT WINAPI dispex_GetTypeInfoCount( + IDispatchEx *iface, UINT *info ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI dispex_GetTypeInfo( + IDispatchEx *iface, UINT info, LCID lcid, ITypeInfo **type_info ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI dispex_GetIDsOfNames( + IDispatchEx *iface, REFIID riid, LPOLESTR *names, UINT count, LCID lcid, DISPID *id ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI dispex_Invoke( + IDispatchEx *iface, DISPID member, REFIID riid, LCID lcid, WORD flags, + DISPPARAMS *params, VARIANT *result, EXCEPINFO *excep, UINT *err ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI dispex_DeleteMemberByName( + IDispatchEx *iface, BSTR name, DWORD flags ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI dispex_DeleteMemberByDispID( + IDispatchEx *iface, DISPID id ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI dispex_GetMemberProperties( + IDispatchEx *iface, DISPID id, DWORD flags_fetch, DWORD *flags ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI dispex_GetMemberName( + IDispatchEx *iface, DISPID id, BSTR *name ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI dispex_GetNextDispID( + IDispatchEx *iface, DWORD flags, DISPID id, DISPID *next ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI dispex_GetNameSpaceParent( + IDispatchEx *iface, IUnknown **unk ) +{ + return E_NOTIMPL; +} + +#define DISPID_GLOBAL_DNSRESOLVE 0x1000 + +static HRESULT WINAPI dispex_GetDispID( + IDispatchEx *iface, BSTR name, DWORD flags, DISPID *id ) +{ + if (!strcmpW( name, dns_resolveW )) + { + *id = DISPID_GLOBAL_DNSRESOLVE; + return S_OK; + } + return DISP_E_UNKNOWNNAME; +} + +static char *get_computer_name( COMPUTER_NAME_FORMAT format ) +{ + char *ret; + DWORD size = 0; + + GetComputerNameExA( format, NULL, &size ); + if (GetLastError() != ERROR_MORE_DATA) return NULL; + if (!(ret = heap_alloc( size ))) return NULL; + if (!GetComputerNameExA( format, ret, &size )) + { + heap_free( ret ); + return NULL; + } + return ret; +} + +static void printf_addr( const WCHAR *fmt, WCHAR *buf, struct sockaddr_in *addr ) +{ + sprintfW( buf, fmt, + (unsigned int)(ntohl( addr->sin_addr.s_addr ) >> 24 & 0xff), + (unsigned int)(ntohl( addr->sin_addr.s_addr ) >> 16 & 0xff), + (unsigned int)(ntohl( addr->sin_addr.s_addr ) >> 8 & 0xff), + (unsigned int)(ntohl( addr->sin_addr.s_addr ) & 0xff) ); +} + +static HRESULT dns_resolve( const WCHAR *hostname, VARIANT *result ) +{ +#ifdef HAVE_GETADDRINFO + static const WCHAR fmtW[] = {'%','u','.','%','u','.','%','u','.','%','u',0}; + WCHAR addr[16]; + struct addrinfo *ai, *elem; + char *hostnameA; + int res; + + if (hostname[0]) + hostnameA = strdupWA( hostname ); + else + hostnameA = get_computer_name( ComputerNamePhysicalDnsFullyQualified ); + + if (!hostnameA) return E_OUTOFMEMORY; + res = getaddrinfo( hostnameA, NULL, NULL, &ai ); + heap_free( hostnameA ); + if (res) return S_FALSE; + + elem = ai; + while (elem && elem->ai_family != AF_INET) elem = elem->ai_next; + if (!elem) + { + freeaddrinfo( ai ); + return S_FALSE; + } + printf_addr( fmtW, addr, (struct sockaddr_in *)elem->ai_addr ); + freeaddrinfo( ai ); + V_VT( result ) = VT_BSTR; + V_BSTR( result ) = SysAllocString( addr ); + return S_OK; +#else + FIXME("getaddrinfo not found at build time\n"); + return S_FALSE; +#endif +} + +static HRESULT WINAPI dispex_InvokeEx( + IDispatchEx *iface, DISPID id, LCID lcid, WORD flags, DISPPARAMS *params, + VARIANT *result, EXCEPINFO *exep, IServiceProvider *caller ) +{ + if (id == DISPID_GLOBAL_DNSRESOLVE) + { + if (params->cArgs != 1) return DISP_E_BADPARAMCOUNT; + if (V_VT(¶ms->rgvarg[0]) != VT_BSTR) return DISP_E_BADVARTYPE; + return dns_resolve( V_BSTR(¶ms->rgvarg[0]), result ); + } + return DISP_E_MEMBERNOTFOUND; +} + +static const IDispatchExVtbl dispex_vtbl = +{ + dispex_QueryInterface, + dispex_AddRef, + dispex_Release, + dispex_GetTypeInfoCount, + dispex_GetTypeInfo, + dispex_GetIDsOfNames, + dispex_Invoke, + dispex_GetDispID, + dispex_InvokeEx, + dispex_DeleteMemberByName, + dispex_DeleteMemberByDispID, + dispex_GetMemberProperties, + dispex_GetMemberName, + dispex_GetNextDispID, + dispex_GetNameSpaceParent +}; + +static IDispatchEx global_dispex = { &dispex_vtbl }; + +static HRESULT WINAPI site_QueryInterface( + IActiveScriptSite *iface, REFIID riid, void **ppv ) +{ + *ppv = NULL; + + if (IsEqualGUID( &IID_IUnknown, riid )) + *ppv = iface; + else if (IsEqualGUID( &IID_IActiveScriptSite, riid )) + *ppv = iface; + else + return E_NOINTERFACE; + + IUnknown_AddRef( (IUnknown *)*ppv ); + return S_OK; +} + +static ULONG WINAPI site_AddRef( + IActiveScriptSite *iface ) +{ + return 2; +} + +static ULONG WINAPI site_Release( + IActiveScriptSite *iface ) +{ + return 1; +} + +static HRESULT WINAPI site_GetLCID( + IActiveScriptSite *iface, LCID *lcid ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI site_GetItemInfo( + IActiveScriptSite *iface, LPCOLESTR name, DWORD mask, + IUnknown **item, ITypeInfo **type_info ) +{ + if (!strcmpW( name, global_funcsW ) && mask == SCRIPTINFO_IUNKNOWN) + { + *item = (IUnknown *)&global_dispex; + return S_OK; + } + return E_NOTIMPL; +} + +static HRESULT WINAPI site_GetDocVersionString( + IActiveScriptSite *iface, BSTR *version ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI site_OnScriptTerminate( + IActiveScriptSite *iface, const VARIANT *result, const EXCEPINFO *info ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI site_OnStateChange( + IActiveScriptSite *iface, SCRIPTSTATE state ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI site_OnScriptError( + IActiveScriptSite *iface, IActiveScriptError *error ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI site_OnEnterScript( + IActiveScriptSite *iface ) +{ + return E_NOTIMPL; +} + +static HRESULT WINAPI site_OnLeaveScript( + IActiveScriptSite *iface ) +{ + return E_NOTIMPL; +} + +static const IActiveScriptSiteVtbl site_vtbl = +{ + site_QueryInterface, + site_AddRef, + site_Release, + site_GetLCID, + site_GetItemInfo, + site_GetDocVersionString, + site_OnScriptTerminate, + site_OnStateChange, + site_OnScriptError, + site_OnEnterScript, + site_OnLeaveScript +}; + +static IActiveScriptSite script_site = { &site_vtbl }; + +static BSTR include_pac_utils( const WCHAR *script ) +{ + static const WCHAR pacjsW[] = {'p','a','c','.','j','s',0}; + HMODULE hmod = GetModuleHandleA( "jsproxy.dll" ); + HRSRC rsrc; + DWORD size; + const char *data; + BSTR ret; + int len; + + if (!(rsrc = FindResourceW( hmod, pacjsW, (LPCWSTR)40 ))) return NULL; + size = SizeofResource( hmod, rsrc ); + data = LoadResource( hmod, rsrc ); + + len = MultiByteToWideChar( CP_ACP, 0, data, size, NULL, 0 ); + if (!(ret = SysAllocStringLen( NULL, len + strlenW( script ) + 1 ))) return NULL; + MultiByteToWideChar( CP_ACP, 0, data, size, ret, len ); + strcpyW( ret + len, script ); + return ret; +} + +#ifdef _WIN64 +#define IActiveScriptParse_Release IActiveScriptParse64_Release +#define IActiveScriptParse_InitNew IActiveScriptParse64_InitNew +#define IActiveScriptParse_ParseScriptText IActiveScriptParse64_ParseScriptText +#else +#define IActiveScriptParse_Release IActiveScriptParse32_Release +#define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew +#define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText +#endif + +static BOOL run_script( const WCHAR *script, const WCHAR *url, const WCHAR *hostname, char **result_str, DWORD *result_len ) +{ + static const WCHAR jscriptW[] = {'J','S','c','r','i','p','t',0}; + static const WCHAR findproxyW[] = {'F','i','n','d','P','r','o','x','y','F','o','r','U','R','L',0}; + IActiveScriptParse *parser = NULL; + IActiveScript *engine = NULL; + IDispatch *dispatch = NULL; + BOOL ret = FALSE; + CLSID clsid; + DISPID dispid; + BSTR func = NULL, full_script = NULL; + VARIANT args[2], retval; + DISPPARAMS params; + HRESULT hr, init; + + init = CoInitialize( NULL ); + hr = CLSIDFromProgID( jscriptW, &clsid ); + if (hr != S_OK) goto done; + + hr = CoCreateInstance( &clsid, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, + &IID_IActiveScript, (void **)&engine ); + if (hr != S_OK) goto done; + + hr = IActiveScript_QueryInterface( engine, &IID_IActiveScriptParse, (void **)&parser ); + if (hr != S_OK) goto done; + + hr = IActiveScriptParse_InitNew( parser ); + if (hr != S_OK) goto done; + + hr = IActiveScript_SetScriptSite( engine, &script_site ); + if (hr != S_OK) goto done; + + hr = IActiveScript_AddNamedItem( engine, global_funcsW, SCRIPTITEM_GLOBALMEMBERS ); + if (hr != S_OK) goto done; + + if (!(full_script = include_pac_utils( script ))) goto done; + + hr = IActiveScriptParse_ParseScriptText( parser, full_script, NULL, NULL, NULL, 0, 0, 0, NULL, NULL ); + if (hr != S_OK) goto done; + + hr = IActiveScript_SetScriptState( engine, SCRIPTSTATE_STARTED ); + if (hr != S_OK) goto done; + + hr = IActiveScript_GetScriptDispatch( engine, NULL, &dispatch ); + if (hr != S_OK) goto done; + + if (!(func = SysAllocString( findproxyW ))) goto done; + hr = IDispatch_GetIDsOfNames( dispatch, &IID_NULL, &func, 1, LOCALE_SYSTEM_DEFAULT, &dispid ); + if (hr != S_OK) goto done; + + V_VT( &args[0] ) = VT_BSTR; + V_BSTR( &args[0] ) = SysAllocString( hostname ); + V_VT( &args[1] ) = VT_BSTR; + V_BSTR( &args[1] ) = SysAllocString( url ); + + params.rgvarg = args; + params.rgdispidNamedArgs = NULL; + params.cArgs = 2; + params.cNamedArgs = 0; + hr = IDispatch_Invoke( dispatch, dispid, &IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, + ¶ms, &retval, NULL, NULL ); + VariantClear( &args[0] ); + VariantClear( &args[1] ); + if (hr != S_OK) + { + WARN("script failed 0x%08x\n", hr); + goto done; + } + if ((*result_str = strdupWA( V_BSTR( &retval ) ))) + { + TRACE( "result: %s\n", debugstr_a(*result_str) ); + *result_len = strlen( *result_str ) + 1; + ret = TRUE; + } + VariantClear( &retval ); + +done: + SysFreeString( full_script ); + SysFreeString( func ); + if (dispatch) IDispatch_Release( dispatch ); + if (parser) IActiveScriptParse_Release( parser ); + if (engine) IActiveScript_Release( engine ); + if (SUCCEEDED( init )) CoUninitialize(); + return ret; +} + +/****************************************************************** + * InternetGetProxyInfo (jsproxy.@) + */ +BOOL WINAPI InternetGetProxyInfo( LPCSTR url, DWORD len_url, LPCSTR hostname, DWORD len_hostname, LPSTR *proxy, + LPDWORD len_proxy ) +{ + WCHAR *urlW = NULL, *hostnameW = NULL; + BOOL ret = FALSE; + + TRACE( "%s, %u, %s, %u, %p, %p\n", url, len_url, hostname, len_hostname, proxy, len_proxy ); + + EnterCriticalSection( &cs_jsproxy ); + + if (!global_script->text) goto done; + if (!(urlW = strdupAW( url, len_url ))) goto done; + if (hostname && !(hostnameW = strdupAW( hostname, len_hostname ))) goto done; + + TRACE( "%s\n", debugstr_w(global_script->text) ); + ret = run_script( global_script->text, urlW, hostnameW, proxy, len_proxy ); + +done: + heap_free( hostnameW ); + heap_free( urlW ); + LeaveCriticalSection( &cs_jsproxy ); + return ret; +} diff -Nru wine1.7-1.7.18/dlls/jsproxy/Makefile.in wine1.7-1.7.19/dlls/jsproxy/Makefile.in --- wine1.7-1.7.18/dlls/jsproxy/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ wine1.7-1.7.19/dlls/jsproxy/Makefile.in 2014-05-16 19:06:48.000000000 +0000 @@ -0,0 +1,8 @@ +MODULE = jsproxy.dll +IMPORTS = uuid oleaut32 ole32 +IMPORTLIB = jsproxy + +C_SRCS = \ + main.c + +RC_SRCS = rsrc.rc diff -Nru wine1.7-1.7.18/dlls/jsproxy/pac.js wine1.7-1.7.19/dlls/jsproxy/pac.js --- wine1.7-1.7.18/dlls/jsproxy/pac.js 1970-01-01 00:00:00.000000000 +0000 +++ wine1.7-1.7.19/dlls/jsproxy/pac.js 2014-05-16 19:06:48.000000000 +0000 @@ -0,0 +1,244 @@ +/* + * Copyright 2011 Hans Leidekker for CodeWeavers + * + * 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 + * + * Based on nsProxyAutoConfig.js from mozilla.org. + */ + +function myIpAddress() { + try { + return dns_resolve(''); + } catch (e) { + return '127.0.0.1'; + } +} + +function dnsResolve(host) { + try { + return dns_resolve(host); + } catch (e) { + return null; + } +} + +function dnsDomainIs(host, domain) { + return (host.length >= domain.length && + host.substring(host.length - domain.length) == domain); +} + +function dnsDomainLevels(host) { + return host.split('.').length-1; +} + +function convert_addr(ipchars) { + var bytes = ipchars.split('.'); + var result = ((bytes[0] & 0xff) << 24) | + ((bytes[1] & 0xff) << 16) | + ((bytes[2] & 0xff) << 8) | + (bytes[3] & 0xff); + return result; +} + +function isInNet(ipaddr, pattern, maskstr) { + var test = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(ipaddr); + if (test == null) { + ipaddr = dnsResolve(ipaddr); + if (ipaddr == null) + return false; + } else if (test[1] > 255 || test[2] > 255 || + test[3] > 255 || test[4] > 255) { + return false; // not an IP address + } + var host = convert_addr(ipaddr); + var pat = convert_addr(pattern); + var mask = convert_addr(maskstr); + return ((host & mask) == (pat & mask)); +} + +function isPlainHostName(host) { + return (host.search('\\.') == -1); +} + +function isResolvable(host) { + var ip = dnsResolve(host); + return (ip != null); +} + +function localHostOrDomainIs(host, hostdom) { + return (host == hostdom) || + (hostdom.lastIndexOf(host + '.', 0) == 0); +} + +function shExpMatch(url, pattern) { + pattern = pattern.replace(/\./g, '\\.'); + pattern = pattern.replace(/\*/g, '.*'); + pattern = pattern.replace(/\?/g, '.'); + var newRe = new RegExp('^'+pattern+'$'); + return newRe.test(url); +} + +var wdays = {SUN: 0, MON: 1, TUE: 2, WED: 3, THU: 4, FRI: 5, SAT: 6}; +var months = {JAN: 0, FEB: 1, MAR: 2, APR: 3, MAY: 4, JUN: 5, JUL: 6, AUG: 7, SEP: 8, OCT: 9, NOV: 10, DEC: 11}; + +function weekdayRange() { + function getDay(weekday) { + if (weekday in wdays) { + return wdays[weekday]; + } + return -1; + } + var date = new Date(); + var argc = arguments.length; + var wday; + if (argc < 1) + return false; + if (arguments[argc - 1] == 'GMT') { + argc--; + wday = date.getUTCDay(); + } else { + wday = date.getDay(); + } + var wd1 = getDay(arguments[0]); + var wd2 = (argc == 2) ? getDay(arguments[1]) : wd1; + return (wd1 == -1 || wd2 == -1) ? false + : (wd1 <= wday && wday <= wd2); +} + +function dateRange() { + function getMonth(name) { + if (name in months) { + return months[name]; + } + return -1; + } + var date = new Date(); + var argc = arguments.length; + if (argc < 1) { + return false; + } + var isGMT = (arguments[argc - 1] == 'GMT'); + + if (isGMT) { + argc--; + } + // function will work even without explicit handling of this case + if (argc == 1) { + var tmp = parseInt(arguments[0]); + if (isNaN(tmp)) { + return ((isGMT ? date.getUTCMonth() : date.getMonth()) == getMonth(arguments[0])); + } else if (tmp < 32) { + return ((isGMT ? date.getUTCDate() : date.getDate()) == tmp); + } else { + return ((isGMT ? date.getUTCFullYear() : date.getFullYear()) == tmp); + } + } + var year = date.getFullYear(); + var date1, date2; + date1 = new Date(year, 0, 1, 0, 0, 0); + date2 = new Date(year, 11, 31, 23, 59, 59); + var adjustMonth = false; + for (var i = 0; i < (argc >> 1); i++) { + var tmp = parseInt(arguments[i]); + if (isNaN(tmp)) { + var mon = getMonth(arguments[i]); + date1.setMonth(mon); + } else if (tmp < 32) { + adjustMonth = (argc <= 2); + date1.setDate(tmp); + } else { + date1.setFullYear(tmp); + } + } + for (var i = (argc >> 1); i < argc; i++) { + var tmp = parseInt(arguments[i]); + if (isNaN(tmp)) { + var mon = getMonth(arguments[i]); + date2.setMonth(mon); + } else if (tmp < 32) { + date2.setDate(tmp); + } else { + date2.setFullYear(tmp); + } + } + if (adjustMonth) { + date1.setMonth(date.getMonth()); + date2.setMonth(date.getMonth()); + } + if (isGMT) { + var tmp = date; + tmp.setFullYear(date.getUTCFullYear()); + tmp.setMonth(date.getUTCMonth()); + tmp.setDate(date.getUTCDate()); + tmp.setHours(date.getUTCHours()); + tmp.setMinutes(date.getUTCMinutes()); + tmp.setSeconds(date.getUTCSeconds()); + date = tmp; + } + return ((date1 <= date) && (date <= date2)); +} + +function timeRange() { + var argc = arguments.length; + var date = new Date(); + var isGMT= false; + + if (argc < 1) { + return false; + } + if (arguments[argc - 1] == 'GMT') { + isGMT = true; + argc--; + } + + var hour = isGMT ? date.getUTCHours() : date.getHours(); + var date1, date2; + date1 = new Date(); + date2 = new Date(); + + if (argc == 1) { + return (hour == arguments[0]); + } else if (argc == 2) { + return ((arguments[0] <= hour) && (hour <= arguments[1])); + } else { + switch (argc) { + case 6: + date1.setSeconds(arguments[2]); + date2.setSeconds(arguments[5]); + case 4: + var middle = argc >> 1; + date1.setHours(arguments[0]); + date1.setMinutes(arguments[1]); + date2.setHours(arguments[middle]); + date2.setMinutes(arguments[middle + 1]); + if (middle == 2) { + date2.setSeconds(59); + } + break; + default: + throw 'timeRange: bad number of arguments' + } + } + + if (isGMT) { + date.setFullYear(date.getUTCFullYear()); + date.setMonth(date.getUTCMonth()); + date.setDate(date.getUTCDate()); + date.setHours(date.getUTCHours()); + date.setMinutes(date.getUTCMinutes()); + date.setSeconds(date.getUTCSeconds()); + } + return ((date1 <= date) && (date <= date2)); +} diff -Nru wine1.7-1.7.18/dlls/jsproxy/rsrc.rc wine1.7-1.7.19/dlls/jsproxy/rsrc.rc --- wine1.7-1.7.18/dlls/jsproxy/rsrc.rc 1970-01-01 00:00:00.000000000 +0000 +++ wine1.7-1.7.19/dlls/jsproxy/rsrc.rc 2014-05-16 19:06:48.000000000 +0000 @@ -0,0 +1,20 @@ +/* + * Copyright 2014 Hans Leidekker for CodeWeavers + * + * 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 + */ + +/* @makedep: pac.js */ +pac.js 40 "pac.js" diff -Nru wine1.7-1.7.18/dlls/kernel32/tests/virtual.c wine1.7-1.7.19/dlls/kernel32/tests/virtual.c --- wine1.7-1.7.18/dlls/kernel32/tests/virtual.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/kernel32/tests/virtual.c 2014-05-16 19:06:48.000000000 +0000 @@ -2447,7 +2447,7 @@ DeleteFileA(file_name); } -static void test_shared_memory(int is_child) +static void test_shared_memory(BOOL is_child) { HANDLE mapping; LONG *p; @@ -2489,6 +2489,51 @@ CloseHandle(mapping); } +static void test_shared_memory_ro(BOOL is_child, DWORD child_access) +{ + HANDLE mapping; + LONG *p; + + SetLastError(0xdeadbef); + mapping = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 4096, "winetest_virtual.c_ro"); + ok(mapping != 0, "CreateFileMapping error %d\n", GetLastError()); + if (is_child) + ok(GetLastError() == ERROR_ALREADY_EXISTS, "expected ERROR_ALREADY_EXISTS, got %d\n", GetLastError()); + + SetLastError(0xdeadbef); + p = MapViewOfFile(mapping, is_child ? child_access : FILE_MAP_READ, 0, 0, 4096); + ok(p != NULL, "MapViewOfFile error %d\n", GetLastError()); + + if (is_child) + { + *p = 0xdeadbeef; + } + else + { + char **argv; + char cmdline[MAX_PATH]; + PROCESS_INFORMATION pi; + STARTUPINFOA si = { sizeof(si) }; + DWORD ret; + + winetest_get_mainargs(&argv); + sprintf(cmdline, "\"%s\" virtual sharedmemro %x", argv[0], child_access); + ret = CreateProcessA(argv[0], cmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); + ok(ret, "CreateProcess(%s) error %d\n", cmdline, GetLastError()); + winetest_wait_child_process(pi.hProcess); + CloseHandle(pi.hThread); + CloseHandle(pi.hProcess); + + if(child_access & FILE_MAP_WRITE) + ok(*p == 0xdeadbeef, "*p = %x, expected 0xdeadbeef\n", *p); + else + ok(!*p, "*p = %x, expected 0\n", *p); + } + + UnmapViewOfFile(p); + CloseHandle(mapping); +} + START_TEST(virtual) { int argc; @@ -2504,7 +2549,12 @@ } if (!strcmp(argv[2], "sharedmem")) { - test_shared_memory(1); + test_shared_memory(TRUE); + return; + } + if (!strcmp(argv[2], "sharedmemro")) + { + test_shared_memory_ro(TRUE, strtol(argv[3], NULL, 16)); return; } while (1) @@ -2532,7 +2582,10 @@ pNtMapViewOfSection = (void *)GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtMapViewOfSection"); pNtUnmapViewOfSection = (void *)GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtUnmapViewOfSection"); - test_shared_memory(0); + test_shared_memory(FALSE); + test_shared_memory_ro(FALSE, FILE_MAP_READ|FILE_MAP_WRITE); + test_shared_memory_ro(FALSE, FILE_MAP_COPY); + test_shared_memory_ro(FALSE, FILE_MAP_COPY|FILE_MAP_WRITE); test_mapping(); test_CreateFileMapping_protection(); test_VirtualAlloc_protection(); diff -Nru wine1.7-1.7.18/dlls/msctf/inputprocessor.c wine1.7-1.7.19/dlls/msctf/inputprocessor.c --- wine1.7-1.7.18/dlls/msctf/inputprocessor.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msctf/inputprocessor.c 2014-05-16 19:06:48.000000000 +0000 @@ -97,9 +97,107 @@ ITfCategoryMgr *catmgr; } EnumTfLanguageProfiles; +typedef struct { + IEnumTfInputProcessorProfiles IEnumTfInputProcessorProfiles_iface; + LONG ref; +} EnumTfInputProcessorProfiles; + static HRESULT ProfilesEnumGuid_Constructor(IEnumGUID **ppOut); static HRESULT EnumTfLanguageProfiles_Constructor(LANGID langid, IEnumTfLanguageProfiles **ppOut); +static inline EnumTfInputProcessorProfiles *impl_from_IEnumTfInputProcessorProfiles(IEnumTfInputProcessorProfiles *iface) +{ + return CONTAINING_RECORD(iface, EnumTfInputProcessorProfiles, IEnumTfInputProcessorProfiles_iface); +} + +static HRESULT WINAPI EnumTfInputProcessorProfiles_QueryInterface(IEnumTfInputProcessorProfiles *iface, + REFIID riid, void **ppv) +{ + EnumTfInputProcessorProfiles *This = impl_from_IEnumTfInputProcessorProfiles(iface); + + if(IsEqualGUID(riid, &IID_IUnknown)) { + TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); + *ppv = &This->IEnumTfInputProcessorProfiles_iface; + }else if(IsEqualGUID(riid, &IID_IEnumTfInputProcessorProfiles)) { + TRACE("(%p)->(IID_IEnumTfInputProcessorProfiles %p)\n", This, ppv); + *ppv = &This->IEnumTfInputProcessorProfiles_iface; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; +} + +static ULONG WINAPI EnumTfInputProcessorProfiles_AddRef(IEnumTfInputProcessorProfiles *iface) +{ + EnumTfInputProcessorProfiles *This = impl_from_IEnumTfInputProcessorProfiles(iface); + LONG ref = InterlockedIncrement(&This->ref); + + TRACE("(%p) ref=%d\n", This, ref); + + return ref; +} + +static ULONG WINAPI EnumTfInputProcessorProfiles_Release(IEnumTfInputProcessorProfiles *iface) +{ + EnumTfInputProcessorProfiles *This = impl_from_IEnumTfInputProcessorProfiles(iface); + LONG ref = InterlockedDecrement(&This->ref); + + TRACE("(%p) ref=%d\n", This, ref); + + if(!ref) + HeapFree(GetProcessHeap(), 0, This); + + return ref; +} + +static HRESULT WINAPI EnumTfInputProcessorProfiles_Clone(IEnumTfInputProcessorProfiles *iface, + IEnumTfInputProcessorProfiles **ret) +{ + EnumTfInputProcessorProfiles *This = impl_from_IEnumTfInputProcessorProfiles(iface); + FIXME("(%p)->(%p)\n", This, ret); + return E_NOTIMPL; +} + +static HRESULT WINAPI EnumTfInputProcessorProfiles_Next(IEnumTfInputProcessorProfiles *iface, ULONG count, + TF_INPUTPROCESSORPROFILE *profile, ULONG *fetch) +{ + EnumTfInputProcessorProfiles *This = impl_from_IEnumTfInputProcessorProfiles(iface); + + FIXME("(%p)->(%u %p %p)\n", This, count, profile, fetch); + + if(fetch) + *fetch = 0; + return S_FALSE; +} + +static HRESULT WINAPI EnumTfInputProcessorProfiles_Reset(IEnumTfInputProcessorProfiles *iface) +{ + EnumTfInputProcessorProfiles *This = impl_from_IEnumTfInputProcessorProfiles(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI EnumTfInputProcessorProfiles_Skip(IEnumTfInputProcessorProfiles *iface, ULONG count) +{ + EnumTfInputProcessorProfiles *This = impl_from_IEnumTfInputProcessorProfiles(iface); + FIXME("(%p)->(%u)\n", This, count); + return E_NOTIMPL; +} + +static const IEnumTfInputProcessorProfilesVtbl EnumTfInputProcessorProfilesVtbl = { + EnumTfInputProcessorProfiles_QueryInterface, + EnumTfInputProcessorProfiles_AddRef, + EnumTfInputProcessorProfiles_Release, + EnumTfInputProcessorProfiles_Clone, + EnumTfInputProcessorProfiles_Next, + EnumTfInputProcessorProfiles_Reset, + EnumTfInputProcessorProfiles_Skip +}; + static inline InputProcessorProfiles *impl_from_ITfInputProcessorProfiles(ITfInputProcessorProfiles *iface) { return CONTAINING_RECORD(iface, InputProcessorProfiles, ITfInputProcessorProfiles_iface); @@ -742,8 +840,19 @@ IEnumTfInputProcessorProfiles **ppEnum) { InputProcessorProfiles *This = impl_from_ITfInputProcessorProfileMgr(iface); - FIXME("(%p)->(%x %p)\n", This, langid, ppEnum); - return E_NOTIMPL; + EnumTfInputProcessorProfiles *enum_profiles; + + TRACE("(%p)->(%x %p)\n", This, langid, ppEnum); + + enum_profiles = HeapAlloc(GetProcessHeap(), 0, sizeof(*enum_profiles)); + if(!enum_profiles) + return E_OUTOFMEMORY; + + enum_profiles->IEnumTfInputProcessorProfiles_iface.lpVtbl = &EnumTfInputProcessorProfilesVtbl; + enum_profiles->ref = 1; + + *ppEnum = &enum_profiles->IEnumTfInputProcessorProfiles_iface; + return S_OK; } static HRESULT WINAPI InputProcessorProfileMgr_ReleaseInputProcessor(ITfInputProcessorProfileMgr *iface, REFCLSID rclsid, diff -Nru wine1.7-1.7.18/dlls/msctf/tests/inputprocessor.c wine1.7-1.7.19/dlls/msctf/tests/inputprocessor.c --- wine1.7-1.7.18/dlls/msctf/tests/inputprocessor.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msctf/tests/inputprocessor.c 2014-05-16 19:06:48.000000000 +0000 @@ -2186,15 +2186,20 @@ sink_check_ok(&test_OnPopContext,"OnPopContext"); } -static void test_QI(void) +static void test_profile_mgr(void) { + IEnumTfInputProcessorProfiles *enum_profiles; ITfInputProcessorProfileMgr *ipp_mgr; HRESULT hres; - /* A trivial test, probably worth moving once more will be added. */ hres = ITfInputProcessorProfiles_QueryInterface(g_ipp, &IID_ITfInputProcessorProfileMgr, (void**)&ipp_mgr); ok(hres == S_OK, "Could not get ITfInputProcessorProfileMgr iface: %08x\n", hres); + hres = ITfInputProcessorProfileMgr_EnumProfiles(ipp_mgr, 0, &enum_profiles); + ok(hres == S_OK, "EnumProfiles failed: %08x\n", hres); + + IEnumTfInputProcessorProfiles_Release(enum_profiles); + ITfInputProcessorProfileMgr_Release(ipp_mgr); } @@ -2224,7 +2229,7 @@ test_ThreadMgrUnadviseSinks(); test_UnregisterCategory(); test_Unregister(); - test_QI(); + test_profile_mgr(); } else skip("Unable to create InputProcessor\n"); diff -Nru wine1.7-1.7.18/dlls/msdmo/dmoreg.c wine1.7-1.7.19/dlls/msdmo/dmoreg.c --- wine1.7-1.7.18/dlls/msdmo/dmoreg.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msdmo/dmoreg.c 2014-05-16 19:06:48.000000000 +0000 @@ -615,9 +615,9 @@ hres = RegQueryValueExW(hkey, NULL, NULL, NULL, (LPBYTE) szValue, &len); if (ERROR_SUCCESS == hres) { - Names[count] = HeapAlloc(GetProcessHeap(), 0, strlenW(szValue) + 1); + Names[count] = HeapAlloc(GetProcessHeap(), 0, (strlenW(szValue) + 1) * sizeof(WCHAR)); if (Names[count]) - strcmpW(Names[count], szValue); + strcpyW(Names[count], szValue); } wsprintfW(szGuidKey,szToGuidFmt,szNextKey); CLSIDFromString(szGuidKey, &pCLSID[count]); diff -Nru wine1.7-1.7.18/dlls/mshtml/conpoint.c wine1.7-1.7.19/dlls/mshtml/conpoint.c --- wine1.7-1.7.18/dlls/mshtml/conpoint.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/conpoint.c 2014-05-16 19:06:48.000000000 +0000 @@ -31,23 +31,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); -static const char *debugstr_cp_guid(REFIID riid) -{ -#define X(x) \ - if(IsEqualGUID(riid, &x)) \ - return #x - - X(IID_IPropertyNotifySink); - X(DIID_HTMLDocumentEvents); - X(DIID_HTMLDocumentEvents2); - X(DIID_HTMLTableEvents); - X(DIID_HTMLTextContainerEvents); - -#undef X - - return debugstr_guid(riid); -} - typedef struct { IEnumConnections IEnumConnections_iface; @@ -66,14 +49,14 @@ { EnumConnections *This = impl_from_IEnumConnections(iface); + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + if(IsEqualGUID(riid, &IID_IUnknown)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IEnumConnections_iface; }else if(IsEqualGUID(riid, &IID_IEnumConnections)) { - TRACE("(%p)->(IID_IEnumConnections %p)\n", This, ppv); *ppv = &This->IEnumConnections_iface; }else { - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); *ppv = NULL; return E_NOINTERFACE; } @@ -172,23 +155,20 @@ { ConnectionPoint *This = impl_from_IConnectionPoint(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IConnectionPoint_iface; }else if(IsEqualGUID(&IID_IConnectionPoint, riid)) { - TRACE("(%p)->(IID_IConnectionPoint %p)\n", This, ppv); *ppv = &This->IConnectionPoint_iface; + }else { + *ppv = NULL; + WARN("Unsupported interface %s\n", debugstr_mshtml_guid(riid)); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("Unsupported interface %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI ConnectionPoint_AddRef(IConnectionPoint *iface) @@ -425,7 +405,7 @@ ConnectionPointContainer *This = impl_from_IConnectionPointContainer(iface); ConnectionPoint *cp; - TRACE("(%p)->(%s %p)\n", This, debugstr_cp_guid(riid), ppCP); + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppCP); if(This->forward_container) return IConnectionPointContainer_FindConnectionPoint(&This->forward_container->IConnectionPointContainer_iface, @@ -433,7 +413,7 @@ cp = get_cp(This, riid, TRUE); if(!cp) { - FIXME("unsupported riid %s\n", debugstr_cp_guid(riid)); + FIXME("unsupported riid %s\n", debugstr_mshtml_guid(riid)); *ppCP = NULL; return CONNECT_E_NOCONNECTION; } diff -Nru wine1.7-1.7.18/dlls/mshtml/dispex.c wine1.7-1.7.19/dlls/mshtml/dispex.c --- wine1.7-1.7.18/dlls/mshtml/dispex.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/dispex.c 2014-05-16 19:06:48.000000000 +0000 @@ -144,7 +144,7 @@ hres = ITypeLib_GetTypeInfoOfGuid(typelib, tid_ids[tid], &ti); if(FAILED(hres)) { - ERR("GetTypeInfoOfGuid(%s) failed: %08x\n", debugstr_guid(tid_ids[tid]), hres); + ERR("GetTypeInfoOfGuid(%s) failed: %08x\n", debugstr_mshtml_guid(tid_ids[tid]), hres); return hres; } @@ -631,7 +631,7 @@ hres = IUnknown_QueryInterface(This->outer, tid_ids[func->tid], (void**)&unk); if(FAILED(hres)) { - ERR("Could not get iface %s: %08x\n", debugstr_guid(tid_ids[func->tid]), hres); + ERR("Could not get iface %s: %08x\n", debugstr_mshtml_guid(tid_ids[func->tid]), hres); return E_FAIL; } diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlattr.c wine1.7-1.7.19/dlls/mshtml/htmlattr.c --- wine1.7-1.7.18/dlls/mshtml/htmlattr.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlattr.c 2014-05-16 19:06:48.000000000 +0000 @@ -43,16 +43,16 @@ { HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute(iface); + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLDOMAttribute_iface; }else if(IsEqualGUID(&IID_IHTMLDOMAttribute, riid)) { - TRACE("(%p)->(IID_IHTMLDOMAttribute %p)\n", This, ppv); *ppv = &This->IHTMLDOMAttribute_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; }else { - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + WARN("%s not supported\n", debugstr_mshtml_guid(riid)); *ppv = NULL; return E_NOINTERFACE; } diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlcurstyle.c wine1.7-1.7.19/dlls/mshtml/htmlcurstyle.c --- wine1.7-1.7.18/dlls/mshtml/htmlcurstyle.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlcurstyle.c 2014-05-16 19:06:48.000000000 +0000 @@ -69,34 +69,28 @@ { HTMLCurrentStyle *This = impl_from_IHTMLCurrentStyle(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLCurrentStyle_iface; }else if(IsEqualGUID(&IID_IHTMLCurrentStyle, riid)) { - TRACE("(%p)->(IID_IHTMLCurrentStyle %p)\n", This, ppv); *ppv = &This->IHTMLCurrentStyle_iface; }else if(IsEqualGUID(&IID_IHTMLCurrentStyle2, riid)) { - TRACE("(%p)->(IID_IHTMLCurrentStyle2 %p)\n", This, ppv); *ppv = &This->IHTMLCurrentStyle2_iface; }else if(IsEqualGUID(&IID_IHTMLCurrentStyle3, riid)) { - TRACE("(%p)->(IID_IHTMLCurrentStyle3 %p)\n", This, ppv); *ppv = &This->IHTMLCurrentStyle3_iface; }else if(IsEqualGUID(&IID_IHTMLCurrentStyle4, riid)) { - TRACE("(%p)->(IID_IHTMLCurrentStyle4 %p)\n", This, ppv); *ppv = &This->IHTMLCurrentStyle4_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("unsupported %s\n", debugstr_mshtml_guid(riid)); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("unsupported %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLCurrentStyle_AddRef(IHTMLCurrentStyle *iface) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmldoc.c wine1.7-1.7.19/dlls/mshtml/htmldoc.c --- wine1.7-1.7.18/dlls/mshtml/htmldoc.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmldoc.c 2014-05-16 19:06:48.000000000 +0000 @@ -3864,7 +3864,7 @@ static HRESULT WINAPI SupportErrorInfo_InterfaceSupportsErrorInfo(ISupportErrorInfo *iface, REFIID riid) { - FIXME("(%p)->(%s)\n", iface, debugstr_guid(riid)); + FIXME("(%p)->(%s)\n", iface, debugstr_mshtml_guid(riid)); return S_FALSE; } @@ -4730,7 +4730,7 @@ nsresult nsres; HRESULT hres; - TRACE("(%p %s %p)\n", pUnkOuter, debugstr_guid(riid), ppvObject); + TRACE("(%p %s %p)\n", pUnkOuter, debugstr_mshtml_guid(riid), ppvObject); doc = heap_alloc_zero(sizeof(HTMLDocumentObj)); if(!doc) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlelem2.c wine1.7-1.7.19/dlls/mshtml/htmlelem2.c --- wine1.7-1.7.18/dlls/mshtml/htmlelem2.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlelem2.c 2014-05-16 19:06:48.000000000 +0000 @@ -53,16 +53,16 @@ { HTMLRect *This = impl_from_IHTMLRect(iface); + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLRect_iface; }else if(IsEqualGUID(&IID_IHTMLRect, riid)) { - TRACE("(%p)->(IID_IHTMLRect %p)\n", This, ppv); *ppv = &This->IHTMLRect_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; }else { - FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + FIXME("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); *ppv = NULL; return E_NOINTERFACE; } diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlelem.c wine1.7-1.7.19/dlls/mshtml/htmlelem.c --- wine1.7-1.7.18/dlls/mshtml/htmlelem.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlelem.c 2014-05-16 19:06:48.000000000 +0000 @@ -1565,37 +1565,26 @@ { HTMLElement *This = impl_from_HTMLDOMNode(iface); - *ppv = NULL; - if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLElement_iface; }else if(IsEqualGUID(&IID_IDispatch, riid)) { - TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = &This->IHTMLElement_iface; }else if(IsEqualGUID(&IID_IHTMLElement, riid)) { - TRACE("(%p)->(IID_IHTMLElement %p)\n", This, ppv); *ppv = &This->IHTMLElement_iface; }else if(IsEqualGUID(&IID_IHTMLElement2, riid)) { - TRACE("(%p)->(IID_IHTMLElement2 %p)\n", This, ppv); *ppv = &This->IHTMLElement2_iface; }else if(IsEqualGUID(&IID_IHTMLElement3, riid)) { - TRACE("(%p)->(IID_IHTMLElement3 %p)\n", This, ppv); *ppv = &This->IHTMLElement3_iface; }else if(IsEqualGUID(&IID_IHTMLElement4, riid)) { - TRACE("(%p)->(IID_IHTMLElement4 %p)\n", This, ppv); *ppv = &This->IHTMLElement4_iface; }else if(IsEqualGUID(&IID_IConnectionPointContainer, riid)) { - TRACE("(%p)->(IID_IConnectionPointContainer %p)\n", This, ppv); *ppv = &This->cp_container.IConnectionPointContainer_iface; + }else { + return HTMLDOMNode_QI(&This->node, riid, ppv); } - if(*ppv) { - IHTMLElement_AddRef(&This->IHTMLElement_iface); - return S_OK; - } - - return HTMLDOMNode_QI(&This->node, riid, ppv); + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } void HTMLElement_destructor(HTMLDOMNode *iface) @@ -1914,25 +1903,23 @@ { HTMLFiltersCollection *This = impl_from_IHTMLFiltersCollection(iface); - TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppv ); + TRACE("%p %s %p\n", This, debugstr_mshtml_guid(riid), ppv ); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLFiltersCollection_iface; }else if(IsEqualGUID(&IID_IHTMLFiltersCollection, riid)) { TRACE("(%p)->(IID_IHTMLFiltersCollection %p)\n", This, ppv); *ppv = &This->IHTMLFiltersCollection_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + FIXME("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLFiltersCollection_AddRef(IHTMLFiltersCollection *iface) @@ -2100,31 +2087,24 @@ { HTMLAttributeCollection *This = impl_from_IHTMLAttributeCollection(iface); - *ppv = NULL; - if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLAttributeCollection_iface; }else if(IsEqualGUID(&IID_IHTMLAttributeCollection, riid)) { - TRACE("(%p)->(IID_IHTMLAttributeCollection %p)\n", This, ppv); *ppv = &This->IHTMLAttributeCollection_iface; }else if(IsEqualGUID(&IID_IHTMLAttributeCollection2, riid)) { - TRACE("(%p)->(IID_IHTMLAttributeCollection2 %p)\n", This, ppv); *ppv = &This->IHTMLAttributeCollection2_iface; }else if(IsEqualGUID(&IID_IHTMLAttributeCollection3, riid)) { - TRACE("(%p)->(IID_IHTMLAttributeCollection3 %p)\n", This, ppv); *ppv = &This->IHTMLAttributeCollection3_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLAttributeCollection_AddRef(IHTMLAttributeCollection *iface) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlelemcol.c wine1.7-1.7.19/dlls/mshtml/htmlelemcol.c --- wine1.7-1.7.18/dlls/mshtml/htmlelemcol.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlelemcol.c 2014-05-16 19:06:48.000000000 +0000 @@ -104,14 +104,14 @@ { HTMLElementCollectionEnum *This = impl_from_IEnumVARIANT(iface); + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + if(IsEqualGUID(riid, &IID_IUnknown)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IEnumVARIANT_iface; }else if(IsEqualGUID(riid, &IID_IEnumVARIANT)) { - TRACE("(%p)->(IID_IEnumVARIANT %p)\n", This, ppv); *ppv = &This->IEnumVARIANT_iface; }else { - FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + FIXME("Unsupported iface %s\n", debugstr_mshtml_guid(riid)); *ppv = NULL; return E_NOINTERFACE; } @@ -217,25 +217,20 @@ { HTMLElementCollection *This = impl_from_IHTMLElementCollection(iface); - *ppv = NULL; - if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLElementCollection_iface; }else if(IsEqualGUID(&IID_IHTMLElementCollection, riid)) { - TRACE("(%p)->(IID_IHTMLElementCollection %p)\n", This, ppv); *ppv = &This->IHTMLElementCollection_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + FIXME("Unsupported iface %s\n", debugstr_mshtml_guid(riid)); + return E_NOINTERFACE; } - if(*ppv) { - IHTMLElementCollection_AddRef(&This->IHTMLElementCollection_iface); - return S_OK; - } - - FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IHTMLElementCollection_AddRef(&This->IHTMLElementCollection_iface); + return S_OK; } static ULONG WINAPI HTMLElementCollection_AddRef(IHTMLElementCollection *iface) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlevent.c wine1.7-1.7.19/dlls/mshtml/htmlevent.c --- wine1.7-1.7.18/dlls/mshtml/htmlevent.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlevent.c 2014-05-16 19:06:48.000000000 +0000 @@ -268,25 +268,22 @@ { HTMLEventObj *This = impl_from_IHTMLEventObj(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLEventObj_iface; }else if(IsEqualGUID(&IID_IHTMLEventObj, riid)) { - TRACE("(%p)->(IID_IHTMLEventObj %p)\n", This, ppv); *ppv = &This->IHTMLEventObj_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLEventObj_AddRef(IHTMLEventObj *iface) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlimg.c wine1.7-1.7.19/dlls/mshtml/htmlimg.c --- wine1.7-1.7.18/dlls/mshtml/htmlimg.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlimg.c 2014-05-16 19:06:48.000000000 +0000 @@ -705,24 +705,22 @@ { HTMLImageElementFactory *This = impl_from_IHTMLImageElementFactory(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_Unknown %p)\n", This, ppv); *ppv = &This->IHTMLImageElementFactory_iface; }else if(IsEqualGUID(&IID_IHTMLImageElementFactory, riid)) { - TRACE("(%p)->(IID_IHTMLImageElementFactory %p)\n", This, ppv); *ppv = &This->IHTMLImageElementFactory_iface; - }else if(dispex_query_interface(&This->dispex, riid, ppv)) + }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; - - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLImageElementFactory_AddRef(IHTMLImageElementFactory *iface) @@ -752,16 +750,14 @@ UINT *pctinfo) { HTMLImageElementFactory *This = impl_from_IHTMLImageElementFactory(iface); - FIXME("(%p)->(%p)\n", This, pctinfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo); } static HRESULT WINAPI HTMLImageElementFactory_GetTypeInfo(IHTMLImageElementFactory *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { HTMLImageElementFactory *This = impl_from_IHTMLImageElementFactory(iface); - FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo); } static HRESULT WINAPI HTMLImageElementFactory_GetIDsOfNames(IHTMLImageElementFactory *iface, @@ -769,9 +765,7 @@ DISPID *rgDispId) { HTMLImageElementFactory *This = impl_from_IHTMLImageElementFactory(iface); - FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, - cNames, lcid, rgDispId); - return E_NOTIMPL; + return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, lcid, rgDispId); } static HRESULT WINAPI HTMLImageElementFactory_Invoke(IHTMLImageElementFactory *iface, @@ -780,9 +774,8 @@ UINT *puArgErr) { HTMLImageElementFactory *This = impl_from_IHTMLImageElementFactory(iface); - FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), - lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - return E_NOTIMPL; + return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags, + pDispParams, pVarResult, pExcepInfo, puArgErr); } static LONG var_to_size(const VARIANT *v) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmllocation.c wine1.7-1.7.19/dlls/mshtml/htmllocation.c --- wine1.7-1.7.18/dlls/mshtml/htmllocation.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmllocation.c 2014-05-16 19:06:48.000000000 +0000 @@ -81,25 +81,22 @@ { HTMLLocation *This = impl_from_IHTMLLocation(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLLocation_iface; }else if(IsEqualGUID(&IID_IHTMLLocation, riid)) { - TRACE("(%p)->(IID_IHTMLLocation %p)\n", This, ppv); *ppv = &This->IHTMLLocation_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLLocation_AddRef(IHTMLLocation *iface) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlnode.c wine1.7-1.7.19/dlls/mshtml/htmlnode.c --- wine1.7-1.7.18/dlls/mshtml/htmlnode.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlnode.c 2014-05-16 19:06:48.000000000 +0000 @@ -66,14 +66,14 @@ { HTMLDOMChildrenCollectionEnum *This = impl_from_IEnumVARIANT(iface); + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + if(IsEqualGUID(riid, &IID_IUnknown)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IEnumVARIANT_iface; }else if(IsEqualGUID(riid, &IID_IEnumVARIANT)) { - TRACE("(%p)->(IID_IEnumVARIANT %p)\n", This, ppv); *ppv = &This->IEnumVARIANT_iface; }else { - FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + FIXME("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); *ppv = NULL; return E_NOINTERFACE; } @@ -206,25 +206,22 @@ { HTMLDOMChildrenCollection *This = impl_from_IHTMLDOMChildrenCollection(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLDOMChildrenCollection_iface; }else if(IsEqualGUID(&IID_IHTMLDOMChildrenCollection, riid)) { - TRACE("(%p)->(IID_IHTMLDOMChildrenCollection %p)\n", This, ppv); *ppv = &This->IHTMLDOMChildrenCollection_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLDOMChildrenCollection_AddRef(IHTMLDOMChildrenCollection *iface) @@ -1163,47 +1160,34 @@ HRESULT HTMLDOMNode_QI(HTMLDOMNode *This, REFIID riid, void **ppv) { - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLDOMNode_iface; }else if(IsEqualGUID(&IID_IDispatch, riid)) { - TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = &This->IHTMLDOMNode_iface; - }else if(IsEqualGUID(&IID_IDispatchEx, riid)) { - if(This->dispex.data) { - TRACE("(%p)->(IID_IDispatchEx %p)\n", This, ppv); - *ppv = &This->dispex.IDispatchEx_iface; - }else { - FIXME("(%p)->(IID_IDispatchEx %p)\n", This, ppv); - return E_NOINTERFACE; - } + }else if(IsEqualGUID(&IID_IDispatchEx, riid) && This->dispex.data) { + *ppv = &This->dispex.IDispatchEx_iface; }else if(IsEqualGUID(&IID_IHTMLDOMNode, riid)) { - TRACE("(%p)->(IID_IHTMLDOMNode %p)\n", This, ppv); *ppv = &This->IHTMLDOMNode_iface; }else if(IsEqualGUID(&IID_IHTMLDOMNode2, riid)) { - TRACE("(%p)->(IID_IHTMLDOMNode2 %p)\n", This, ppv); *ppv = &This->IHTMLDOMNode2_iface; }else if(IsEqualGUID(&IID_nsXPCOMCycleCollectionParticipant, riid)) { - TRACE("(%p)->(IID_nsXPCOMCycleCollectionParticipant %p)\n", This, ppv); *ppv = &node_ccp; return NS_OK; }else if(IsEqualGUID(&IID_nsCycleCollectionISupports, riid)) { - TRACE("(%p)->(IID_nsCycleCollectionISupports %p)\n", This, ppv); *ppv = &This->IHTMLDOMNode_iface; return NS_OK; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } void HTMLDOMNode_destructor(HTMLDOMNode *This) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmloption.c wine1.7-1.7.19/dlls/mshtml/htmloption.c --- wine1.7-1.7.18/dlls/mshtml/htmloption.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmloption.c 2014-05-16 19:06:48.000000000 +0000 @@ -366,26 +366,24 @@ { HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLOptionElementFactory_iface; }else if(IsEqualGUID(&IID_IDispatch, riid)) { - TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = &This->IHTMLOptionElementFactory_iface; }else if(IsEqualGUID(&IID_IHTMLOptionElementFactory, riid)) { - TRACE("(%p)->(IID_IHTMLOptionElementFactory %p)\n", This, ppv); *ppv = &This->IHTMLOptionElementFactory_iface; + }else if(dispex_query_interface(&This->dispex, riid, ppv)) { + return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLOptionElementFactory_AddRef(IHTMLOptionElementFactory *iface) @@ -405,8 +403,10 @@ TRACE("(%p) ref=%d\n", This, ref); - if(!ref) + if(!ref) { + release_dispex(&This->dispex); heap_free(This); + } return ref; } @@ -414,16 +414,14 @@ static HRESULT WINAPI HTMLOptionElementFactory_GetTypeInfoCount(IHTMLOptionElementFactory *iface, UINT *pctinfo) { HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface); - FIXME("(%p)->(%p)\n", This, pctinfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo); } static HRESULT WINAPI HTMLOptionElementFactory_GetTypeInfo(IHTMLOptionElementFactory *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface); - FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo); } static HRESULT WINAPI HTMLOptionElementFactory_GetIDsOfNames(IHTMLOptionElementFactory *iface, REFIID riid, @@ -431,9 +429,7 @@ LCID lcid, DISPID *rgDispId) { HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface); - FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, - lcid, rgDispId); - return E_NOTIMPL; + return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, lcid, rgDispId); } static HRESULT WINAPI HTMLOptionElementFactory_Invoke(IHTMLOptionElementFactory *iface, DISPID dispIdMember, @@ -441,9 +437,8 @@ VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface); - FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), - lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - return E_NOTIMPL; + return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags, pDispParams, + pVarResult, pExcepInfo, puArgErr); } static HRESULT WINAPI HTMLOptionElementFactory_create(IHTMLOptionElementFactory *iface, @@ -509,6 +504,18 @@ HTMLOptionElementFactory_create }; +static const tid_t HTMLOptionElementFactory_iface_tids[] = { + IHTMLOptionElementFactory_tid, + 0 +}; + +static dispex_static_data_t HTMLOptionElementFactory_dispex = { + NULL, + IHTMLOptionElementFactory_tid, + NULL, + HTMLOptionElementFactory_iface_tids +}; + HRESULT HTMLOptionElementFactory_Create(HTMLInnerWindow *window, HTMLOptionElementFactory **ret_ptr) { HTMLOptionElementFactory *ret; @@ -521,6 +528,9 @@ ret->ref = 1; ret->window = window; + init_dispex(&ret->dispex, (IUnknown*)&ret->IHTMLOptionElementFactory_iface, + &HTMLOptionElementFactory_dispex); + *ret_ptr = ret; return S_OK; } diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlscreen.c wine1.7-1.7.19/dlls/mshtml/htmlscreen.c --- wine1.7-1.7.18/dlls/mshtml/htmlscreen.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlscreen.c 2014-05-16 19:06:48.000000000 +0000 @@ -47,25 +47,22 @@ { HTMLScreen *This = impl_from_IHTMLScreen(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLScreen_iface; }else if(IsEqualGUID(&IID_IHTMLScreen, riid)) { - TRACE("(%p)->(IID_IHTMLScreen %p)\n", This, ppv); *ppv = &This->IHTMLScreen_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLScreen_AddRef(IHTMLScreen *iface) @@ -96,24 +93,22 @@ static HRESULT WINAPI HTMLScreen_GetTypeInfoCount(IHTMLScreen *iface, UINT *pctinfo) { HTMLScreen *This = impl_from_IHTMLScreen(iface); - FIXME("(%p)\n", This); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo); } static HRESULT WINAPI HTMLScreen_GetTypeInfo(IHTMLScreen *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { HTMLScreen *This = impl_from_IHTMLScreen(iface); - FIXME("(%p)\n", This); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo); } static HRESULT WINAPI HTMLScreen_GetIDsOfNames(IHTMLScreen *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) { HTMLScreen *This = impl_from_IHTMLScreen(iface); - FIXME("(%p)\n", This); - return E_NOTIMPL; + return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, + lcid, rgDispId); } static HRESULT WINAPI HTMLScreen_Invoke(IHTMLScreen *iface, DISPID dispIdMember, @@ -121,8 +116,8 @@ VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { HTMLScreen *This = impl_from_IHTMLScreen(iface); - FIXME("(%p)\n", This); - return E_NOTIMPL; + return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags, + pDispParams, pVarResult, pExcepInfo, puArgErr); } static HRESULT WINAPI HTMLScreen_get_colorDepth(IHTMLScreen *iface, LONG *p) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlselect.c wine1.7-1.7.19/dlls/mshtml/htmlselect.c --- wine1.7-1.7.18/dlls/mshtml/htmlselect.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlselect.c 2014-05-16 19:06:48.000000000 +0000 @@ -407,8 +407,14 @@ static HRESULT WINAPI HTMLSelectElement_remove(IHTMLSelectElement *iface, LONG index) { HTMLSelectElement *This = impl_from_IHTMLSelectElement(iface); - FIXME("(%p)->(%d)\n", This, index); - return E_NOTIMPL; + nsresult nsres; + TRACE("(%p)->(%d)\n", This, index); + nsres = nsIDOMHTMLSelectElement_select_Remove(This->nsselect, index); + if(NS_FAILED(nsres)) { + ERR("Remove failed: %08x\n", nsres); + return E_FAIL; + } + return S_OK; } static HRESULT WINAPI HTMLSelectElement_put_length(IHTMLSelectElement *iface, LONG v) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlstorage.c wine1.7-1.7.19/dlls/mshtml/htmlstorage.c --- wine1.7-1.7.18/dlls/mshtml/htmlstorage.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlstorage.c 2014-05-16 19:06:48.000000000 +0000 @@ -46,25 +46,22 @@ { HTMLStorage *This = impl_from_IHTMLStorage(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLStorage_iface; }else if(IsEqualGUID(&IID_IHTMLStorage, riid)) { - TRACE("(%p)->(IID_IHTMLStorage %p)\n", This, ppv); *ppv = &This->IHTMLStorage_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLStorage_AddRef(IHTMLStorage *iface) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlstyle.c wine1.7-1.7.19/dlls/mshtml/htmlstyle.c --- wine1.7-1.7.18/dlls/mshtml/htmlstyle.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlstyle.c 2014-05-16 19:06:48.000000000 +0000 @@ -730,40 +730,32 @@ { HTMLStyle *This = impl_from_IHTMLStyle(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLStyle_iface; }else if(IsEqualGUID(&IID_IHTMLStyle, riid)) { - TRACE("(%p)->(IID_IHTMLStyle %p)\n", This, ppv); *ppv = &This->IHTMLStyle_iface; }else if(IsEqualGUID(&IID_IHTMLStyle2, riid)) { - TRACE("(%p)->(IID_IHTMLStyle2 %p)\n", This, ppv); *ppv = &This->IHTMLStyle2_iface; }else if(IsEqualGUID(&IID_IHTMLStyle3, riid)) { - TRACE("(%p)->(IID_IHTMLStyle3 %p)\n", This, ppv); *ppv = &This->IHTMLStyle3_iface; }else if(IsEqualGUID(&IID_IHTMLStyle4, riid)) { - TRACE("(%p)->(IID_IHTMLStyle4 %p)\n", This, ppv); *ppv = &This->IHTMLStyle4_iface; }else if(IsEqualGUID(&IID_IHTMLStyle5, riid)) { - TRACE("(%p)->(IID_IHTMLStyle5 %p)\n", This, ppv); *ppv = &This->IHTMLStyle5_iface; }else if(IsEqualGUID(&IID_IHTMLStyle6, riid)) { - TRACE("(%p)->(IID_IHTMLStyle6 %p)\n", This, ppv); *ppv = &This->IHTMLStyle6_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("unsupported iface %s\n", debugstr_mshtml_guid(riid)); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("unsupported %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLStyle_AddRef(IHTMLStyle *iface) diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlstylesheet.c wine1.7-1.7.19/dlls/mshtml/htmlstylesheet.c --- wine1.7-1.7.18/dlls/mshtml/htmlstylesheet.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlstylesheet.c 2014-05-16 19:06:48.000000000 +0000 @@ -50,6 +50,7 @@ }; struct HTMLStyleSheetRulesCollection { + DispatchEx dispex; IHTMLStyleSheetRulesCollection IHTMLStyleSheetRulesCollection_iface; LONG ref; @@ -67,21 +68,22 @@ { HTMLStyleSheetRulesCollection *This = impl_from_IHTMLStyleSheetRulesCollection(iface); + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLStyleSheetRulesCollection_iface; }else if(IsEqualGUID(&IID_IHTMLStyleSheetRulesCollection, riid)) { - TRACE("(%p)->(IID_IHTMLStyleSheetRulesCollection %p)\n", This, ppv); *ppv = &This->IHTMLStyleSheetRulesCollection_iface; + }else if(dispex_query_interface(&This->dispex, riid, ppv)) { + return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + FIXME("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLStyleSheetRulesCollection_AddRef(IHTMLStyleSheetRulesCollection *iface) @@ -102,6 +104,7 @@ TRACE("(%p) ref=%d\n", This, ref); if(!ref) { + release_dispex(&This->dispex); if(This->nslist) nsIDOMCSSRuleList_Release(This->nslist); heap_free(This); @@ -114,25 +117,22 @@ IHTMLStyleSheetRulesCollection *iface, UINT *pctinfo) { HTMLStyleSheetRulesCollection *This = impl_from_IHTMLStyleSheetRulesCollection(iface); - FIXME("(%p)->(%p)\n", This, pctinfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo); } static HRESULT WINAPI HTMLStyleSheetRulesCollection_GetTypeInfo(IHTMLStyleSheetRulesCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { HTMLStyleSheetRulesCollection *This = impl_from_IHTMLStyleSheetRulesCollection(iface); - FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo); } static HRESULT WINAPI HTMLStyleSheetRulesCollection_GetIDsOfNames(IHTMLStyleSheetRulesCollection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) { HTMLStyleSheetRulesCollection *This = impl_from_IHTMLStyleSheetRulesCollection(iface); - FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, - lcid, rgDispId); - return E_NOTIMPL; + return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, + lcid, rgDispId); } static HRESULT WINAPI HTMLStyleSheetRulesCollection_Invoke(IHTMLStyleSheetRulesCollection *iface, @@ -140,9 +140,8 @@ VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { HTMLStyleSheetRulesCollection *This = impl_from_IHTMLStyleSheetRulesCollection(iface); - FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), - lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - return E_NOTIMPL; + return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags, + pDispParams, pVarResult, pExcepInfo, puArgErr); } static HRESULT WINAPI HTMLStyleSheetRulesCollection_get_length(IHTMLStyleSheetRulesCollection *iface, @@ -185,6 +184,17 @@ HTMLStyleSheetRulesCollection_item }; +static const tid_t HTMLStyleSheetRulesCollection_iface_tids[] = { + IHTMLStyleSheetRulesCollection_tid, + 0 +}; +static dispex_static_data_t HTMLStyleSheetRulesCollection_dispex = { + NULL, + DispHTMLStyleSheetRulesCollection_tid, + NULL, + HTMLStyleSheetRulesCollection_iface_tids +}; + static IHTMLStyleSheetRulesCollection *HTMLStyleSheetRulesCollection_Create(nsIDOMCSSRuleList *nslist) { HTMLStyleSheetRulesCollection *ret; @@ -194,6 +204,8 @@ ret->ref = 1; ret->nslist = nslist; + init_dispex(&ret->dispex, (IUnknown*)&ret->IHTMLStyleSheetRulesCollection_iface, &HTMLStyleSheetRulesCollection_dispex); + if(nslist) nsIDOMCSSRuleList_AddRef(nslist); @@ -210,28 +222,24 @@ { HTMLStyleSheetsCollection *This = impl_from_IHTMLStyleSheetsCollection(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLStyleSheetsCollection_iface; }else if(IsEqualGUID(&IID_IDispatch, riid)) { - TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = &This->IHTMLStyleSheetsCollection_iface; }else if(IsEqualGUID(&IID_IHTMLStyleSheetsCollection, riid)) { - TRACE("(%p)->(IID_IHTMLStyleSheetsCollection %p)\n", This, ppv); *ppv = &This->IHTMLStyleSheetsCollection_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("unsupported %s\n", debugstr_mshtml_guid(riid)); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("unsupported %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLStyleSheetsCollection_AddRef(IHTMLStyleSheetsCollection *iface) @@ -252,6 +260,7 @@ TRACE("(%p) ref=%d\n", This, ref); if(!ref) { + release_dispex(&This->dispex); if(This->nslist) nsIDOMStyleSheetList_Release(This->nslist); heap_free(This); @@ -402,28 +411,24 @@ { HTMLStyleSheet *This = impl_from_IHTMLStyleSheet(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLStyleSheet_iface; }else if(IsEqualGUID(&IID_IDispatch, riid)) { - TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = &This->IHTMLStyleSheet_iface; }else if(IsEqualGUID(&IID_IHTMLStyleSheet, riid)) { - TRACE("(%p)->(IID_IHTMLStyleSheet %p)\n", This, ppv); *ppv = &This->IHTMLStyleSheet_iface; }else if(dispex_query_interface(&This->dispex, riid, ppv)) { return *ppv ? S_OK : E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("unsupported %s\n", debugstr_mshtml_guid(riid)); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("unsupported %s\n", debugstr_guid(riid)); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLStyleSheet_AddRef(IHTMLStyleSheet *iface) @@ -443,8 +448,12 @@ TRACE("(%p) ref=%d\n", This, ref); - if(!ref) + if(!ref) { + release_dispex(&This->dispex); + if(This->nsstylesheet) + nsIDOMCSSStyleSheet_Release(This->nsstylesheet); heap_free(This); + } return ref; } @@ -460,7 +469,6 @@ LCID lcid, ITypeInfo **ppTInfo) { HTMLStyleSheet *This = impl_from_IHTMLStyleSheet(iface); - TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo); } @@ -469,7 +477,6 @@ LCID lcid, DISPID *rgDispId) { HTMLStyleSheet *This = impl_from_IHTMLStyleSheet(iface); - TRACE("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId); return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames, lcid, rgDispId); } @@ -478,8 +485,6 @@ VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { HTMLStyleSheet *This = impl_from_IHTMLStyleSheet(iface); - TRACE("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), - lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); } diff -Nru wine1.7-1.7.18/dlls/mshtml/htmltablerow.c wine1.7-1.7.19/dlls/mshtml/htmltablerow.c --- wine1.7-1.7.18/dlls/mshtml/htmltablerow.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmltablerow.c 2014-05-16 19:06:48.000000000 +0000 @@ -175,8 +175,9 @@ TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); - nsAString_InitDepend(&val, V_BSTR(&v)); - variant_to_nscolor(&v, &val); + if (!variant_to_nscolor(&v, &val)) + return S_OK; + nsres = nsIDOMHTMLTableRowElement_SetBgColor(This->nsrow, &val); nsAString_Finish(&val); diff -Nru wine1.7-1.7.18/dlls/mshtml/htmlwindow.c wine1.7-1.7.19/dlls/mshtml/htmlwindow.c --- wine1.7-1.7.18/dlls/mshtml/htmlwindow.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/htmlwindow.c 2014-05-16 19:06:48.000000000 +0000 @@ -141,59 +141,45 @@ { HTMLWindow *This = impl_from_IHTMLWindow2(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLWindow2_iface; }else if(IsEqualGUID(&IID_IDispatch, riid)) { - TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = &This->IHTMLWindow2_iface; }else if(IsEqualGUID(&IID_IDispatchEx, riid)) { - TRACE("(%p)->(IID_IDispatchEx %p)\n", This, ppv); *ppv = &This->IDispatchEx_iface; }else if(IsEqualGUID(&IID_IHTMLFramesCollection2, riid)) { - TRACE("(%p)->(IID_IHTMLFramesCollection2 %p)\n", This, ppv); *ppv = &This->IHTMLWindow2_iface; }else if(IsEqualGUID(&IID_IHTMLWindow2, riid)) { - TRACE("(%p)->(IID_IHTMLWindow2 %p)\n", This, ppv); *ppv = &This->IHTMLWindow2_iface; }else if(IsEqualGUID(&IID_IHTMLWindow3, riid)) { - TRACE("(%p)->(IID_IHTMLWindow3 %p)\n", This, ppv); *ppv = &This->IHTMLWindow3_iface; }else if(IsEqualGUID(&IID_IHTMLWindow4, riid)) { - TRACE("(%p)->(IID_IHTMLWindow4 %p)\n", This, ppv); *ppv = &This->IHTMLWindow4_iface; }else if(IsEqualGUID(&IID_IHTMLWindow5, riid)) { - TRACE("(%p)->(IID_IHTMLWindow5 %p)\n", This, ppv); *ppv = &This->IHTMLWindow5_iface; }else if(IsEqualGUID(&IID_IHTMLWindow6, riid)) { - TRACE("(%p)->(IID_IHTMLWindow6 %p)\n", This, ppv); *ppv = &This->IHTMLWindow6_iface; }else if(IsEqualGUID(&IID_IHTMLPrivateWindow, riid)) { - TRACE("(%p)->(IID_IHTMLPrivateWindow %p)\n", This, ppv); *ppv = &This->IHTMLPrivateWindow_iface; }else if(IsEqualGUID(&IID_IServiceProvider, riid)) { - TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv); *ppv = &This->IServiceProvider_iface; }else if(IsEqualGUID(&IID_ITravelLogClient, riid)) { - TRACE("(%p)->(IID_ITravelLogClient %p)\n", This, ppv); *ppv = &This->ITravelLogClient_iface; }else if(IsEqualGUID(&IID_IObjectIdentity, riid)) { - TRACE("(%p)->(IID_IObjectIdentity %p)\n", This, ppv); *ppv = &This->IObjectIdentity_iface; }else if(dispex_query_interface(&This->inner_window->dispex, riid, ppv)) { assert(!*ppv); return E_NOINTERFACE; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; - } - - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HTMLWindow2_AddRef(IHTMLWindow2 *iface) @@ -2407,8 +2393,7 @@ UINT i; HRESULT hres; - WARN("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, - lcid, rgDispId); + WARN("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId); for(i=0; i < cNames; i++) { /* We shouldn't use script's IDispatchEx here, so we shouldn't use GetDispID */ @@ -2686,7 +2671,7 @@ return IHTMLWindow2_QueryInterface(&This->IHTMLWindow2_iface, riid, ppv); } - TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); + TRACE("(%p)->(%s %s %p)\n", This, debugstr_mshtml_guid(guidService), debugstr_mshtml_guid(riid), ppv); if(!This->outer_window->doc_obj) return E_NOINTERFACE; diff -Nru wine1.7-1.7.18/dlls/mshtml/ifacewrap.c wine1.7-1.7.19/dlls/mshtml/ifacewrap.c --- wine1.7-1.7.18/dlls/mshtml/ifacewrap.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/ifacewrap.c 2014-05-16 19:06:48.000000000 +0000 @@ -54,7 +54,7 @@ { iface_wrapper_t *This = impl_from_IUnknown(iface); - TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); return IUnknown_QueryInterface(This->ref_unk, riid, ppv); } diff -Nru wine1.7-1.7.18/dlls/mshtml/ipwindow.c wine1.7-1.7.19/dlls/mshtml/ipwindow.c --- wine1.7-1.7.18/dlls/mshtml/ipwindow.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/ipwindow.c 2014-05-16 19:06:48.000000000 +0000 @@ -50,20 +50,18 @@ { InPlaceFrame *This = impl_from_IOleInPlaceFrame(iface); + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IOleInPlaceFrame_iface; }else if(IsEqualGUID(&IID_IOleWindow, riid)) { - TRACE("(%p)->(IID_IOleWindow %p)\n", This, ppv); *ppv = &This->IOleInPlaceFrame_iface; }else if(IsEqualGUID(&IID_IOleInPlaceUIWindow, riid)) { - TRACE("(%p)->(IID_IOleInPlaceUIWindow %p)\n", This, ppv); *ppv = &This->IOleInPlaceFrame_iface; }else if(IsEqualGUID(&IID_IOleInPlaceFrame, riid)) { - TRACE("(%p)->(IID_IOleInPlaceFrame %p)\n", This, ppv); *ppv = &This->IOleInPlaceFrame_iface; }else { - WARN("Unsopported interface %s\n", debugstr_guid(riid)); + WARN("Unsopported interface %s\n", debugstr_mshtml_guid(riid)); *ppv = NULL; return E_NOINTERFACE; } @@ -234,17 +232,16 @@ { InPlaceUIWindow *This = impl_from_IOleInPlaceUIWindow(iface); + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IOleInPlaceUIWindow_iface; }else if(IsEqualGUID(&IID_IOleWindow, riid)) { - TRACE("(%p)->(IID_IOleWindow %p)\n", This, ppv); *ppv = &This->IOleInPlaceUIWindow_iface; }else if(IsEqualGUID(&IID_IOleInPlaceUIWindow, riid)) { - TRACE("(%p)->(IID_IOleInPlaceUIWindow %p)\n", This, ppv); *ppv = &This->IOleInPlaceUIWindow_iface; }else { - WARN("Unsopported interface %s\n", debugstr_guid(riid)); + WARN("Unsopported interface %s\n", debugstr_mshtml_guid(riid)); *ppv = NULL; return E_NOINTERFACE; } diff -Nru wine1.7-1.7.18/dlls/mshtml/loadopts.c wine1.7-1.7.19/dlls/mshtml/loadopts.c --- wine1.7-1.7.18/dlls/mshtml/loadopts.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/loadopts.c 2014-05-16 19:06:48.000000000 +0000 @@ -61,26 +61,22 @@ { HTMLLoadOptions *This = impl_from_IHtmlLoadOptions(iface); - *ppv = NULL; + TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_IUnknown, riid)) { - TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHtmlLoadOptions_iface; }else if(IsEqualGUID(&IID_IOptionArray, riid)) { - TRACE("(%p)->(IID_IOptionArray %p)\n", This, ppv); *ppv = &This->IHtmlLoadOptions_iface; }else if(IsEqualGUID(&IID_IHtmlLoadOptions, riid)) { - TRACE("(%p)->(IID_IHtmlLoadOptions %p)\n", This, ppv); *ppv = &This->IHtmlLoadOptions_iface; + }else { + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } - if(*ppv) { - IHtmlLoadOptions_AddRef(&This->IHtmlLoadOptions_iface); - return S_OK; - } - - WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; } static ULONG WINAPI HtmlLoadOptions_AddRef(IHtmlLoadOptions *iface) @@ -196,9 +192,11 @@ HTMLLoadOptions *ret; HRESULT hres; - TRACE("(%p %s %p)\n", pUnkOuter, debugstr_guid(riid), ppv); + TRACE("(%p %s %p)\n", pUnkOuter, debugstr_mshtml_guid(riid), ppv); ret = heap_alloc(sizeof(HTMLLoadOptions)); + if(!ret) + return E_OUTOFMEMORY; ret->IHtmlLoadOptions_iface.lpVtbl = &HtmlLoadOptionsVtbl; ret->ref = 1; @@ -206,6 +204,5 @@ hres = IHtmlLoadOptions_QueryInterface(&ret->IHtmlLoadOptions_iface, riid, ppv); IHtmlLoadOptions_Release(&ret->IHtmlLoadOptions_iface); - return hres; } diff -Nru wine1.7-1.7.18/dlls/mshtml/main.c wine1.7-1.7.19/dlls/mshtml/main.c --- wine1.7-1.7.18/dlls/mshtml/main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/main.c 2014-05-16 19:06:48.000000000 +0000 @@ -204,7 +204,7 @@ return S_OK; } - WARN("not supported iid %s\n", debugstr_guid(riid)); + WARN("not supported iid %s\n", debugstr_mshtml_guid(riid)); *ppvObject = NULL; return E_NOINTERFACE; } @@ -277,25 +277,25 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) { if(IsEqualGUID(&CLSID_HTMLDocument, rclsid)) { - TRACE("(CLSID_HTMLDocument %s %p)\n", debugstr_guid(riid), ppv); + TRACE("(CLSID_HTMLDocument %s %p)\n", debugstr_mshtml_guid(riid), ppv); return ClassFactory_Create(riid, ppv, HTMLDocument_Create); }else if(IsEqualGUID(&CLSID_AboutProtocol, rclsid)) { - TRACE("(CLSID_AboutProtocol %s %p)\n", debugstr_guid(riid), ppv); + TRACE("(CLSID_AboutProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv); return ProtocolFactory_Create(rclsid, riid, ppv); }else if(IsEqualGUID(&CLSID_JSProtocol, rclsid)) { - TRACE("(CLSID_JSProtocol %s %p)\n", debugstr_guid(riid), ppv); + TRACE("(CLSID_JSProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv); return ProtocolFactory_Create(rclsid, riid, ppv); }else if(IsEqualGUID(&CLSID_MailtoProtocol, rclsid)) { - TRACE("(CLSID_MailtoProtocol %s %p)\n", debugstr_guid(riid), ppv); + TRACE("(CLSID_MailtoProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv); return ProtocolFactory_Create(rclsid, riid, ppv); }else if(IsEqualGUID(&CLSID_ResProtocol, rclsid)) { - TRACE("(CLSID_ResProtocol %s %p)\n", debugstr_guid(riid), ppv); + TRACE("(CLSID_ResProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv); return ProtocolFactory_Create(rclsid, riid, ppv); }else if(IsEqualGUID(&CLSID_SysimageProtocol, rclsid)) { - TRACE("(CLSID_SysimageProtocol %s %p)\n", debugstr_guid(riid), ppv); + TRACE("(CLSID_SysimageProtocol %s %p)\n", debugstr_mshtml_guid(riid), ppv); return ProtocolFactory_Create(rclsid, riid, ppv); }else if(IsEqualGUID(&CLSID_HTMLLoadOptions, rclsid)) { - TRACE("(CLSID_HTMLLoadOptions %s %p)\n", debugstr_guid(riid), ppv); + TRACE("(CLSID_HTMLLoadOptions %s %p)\n", debugstr_mshtml_guid(riid), ppv); return ClassFactory_Create(riid, ppv, HTMLLoadOptions_Create); } @@ -536,11 +536,25 @@ { #define X(x) if(IsEqualGUID(iid, &x)) return #x X(DIID_DispHTMLDocument); + X(DIID_HTMLDocumentEvents); + X(DIID_HTMLDocumentEvents2); + X(DIID_HTMLTableEvents); + X(DIID_HTMLTextContainerEvents); + X(IID_IConnectionPoint); X(IID_IConnectionPointContainer); X(IID_ICustomDoc); X(IID_IDispatch); X(IID_IDispatchEx); + X(IID_IEnumConnections); + X(IID_IEnumVARIANT); X(IID_IHlinkTarget); + X(IID_IHTMLAttributeCollection); + X(IID_IHTMLAttributeCollection2); + X(IID_IHTMLAttributeCollection3); + X(IID_IHTMLCurrentStyle); + X(IID_IHTMLCurrentStyle2); + X(IID_IHTMLCurrentStyle3); + X(IID_IHTMLCurrentStyle4); X(IID_IHTMLDocument); X(IID_IHTMLDocument2); X(IID_IHTMLDocument3); @@ -548,8 +562,43 @@ X(IID_IHTMLDocument5); X(IID_IHTMLDocument6); X(IID_IHTMLDocument7); + X(IID_IHTMLDOMAttribute); + X(IID_IHTMLDOMChildrenCollection); + X(IID_IHTMLDOMNode); + X(IID_IHTMLDOMNode2); + X(IID_IHTMLElement); + X(IID_IHTMLElement2); + X(IID_IHTMLElement3); + X(IID_IHTMLElement4); + X(IID_IHTMLElementCollection); + X(IID_IHTMLEventObj); + X(IID_IHTMLFiltersCollection); + X(IID_IHTMLFramesCollection2); + X(IID_IHTMLImageElementFactory); + X(IID_IHTMLLocation); + X(IID_IHTMLOptionElementFactory); + X(IID_IHTMLPrivateWindow); + X(IID_IHTMLRect); + X(IID_IHTMLScreen); + X(IID_IHTMLStorage); + X(IID_IHTMLStyle); + X(IID_IHTMLStyle2); + X(IID_IHTMLStyle3); + X(IID_IHTMLStyle4); + X(IID_IHTMLStyle5); + X(IID_IHTMLStyle6); + X(IID_IHTMLStyleSheet); + X(IID_IHTMLStyleSheetRulesCollection); + X(IID_IHTMLStyleSheetsCollection); + X(IID_IHTMLWindow2); + X(IID_IHTMLWindow3); + X(IID_IHTMLWindow4); + X(IID_IHTMLWindow5); + X(IID_IHTMLWindow6); + X(IID_IHtmlLoadOptions); X(IID_IInternetHostSecurityManager); X(IID_IMonikerProp); + X(IID_IObjectIdentity); X(IID_IObjectSafety); X(IID_IObjectWithSite); X(IID_IOleContainer); @@ -558,23 +607,30 @@ X(IID_IOleDocument); X(IID_IOleDocumentView); X(IID_IOleInPlaceActiveObject); + X(IID_IOleInPlaceFrame); X(IID_IOleInPlaceObject); X(IID_IOleInPlaceObjectWindowless); + X(IID_IOleInPlaceUIWindow); X(IID_IOleObject); X(IID_IOleWindow); + X(IID_IOptionArray); X(IID_IPersist); X(IID_IPersistFile); X(IID_IPersistHistory); X(IID_IPersistMoniker); X(IID_IPersistStreamInit); + X(IID_IPropertyNotifySink); X(IID_IProvideClassInfo); X(IID_IServiceProvider); X(IID_ISupportErrorInfo); X(IID_ITargetContainer); + X(IID_ITravelLogClient); X(IID_IUnknown); X(IID_IViewObject); X(IID_IViewObject2); X(IID_IViewObjectEx); + X(IID_nsCycleCollectionISupports); + X(IID_nsXPCOMCycleCollectionParticipant); #undef X return debugstr_guid(iid); diff -Nru wine1.7-1.7.18/dlls/mshtml/mshtml_private.h wine1.7-1.7.19/dlls/mshtml/mshtml_private.h --- wine1.7-1.7.18/dlls/mshtml/mshtml_private.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/mshtml_private.h 2014-05-16 19:06:48.000000000 +0000 @@ -107,6 +107,7 @@ XDIID(DispHTMLStyle) \ XDIID(DispHTMLStyleElement) \ XDIID(DispHTMLStyleSheet) \ + XDIID(DispHTMLStyleSheetRulesCollection) \ XDIID(DispHTMLStyleSheetsCollection) \ XDIID(DispHTMLTable) \ XDIID(DispHTMLTableCell) \ @@ -166,6 +167,7 @@ XIID(IHTMLObjectElement) \ XIID(IHTMLObjectElement2) \ XIID(IHTMLOptionElement) \ + XIID(IHTMLOptionElementFactory) \ XIID(IHTMLPluginsCollection) \ XIID(IHTMLRect) \ XIID(IHTMLScreen) \ @@ -180,6 +182,7 @@ XIID(IHTMLStyle6) \ XIID(IHTMLStyleElement) \ XIID(IHTMLStyleSheet) \ + XIID(IHTMLStyleSheetRulesCollection) \ XIID(IHTMLStyleSheetsCollection) \ XIID(IHTMLTable) \ XIID(IHTMLTable2) \ @@ -316,6 +319,7 @@ } global_prop_t; typedef struct { + DispatchEx dispex; IHTMLOptionElementFactory IHTMLOptionElementFactory_iface; LONG ref; diff -Nru wine1.7-1.7.18/dlls/mshtml/tests/dom.c wine1.7-1.7.19/dlls/mshtml/tests/dom.c --- wine1.7-1.7.18/dlls/mshtml/tests/dom.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/tests/dom.c 2014-05-16 19:06:48.000000000 +0000 @@ -1741,6 +1741,8 @@ IHTMLWindow2_Release(window); ok_(__FILE__,line) (hres == S_OK, "get_Option failed: %08x\n", hres); + test_disp((IUnknown*)factory, &IID_IHTMLOptionElementFactory, "[object]"); + V_VT(&text) = VT_BSTR; V_BSTR(&text) = a2bstr(txt); V_VT(&value) = VT_BSTR; @@ -2559,6 +2561,24 @@ _test_elem3_get_disabled(line, (IUnknown*)select, exb); } +static void test_select_remove(IHTMLSelectElement *select) +{ + HRESULT hres; + + hres = IHTMLSelectElement_remove(select, 3); + ok(hres == S_OK, "remove failed: %08x, expected S_OK\n", hres); + test_select_length(select, 2); + + hres = IHTMLSelectElement_remove(select, -1); + todo_wine + ok(hres == E_INVALIDARG, "remove failed: %08x, expected E_INVALIDARG\n", hres); + test_select_length(select, 2); + + hres = IHTMLSelectElement_remove(select, 0); + ok(hres == S_OK, "remove failed:%08x\n", hres); + test_select_length(select, 1); +} + #define test_text_length(u,l) _test_text_length(__LINE__,u,l) static void _test_text_length(unsigned line, IUnknown *unk, LONG l) { @@ -4324,6 +4344,7 @@ test_select_multiple(select, VARIANT_FALSE); test_select_set_multiple(select, VARIANT_TRUE); + test_select_remove(select); } static void test_form_item(IHTMLElement *elem) @@ -6222,6 +6243,8 @@ hres = IHTMLStyleSheet_get_rules(stylesheet, &col); ok(hres == S_OK, "get_rules failed: %08x\n", hres); ok(col != NULL, "col == NULL\n"); + + test_disp2((IUnknown*)col, &DIID_DispHTMLStyleSheetRulesCollection, &IID_IHTMLStyleSheetRulesCollection, "[object]"); IHTMLStyleSheetRulesCollection_Release(col); href = (void*)0xdeadbeef; diff -Nru wine1.7-1.7.18/dlls/mshtml/tests/htmldoc.c wine1.7-1.7.19/dlls/mshtml/tests/htmldoc.c --- wine1.7-1.7.18/dlls/mshtml/tests/htmldoc.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/mshtml/tests/htmldoc.c 2014-05-16 19:06:48.000000000 +0000 @@ -2983,6 +2983,7 @@ case 143: /* TODO */ case 144: /* TODO */ case 178: + case 179: return E_NOTIMPL; default: @@ -3162,7 +3163,9 @@ ok(puArgErr != NULL, "puArgErr == NULL\n"); ok(V_VT(pVarResult) == 0, "V_VT(pVarResult)=%d, expected 0\n", V_VT(pVarResult)); ok(wFlags == DISPATCH_PROPERTYGET, "wFlags=%08x, expected DISPATCH_PROPERTYGET\n", wFlags); - test_readyState(NULL); + + if(dispIdMember != DISPID_AMBIENT_SILENT && dispIdMember != DISPID_AMBIENT_OFFLINEIFNOTCONNECTED) + test_readyState(NULL); switch(dispIdMember) { case DISPID_AMBIENT_USERMODE: diff -Nru wine1.7-1.7.18/dlls/msimg32/msimg32_main.c wine1.7-1.7.19/dlls/msimg32/msimg32_main.c --- wine1.7-1.7.18/dlls/msimg32/msimg32_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msimg32/msimg32_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -26,18 +26,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(msimg32); -/*********************************************************************** - * DllInitialize (MSIMG32.@) - * - * MSIMG32 initialisation routine. - */ -BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) -{ - if (reason == DLL_PROCESS_ATTACH) DisableThreadLibraryCalls( inst ); - return TRUE; -} - - /****************************************************************************** * vSetDdrawflag (MSIMG32.@) */ diff -Nru wine1.7-1.7.18/dlls/msvcp100/tests/misc.c wine1.7-1.7.19/dlls/msvcp100/tests/misc.c --- wine1.7-1.7.18/dlls/msvcp100/tests/misc.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp100/tests/misc.c 2014-05-16 19:06:48.000000000 +0000 @@ -93,11 +93,12 @@ #endif /* __i386__ */ +static HMODULE msvcp; #define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y) #define SET(x,y) do { SETNOFAIL(x,y); ok(x != NULL, "Export '%s' not found\n", y); } while(0) static BOOL init(void) { - HMODULE msvcp = LoadLibraryA("msvcp100.dll"); + msvcp = LoadLibraryA("msvcp100.dll"); if(!msvcp) { win_skip("msvcp100.dll not installed\n"); return FALSE; @@ -200,4 +201,6 @@ return; test__Container_base12(); + + FreeLibrary(msvcp); } diff -Nru wine1.7-1.7.18/dlls/msvcp100/tests/string.c wine1.7-1.7.19/dlls/msvcp100/tests/string.c --- wine1.7-1.7.18/dlls/msvcp100/tests/string.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp100/tests/string.c 2014-05-16 19:06:48.000000000 +0000 @@ -83,11 +83,12 @@ static const char* (__thiscall *_Yarn_char_c_str)(const _Yarn_char *this); static char (__thiscall *_Yarn_char_empty)(const _Yarn_char *this); +static HMODULE msvcp; #define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y) #define SET(x,y) do { SETNOFAIL(x,y); ok(x != NULL, "Export '%s' not found\n", y); } while(0) static BOOL init(void) { - HMODULE msvcp = LoadLibraryA("msvcp100.dll"); + msvcp = LoadLibraryA("msvcp100.dll"); if(!msvcp) { win_skip("msvcp100.dll not installed\n"); return FALSE; @@ -173,4 +174,6 @@ return; test__Yarn_char(); + + FreeLibrary(msvcp); } diff -Nru wine1.7-1.7.18/dlls/msvcp60/locale.c wine1.7-1.7.19/dlls/msvcp60/locale.c --- wine1.7-1.7.18/dlls/msvcp60/locale.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp60/locale.c 2014-05-16 19:06:48.000000000 +0000 @@ -8696,8 +8696,9 @@ facets_elem *iter, *safe; if(global_locale) { - locale__Locimp_dtor(global_locale); locale_dtor(&classic_locale); + locale__Locimp_dtor(global_locale); + MSVCRT_operator_delete(global_locale); } LIST_FOR_EACH_ENTRY_SAFE(iter, safe, &lazy_facets, facets_elem, entry) { diff -Nru wine1.7-1.7.18/dlls/msvcp60/string.c wine1.7-1.7.19/dlls/msvcp60/string.c --- wine1.7-1.7.18/dlls/msvcp60/string.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp60/string.c 2014-05-16 19:06:48.000000000 +0000 @@ -164,7 +164,7 @@ { TRACE("(%p %d)\n", this, built); - if(!this->ptr || !built); + if(!built || !this->ptr); else if(!this->ptr[-1] || (unsigned char)this->ptr[-1]==FROZEN) MSVCP_allocator_char_deallocate(NULL, this->ptr-1, this->res+2); else @@ -1885,7 +1885,7 @@ { TRACE("(%p %d)\n", this, built); - if(!this->ptr || !built); + if(!built || !this->ptr); else if(!this->ptr[-1] || (unsigned short)this->ptr[-1]==FROZEN) MSVCP_allocator_wchar_deallocate(NULL, this->ptr-1, this->res+2); else diff -Nru wine1.7-1.7.18/dlls/msvcp60/tests/ios.c wine1.7-1.7.19/dlls/msvcp60/tests/ios.c --- wine1.7-1.7.18/dlls/msvcp60/tests/ios.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp60/tests/ios.c 2014-05-16 19:06:48.000000000 +0000 @@ -565,11 +565,12 @@ #endif /* __i386__ */ +static HMODULE msvcp; #define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y) #define SET(x,y) do { SETNOFAIL(x,y); ok(x != NULL, "Export '%s' not found\n", y); } while(0) static BOOL init(void) { - HMODULE msvcp = LoadLibraryA("msvcp60.dll"); + msvcp = LoadLibraryA("msvcp60.dll"); if(!msvcp) { win_skip("msvcp60.dll not installed\n"); return FALSE; @@ -1651,4 +1652,6 @@ test_istream_tellg(); test_istream_getline(); test_ostream_print_ushort(); + + FreeLibrary(msvcp); } diff -Nru wine1.7-1.7.18/dlls/msvcp60/tests/string.c wine1.7-1.7.19/dlls/msvcp60/tests/string.c --- wine1.7-1.7.18/dlls/msvcp60/tests/string.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp60/tests/string.c 2014-05-16 19:06:48.000000000 +0000 @@ -149,11 +149,12 @@ #endif /* __i386__ */ +static HMODULE msvcp; #define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y) #define SET(x,y) do { SETNOFAIL(x,y); ok(x != NULL, "Export '%s' not found\n", y); } while(0) static BOOL init(void) { - HMODULE msvcp = LoadLibraryA("msvcp60.dll"); + msvcp = LoadLibraryA("msvcp60.dll"); if(!msvcp) { win_skip("msvcp60.dll not installed\n"); return FALSE; @@ -701,4 +702,6 @@ test_basic_string_char_replace(); test_basic_string_wchar(); test_basic_string_wchar_swap(); + + FreeLibrary(msvcp); } diff -Nru wine1.7-1.7.18/dlls/msvcp70/msvcp70.spec wine1.7-1.7.19/dlls/msvcp70/msvcp70.spec --- wine1.7-1.7.18/dlls/msvcp70/msvcp70.spec 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp70/msvcp70.spec 2014-05-16 19:06:48.000000000 +0000 @@ -40,15 +40,15 @@ @ cdecl -arch=win64 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z(ptr ptr) basic_filebuf_wchar_ctor_file @ thiscall -arch=win32 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z(ptr long) basic_filebuf_wchar_ctor_uninitialized @ cdecl -arch=win64 ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z(ptr long) basic_filebuf_wchar_ctor_uninitialized -@ stub -arch=win32 ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z -@ stub -arch=win64 ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z +@ thiscall -arch=win32 ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z(ptr str long long) basic_fstream_char_ctor_name_noprot +@ cdecl -arch=win64 ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z(ptr str long long) basic_fstream_char_ctor_name_noprot @ thiscall -arch=win32 ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ(ptr long) basic_fstream_char_ctor @ cdecl -arch=win64 ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ(ptr long) basic_fstream_char_ctor -@ stub -arch=win32 ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z -@ stub -arch=win64 ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z +@ thiscall -arch=win32 ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z(ptr str long long) basic_fstream_short_ctor_name_noprot +@ cdecl -arch=win64 ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z(ptr str long long) basic_fstream_short_ctor_name_noprot @ thiscall -arch=win32 ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@XZ(ptr long) basic_fstream_short_ctor @ cdecl -arch=win64 ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@XZ(ptr long) basic_fstream_short_ctor -@ stub -arch=win32 ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDH@Z +@ thiscall -arch=win32 ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDH@Z(ptr str long long) basic_fstream_wchar_ctor_name_noprot @ thiscall -arch=win32 ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ(ptr long) basic_fstream_wchar_ctor @ stub -arch=win32 ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z @ stub -arch=win64 ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z diff -Nru wine1.7-1.7.18/dlls/msvcp90/ios.c wine1.7-1.7.19/dlls/msvcp90/ios.c --- wine1.7-1.7.18/dlls/msvcp90/ios.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp90/ios.c 2014-05-16 19:06:48.000000000 +0000 @@ -11626,6 +11626,15 @@ return this; } +/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */ +/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */ +DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name_noprot, 16) +basic_fstream_char* __thiscall basic_fstream_char_ctor_name_noprot(basic_fstream_char *this, + const char *name, int mode, MSVCP_bool virt_init) +{ + return basic_fstream_char_ctor_name(this, name, mode, _SH_DENYNO, virt_init); +} + /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBGHH@Z */ /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBGHH@Z */ /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PB_WHH@Z */ @@ -11881,6 +11890,23 @@ return this; } +/* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDH@Z */ +DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_name_noprot, 16) +basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_name_noprot(basic_fstream_wchar *this, + const char *name, int mode, MSVCP_bool virt_init) +{ + return basic_fstream_wchar_ctor_name(this, name, mode, _SH_DENYNO, virt_init); +} + +/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z */ +/* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z */ +DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name_noprot, 16) +basic_fstream_wchar* __thiscall basic_fstream_short_ctor_name_noprot(basic_fstream_wchar *this, + const char *name, int mode, MSVCP_bool virt_init) +{ + return basic_fstream_short_ctor_name(this, name, mode, _SH_DENYNO, virt_init); +} + /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PBGHH@Z */ /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBGHH@Z */ /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */ diff -Nru wine1.7-1.7.18/dlls/msvcp90/locale.c wine1.7-1.7.19/dlls/msvcp90/locale.c --- wine1.7-1.7.18/dlls/msvcp90/locale.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp90/locale.c 2014-05-16 19:06:48.000000000 +0000 @@ -10690,8 +10690,9 @@ facets_elem *iter, *safe; if(global_locale) { - locale__Locimp_dtor(global_locale); locale_dtor(&classic_locale); + locale__Locimp_dtor(global_locale); + MSVCRT_operator_delete(global_locale); } LIST_FOR_EACH_ENTRY_SAFE(iter, safe, &lazy_facets, facets_elem, entry) { diff -Nru wine1.7-1.7.18/dlls/msvcp90/tests/ios.c wine1.7-1.7.19/dlls/msvcp90/tests/ios.c --- wine1.7-1.7.18/dlls/msvcp90/tests/ios.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp90/tests/ios.c 2014-05-16 19:06:48.000000000 +0000 @@ -590,12 +590,13 @@ #endif /* __i386__ */ +static HMODULE msvcr, msvcp; #define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y) #define SET(x,y) do { SETNOFAIL(x,y); ok(x != NULL, "Export '%s' not found\n", y); } while(0) static BOOL init(void) { - HMODULE msvcr = LoadLibraryA("msvcr90.dll"); - HMODULE msvcp = LoadLibraryA("msvcp90.dll"); + msvcr = LoadLibraryA("msvcr90.dll"); + msvcp = LoadLibraryA("msvcp90.dll"); if(!msvcr || !msvcp) { win_skip("msvcp90.dll or msvcrt90.dll not installed\n"); return FALSE; @@ -1969,4 +1970,7 @@ test_ostream_print_ushort(); ok(!invalid_parameter, "invalid_parameter_handler was invoked too many times\n"); + + FreeLibrary(msvcr); + FreeLibrary(msvcp); } diff -Nru wine1.7-1.7.18/dlls/msvcp90/tests/misc.c wine1.7-1.7.19/dlls/msvcp90/tests/misc.c --- wine1.7-1.7.18/dlls/msvcp90/tests/misc.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp90/tests/misc.c 2014-05-16 19:06:48.000000000 +0000 @@ -183,12 +183,13 @@ #endif /* __i386__ */ +static HMODULE msvcr, msvcp; #define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y) #define SET(x,y) do { SETNOFAIL(x,y); ok(x != NULL, "Export '%s' not found\n", y); } while(0) static BOOL init(void) { - HMODULE msvcr = LoadLibraryA("msvcr90.dll"); - HMODULE msvcp = LoadLibraryA("msvcp90.dll"); + msvcr = LoadLibraryA("msvcr90.dll"); + msvcp = LoadLibraryA("msvcp90.dll"); if(!msvcr || !msvcp) { win_skip("msvcp90.dll or msvcrt90.dll not installed\n"); return FALSE; @@ -863,4 +864,7 @@ test_complex(); ok(!invalid_parameter, "invalid_parameter_handler was invoked too many times\n"); + + FreeLibrary(msvcr); + FreeLibrary(msvcp); } diff -Nru wine1.7-1.7.18/dlls/msvcp90/tests/string.c wine1.7-1.7.19/dlls/msvcp90/tests/string.c --- wine1.7-1.7.18/dlls/msvcp90/tests/string.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcp90/tests/string.c 2014-05-16 19:06:48.000000000 +0000 @@ -170,12 +170,13 @@ #endif /* __i386__ */ +static HMODULE msvcr, msvcp; #define SETNOFAIL(x,y) x = (void*)GetProcAddress(msvcp,y) #define SET(x,y) do { SETNOFAIL(x,y); ok(x != NULL, "Export '%s' not found\n", y); } while(0) static BOOL init(void) { - HMODULE msvcr = LoadLibraryA("msvcr90.dll"); - HMODULE msvcp = LoadLibraryA("msvcp90.dll"); + msvcr = LoadLibraryA("msvcr90.dll"); + msvcp = LoadLibraryA("msvcp90.dll"); if(!msvcr || !msvcp) { win_skip("msvcp90.dll or msvcrt90.dll not installed\n"); return FALSE; @@ -784,4 +785,7 @@ test_basic_string_char_find_last_not_of(); ok(!invalid_parameter, "invalid_parameter_handler was invoked too many times\n"); + + FreeLibrary(msvcr); + FreeLibrary(msvcp); } diff -Nru wine1.7-1.7.18/dlls/msvcr100/msvcr100.spec wine1.7-1.7.19/dlls/msvcr100/msvcr100.spec --- wine1.7-1.7.18/dlls/msvcr100/msvcr100.spec 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcr100/msvcr100.spec 2014-05-16 19:06:48.000000000 +0000 @@ -226,7 +226,7 @@ @ extern ??_7__non_rtti_object@std@@6B@ MSVCRT___non_rtti_object_vtable @ extern ??_7bad_cast@std@@6B@ MSVCRT_bad_cast_vtable @ extern ??_7bad_typeid@std@@6B@ MSVCRT_bad_typeid_vtable -@ extern ??_7exception@@6B@ MSVCRT_exception_vtable +@ extern ??_7exception@@6B@ MSVCRT_exception_old_vtable @ extern ??_7exception@std@@6B@ MSVCRT_exception_vtable @ stub -arch=win32 ??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ @ stub -arch=win64 ??_F?$_SpinWait@$00@details@Concurrency@@QEAAXXZ @@ -412,18 +412,18 @@ @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX@Z @ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0@Z @ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0@Z -@ stub -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX@Z -@ stub -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX@Z +@ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX@Z(ptr ptr) __ExceptionPtrCopy +@ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX@Z(ptr ptr) __ExceptionPtrCopy @ stub -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1@Z @ stub -arch=win64 ?__ExceptionPtrCopyException@@YAXPEAXPEBX1@Z -@ stub -arch=win32 ?__ExceptionPtrCreate@@YAXPAX@Z -@ stub -arch=win64 ?__ExceptionPtrCreate@@YAXPEAX@Z -@ stub -arch=win32 ?__ExceptionPtrCurrentException@@YAXPAX@Z -@ stub -arch=win64 ?__ExceptionPtrCurrentException@@YAXPEAX@Z -@ stub -arch=win32 ?__ExceptionPtrDestroy@@YAXPAX@Z -@ stub -arch=win64 ?__ExceptionPtrDestroy@@YAXPEAX@Z -@ stub -arch=win32 ?__ExceptionPtrRethrow@@YAXPBX@Z -@ stub -arch=win64 ?__ExceptionPtrRethrow@@YAXPEBX@Z +@ cdecl -arch=win32 ?__ExceptionPtrCreate@@YAXPAX@Z(ptr) __ExceptionPtrCreate +@ cdecl -arch=win64 ?__ExceptionPtrCreate@@YAXPEAX@Z(ptr) __ExceptionPtrCreate +@ cdecl -arch=win32 ?__ExceptionPtrCurrentException@@YAXPAX@Z(ptr) __ExceptionPtrCurrentException +@ cdecl -arch=win64 ?__ExceptionPtrCurrentException@@YAXPEAX@Z(ptr) __ExceptionPtrCurrentException +@ cdecl -arch=win32 ?__ExceptionPtrDestroy@@YAXPAX@Z(ptr) __ExceptionPtrDestroy +@ cdecl -arch=win64 ?__ExceptionPtrDestroy@@YAXPEAX@Z(ptr) __ExceptionPtrDestroy +@ cdecl -arch=win32 ?__ExceptionPtrRethrow@@YAXPBX@Z(ptr) __ExceptionPtrRethrow +@ cdecl -arch=win64 ?__ExceptionPtrRethrow@@YAXPEBX@Z(ptr) __ExceptionPtrRethrow @ cdecl __uncaught_exception() MSVCRT___uncaught_exception @ stub ?_inconsistency@@YAXXZ @ cdecl -arch=win32 ?_invalid_parameter@@YAXPBG00II@Z(wstr wstr wstr long long) MSVCRT__invalid_parameter @@ -538,7 +538,7 @@ @ stub -arch=win64 _SetThrowImageBase @ cdecl _Strftime(str long str ptr ptr) @ cdecl _XcptFilter(long ptr) -@ stub __AdjustPointer +@ cdecl __AdjustPointer(ptr ptr) @ stub __BuildCatchObject @ stub __BuildCatchObjectHelper @ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr) ntdll.__C_specific_handler @@ -573,7 +573,7 @@ @ cdecl ___unguarded_readlc_active_add_func() MSVCRT____unguarded_readlc_active_add_func @ extern __argc MSVCRT___argc @ extern __argv MSVCRT___argv -### extern __badioinfo #don't forward to msvcrt.__badioinfo, it has different size +@ extern __badioinfo MSVCRT___badioinfo @ cdecl __clean_type_info_names_internal(ptr) @ cdecl -arch=i386 __control87_2(long long ptr ptr) @ stub __create_locale @@ -648,7 +648,6 @@ @ cdecl __p__wenviron() MSVCRT___p__wenviron @ cdecl __p__wpgmptr() MSVCRT___p__wpgmptr @ cdecl __pctype_func() MSVCRT___pctype_func -#FIXME: add correct __pioinfo implementation @ extern __pioinfo MSVCRT___pioinfo @ stub __pwctype_func @ cdecl __pxcptinfoptrs() MSVCRT___pxcptinfoptrs diff -Nru wine1.7-1.7.18/dlls/msvcr110/msvcr110.spec wine1.7-1.7.19/dlls/msvcr110/msvcr110.spec --- wine1.7-1.7.18/dlls/msvcr110/msvcr110.spec 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcr110/msvcr110.spec 2014-05-16 19:06:48.000000000 +0000 @@ -690,18 +690,18 @@ @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX@Z @ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0@Z @ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0@Z -@ stub -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX@Z -@ stub -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX@Z +@ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX@Z(ptr ptr) __ExceptionPtrCopy +@ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX@Z(ptr ptr) __ExceptionPtrCopy @ stub -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1@Z @ stub -arch=win64 ?__ExceptionPtrCopyException@@YAXPEAXPEBX1@Z -@ stub -arch=win32 ?__ExceptionPtrCreate@@YAXPAX@Z -@ stub -arch=win64 ?__ExceptionPtrCreate@@YAXPEAX@Z -@ stub -arch=win32 ?__ExceptionPtrCurrentException@@YAXPAX@Z -@ stub -arch=win64 ?__ExceptionPtrCurrentException@@YAXPEAX@Z -@ stub -arch=win32 ?__ExceptionPtrDestroy@@YAXPAX@Z -@ stub -arch=win64 ?__ExceptionPtrDestroy@@YAXPEAX@Z -@ stub -arch=win32 ?__ExceptionPtrRethrow@@YAXPBX@Z -@ stub -arch=win64 ?__ExceptionPtrRethrow@@YAXPEBX@Z +@ cdecl -arch=win32 ?__ExceptionPtrCreate@@YAXPAX@Z(ptr) __ExceptionPtrCreate +@ cdecl -arch=win64 ?__ExceptionPtrCreate@@YAXPEAX@Z(ptr) __ExceptionPtrCreate +@ cdecl -arch=win32 ?__ExceptionPtrCurrentException@@YAXPAX@Z(ptr) __ExceptionPtrCurrentException +@ cdecl -arch=win64 ?__ExceptionPtrCurrentException@@YAXPEAX@Z(ptr) __ExceptionPtrCurrentException +@ cdecl -arch=win32 ?__ExceptionPtrDestroy@@YAXPAX@Z(ptr) __ExceptionPtrDestroy +@ cdecl -arch=win64 ?__ExceptionPtrDestroy@@YAXPEAX@Z(ptr) __ExceptionPtrDestroy +@ cdecl -arch=win32 ?__ExceptionPtrRethrow@@YAXPBX@Z(ptr) __ExceptionPtrRethrow +@ cdecl -arch=win64 ?__ExceptionPtrRethrow@@YAXPEBX@Z(ptr) __ExceptionPtrRethrow @ stub -arch=win32 ?__ExceptionPtrSwap@@YAXPAX0@Z @ stub -arch=win64 ?__ExceptionPtrSwap@@YAXPEAX0@Z @ stub -arch=win32 ?__ExceptionPtrToBool@@YA_NPBX@Z @@ -869,7 +869,7 @@ @ stub _W_Gettnames @ stub _Wcsftime @ cdecl _XcptFilter(long ptr) -@ stub __AdjustPointer +@ cdecl __AdjustPointer(ptr ptr) @ stub __BuildCatchObject @ stub __BuildCatchObjectHelper @ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr) ntdll.__C_specific_handler @@ -900,7 +900,7 @@ @ cdecl ___unguarded_readlc_active_add_func() MSVCRT____unguarded_readlc_active_add_func @ extern __argc MSVCRT___argc @ extern __argv MSVCRT___argv -### extern __badioinfo #don't forward to msvcrt.__badioinfo, it has different size +@ extern __badioinfo MSVCRT___badioinfo @ cdecl __clean_type_info_names_internal(ptr) @ cdecl -arch=i386 __control87_2(long long ptr ptr) @ stub __create_locale @@ -997,7 +997,6 @@ @ cdecl __p__wenviron() MSVCRT___p__wenviron @ cdecl __p__wpgmptr() MSVCRT___p__wpgmptr @ cdecl __pctype_func() MSVCRT___pctype_func -#FIXME: add correct __pioinfo implementation @ extern __pioinfo MSVCRT___pioinfo @ stub __pwctype_func @ cdecl __pxcptinfoptrs() MSVCRT___pxcptinfoptrs diff -Nru wine1.7-1.7.18/dlls/msvcr80/msvcr80.spec wine1.7-1.7.19/dlls/msvcr80/msvcr80.spec --- wine1.7-1.7.18/dlls/msvcr80/msvcr80.spec 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcr80/msvcr80.spec 2014-05-16 19:06:48.000000000 +0000 @@ -54,7 +54,7 @@ @ extern ??_7__non_rtti_object@std@@6B@ MSVCRT___non_rtti_object_vtable @ extern ??_7bad_cast@std@@6B@ MSVCRT_bad_cast_vtable @ extern ??_7bad_typeid@std@@6B@ MSVCRT_bad_typeid_vtable -@ extern ??_7exception@@6B@ MSVCRT_exception_vtable +@ extern ??_7exception@@6B@ MSVCRT_exception_old_vtable @ extern ??_7exception@std@@6B@ MSVCRT_exception_vtable @ thiscall -arch=i386 ??_Fbad_cast@std@@QAEXXZ(ptr) MSVCRT_bad_cast_default_ctor @ cdecl -arch=win64 ??_Fbad_cast@std@@QEAAXXZ(ptr) MSVCRT_bad_cast_default_ctor @@ -172,7 +172,7 @@ @ stub -arch=win64 _SetThrowImageBase @ cdecl _Strftime(str long str ptr ptr) @ cdecl _XcptFilter(long ptr) -@ stub __AdjustPointer +@ cdecl __AdjustPointer(ptr ptr) @ stub __BuildCatchObject @ stub __BuildCatchObjectHelper @ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr) ntdll.__C_specific_handler @@ -207,7 +207,7 @@ @ cdecl ___unguarded_readlc_active_add_func() MSVCRT____unguarded_readlc_active_add_func @ extern __argc MSVCRT___argc @ extern __argv MSVCRT___argv -### extern __badioinfo #don't forward to msvcrt.__badioinfo, it has different size +@ extern __badioinfo MSVCRT___badioinfo @ cdecl __clean_type_info_names_internal(ptr) @ cdecl -arch=i386 __control87_2(long long ptr ptr) @ stub __create_locale @@ -297,7 +297,6 @@ @ cdecl __p__winver() @ cdecl __p__wpgmptr() MSVCRT___p__wpgmptr @ cdecl __pctype_func() MSVCRT___pctype_func -#FIXME: add correct __pioinfo implementation @ extern __pioinfo MSVCRT___pioinfo @ stub __pwctype_func @ cdecl __pxcptinfoptrs() MSVCRT___pxcptinfoptrs diff -Nru wine1.7-1.7.18/dlls/msvcr90/msvcr90.spec wine1.7-1.7.19/dlls/msvcr90/msvcr90.spec --- wine1.7-1.7.18/dlls/msvcr90/msvcr90.spec 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcr90/msvcr90.spec 2014-05-16 19:06:48.000000000 +0000 @@ -54,7 +54,7 @@ @ extern ??_7__non_rtti_object@std@@6B@ MSVCRT___non_rtti_object_vtable @ extern ??_7bad_cast@std@@6B@ MSVCRT_bad_cast_vtable @ extern ??_7bad_typeid@std@@6B@ MSVCRT_bad_typeid_vtable -@ extern ??_7exception@@6B@ MSVCRT_exception_vtable +@ extern ??_7exception@@6B@ MSVCRT_exception_old_vtable @ extern ??_7exception@std@@6B@ MSVCRT_exception_vtable @ thiscall -arch=i386 ??_Fbad_cast@std@@QAEXXZ(ptr) MSVCRT_bad_cast_default_ctor @ cdecl -arch=win64 ??_Fbad_cast@std@@QEAAXXZ(ptr) MSVCRT_bad_cast_default_ctor @@ -163,7 +163,7 @@ @ stub _NLG_Return2 @ cdecl _Strftime(str long str ptr ptr) @ cdecl _XcptFilter(long ptr) -@ stub __AdjustPointer +@ cdecl __AdjustPointer(ptr ptr) @ stub __BuildCatchObject @ stub __BuildCatchObjectHelper @ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr) ntdll.__C_specific_handler @@ -198,7 +198,7 @@ @ cdecl ___unguarded_readlc_active_add_func() MSVCRT____unguarded_readlc_active_add_func @ extern __argc MSVCRT___argc @ extern __argv MSVCRT___argv -### extern __badioinfo #don't forward to msvcrt.__badioinfo, it has different size +@ extern __badioinfo MSVCRT___badioinfo @ cdecl __clean_type_info_names_internal(ptr) @ cdecl -arch=i386 __control87_2(long long ptr ptr) @ stub __create_locale @@ -281,7 +281,6 @@ @ cdecl __p__wenviron() MSVCRT___p__wenviron @ cdecl __p__wpgmptr() MSVCRT___p__wpgmptr @ cdecl __pctype_func() MSVCRT___pctype_func -#FIXME: add correct __pioinfo implementation @ extern __pioinfo MSVCRT___pioinfo @ stub __pwctype_func @ cdecl __pxcptinfoptrs() MSVCRT___pxcptinfoptrs diff -Nru wine1.7-1.7.18/dlls/msvcr90/tests/msvcr90.c wine1.7-1.7.19/dlls/msvcr90/tests/msvcr90.c --- wine1.7-1.7.18/dlls/msvcr90/tests/msvcr90.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcr90/tests/msvcr90.c 2014-05-16 19:06:48.000000000 +0000 @@ -120,6 +120,7 @@ static int (__cdecl *p_flsbuf)(int, FILE*); static unsigned long (__cdecl *p_byteswap_ulong)(unsigned long); static void** (__cdecl *p__pxcptinfoptrs)(void); +static void* (__cdecl *p__AdjustPointer)(void*, const void*); /* make sure we use the correct errno */ #undef errno @@ -377,6 +378,7 @@ SET(p_flsbuf, "_flsbuf"); SET(p_byteswap_ulong, "_byteswap_ulong"); SET(p__pxcptinfoptrs, "__pxcptinfoptrs"); + SET(p__AdjustPointer, "__AdjustPointer"); if (sizeof(void *) == 8) { SET(p_type_info_name_internal_method, "?_name_internal_method@type_info@@QEBAPEBDPEAU__type_info_node@@@Z"); @@ -1419,6 +1421,37 @@ ok(ret == 0, "_is_exception_typeof returned %d\n", ret); } +static void test__AdjustPointer(void) +{ + int off = 0xf0; + void *obj1 = &off; + void *obj2 = (char*)&off - 2; + struct test_data { + void *ptr; + void *ret; + struct { + int this_offset; + int vbase_descr; + int vbase_offset; + } this_ptr_offsets; + } data[] = { + {NULL, NULL, {0, -1, 0}}, + {(void*)0xbeef, (void*)0xbef0, {1, -1, 1}}, + {(void*)0xbeef, (void*)0xbeee, {-1, -1, 0}}, + {&obj1, (char*)&obj1 + off, {0, 0, 0}}, + {(char*)&obj1 - 5, (char*)&obj1 + off, {0, 5, 0}}, + {(char*)&obj1 - 3, (char*)&obj1 + off + 24, {24, 3, 0}}, + {(char*)&obj2 - 17, (char*)&obj2 + off + 4, {4, 17, 2}} + }; + void *ret; + int i; + + for(i=0; i= 80 +__ASM_VTABLE(exception_old, + VTABLE_ADD_FUNC(MSVCRT_exception_vector_dtor) + VTABLE_ADD_FUNC(MSVCRT_what_exception)); +#endif __ASM_VTABLE(bad_typeid, VTABLE_ADD_FUNC(MSVCRT_bad_typeid_vector_dtor) VTABLE_ADD_FUNC(MSVCRT_what_exception)); @@ -673,10 +678,18 @@ #endif DEFINE_RTTI_DATA0( type_info, 0, ".?AVtype_info@@" ) +#if _MSVCR_VER >= 80 +DEFINE_RTTI_DATA0( exception, 0, ".?AVexception@std@@" ) +DEFINE_RTTI_DATA0( exception_old, 0, ".?AVexception@@" ) +DEFINE_RTTI_DATA1( bad_typeid, 0, &exception_rtti_base_descriptor, ".?AVbad_typeid@std@@" ) +DEFINE_RTTI_DATA1( bad_cast, 0, &exception_rtti_base_descriptor, ".?AVbad_cast@std@@" ) +DEFINE_RTTI_DATA2( __non_rtti_object, 0, &bad_typeid_rtti_base_descriptor, &exception_rtti_base_descriptor, ".?AV__non_rtti_object@std@@" ) +#else DEFINE_RTTI_DATA0( exception, 0, ".?AVexception@@" ) DEFINE_RTTI_DATA1( bad_typeid, 0, &exception_rtti_base_descriptor, ".?AVbad_typeid@@" ) DEFINE_RTTI_DATA1( bad_cast, 0, &exception_rtti_base_descriptor, ".?AVbad_cast@@" ) DEFINE_RTTI_DATA2( __non_rtti_object, 0, &bad_typeid_rtti_base_descriptor, &exception_rtti_base_descriptor, ".?AV__non_rtti_object@@" ) +#endif DEFINE_EXCEPTION_TYPE_INFO( exception, 0, NULL, NULL ) DEFINE_EXCEPTION_TYPE_INFO( bad_typeid, 1, &exception_cxx_type_info, NULL ) @@ -688,6 +701,9 @@ #ifdef __x86_64__ init_type_info_rtti(base); init_exception_rtti(base); +#if _MSVCR_VER >= 80 + init_exception_old_rtti(base); +#endif init_bad_typeid_rtti(base); init_bad_cast_rtti(base); init___non_rtti_object_rtti(base); @@ -1195,3 +1211,228 @@ return MSVCRT_type_info_name(_this); } + +/* std::exception_ptr class helpers */ +typedef struct +{ + EXCEPTION_RECORD *rec; + int *ref; /* not binary compatible with native msvcr100 */ +} exception_ptr; + +/********************************************************************* + * ?__ExceptionPtrCreate@@YAXPAX@Z + * ?__ExceptionPtrCreate@@YAXPEAX@Z + */ +void __cdecl __ExceptionPtrCreate(exception_ptr *ep) +{ + TRACE("(%p)\n", ep); + + ep->rec = NULL; + ep->ref = NULL; +} + +#ifdef __i386__ +static inline void call_dtor(const cxx_exception_type *type, void *func, void *object) +{ + __asm__ __volatile__("call *%0" : : "m" (func), "c" (object) : "eax", "edx", "memory"); +} +#elif __x86_64__ +static inline void call_dtor(const cxx_exception_type *type, unsigned int dtor, void *object) +{ + char *base = RtlPcToFileHeader((void*)type, (void**)&base); + void (__cdecl *func)(void*) = (void*)(base + dtor); + func(object); +} +#else +#define call_dtor(type, func, object) ((void (__cdecl*)(void*))(func))(object) +#endif + +/********************************************************************* + * ?__ExceptionPtrDestroy@@YAXPAX@Z + * ?__ExceptionPtrDestroy@@YAXPEAX@Z + */ +void __cdecl __ExceptionPtrDestroy(exception_ptr *ep) +{ + TRACE("(%p)\n", ep); + + if (!ep->rec) + return; + + if (!InterlockedDecrement(ep->ref)) + { + if (ep->rec->ExceptionCode == CXX_EXCEPTION) + { + const cxx_exception_type *type = (void*)ep->rec->ExceptionInformation[2]; + void *obj = (void*)ep->rec->ExceptionInformation[1]; + + if (type && type->destructor) call_dtor(type, type->destructor, obj); + HeapFree(GetProcessHeap(), 0, obj); + } + + HeapFree(GetProcessHeap(), 0, ep->rec); + HeapFree(GetProcessHeap(), 0, ep->ref); + } +} + +/********************************************************************* + * ?__ExceptionPtrCopy@@YAXPAXPBX@Z + * ?__ExceptionPtrCopy@@YAXPEAXPEBX@Z + */ +void __cdecl __ExceptionPtrCopy(exception_ptr *ep, const exception_ptr *copy) +{ + TRACE("(%p %p)\n", ep, copy); + + /* don't destroy object stored in ep */ + *ep = *copy; + if (ep->ref) + InterlockedIncrement(copy->ref); +} + +/********************************************************************* + * ?__ExceptionPtrRethrow@@YAXPBX@Z + * ?__ExceptionPtrRethrow@@YAXPEBX@Z + */ +void __cdecl __ExceptionPtrRethrow(const exception_ptr *ep) +{ + TRACE("(%p)\n", ep); + + if (!ep->rec) + { + static const char *exception_msg = "bad exception"; + exception e; + + MSVCRT_exception_ctor(&e, &exception_msg); + _CxxThrowException(&e, &exception_exception_type); + return; + } + + RaiseException(ep->rec->ExceptionCode, ep->rec->ExceptionFlags & (~EH_UNWINDING), + ep->rec->NumberParameters, ep->rec->ExceptionInformation); +} + +#ifdef __i386__ +static inline void call_copy_ctor( void *func, void *this, void *src, int has_vbase ) +{ + TRACE( "calling copy ctor %p object %p src %p\n", func, this, src ); + if (has_vbase) + /* in that case copy ctor takes an extra bool indicating whether to copy the base class */ + __asm__ __volatile__("pushl $1; pushl %2; call *%0" + : : "m" (func), "c" (this), "m" (src) : "eax", "edx", "memory" ); + else + __asm__ __volatile__("pushl %2; call *%0" + : : "m" (func), "c" (this), "m" (src) : "eax", "edx", "memory" ); +} +#else +static inline void call_copy_ctor( void *func, void *this, void *src, int has_vbase ) +{ + TRACE( "calling copy ctor %p object %p src %p\n", func, this, src ); + if (has_vbase) + ((void (__cdecl*)(void*, void*, BOOL))func)(this, src, 1); + else + ((void (__cdecl*)(void*, void*))func)(this, src); +} +#endif + +/********************************************************************* + * ?__ExceptionPtrCurrentException@@YAXPAX@Z + * ?__ExceptionPtrCurrentException@@YAXPEAX@Z + */ +#ifndef __x86_64__ +void __cdecl __ExceptionPtrCurrentException(exception_ptr *ep) +{ + EXCEPTION_RECORD *rec = msvcrt_get_thread_data()->exc_record; + + TRACE("(%p)\n", ep); + + if (!rec) + { + ep->rec = NULL; + ep->ref = NULL; + return; + } + + ep->rec = HeapAlloc(GetProcessHeap(), 0, sizeof(EXCEPTION_RECORD)); + ep->ref = HeapAlloc(GetProcessHeap(), 0, sizeof(int)); + + *ep->rec = *rec; + *ep->ref = 1; + + if (ep->rec->ExceptionCode == CXX_EXCEPTION) + { + const cxx_exception_type *et = (void*)ep->rec->ExceptionInformation[2]; + const cxx_type_info *ti; + void **data, *obj; + + ti = et->type_info_table->info[0]; + data = HeapAlloc(GetProcessHeap(), 0, ti->size); + + obj = (void*)ep->rec->ExceptionInformation[1]; + if (ti->flags & CLASS_IS_SIMPLE_TYPE) + { + memcpy(data, obj, ti->size); + if (ti->size == sizeof(void *)) *data = get_this_pointer(&ti->offsets, *data); + } + else if (ti->copy_ctor) + { + call_copy_ctor(ti->copy_ctor, data, get_this_pointer(&ti->offsets, obj), + ti->flags & CLASS_HAS_VIRTUAL_BASE_CLASS); + } + else + memcpy(data, get_this_pointer(&ti->offsets, obj), ti->size); + ep->rec->ExceptionInformation[1] = (ULONG_PTR)data; + } + return; +} +#else +void __cdecl __ExceptionPtrCurrentException(exception_ptr *ep) +{ + EXCEPTION_RECORD *rec = msvcrt_get_thread_data()->exc_record; + + TRACE("(%p)\n", ep); + + if (!rec) + { + ep->rec = NULL; + ep->ref = NULL; + return; + } + + ep->rec = HeapAlloc(GetProcessHeap(), 0, sizeof(EXCEPTION_RECORD)); + ep->ref = HeapAlloc(GetProcessHeap(), 0, sizeof(int)); + + *ep->rec = *rec; + *ep->ref = 1; + + if (ep->rec->ExceptionCode == CXX_EXCEPTION) + { + const cxx_exception_type *et = (void*)ep->rec->ExceptionInformation[2]; + const cxx_type_info *ti; + void **data, *obj; + char *base = RtlPcToFileHeader((void*)et, (void**)&base); + + ti = (const cxx_type_info*)(base + ((const cxx_type_info_table*)(base + et->type_info_table))->info[0]); + data = HeapAlloc(GetProcessHeap(), 0, ti->size); + + obj = (void*)ep->rec->ExceptionInformation[1]; + if (ti->flags & CLASS_IS_SIMPLE_TYPE) + { + memcpy(data, obj, ti->size); + if (ti->size == sizeof(void *)) *data = get_this_pointer(&ti->offsets, *data); + } + else if (ti->copy_ctor) + { + call_copy_ctor(base + ti->copy_ctor, data, get_this_pointer(&ti->offsets, obj), + ti->flags & CLASS_HAS_VIRTUAL_BASE_CLASS); + } + else + memcpy(data, get_this_pointer(&ti->offsets, obj), ti->size); + ep->rec->ExceptionInformation[1] = (ULONG_PTR)data; + } + return; +} +#endif + +void* __cdecl __AdjustPointer(void *obj, const this_ptr_offsets *off) +{ + return get_this_pointer(off, obj); +} diff -Nru wine1.7-1.7.18/dlls/msvcrt/file.c wine1.7-1.7.19/dlls/msvcrt/file.c --- wine1.7-1.7.18/dlls/msvcrt/file.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcrt/file.c 2014-05-16 19:06:48.000000000 +0000 @@ -88,6 +88,17 @@ char lookahead[3]; int exflag; CRITICAL_SECTION crit; +#if _MSVCR_VER >= 80 + char textmode : 7; + char unicode : 1; + char pipech2[2]; + __int64 startpos; + BOOL utf8translations; +#endif +#if _MSVCR_VER >= 90 + char dbcsBuffer; + BOOL dbcsBufferUsed; +#endif } ioinfo; /********************************************************************* diff -Nru wine1.7-1.7.18/dlls/msvcrt/time.c wine1.7-1.7.19/dlls/msvcrt/time.c --- wine1.7-1.7.18/dlls/msvcrt/time.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msvcrt/time.c 2014-05-16 19:06:48.000000000 +0000 @@ -1263,7 +1263,7 @@ static const char month[12][4] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; - if (mstm->tm_sec<0 || mstm->tm_sec>59 + if (!mstm || mstm->tm_sec<0 || mstm->tm_sec>59 || mstm->tm_min<0 || mstm->tm_min>59 || mstm->tm_hour<0 || mstm->tm_hour>23 || mstm->tm_mon<0 || mstm->tm_mon>11 diff -Nru wine1.7-1.7.18/dlls/msxml3/domdoc.c wine1.7-1.7.19/dlls/msxml3/domdoc.c --- wine1.7-1.7.18/dlls/msxml3/domdoc.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msxml3/domdoc.c 2014-05-16 19:06:48.000000000 +0000 @@ -1846,12 +1846,18 @@ xmlChar* tagName_to_XPath(const BSTR tagName) { xmlChar *query, *tmp; + static const xmlChar everything[] = "/descendant::node()"; static const xmlChar mod_pre[] = "*[local-name()='"; static const xmlChar mod_post[] = "']"; static const xmlChar prefix[] = "descendant::"; const WCHAR *tokBegin, *tokEnd; int len; + /* Special case - empty tagname - means select all nodes, + except document itself. */ + if (!*tagName) + return xmlStrdup(everything); + query = xmlStrdup(prefix); tokBegin = tagName; diff -Nru wine1.7-1.7.18/dlls/msxml3/element.c wine1.7-1.7.19/dlls/msxml3/element.c --- wine1.7-1.7.18/dlls/msxml3/element.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msxml3/element.c 2014-05-16 19:06:48.000000000 +0000 @@ -1287,6 +1287,7 @@ { int cmp = xmlStrEqual(ns->href, xml_value); heap_free(xml_value); + heap_free(xml_name); return cmp ? S_OK : E_INVALIDARG; } } diff -Nru wine1.7-1.7.18/dlls/msxml3/msxml_private.h wine1.7-1.7.19/dlls/msxml3/msxml_private.h --- wine1.7-1.7.18/dlls/msxml3/msxml_private.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msxml3/msxml_private.h 2014-05-16 19:06:48.000000000 +0000 @@ -205,22 +205,6 @@ return ret; } -static inline LPSTR heap_strdupWtoA(LPCWSTR str) -{ - LPSTR ret = NULL; - - if(str) { - DWORD len = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL); - ret = heap_alloc(len+1); - if(!ret) - return NULL; - - WideCharToMultiByte(CP_ACP, 0, str, -1, ret, len+1, NULL, NULL); - } - - return ret; -} - /* XSLProcessor parameter list */ struct xslprocessor_par { diff -Nru wine1.7-1.7.18/dlls/msxml3/schema.c wine1.7-1.7.19/dlls/msxml3/schema.c --- wine1.7-1.7.18/dlls/msxml3/schema.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msxml3/schema.c 2014-05-16 19:06:48.000000000 +0000 @@ -1318,11 +1318,13 @@ static HRESULT WINAPI schema_cache_remove(IXMLDOMSchemaCollection2* iface, BSTR uri) { schema_cache* This = impl_from_IXMLDOMSchemaCollection2(iface); - xmlChar* name = uri ? xmlchar_from_wchar(uri) : xmlchar_from_wchar(emptyW); + xmlChar* name; + TRACE("(%p)->(%s)\n", This, debugstr_w(uri)); if (This->version == MSXML6) return E_NOTIMPL; + name = uri ? xmlchar_from_wchar(uri) : xmlchar_from_wchar(emptyW); cache_remove_entry(This, name); heap_free(name); return S_OK; diff -Nru wine1.7-1.7.18/dlls/msxml3/tests/domdoc.c wine1.7-1.7.19/dlls/msxml3/tests/domdoc.c --- wine1.7-1.7.18/dlls/msxml3/tests/domdoc.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msxml3/tests/domdoc.c 2014-05-16 19:06:48.000000000 +0000 @@ -494,7 +494,7 @@ " \n" " \n" "\n" -" \n" +" \n" " A2 field\n" " B2 field\n" " C2 field\n" @@ -1074,14 +1074,16 @@ static char buf[4096]; char *pos = buf; LONG len = 0; + HRESULT hr; int i; if (list == NULL) { - lstrcpyA(buf, "(null)"); + strcpy(buf, "(null)"); return buf; } - ole_check(IXMLDOMNodeList_get_length(list, &len)); + hr = IXMLDOMNodeList_get_length(list, &len); + ok(hr == S_OK, "got 0x%08x\n", hr); for (i = 0; i < len; i++) { IXMLDOMNode *node; @@ -1940,6 +1942,7 @@ ok( r == E_FAIL, "getAttribute ret %08x\n", r ); ok( V_VT(&var) == VT_NULL || V_VT(&var) == VT_EMPTY, "vt = %x\n", V_VT(&var)); VariantClear(&var); + SysFreeString(str); str = SysAllocString( szdl ); V_VT(&var) = VT_I4; @@ -3010,8 +3013,24 @@ IXMLDOMDocument_Release( doc ); } +struct queryresult_t { + const char *query; + const char *result; + int len; +}; + +static const struct queryresult_t elementsbytagname[] = { + { "", "P1.D1 E2.D1 E1.E2.D1 T1.E1.E2.D1 E2.E2.D1 T1.E2.E2.D1 E3.E2.D1 E4.E2.D1 E1.E4.E2.D1 T1.E1.E4.E2.D1", 10 }, + { "*", "E2.D1 E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1 E1.E4.E2.D1", 6 }, + { "bs", "E1.E2.D1", 1 }, + { "dl", "", 0 }, + { "str1","", 0 }, + { NULL } +}; + static void test_getElementsByTagName(void) { + const struct queryresult_t *ptr = elementsbytagname; IXMLDOMNodeList *node_list; IXMLDOMDocument *doc; IXMLDOMElement *elem; @@ -3032,17 +3051,21 @@ /* null arguments cases */ r = IXMLDOMDocument_getElementsByTagName(doc, NULL, &node_list); ok( r == E_INVALIDARG, "ret %08x\n", r ); - r = IXMLDOMDocument_getElementsByTagName(doc, str, NULL); + r = IXMLDOMDocument_getElementsByTagName(doc, _bstr_("*"), NULL); ok( r == E_INVALIDARG, "ret %08x\n", r ); - r = IXMLDOMDocument_getElementsByTagName(doc, str, &node_list); - ok( r == S_OK, "ret %08x\n", r ); - r = IXMLDOMNodeList_get_length( node_list, &len ); - ok( r == S_OK, "ret %08x\n", r ); - ok( len == 6, "len %d\n", len ); + while (ptr->query) + { + r = IXMLDOMDocument_getElementsByTagName(doc, _bstr_(ptr->query), &node_list); + ok(r == S_OK, "ret %08x\n", r); + r = IXMLDOMNodeList_get_length(node_list, &len); + ok(r == S_OK, "ret %08x\n", r); + ok(len == ptr->len, "%s: got len %d, expected %d\n", ptr->query, len, ptr->len); + expect_list_and_release(node_list, ptr->result); - IXMLDOMNodeList_Release( node_list ); - SysFreeString( str ); + free_bstrs(); + ptr++; + } /* broken query BSTR */ memcpy(&buff[2], szstar, sizeof(szstar)); @@ -3055,33 +3078,6 @@ ok( len == 6, "len %d\n", len ); IXMLDOMNodeList_Release( node_list ); - str = SysAllocString( szbs ); - r = IXMLDOMDocument_getElementsByTagName(doc, str, &node_list); - ok( r == S_OK, "ret %08x\n", r ); - r = IXMLDOMNodeList_get_length( node_list, &len ); - ok( r == S_OK, "ret %08x\n", r ); - ok( len == 1, "len %d\n", len ); - IXMLDOMNodeList_Release( node_list ); - SysFreeString( str ); - - str = SysAllocString( szdl ); - r = IXMLDOMDocument_getElementsByTagName(doc, str, &node_list); - ok( r == S_OK, "ret %08x\n", r ); - r = IXMLDOMNodeList_get_length( node_list, &len ); - ok( r == S_OK, "ret %08x\n", r ); - ok( len == 0, "len %d\n", len ); - IXMLDOMNodeList_Release( node_list ); - SysFreeString( str ); - - str = SysAllocString( szstr1 ); - r = IXMLDOMDocument_getElementsByTagName(doc, str, &node_list); - ok( r == S_OK, "ret %08x\n", r ); - r = IXMLDOMNodeList_get_length( node_list, &len ); - ok( r == S_OK, "ret %08x\n", r ); - ok( len == 0, "len %d\n", len ); - IXMLDOMNodeList_Release( node_list ); - SysFreeString( str ); - /* test for element */ r = IXMLDOMDocument_get_documentElement(doc, &elem); ok( r == S_OK, "ret %08x\n", r ); @@ -4448,12 +4444,13 @@ { "child::node()", "E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1" }, { "child::text()", "" }, { "child::*/..", "E2.D1" }, - { "child::*//@*/..", "E2.E5.E1.E2.D1 E3.E2.E2.D1" }, + { "child::*//@*/..", "E2.E5.E1.E2.D1 E2.E2.D1 E3.E2.E2.D1" }, { "self::node()", "E2.D1" }, { "ancestor::node()", "D1" }, { "elem[c][last()]/a", "E1.E2.E2.D1"}, { "ancestor-or-self::node()[1]", "E2.D1" }, { "((//a)[1])[last()]", "E1.E1.E2.D1" }, + { "//elem[@*]", "E2.E2.D1" }, { NULL } }; @@ -4516,7 +4513,7 @@ str = list_to_string(list); - ok(strcmp(str, xptest->list)==0, "query=%s, invalid node list: %s, expected %s\n", + ok(!strcmp(str, xptest->list), "query=%s, invalid node list: \"%s\", expected \"%s\"\n", xptest->query, str, xptest->list); if (list) @@ -6837,6 +6834,7 @@ typedef struct { const char *query; const char *list; + BOOL todo; } xslpattern_test_t; static const xslpattern_test_t xslpattern_test[] = { @@ -6899,6 +6897,7 @@ { "root/elem[index()>0 $and$ $not$ end()]", "E2.E2.D1 E3.E2.D1" }, { "root/elem[index()>0 && $not$ end()]", "E2.E2.D1 E3.E2.D1" }, { "root/elem[d]", "E1.E2.D1 E2.E2.D1 E4.E2.D1" }, + { "root/elem[@*]", "E2.E2.D1 E3.E2.D1", TRUE }, { NULL } }; @@ -6976,8 +6975,16 @@ len = 0; hr = IXMLDOMNodeList_get_length(list, &len); ok(len != 0, "query=%s, empty list\n", ptr->query); - if (len) - expect_list_and_release(list, ptr->list); + if (len) { + if (ptr->todo) { + char *str = list_to_string(list); + todo_wine + ok(!strcmp(str, ptr->list), "Invalid node list: %s, expected %s\n", str, ptr->list); + IXMLDOMNodeList_Release(list); + } + else + expect_list_and_release(list, ptr->list); + } ptr++; } @@ -8121,6 +8128,7 @@ EXPECT_HR(hr, S_OK); ok(!lstrcmpW(str, _bstr_("ABCD")), "%s\n", wine_dbgstr_w(str)); IXMLDOMNode_Release(node); + SysFreeString(str); array = SafeArrayCreateVector(VT_UI1, 0, 7); hr = SafeArrayAccessData(array, (void*)&ptr); @@ -8160,6 +8168,7 @@ ok(!lstrcmpW(str, _bstr_("ZEdWemRBPQ==")), "%s\n", wine_dbgstr_w(str)); IXMLDOMNode_Release(node); SafeArrayDestroyData(array); + SysFreeString(str); /* bin.hex */ V_VT(&value) = VT_BSTR; @@ -8208,6 +8217,7 @@ ok(!lstrcmpW(str, _bstr_("000102030405060708090a0b0c0d0e0f")), "%s\n", wine_dbgstr_w(str)); IXMLDOMNode_Release(node); SafeArrayDestroyData(array); + SysFreeString(str); IXMLDOMElement_Release(elem); IXMLDOMDocument_Release(doc); @@ -9509,6 +9519,7 @@ EXPECT_HR(hr, S_OK); ok(!lstrcmpW(name, _bstr_("c")), "got node name %s\n", wine_dbgstr_w(name)); IXMLDOMNode_Release(node); + SysFreeString(name); V_VT(&v) = VT_I2; hr = IEnumVARIANT_Next(enum1, 1, &v, NULL); @@ -9530,6 +9541,7 @@ EXPECT_HR(hr, S_OK); ok(!lstrcmpW(name, _bstr_("d")), "got node name %s\n", wine_dbgstr_w(name)); IXMLDOMNode_Release(node); + SysFreeString(name); IXMLDOMSelection_Release(selection); IXMLDOMNodeList_Release(list); @@ -11045,7 +11057,6 @@ hr = IXMLDOMDocument_appendChild(doc, (IXMLDOMNode*)root, NULL); EXPECT_HR(hr, S_OK); - str = SysAllocString(szAttribute); hr = IXMLDOMDocument_createAttribute(doc, _bstr_("xmlns:dt"), &pAttribute); ok( hr == S_OK, "returns %08x\n", hr ); @@ -11062,16 +11073,16 @@ hr = IXMLDOMDocument_get_documentElement(doc, &elem); EXPECT_HR(hr, S_OK); + str = NULL; hr = IXMLDOMElement_get_xml(elem, &str); ok( hr == S_OK, "got 0x%08x\n", hr); todo_wine ok( lstrcmpW(str, _bstr_("")) == 0, "got %s\n", wine_dbgstr_w(str)); + SysFreeString(str); IXMLDOMElement_Release(elem); IXMLDOMAttribute_Release( pAttribute); - SysFreeString(str); - IXMLDOMDocument_Release(doc); free_bstrs(); @@ -11785,6 +11796,7 @@ ok(hr == S_FALSE, "%d: got 0x%08x\n", i, hr); ok(str == NULL, "%d: got prefix %s\n", i, wine_dbgstr_w(str)); } + SysFreeString(str); str = NULL; hr = IXMLDOMNode_get_namespaceURI(node, &str); diff -Nru wine1.7-1.7.18/dlls/msxml3/tests/httpreq.c wine1.7-1.7.19/dlls/msxml3/tests/httpreq.c --- wine1.7-1.7.18/dlls/msxml3/tests/httpreq.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msxml3/tests/httpreq.c 2014-05-16 19:06:48.000000000 +0000 @@ -1457,14 +1457,12 @@ hr = IXMLHttpRequest_get_responseBody(xhr, &varbody); EXPECT_HR(hr, E_PENDING); ok(V_VT(&varbody) == VT_EMPTY, "got type %d\n", V_VT(&varbody)); - ok(V_I2(&varbody) == 1, "got %d\n", V_I2(&varbody)); V_VT(&varbody) = VT_I2; V_I2(&varbody) = 1; hr = IXMLHttpRequest_get_responseStream(xhr, &varbody); EXPECT_HR(hr, E_PENDING); ok(V_VT(&varbody) == VT_EMPTY, "got type %d\n", V_VT(&varbody)); - ok(V_I2(&varbody) == 1, "got %d\n", V_I2(&varbody)); /* send before open */ hr = IXMLHttpRequest_send(xhr, dummy); diff -Nru wine1.7-1.7.18/dlls/msxml3/tests/saxreader.c wine1.7-1.7.19/dlls/msxml3/tests/saxreader.c --- wine1.7-1.7.18/dlls/msxml3/tests/saxreader.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msxml3/tests/saxreader.c 2014-05-16 19:06:48.000000000 +0000 @@ -2443,6 +2443,7 @@ hr = ISAXXMLReader_parse(reader, var); EXPECT_HR(hr, S_OK); ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "attribute value normalization", TRUE); + IStream_Release(stream); resolver = (void*)0xdeadbeef; hr = ISAXXMLReader_getEntityResolver(reader, &resolver); @@ -2476,6 +2477,8 @@ sprintf(seqname, "%s: cdata test", table->name); ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, seqname, TRUE); + IStream_Release(stream); + /* 2. CDATA sections */ stream = create_test_stream(test2_cdata_xml, -1); V_VT(&var) = VT_UNKNOWN; @@ -3297,8 +3300,9 @@ ok(pos2.QuadPart == 0, "expected stream beginning\n"); len = 2048; - buff = HeapAlloc(GetProcessHeap(), 0, len); + buff = HeapAlloc(GetProcessHeap(), 0, len+1); memset(buff, 'A', len); + buff[len] = 0; hr = ISAXContentHandler_characters(content, _bstr_(buff), len); EXPECT_HR(hr, S_OK); @@ -3344,6 +3348,7 @@ ok(pos2.QuadPart == 0, "expected stream beginning\n"); memset(buff, 'A', len); + buff[len] = 0; hr = ISAXContentHandler_characters(content, _bstr_(buff), len - 8); EXPECT_HR(hr, S_OK); @@ -3368,6 +3373,7 @@ EXPECT_HR(hr, S_OK); memset(buff, 'A', len); + buff[len] = 0; hr = ISAXContentHandler_characters(content, _bstr_(buff), len); EXPECT_HR(hr, S_OK); @@ -4241,6 +4247,7 @@ EXPECT_HR(hr, S_OK); ok(pos2.QuadPart == 2, "got wrong position\n"); + IStream_Release(stream); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -5506,6 +5513,7 @@ ISAXAttributes_Release(saxattr); IMXAttributes_Release(mxattr); + free_bstrs(); } } diff -Nru wine1.7-1.7.18/dlls/msxml3/tests/schema.c wine1.7-1.7.19/dlls/msxml3/tests/schema.c --- wine1.7-1.7.18/dlls/msxml3/tests/schema.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msxml3/tests/schema.c 2014-05-16 19:06:48.000000000 +0000 @@ -1275,24 +1275,20 @@ while (ptr->query) { IXMLDOMNode* node = NULL; - VARIANT type, testv; + VARIANT type; /* check data types without the schema */ - memset(&testv, -1, sizeof(VARIANT)); - V_VT(&testv) = VT_NULL; - V_BSTR(&testv) = NULL; - hr = IXMLDOMDocument2_selectSingleNode(doc, _bstr_(ptr->query), &node); EXPECT_HR(hr, S_OK); ok(node != NULL, "expected node\n"); - memset(&type, -1, sizeof(VARIANT)); V_VT(&type) = VT_EMPTY; + V_BSTR(&type) = (void*)-1; hr = IXMLDOMNode_get_dataType(node, &type); EXPECT_HR(hr, S_FALSE); ok(V_VT(&type) == VT_NULL, "got type %i\n", V_VT(&type)); /* when returning VT_NULL, the pointer is set to NULL */ - ok(!memcmp(&testv, &type, sizeof(VARIANT)), "got %p\n", V_BSTR(&type)); + ok(V_BSTR(&type) == NULL, "got %p\n", V_BSTR(&type)); VariantClear(&type); hr = IXMLDOMNode_get_nodeTypedValue(node, &type); @@ -1523,7 +1519,7 @@ if (!cache) return; hr = IXMLDOMSchemaCollection2_get(cache, NULL, NULL); - EXPECT_HR(hr, E_NOTIMPL); + ok(hr == E_NOTIMPL || hr == E_POINTER /* win8 */, "got %08x\n", hr); hr = IXMLDOMSchemaCollection2_get(cache, _bstr_("uri"), &node); EXPECT_HR(hr, E_NOTIMPL); diff -Nru wine1.7-1.7.18/dlls/msxml3/tests/xmldoc.c wine1.7-1.7.19/dlls/msxml3/tests/xmldoc.c --- wine1.7-1.7.18/dlls/msxml3/tests/xmldoc.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msxml3/tests/xmldoc.c 2014-05-16 19:06:48.000000000 +0000 @@ -656,7 +656,7 @@ WCHAR path[MAX_PATH]; LONG length, type; ULONG num_vars; - VARIANT var, vIndex, vName; + VARIANT var, dummy, vIndex, vName; BSTR url, str; static const CHAR szBankXML[] = "bank.xml"; static const WCHAR szNumber[] = {'N','U','M','B','E','R',0}; @@ -766,14 +766,16 @@ ok(num_vars == 1, "Expected 1, got %d\n", num_vars); /* try advance further, no children left */ - hr = IEnumVARIANT_Next(enumVar, 1, &var, &num_vars); + V_VT(&dummy) = VT_I4; + hr = IEnumVARIANT_Next(enumVar, 1, &dummy, &num_vars); ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr); - ok(V_VT(&var) == 0, "Expected 0, got %d\n", V_VT(&var)); + ok(V_VT(&dummy) == VT_EMPTY, "Expected 0, got %d\n", V_VT(&dummy)); ok(num_vars == 0, "Expected 0, got %d\n", num_vars); - hr = IEnumVARIANT_Next(enumVar, 1, &var, NULL); + V_VT(&dummy) = VT_I4; + hr = IEnumVARIANT_Next(enumVar, 1, &dummy, NULL); ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr); - ok(V_VT(&var) == 0, "Expected 0, got %d\n", V_VT(&var)); + ok(V_VT(&dummy) == VT_EMPTY, "Expected 0, got %d\n", V_VT(&dummy)); hr = IDispatch_QueryInterface(V_DISPATCH(&var), &IID_IXMLElement, (LPVOID *)&child); ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); diff -Nru wine1.7-1.7.18/dlls/msxml3/xslpattern.y wine1.7-1.7.19/dlls/msxml3/xslpattern.y --- wine1.7-1.7.18/dlls/msxml3/xslpattern.y 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/msxml3/xslpattern.y 2014-05-16 19:06:48.000000000 +0000 @@ -186,6 +186,11 @@ $$=xmlStrcat($$,$2); xmlFree($2); } + | '@' '*' + { + TRACE("Got All attributes pattern: \"@*\"\n"); + $$=xmlStrdup(U("@*")); + } ; /* [2.3] Node Tests */ diff -Nru wine1.7-1.7.18/dlls/netcfgx/tests/netcfgx.c wine1.7-1.7.19/dlls/netcfgx/tests/netcfgx.c --- wine1.7-1.7.18/dlls/netcfgx/tests/netcfgx.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/netcfgx/tests/netcfgx.c 2014-05-16 19:06:48.000000000 +0000 @@ -74,6 +74,7 @@ hr = INetCfgLock_ReleaseWriteLock(netlock); ok(hr == S_OK, "got 0x%08x\n", hr); + INetCfgLock_Release(netlock); INetCfg_Release(config); } } diff -Nru wine1.7-1.7.18/dlls/ntdll/actctx.c wine1.7-1.7.19/dlls/ntdll/actctx.c --- wine1.7-1.7.18/dlls/ntdll/actctx.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ntdll/actctx.c 2014-05-16 19:06:48.000000000 +0000 @@ -851,6 +851,7 @@ RtlFreeHeap(GetProcessHeap(), 0, entity->u.ifaceps.base); RtlFreeHeap(GetProcessHeap(), 0, entity->u.ifaceps.ps32); RtlFreeHeap(GetProcessHeap(), 0, entity->u.ifaceps.name); + RtlFreeHeap(GetProcessHeap(), 0, entity->u.ifaceps.tlib); break; case ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION: RtlFreeHeap(GetProcessHeap(), 0, entity->u.typelib.tlbid); diff -Nru wine1.7-1.7.18/dlls/ntdll/directory.c wine1.7-1.7.19/dlls/ntdll/directory.c --- wine1.7-1.7.18/dlls/ntdll/directory.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ntdll/directory.c 2014-05-16 19:06:48.000000000 +0000 @@ -228,15 +228,15 @@ switch (class) { case FileDirectoryInformation: - return (FIELD_OFFSET( FILE_DIRECTORY_INFORMATION, FileName[len] ) + 3) & ~3; + return (FIELD_OFFSET( FILE_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7; case FileBothDirectoryInformation: - return (FIELD_OFFSET( FILE_BOTH_DIRECTORY_INFORMATION, FileName[len] ) + 3) & ~3; + return (FIELD_OFFSET( FILE_BOTH_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7; case FileFullDirectoryInformation: - return (FIELD_OFFSET( FILE_FULL_DIRECTORY_INFORMATION, FileName[len] ) + 3) & ~3; + return (FIELD_OFFSET( FILE_FULL_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7; case FileIdBothDirectoryInformation: - return (FIELD_OFFSET( FILE_ID_BOTH_DIRECTORY_INFORMATION, FileName[len] ) + 3) & ~3; + return (FIELD_OFFSET( FILE_ID_BOTH_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7; case FileIdFullDirectoryInformation: - return (FIELD_OFFSET( FILE_ID_FULL_DIRECTORY_INFORMATION, FileName[len] ) + 3) & ~3; + return (FIELD_OFFSET( FILE_ID_FULL_DIRECTORY_INFORMATION, FileName[len] ) + 7) & ~7; default: assert(0); return 0; @@ -1484,7 +1484,7 @@ assert(0); return NULL; } - memcpy( filename, long_nameW, total_len - ((char *)filename - (char *)info) ); + memcpy( filename, long_nameW, long_len * sizeof(WCHAR) ); io->Information += total_len; return info; } diff -Nru wine1.7-1.7.18/dlls/ntdll/loader.c wine1.7-1.7.19/dlls/ntdll/loader.c --- wine1.7-1.7.18/dlls/ntdll/loader.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ntdll/loader.c 2014-05-16 19:06:48.000000000 +0000 @@ -1337,17 +1337,33 @@ /****************************************************************** * LdrLockLoaderLock (NTDLL.@) * - * Note: flags are not implemented. + * Note: some flags are not implemented. * Flag 0x01 is used to raise exceptions on errors. - * Flag 0x02 is used to avoid waiting on the section (does RtlTryEnterCriticalSection instead). */ NTSTATUS WINAPI LdrLockLoaderLock( ULONG flags, ULONG *result, ULONG *magic ) { - if (flags) FIXME( "flags %x not supported\n", flags ); + if (flags & ~0x2) FIXME( "flags %x not supported\n", flags ); - if (result) *result = 1; + if (result) *result = 0; + if (magic) *magic = 0; + if (flags & ~0x3) return STATUS_INVALID_PARAMETER_1; + if (!result && (flags & 0x2)) return STATUS_INVALID_PARAMETER_2; if (!magic) return STATUS_INVALID_PARAMETER_3; - RtlEnterCriticalSection( &loader_section ); + + if (flags & 0x2) + { + if (!RtlTryEnterCriticalSection( &loader_section )) + { + *result = 2; + return STATUS_SUCCESS; + } + *result = 1; + } + else + { + RtlEnterCriticalSection( &loader_section ); + if (result) *result = 1; + } *magic = GetCurrentThreadId(); return STATUS_SUCCESS; } diff -Nru wine1.7-1.7.18/dlls/ntdll/tests/file.c wine1.7-1.7.19/dlls/ntdll/tests/file.c --- wine1.7-1.7.18/dlls/ntdll/tests/file.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ntdll/tests/file.c 2014-05-16 19:06:48.000000000 +0000 @@ -267,6 +267,7 @@ FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0); ok(status == STATUS_OBJECT_NAME_INVALID, "open %s failed %x\n", wine_dbgstr_w(nameW.Buffer), status); + pRtlFreeUnicodeString(&nameW); pRtlDosPathNameToNtPathName_U(pipeInvalidNameW, &nameW, NULL, NULL); attr.ObjectName = &nameW; @@ -281,6 +282,7 @@ FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0); ok(status == STATUS_OBJECT_NAME_INVALID, "open %s failed %x\n", wine_dbgstr_w(nameW.Buffer), status); + pRtlFreeUnicodeString(&nameW); } static void open_file_test(void) @@ -1966,6 +1968,7 @@ } } + pRtlFreeUnicodeString( &nameW ); SetFileAttributesW(path, FILE_ATTRIBUTE_ARCHIVE); DeleteFileW( path ); } diff -Nru wine1.7-1.7.18/dlls/ntdll/tests/rtl.c wine1.7-1.7.19/dlls/ntdll/tests/rtl.c --- wine1.7-1.7.18/dlls/ntdll/tests/rtl.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ntdll/tests/rtl.c 2014-05-16 19:06:48.000000000 +0000 @@ -90,6 +90,8 @@ static NTSTATUS (WINAPI *pRtlIpv4AddressToStringExA)(const IN_ADDR *, USHORT, LPSTR, PULONG); static NTSTATUS (WINAPI *pRtlIpv4StringToAddressA)(PCSTR, BOOLEAN, PCSTR *, IN_ADDR *); static NTSTATUS (WINAPI *pLdrAddRefDll)(ULONG, HMODULE); +static NTSTATUS (WINAPI *pLdrLockLoaderLock)(ULONG, ULONG*, ULONG*); +static NTSTATUS (WINAPI *pLdrUnlockLoaderLock)(ULONG, ULONG); static HMODULE hkernel32 = 0; static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL); @@ -135,6 +137,8 @@ pRtlIpv4AddressToStringExA = (void *)GetProcAddress(hntdll, "RtlIpv4AddressToStringExA"); pRtlIpv4StringToAddressA = (void *)GetProcAddress(hntdll, "RtlIpv4StringToAddressA"); pLdrAddRefDll = (void *)GetProcAddress(hntdll, "LdrAddRefDll"); + pLdrLockLoaderLock = (void *)GetProcAddress(hntdll, "LdrLockLoaderLock"); + pLdrUnlockLoaderLock = (void *)GetProcAddress(hntdll, "LdrUnlockLoaderLock"); } hkernel32 = LoadLibraryA("kernel32.dll"); ok(hkernel32 != 0, "LoadLibrary failed\n"); @@ -1543,6 +1547,57 @@ ok(mod2 != NULL, "got %p\n", mod2); } +static void test_LdrLockLoaderLock(void) +{ + ULONG result, magic; + NTSTATUS status; + + if (!pLdrLockLoaderLock) + { + win_skip("LdrLockLoaderLock() is not available\n"); + return; + } + + /* invalid flags */ + result = 10; + magic = 0xdeadbeef; + status = pLdrLockLoaderLock(0x10, &result, &magic); + ok(status == STATUS_INVALID_PARAMETER_1, "got 0x%08x\n", status); + ok(result == 0, "got %d\n", result); + ok(magic == 0, "got 0x%08x\n", magic); + + magic = 0xdeadbeef; + status = pLdrLockLoaderLock(0x10, NULL, &magic); + ok(status == STATUS_INVALID_PARAMETER_1, "got 0x%08x\n", status); + ok(magic == 0, "got 0x%08x\n", magic); + + result = 10; + status = pLdrLockLoaderLock(0x10, &result, NULL); + ok(status == STATUS_INVALID_PARAMETER_1, "got 0x%08x\n", status); + ok(result == 0, "got %d\n", result); + + /* non-blocking mode, result is null */ + magic = 0xdeadbeef; + status = pLdrLockLoaderLock(0x2, NULL, &magic); + ok(status == STATUS_INVALID_PARAMETER_2, "got 0x%08x\n", status); + ok(magic == 0, "got 0x%08x\n", magic); + + /* magic pointer is null */ + result = 10; + status = pLdrLockLoaderLock(0, &result, NULL); + ok(status == STATUS_INVALID_PARAMETER_3, "got 0x%08x\n", status); + ok(result == 0, "got %d\n", result); + + /* lock in non-blocking mode */ + result = 0; + magic = 0; + status = pLdrLockLoaderLock(0x2, &result, &magic); + ok(status == STATUS_SUCCESS, "got 0x%08x\n", status); + ok(result == 1, "got %d\n", result); + ok(magic != 0, "got 0x%08x\n", magic); + pLdrUnlockLoaderLock(0, magic); +} + START_TEST(rtl) { InitFunctionPtrs(); @@ -1568,4 +1623,5 @@ test_RtlIpv4AddressToStringEx(); test_RtlIpv4StringToAddress(); test_LdrAddRefDll(); + test_LdrLockLoaderLock(); } diff -Nru wine1.7-1.7.18/dlls/ntdll/virtual.c wine1.7-1.7.19/dlls/ntdll/virtual.c --- wine1.7-1.7.18/dlls/ntdll/virtual.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ntdll/virtual.c 2014-05-16 19:06:48.000000000 +0000 @@ -858,7 +858,7 @@ { void *ptr; int prot = VIRTUAL_GetUnixProt( vprot | VPROT_COMMITTED /* make sure it is accessible */ ); - BOOL shared_write = (vprot & VPROT_WRITE) != 0; + unsigned int flags = MAP_FIXED | ((vprot & VPROT_WRITECOPY) ? MAP_PRIVATE : MAP_SHARED); assert( start < view->size ); assert( start + size <= view->size ); @@ -871,10 +871,8 @@ } /* only try mmap if media is not removable (or if we require write access) */ - if (!removable || shared_write) + if (!removable || (flags & MAP_SHARED)) { - int flags = MAP_FIXED | (shared_write ? MAP_SHARED : MAP_PRIVATE); - if (mmap( (char *)view->base + start, size, prot, flags, fd, offset ) != (void *)-1) goto done; @@ -885,7 +883,7 @@ /* page-aligned (EINVAL), or because the underlying filesystem */ /* does not support mmap() (ENOEXEC,ENODEV), we do it by hand. */ if ((errno != ENOEXEC) && (errno != EINVAL) && (errno != ENODEV)) return FILE_GetNtStatus(); - if (shared_write) /* we cannot fake shared write mappings */ + if (flags & MAP_SHARED) /* we cannot fake shared mappings */ { if (errno == EINVAL) return STATUS_INVALID_PARAMETER; ERR( "shared writable mmap not supported, broken filesystem?\n" ); @@ -1121,7 +1119,7 @@ /* unaligned sections, this happens for native subsystem binaries */ /* in that case Windows simply maps in the whole file */ - if (map_file_into_view( view, fd, 0, total_size, 0, VPROT_COMMITTED | VPROT_READ, + if (map_file_into_view( view, fd, 0, total_size, 0, VPROT_COMMITTED | VPROT_READ | VPROT_WRITECOPY, !dup_mapping ) != STATUS_SUCCESS) goto error; /* check that all sections are loaded at the right offset */ @@ -1175,8 +1173,7 @@ sec->PointerToRawData, (int)pos, file_size, map_size, sec->Characteristics ); if (map_file_into_view( view, shared_fd, sec->VirtualAddress, map_size, pos, - VPROT_COMMITTED | VPROT_READ | VPROT_WRITE, - FALSE ) != STATUS_SUCCESS) + VPROT_COMMITTED | VPROT_READ | VPROT_WRITE, FALSE ) != STATUS_SUCCESS) { ERR_(module)( "Could not map shared section %.8s\n", sec->Name ); goto error; @@ -1192,8 +1189,7 @@ if (end > base) map_file_into_view( view, shared_fd, base, end - base, pos + (base - sec->VirtualAddress), - VPROT_COMMITTED | VPROT_READ | VPROT_WRITECOPY, - FALSE ); + VPROT_COMMITTED | VPROT_READ | VPROT_WRITECOPY, FALSE ); } pos += map_size; continue; diff -Nru wine1.7-1.7.18/dlls/ole32/filelockbytes.c wine1.7-1.7.19/dlls/ole32/filelockbytes.c --- wine1.7-1.7.18/dlls/ole32/filelockbytes.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ole32/filelockbytes.c 2014-05-16 19:06:48.000000000 +0000 @@ -356,6 +356,25 @@ return STG_E_ACCESSDENIED; } +HRESULT FileLockBytesImpl_LockRegionSync(ILockBytes* iface, + ULARGE_INTEGER libOffset, ULARGE_INTEGER cb) +{ + FileLockBytesImpl* This = impl_from_ILockBytes(iface); + OVERLAPPED ol; + + if (iface->lpVtbl != &FileLockBytesImpl_Vtbl) + return E_NOTIMPL; + + ol.hEvent = 0; + ol.u.s.Offset = libOffset.u.LowPart; + ol.u.s.OffsetHigh = libOffset.u.HighPart; + + if (LockFileEx(This->hfile, LOCKFILE_EXCLUSIVE_LOCK, 0, cb.u.LowPart, cb.u.HighPart, &ol)) + return S_OK; + else + return STG_E_ACCESSDENIED; +} + static HRESULT WINAPI FileLockBytesImpl_UnlockRegion(ILockBytes* iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) { diff -Nru wine1.7-1.7.18/dlls/ole32/storage32.c wine1.7-1.7.19/dlls/ole32/storage32.c --- wine1.7-1.7.18/dlls/ole32/storage32.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ole32/storage32.c 2014-05-16 19:06:48.000000000 +0000 @@ -110,6 +110,7 @@ static void StorageImpl_SetNextBlockInChain(StorageImpl* This, ULONG blockIndex, ULONG nextBlock); static HRESULT StorageImpl_LoadFileHeader(StorageImpl* This); static void StorageImpl_SaveFileHeader(StorageImpl* This); +static HRESULT StorageImpl_LockRegionSync(StorageImpl *This, ULARGE_INTEGER offset, ULARGE_INTEGER cb, DWORD dwLockType); static void Storage32Impl_AddBlockDepot(StorageImpl* This, ULONG blockIndex, ULONG depotIndex); static ULONG Storage32Impl_AddExtBlockDepot(StorageImpl* This); @@ -191,6 +192,9 @@ * Changes are committed to the transacted parent. */ StorageBaseImpl *transactedParent; + + /* The transaction signature from when we last committed */ + ULONG lastTransactionSig; } TransactedSnapshotImpl; /* Generic function to create a transacted wrapper for a direct storage object. */ @@ -2640,6 +2644,81 @@ return hr; } +static HRESULT StorageImpl_GetTransactionSig(StorageBaseImpl *base, + ULONG* result, BOOL refresh) +{ + StorageImpl *This = (StorageImpl*)base; + HRESULT hr=S_OK; + + if (refresh) + { + ULARGE_INTEGER offset; + ULONG bytes_read; + BYTE data[4]; + + offset.u.HighPart = 0; + offset.u.LowPart = OFFSET_TRANSACTIONSIG; + hr = StorageImpl_ReadAt(This, offset, data, 4, &bytes_read); + + if (SUCCEEDED(hr)) + { + /* FIXME: Throw out everything and reload the file if this changed. */ + StorageUtl_ReadDWord(data, 0, &This->transactionSig); + } + } + + *result = This->transactionSig; + + return hr; +} + +static HRESULT StorageImpl_SetTransactionSig(StorageBaseImpl *base, + ULONG value) +{ + StorageImpl *This = (StorageImpl*)base; + + This->transactionSig = value; + StorageImpl_SaveFileHeader(This); + + return S_OK; +} + +static HRESULT StorageImpl_LockTransaction(StorageBaseImpl *base) +{ + StorageImpl *This = (StorageImpl*)base; + HRESULT hr; + ULARGE_INTEGER offset, cb; + + /* Synchronous grab of both priority ranges, the commit lock, and the + * lock-checking lock. */ + offset.QuadPart = RANGELOCK_TRANSACTION_FIRST; + cb.QuadPart = RANGELOCK_TRANSACTION_LAST - RANGELOCK_TRANSACTION_FIRST + 1; + + hr = StorageImpl_LockRegionSync(This, offset, cb, LOCK_ONLYONCE); + + if (hr == STG_E_INVALIDFUNCTION) + hr = S_OK; + + return hr; +} + +static HRESULT StorageImpl_UnlockTransaction(StorageBaseImpl *base) +{ + StorageImpl *This = (StorageImpl*)base; + HRESULT hr; + ULARGE_INTEGER offset, cb; + + offset.QuadPart = RANGELOCK_TRANSACTION_FIRST; + cb.QuadPart = RANGELOCK_TRANSACTION_LAST - RANGELOCK_TRANSACTION_FIRST + 1; + + hr = ILockBytes_UnlockRegion(This->lockBytes, offset, cb, LOCK_ONLYONCE); + + if (hr == STG_E_INVALIDFUNCTION) + hr = S_OK; + + return hr; +} + static HRESULT StorageImpl_GetFilename(StorageBaseImpl* iface, LPWSTR *result) { StorageImpl *This = (StorageImpl*) iface; @@ -2740,35 +2819,23 @@ StorageImpl_StreamReadAt, StorageImpl_StreamWriteAt, StorageImpl_StreamSetSize, - StorageImpl_StreamLink + StorageImpl_StreamLink, + StorageImpl_GetTransactionSig, + StorageImpl_SetTransactionSig, + StorageImpl_LockTransaction, + StorageImpl_UnlockTransaction }; -/* The storage format reserves the region from 0x7fffff00-0x7fffffff for - * locking and synchronization. Unfortuantely, the spec doesn't say which bytes - * within that range are used, and for what. Here's what I've been able to - * gather based on testing (ends of ranges may be wrong): - - 0x0 through 0x57: Unknown. Causes read-only exclusive opens to fail. - 0x58 through 0x7f: Priority mode. - 0x80: Commit lock. - 0x81 through 0x91: Priority mode, again. Not sure why it uses two regions. - 0x92: Lock-checking lock. Held while opening so ranges can be tested without - causing spurious failures if others try to grab or test those ranges at the - same time. - 0x93 through 0xa6: Read mode. - 0xa7 through 0xba: Write mode. - 0xbb through 0xce: Deny read. - 0xcf through 0xe2: Deny write. - 0xe2 through 0xff: Unknown. Causes read-only exclusive opens to fail. -*/ - static HRESULT StorageImpl_LockRegionSync(StorageImpl *This, ULARGE_INTEGER offset, ULARGE_INTEGER cb, DWORD dwLockType) { HRESULT hr; - /* potential optimization: if we have an HFILE use LockFileEx in blocking mode directly */ + /* if it's a FileLockBytesImpl use LockFileEx in blocking mode */ + if (SUCCEEDED(FileLockBytesImpl_LockRegionSync(This->lockBytes, offset, cb))) + return S_OK; + /* otherwise we have to fake it based on an async lock */ do { int delay=0; @@ -2785,13 +2852,13 @@ return hr; } -static HRESULT StorageImpl_CheckLockRange(StorageImpl *This, unsigned char start, - unsigned char end, HRESULT fail_hr) +static HRESULT StorageImpl_CheckLockRange(StorageImpl *This, ULONG start, + ULONG end, HRESULT fail_hr) { HRESULT hr; ULARGE_INTEGER offset, cb; - offset.QuadPart = 0x7fffff00 + start; + offset.QuadPart = start; cb.QuadPart = 1 + end - start; hr = ILockBytes_LockRegion(This->lockBytes, offset, cb, LOCK_ONLYONCE); @@ -2803,7 +2870,7 @@ return S_OK; } -static HRESULT StorageImpl_LockOne(StorageImpl *This, unsigned char start, unsigned char end) +static HRESULT StorageImpl_LockOne(StorageImpl *This, ULONG start, ULONG end) { HRESULT hr=S_OK; int i, j; @@ -2813,7 +2880,7 @@ for (i=start; i<=end; i++) { - offset.QuadPart = 0x7fffff00 + i; + offset.QuadPart = i; hr = ILockBytes_LockRegion(This->lockBytes, offset, cb, LOCK_ONLYONCE); if (hr != STG_E_ACCESSDENIED) break; @@ -2841,8 +2908,15 @@ ULARGE_INTEGER cb; DWORD share_mode = STGM_SHARE_MODE(openFlags); + if (openFlags & STGM_NOSNAPSHOT) + { + /* STGM_NOSNAPSHOT implies deny write */ + if (share_mode == STGM_SHARE_DENY_READ) share_mode = STGM_SHARE_EXCLUSIVE; + else if (share_mode != STGM_SHARE_EXCLUSIVE) share_mode = STGM_SHARE_DENY_WRITE; + } + /* Wrap all other locking inside a single lock so we can check ranges safely */ - offset.QuadPart = 0x7fffff92; + offset.QuadPart = RANGELOCK_CHECKLOCKS; cb.QuadPart = 1; hr = StorageImpl_LockRegionSync(This, offset, cb, LOCK_ONLYONCE); @@ -2853,41 +2927,44 @@ /* First check for any conflicting locks. */ if (SUCCEEDED(hr) && (openFlags & STGM_PRIORITY) == STGM_PRIORITY) - hr = StorageImpl_CheckLockRange(This, 0x80, 0x80, STG_E_LOCKVIOLATION); + hr = StorageImpl_CheckLockRange(This, RANGELOCK_COMMIT, RANGELOCK_COMMIT, STG_E_LOCKVIOLATION); if (SUCCEEDED(hr) && (STGM_ACCESS_MODE(openFlags) != STGM_WRITE)) - hr = StorageImpl_CheckLockRange(This, 0xbb, 0xce, STG_E_SHAREVIOLATION); + hr = StorageImpl_CheckLockRange(This, RANGELOCK_DENY_READ_FIRST, RANGELOCK_DENY_READ_LAST, STG_E_SHAREVIOLATION); if (SUCCEEDED(hr) && (STGM_ACCESS_MODE(openFlags) != STGM_READ)) - hr = StorageImpl_CheckLockRange(This, 0xcf, 0xe2, STG_E_SHAREVIOLATION); + hr = StorageImpl_CheckLockRange(This, RANGELOCK_DENY_WRITE_FIRST, RANGELOCK_DENY_WRITE_LAST, STG_E_SHAREVIOLATION); if (SUCCEEDED(hr) && (share_mode == STGM_SHARE_DENY_READ || share_mode == STGM_SHARE_EXCLUSIVE)) - hr = StorageImpl_CheckLockRange(This, 0x93, 0xa6, STG_E_LOCKVIOLATION); + hr = StorageImpl_CheckLockRange(This, RANGELOCK_READ_FIRST, RANGELOCK_READ_LAST, STG_E_LOCKVIOLATION); if (SUCCEEDED(hr) && (share_mode == STGM_SHARE_DENY_WRITE || share_mode == STGM_SHARE_EXCLUSIVE)) - hr = StorageImpl_CheckLockRange(This, 0xa7, 0xba, STG_E_LOCKVIOLATION); + hr = StorageImpl_CheckLockRange(This, RANGELOCK_WRITE_FIRST, RANGELOCK_WRITE_LAST, STG_E_LOCKVIOLATION); /* Then grab our locks. */ if (SUCCEEDED(hr) && (openFlags & STGM_PRIORITY) == STGM_PRIORITY) { - hr = StorageImpl_LockOne(This, 0x58, 0x7f); + hr = StorageImpl_LockOne(This, RANGELOCK_PRIORITY1_FIRST, RANGELOCK_PRIORITY1_LAST); if (SUCCEEDED(hr)) - hr = StorageImpl_LockOne(This, 0x81, 0x91); + hr = StorageImpl_LockOne(This, RANGELOCK_PRIORITY2_FIRST, RANGELOCK_PRIORITY2_LAST); } if (SUCCEEDED(hr) && (STGM_ACCESS_MODE(openFlags) != STGM_WRITE)) - hr = StorageImpl_LockOne(This, 0x93, 0xa6); + hr = StorageImpl_LockOne(This, RANGELOCK_READ_FIRST, RANGELOCK_READ_LAST); if (SUCCEEDED(hr) && (STGM_ACCESS_MODE(openFlags) != STGM_READ)) - hr = StorageImpl_LockOne(This, 0xa7, 0xba); + hr = StorageImpl_LockOne(This, RANGELOCK_WRITE_FIRST, RANGELOCK_WRITE_LAST); if (SUCCEEDED(hr) && (share_mode == STGM_SHARE_DENY_READ || share_mode == STGM_SHARE_EXCLUSIVE)) - hr = StorageImpl_LockOne(This, 0xbb, 0xce); + hr = StorageImpl_LockOne(This, RANGELOCK_DENY_READ_FIRST, RANGELOCK_DENY_READ_LAST); if (SUCCEEDED(hr) && (share_mode == STGM_SHARE_DENY_WRITE || share_mode == STGM_SHARE_EXCLUSIVE)) - hr = StorageImpl_LockOne(This, 0xcf, 0xe2); + hr = StorageImpl_LockOne(This, RANGELOCK_DENY_WRITE_FIRST, RANGELOCK_DENY_WRITE_LAST); - offset.QuadPart = 0x7fffff92; + if (SUCCEEDED(hr) && (openFlags & STGM_NOSNAPSHOT) == STGM_NOSNAPSHOT) + hr = StorageImpl_LockOne(This, RANGELOCK_NOSNAPSHOT_FIRST, RANGELOCK_NOSNAPSHOT_LAST); + + offset.QuadPart = RANGELOCK_CHECKLOCKS; cb.QuadPart = 1; ILockBytes_UnlockRegion(This->lockBytes, offset, cb, LOCK_ONLYONCE); @@ -3200,7 +3277,7 @@ cb.QuadPart = 1; if (This->locked_bytes[i] != 0) { - offset.QuadPart = 0x7fffff00 + This->locked_bytes[i]; + offset.QuadPart = This->locked_bytes[i]; ILockBytes_UnlockRegion(This->lockBytes, offset, cb, LOCK_ONLYONCE); } } @@ -3389,7 +3466,7 @@ static void Storage32Impl_AddBlockDepot(StorageImpl* This, ULONG blockIndex, ULONG depotIndex) { BYTE blockBuffer[MAX_BIG_BLOCK_SIZE]; - ULONG rangeLockIndex = 0x7fffff00 / This->bigBlockSize - 1; + ULONG rangeLockIndex = RANGELOCK_FIRST / This->bigBlockSize - 1; ULONG blocksPerDepot = This->bigBlockSize / sizeof(ULONG); ULONG rangeLockDepot = rangeLockIndex / blocksPerDepot; @@ -3700,7 +3777,7 @@ assert(depotBlockCount < This->bigBlockDepotCount); assert(blockIndex != nextBlock); - if (blockIndex == (0x7fffff00 / This->bigBlockSize) - 1) + if (blockIndex == (RANGELOCK_FIRST / This->bigBlockSize) - 1) /* This should never happen (storage file format spec forbids it), but * older versions of Wine may have generated broken files. We don't want to * assert and potentially lose data, but we do want to know if this ever @@ -3795,6 +3872,11 @@ StorageUtl_ReadDWord( headerBigBlock, + OFFSET_TRANSACTIONSIG, + &This->transactionSig); + + StorageUtl_ReadDWord( + headerBigBlock, OFFSET_SMALLBLOCKLIMIT, &This->smallBlockLimit); @@ -3953,6 +4035,11 @@ StorageUtl_WriteDWord( headerBigBlock, + OFFSET_TRANSACTIONSIG, + This->transactionSig); + + StorageUtl_WriteDWord( + headerBigBlock, OFFSET_SMALLBLOCKLIMIT, This->smallBlockLimit); @@ -4899,6 +4986,7 @@ DirEntry data; ULARGE_INTEGER zero; HRESULT hr; + ULONG transactionSig; zero.QuadPart = 0; @@ -4908,89 +4996,115 @@ if ( STGM_ACCESS_MODE( This->base.openFlags ) == STGM_READ ) return STG_E_ACCESSDENIED; - /* To prevent data loss, we create the new structure in the file before we - * delete the old one, so that in case of errors the old data is intact. We - * shouldn't do this if STGC_OVERWRITE is set, but that flag should only be - * needed in the rare situation where we have just enough free disk space to - * overwrite the existing data. */ + hr = StorageBaseImpl_LockTransaction(This->transactedParent); + if (hr == E_NOTIMPL) hr = S_OK; + if (SUCCEEDED(hr)) + { + hr = StorageBaseImpl_GetTransactionSig(This->transactedParent, &transactionSig, TRUE); + if (SUCCEEDED(hr)) + { + if ((grfCommitFlags & STGC_ONLYIFCURRENT) && transactionSig != This->lastTransactionSig) + hr = STG_E_NOTCURRENT; + else if (transactionSig != This->lastTransactionSig) + ERR("proceeding with unsafe commit\n"); - root_entry = &This->entries[This->base.storageDirEntry]; + if (SUCCEEDED(hr)) + { + This->lastTransactionSig = transactionSig+1; + hr = StorageBaseImpl_SetTransactionSig(This->transactedParent, This->lastTransactionSig); + } + } + else if (hr == E_NOTIMPL) + hr = S_OK; - if (!root_entry->read) - return S_OK; + if (FAILED(hr)) goto end; - hr = TransactedSnapshotImpl_CopyTree(This); - if (FAILED(hr)) return hr; + /* To prevent data loss, we create the new structure in the file before we + * delete the old one, so that in case of errors the old data is intact. We + * shouldn't do this if STGC_OVERWRITE is set, but that flag should only be + * needed in the rare situation where we have just enough free disk space to + * overwrite the existing data. */ - if (root_entry->data.dirRootEntry == DIRENTRY_NULL) - dir_root_ref = DIRENTRY_NULL; - else - dir_root_ref = This->entries[root_entry->data.dirRootEntry].newTransactedParentEntry; + root_entry = &This->entries[This->base.storageDirEntry]; - hr = StorageBaseImpl_Flush(This->transactedParent); + if (!root_entry->read) + goto end; - /* Update the storage to use the new data in one step. */ - if (SUCCEEDED(hr)) - hr = StorageBaseImpl_ReadDirEntry(This->transactedParent, - root_entry->transactedParentEntry, &data); + hr = TransactedSnapshotImpl_CopyTree(This); + if (FAILED(hr)) goto end; - if (SUCCEEDED(hr)) - { - data.dirRootEntry = dir_root_ref; - data.clsid = root_entry->data.clsid; - data.ctime = root_entry->data.ctime; - data.mtime = root_entry->data.mtime; - - hr = StorageBaseImpl_WriteDirEntry(This->transactedParent, - root_entry->transactedParentEntry, &data); - } + if (root_entry->data.dirRootEntry == DIRENTRY_NULL) + dir_root_ref = DIRENTRY_NULL; + else + dir_root_ref = This->entries[root_entry->data.dirRootEntry].newTransactedParentEntry; - /* Try to flush after updating the root storage, but if the flush fails, keep - * going, on the theory that it'll either succeed later or the subsequent - * writes will fail. */ - StorageBaseImpl_Flush(This->transactedParent); + hr = StorageBaseImpl_Flush(This->transactedParent); - if (SUCCEEDED(hr)) - { - /* Destroy the old now-orphaned data. */ - for (i=0; ientries_size; i++) + /* Update the storage to use the new data in one step. */ + if (SUCCEEDED(hr)) + hr = StorageBaseImpl_ReadDirEntry(This->transactedParent, + root_entry->transactedParentEntry, &data); + + if (SUCCEEDED(hr)) + { + data.dirRootEntry = dir_root_ref; + data.clsid = root_entry->data.clsid; + data.ctime = root_entry->data.ctime; + data.mtime = root_entry->data.mtime; + + hr = StorageBaseImpl_WriteDirEntry(This->transactedParent, + root_entry->transactedParentEntry, &data); + } + + /* Try to flush after updating the root storage, but if the flush fails, keep + * going, on the theory that it'll either succeed later or the subsequent + * writes will fail. */ + StorageBaseImpl_Flush(This->transactedParent); + + if (SUCCEEDED(hr)) { - TransactedDirEntry *entry = &This->entries[i]; - if (entry->inuse) + /* Destroy the old now-orphaned data. */ + for (i=0; ientries_size; i++) { - if (entry->deleted) - { - StorageBaseImpl_StreamSetSize(This->transactedParent, - entry->transactedParentEntry, zero); - StorageBaseImpl_DestroyDirEntry(This->transactedParent, - entry->transactedParentEntry); - memset(entry, 0, sizeof(TransactedDirEntry)); - This->firstFreeEntry = min(i, This->firstFreeEntry); - } - else if (entry->read && entry->transactedParentEntry != entry->newTransactedParentEntry) + TransactedDirEntry *entry = &This->entries[i]; + if (entry->inuse) { - if (entry->transactedParentEntry != DIRENTRY_NULL) + if (entry->deleted) + { + StorageBaseImpl_StreamSetSize(This->transactedParent, + entry->transactedParentEntry, zero); StorageBaseImpl_DestroyDirEntry(This->transactedParent, entry->transactedParentEntry); - if (entry->stream_dirty) + memset(entry, 0, sizeof(TransactedDirEntry)); + This->firstFreeEntry = min(i, This->firstFreeEntry); + } + else if (entry->read && entry->transactedParentEntry != entry->newTransactedParentEntry) { - StorageBaseImpl_StreamSetSize(This->scratch, entry->stream_entry, zero); - StorageBaseImpl_DestroyDirEntry(This->scratch, entry->stream_entry); - entry->stream_dirty = FALSE; + if (entry->transactedParentEntry != DIRENTRY_NULL) + StorageBaseImpl_DestroyDirEntry(This->transactedParent, + entry->transactedParentEntry); + if (entry->stream_dirty) + { + StorageBaseImpl_StreamSetSize(This->scratch, entry->stream_entry, zero); + StorageBaseImpl_DestroyDirEntry(This->scratch, entry->stream_entry); + entry->stream_dirty = FALSE; + } + entry->dirty = FALSE; + entry->transactedParentEntry = entry->newTransactedParentEntry; } - entry->dirty = FALSE; - entry->transactedParentEntry = entry->newTransactedParentEntry; } } } - } - else - { - TransactedSnapshotImpl_DestroyTemporaryCopy(This, DIRENTRY_NULL); - } + else + { + TransactedSnapshotImpl_DestroyTemporaryCopy(This, DIRENTRY_NULL); + } - if (SUCCEEDED(hr)) - hr = StorageBaseImpl_Flush(This->transactedParent); + if (SUCCEEDED(hr)) + hr = StorageBaseImpl_Flush(This->transactedParent); +end: + StorageBaseImpl_UnlockTransaction(This->transactedParent); + } return hr; } @@ -5285,6 +5399,28 @@ return S_OK; } +static HRESULT TransactedSnapshotImpl_GetTransactionSig(StorageBaseImpl *base, + ULONG* result, BOOL refresh) +{ + return E_NOTIMPL; +} + +static HRESULT TransactedSnapshotImpl_SetTransactionSig(StorageBaseImpl *base, + ULONG value) +{ + return E_NOTIMPL; +} + +static HRESULT TransactedSnapshotImpl_LockTransaction(StorageBaseImpl *base) +{ + return E_NOTIMPL; +} + +static HRESULT TransactedSnapshotImpl_UnlockTransaction(StorageBaseImpl *base) +{ + return E_NOTIMPL; +} + static const IStorageVtbl TransactedSnapshotImpl_Vtbl = { StorageBaseImpl_QueryInterface, @@ -5320,7 +5456,11 @@ TransactedSnapshotImpl_StreamReadAt, TransactedSnapshotImpl_StreamWriteAt, TransactedSnapshotImpl_StreamSetSize, - TransactedSnapshotImpl_StreamLink + TransactedSnapshotImpl_StreamLink, + TransactedSnapshotImpl_GetTransactionSig, + TransactedSnapshotImpl_SetTransactionSig, + TransactedSnapshotImpl_LockTransaction, + TransactedSnapshotImpl_UnlockTransaction }; static HRESULT TransactedSnapshotImpl_Construct(StorageBaseImpl *parentStorage, @@ -5347,6 +5487,9 @@ (*result)->base.openFlags = parentStorage->openFlags; + /* This cannot fail, except with E_NOTIMPL in which case we don't care */ + StorageBaseImpl_GetTransactionSig(parentStorage, &(*result)->lastTransactionSig, FALSE); + /* Create a new temporary storage to act as the scratch file. */ hr = StgCreateDocfile(NULL, STGM_READWRITE|STGM_SHARE_EXCLUSIVE|STGM_CREATE|STGM_DELETEONRELEASE, 0, &scratch); @@ -5418,6 +5561,12 @@ if (openFlags & STGM_TRANSACTED) { + static int fixme; + + if (STGM_SHARE_MODE(openFlags) != STGM_SHARE_DENY_WRITE && + STGM_SHARE_MODE(openFlags) != STGM_SHARE_EXCLUSIVE && !fixme++) + FIXME("transacted storage write sharing not implemented safely\n"); + hr = Storage_ConstructTransacted(&newStorage->base, &newTransactedStorage); if (FAILED(hr)) IStorage_Release(&newStorage->base.IStorage_iface); @@ -5544,6 +5693,28 @@ dst, src); } +static HRESULT StorageInternalImpl_GetTransactionSig(StorageBaseImpl *base, + ULONG* result, BOOL refresh) +{ + return E_NOTIMPL; +} + +static HRESULT StorageInternalImpl_SetTransactionSig(StorageBaseImpl *base, + ULONG value) +{ + return E_NOTIMPL; +} + +static HRESULT StorageInternalImpl_LockTransaction(StorageBaseImpl *base) +{ + return E_NOTIMPL; +} + +static HRESULT StorageInternalImpl_UnlockTransaction(StorageBaseImpl *base) +{ + return E_NOTIMPL; +} + /****************************************************************************** ** ** Storage32InternalImpl_Commit @@ -5894,7 +6065,11 @@ StorageInternalImpl_StreamReadAt, StorageInternalImpl_StreamWriteAt, StorageInternalImpl_StreamSetSize, - StorageInternalImpl_StreamLink + StorageInternalImpl_StreamLink, + StorageInternalImpl_GetTransactionSig, + StorageInternalImpl_SetTransactionSig, + StorageInternalImpl_LockTransaction, + StorageInternalImpl_UnlockTransaction }; /****************************************************************************** @@ -7581,7 +7756,7 @@ /* * Interpret the STGM value grfMode */ - shareMode = FILE_SHARE_READ | FILE_SHARE_WRITE; + shareMode = GetShareModeFromSTGM(grfMode); accessMode = GetAccessModeFromSTGM(grfMode); if (grfMode & STGM_DELETEONRELEASE) @@ -7589,13 +7764,6 @@ else fileAttributes = FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS; - if (STGM_SHARE_MODE(grfMode) && !(grfMode & STGM_SHARE_DENY_NONE)) - { - static int fixme; - if (!fixme++) - FIXME("Storage share mode not implemented.\n"); - } - *ppstgOpen = 0; hFile = CreateFileW(pwcsName, @@ -7836,13 +8004,6 @@ return STG_E_INVALIDFLAG; grfMode &= ~0xf0; /* remove the existing sharing mode */ grfMode |= STGM_SHARE_DENY_NONE; - - /* STGM_PRIORITY stops other IStorage objects on the same file from - * committing until the STGM_PRIORITY IStorage is closed. it also - * stops non-transacted mode StgOpenStorage calls with write access from - * succeeding. obviously, both of these cannot be achieved through just - * file share flags */ - FIXME("STGM_PRIORITY mode not implemented correctly\n"); } /* @@ -8277,6 +8438,10 @@ case STGM_SHARE_DENY_WRITE: case STGM_SHARE_EXCLUSIVE: break; + case 0: + if (!(stgm & STGM_TRANSACTED)) + return E_FAIL; + break; default: return E_FAIL; } @@ -8332,14 +8497,16 @@ { switch (STGM_SHARE_MODE(stgm)) { + case 0: + assert(stgm & STGM_TRANSACTED); + /* fall-through */ case STGM_SHARE_DENY_NONE: return FILE_SHARE_READ | FILE_SHARE_WRITE; case STGM_SHARE_DENY_READ: return FILE_SHARE_WRITE; case STGM_SHARE_DENY_WRITE: - return FILE_SHARE_READ; case STGM_SHARE_EXCLUSIVE: - return 0; + return FILE_SHARE_READ; } ERR("Invalid share mode!\n"); assert(0); diff -Nru wine1.7-1.7.18/dlls/ole32/storage32.h wine1.7-1.7.19/dlls/ole32/storage32.h --- wine1.7-1.7.18/dlls/ole32/storage32.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ole32/storage32.h 2014-05-16 19:06:48.000000000 +0000 @@ -51,6 +51,7 @@ static const ULONG OFFSET_DIRSECTORCOUNT = 0x00000028; static const ULONG OFFSET_BBDEPOTCOUNT = 0x0000002C; static const ULONG OFFSET_ROOTSTARTBLOCK = 0x00000030; +static const ULONG OFFSET_TRANSACTIONSIG = 0x00000034; static const ULONG OFFSET_SMALLBLOCKLIMIT = 0x00000038; static const ULONG OFFSET_SBDEPOTSTART = 0x0000003C; static const ULONG OFFSET_SBDEPOTCOUNT = 0x00000040; @@ -156,6 +157,8 @@ HRESULT FileLockBytesImpl_Construct(HANDLE hFile, DWORD openFlags, LPCWSTR pwcsName, ILockBytes **pLockBytes) DECLSPEC_HIDDEN; +HRESULT FileLockBytesImpl_LockRegionSync(ILockBytes* iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb) DECLSPEC_HIDDEN; + /************************************************************************* * Ole Convert support */ @@ -246,6 +249,10 @@ HRESULT (*StreamWriteAt)(StorageBaseImpl*,DirRef,ULARGE_INTEGER,ULONG,const void*,ULONG*); HRESULT (*StreamSetSize)(StorageBaseImpl*,DirRef,ULARGE_INTEGER); HRESULT (*StreamLink)(StorageBaseImpl*,DirRef,DirRef); + HRESULT (*GetTransactionSig)(StorageBaseImpl*,ULONG*,BOOL); + HRESULT (*SetTransactionSig)(StorageBaseImpl*,ULONG); + HRESULT (*LockTransaction)(StorageBaseImpl*); + HRESULT (*UnlockTransaction)(StorageBaseImpl*); }; static inline void StorageBaseImpl_Destroy(StorageBaseImpl *This) @@ -323,6 +330,28 @@ return This->baseVtbl->StreamLink(This, dst, src); } +static inline HRESULT StorageBaseImpl_GetTransactionSig(StorageBaseImpl *This, + ULONG* result, BOOL refresh) +{ + return This->baseVtbl->GetTransactionSig(This, result, refresh); +} + +static inline HRESULT StorageBaseImpl_SetTransactionSig(StorageBaseImpl *This, + ULONG value) +{ + return This->baseVtbl->SetTransactionSig(This, value); +} + +static inline HRESULT StorageBaseImpl_LockTransaction(StorageBaseImpl *This) +{ + return This->baseVtbl->LockTransaction(This); +} + +static inline HRESULT StorageBaseImpl_UnlockTransaction(StorageBaseImpl *This) +{ + return This->baseVtbl->UnlockTransaction(This); +} + /**************************************************************************** * StorageBaseImpl stream list handlers */ @@ -359,6 +388,7 @@ ULONG extBigBlockDepotLocationsSize; ULONG extBigBlockDepotCount; ULONG bigBlockDepotStart[COUNT_BBDEPOTINHEADER]; + ULONG transactionSig; ULONG extBlockDepotCached[MAX_BIG_BLOCK_SIZE / 4]; ULONG indexExtBlockDepotCached; @@ -383,7 +413,7 @@ ILockBytes* lockBytes; - unsigned char locked_bytes[8]; + ULONG locked_bytes[8]; }; HRESULT StorageImpl_ReadRawDirEntry( @@ -470,6 +500,54 @@ DirRef dirEntry) DECLSPEC_HIDDEN; +/* Range lock constants. + * + * The storage format reserves the region from 0x7fffff00-0x7fffffff for + * locking and synchronization. Unfortuantely, the spec doesn't say which bytes + * within that range are used, and for what. These are guesses based on testing. + * In particular, ends of ranges may be wrong. + + 0x0 through 0x57: Unknown. Causes read-only exclusive opens to fail. + 0x58 through 0x6b: Priority mode. + 0x6c through 0x7f: No snapshot mode. + 0x80: Commit lock. + 0x81 through 0x91: Priority mode, again. Not sure why it uses two regions. + 0x92: Lock-checking lock. Held while opening so ranges can be tested without + causing spurious failures if others try to grab or test those ranges at the + same time. + 0x93 through 0xa6: Read mode. + 0xa7 through 0xba: Write mode. + 0xbb through 0xce: Deny read. + 0xcf through 0xe2: Deny write. + 0xe2 through 0xff: Unknown. Causes read-only exclusive opens to fail. +*/ + +#define RANGELOCK_UNK1_FIRST 0x7fffff00 +#define RANGELOCK_UNK1_LAST 0x7fffff57 +#define RANGELOCK_PRIORITY1_FIRST 0x7fffff58 +#define RANGELOCK_PRIORITY1_LAST 0x7fffff6b +#define RANGELOCK_NOSNAPSHOT_FIRST 0x7fffff6c +#define RANGELOCK_NOSNAPSHOT_LAST 0x7fffff7f +#define RANGELOCK_COMMIT 0x7fffff80 +#define RANGELOCK_PRIORITY2_FIRST 0x7fffff81 +#define RANGELOCK_PRIORITY2_LAST 0x7fffff91 +#define RANGELOCK_CHECKLOCKS 0x7fffff92 +#define RANGELOCK_READ_FIRST 0x7fffff93 +#define RANGELOCK_READ_LAST 0x7fffffa6 +#define RANGELOCK_WRITE_FIRST 0x7fffffa7 +#define RANGELOCK_WRITE_LAST 0x7fffffba +#define RANGELOCK_DENY_READ_FIRST 0x7fffffbb +#define RANGELOCK_DENY_READ_LAST 0x7fffffce +#define RANGELOCK_DENY_WRITE_FIRST 0x7fffffcf +#define RANGELOCK_DENY_WRITE_LAST 0x7fffffe2 +#define RANGELOCK_UNK2_FIRST 0x7fffffe3 +#define RANGELOCK_UNK2_LAST 0x7fffffff +#define RANGELOCK_TRANSACTION_FIRST RANGELOCK_COMMIT +#define RANGELOCK_TRANSACTION_LAST RANGELOCK_CHECKLOCKS +#define RANGELOCK_FIRST RANGELOCK_UNK1_FIRST +#define RANGELOCK_LAST RANGELOCK_UNK2_LAST + + /****************************************************************************** * Endian conversion macros */ diff -Nru wine1.7-1.7.18/dlls/ole32/tests/storage32.c wine1.7-1.7.19/dlls/ole32/tests/storage32.c --- wine1.7-1.7.18/dlls/ole32/tests/storage32.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ole32/tests/storage32.c 2014-05-16 19:06:48.000000000 +0000 @@ -868,11 +868,9 @@ r = StgOpenStorage( filename, NULL, STGM_PRIORITY, NULL, 0, &stgprio); ok(r==S_OK, "StgOpenStorage failed with error 0x%08x\n", r); - todo_wine { /* non-transacted mode read/write fails */ r = StgOpenStorage( filename, NULL, STGM_SHARE_EXCLUSIVE|STGM_READWRITE, NULL, 0, &stg); ok(r==STG_E_LOCKVIOLATION, "StgOpenStorage should return STG_E_LOCKVIOLATION instead of 0x%08x\n", r); - } /* non-transacted mode read-only succeeds */ r = StgOpenStorage( filename, NULL, STGM_SHARE_DENY_WRITE|STGM_READ, NULL, 0, &stg); @@ -3158,6 +3156,7 @@ static const int priority_locked_bytes[] = { 0x58, 0x81, 0x93, -1 }; static const int rwex_locked_bytes[] = { 0x93, 0xa7, 0xbb, 0xcf, -1 }; static const int rw_locked_bytes[] = { 0x93, 0xa7, -1 }; +static const int nosn_locked_bytes[] = { 0x6c, 0x93, 0xa7, 0xcf, -1 }; static const int rwdw_locked_bytes[] = { 0x93, 0xa7, 0xcf, -1 }; static const int wodw_locked_bytes[] = { 0xa7, 0xcf, -1 }; static const int tr_locked_bytes[] = { 0x93, -1 }; @@ -3166,6 +3165,7 @@ static const int rwex_fail_ranges[] = { 0x93,0xe3, -1 }; static const int rw_fail_ranges[] = { 0xbb,0xe3, -1 }; +static const int rwdw_fail_ranges[] = { 0xa7,0xe3, -1 }; static const int dw_fail_ranges[] = { 0xa7,0xcf, -1 }; static const int tr_fail_ranges[] = { 0xbb,0xcf, -1 }; static const int pr_fail_ranges[] = { 0x80,0x81, 0xbb,0xcf, -1 }; @@ -3173,16 +3173,18 @@ static const struct lock_test lock_tests[] = { { STGM_PRIORITY, FALSE, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, priority_locked_bytes, pr_fail_ranges, FALSE }, - { STGM_CREATE|STGM_SHARE_EXCLUSIVE|STGM_READWRITE, TRUE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwex_locked_bytes, 0, TRUE }, - { STGM_CREATE|STGM_SHARE_EXCLUSIVE|STGM_READWRITE|STGM_TRANSACTED, TRUE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwex_locked_bytes, 0, TRUE }, + { STGM_CREATE|STGM_SHARE_EXCLUSIVE|STGM_READWRITE, TRUE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwex_locked_bytes, 0, FALSE }, + { STGM_CREATE|STGM_SHARE_EXCLUSIVE|STGM_READWRITE|STGM_TRANSACTED, TRUE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwex_locked_bytes, 0, FALSE }, { STGM_CREATE|STGM_READWRITE|STGM_TRANSACTED, TRUE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, rw_locked_bytes, 0, FALSE }, - { STGM_CREATE|STGM_READWRITE|STGM_SHARE_DENY_WRITE|STGM_TRANSACTED, TRUE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwdw_locked_bytes, 0, TRUE }, - { STGM_CREATE|STGM_WRITE|STGM_SHARE_DENY_WRITE|STGM_TRANSACTED, TRUE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, wodw_locked_bytes, 0, TRUE }, - { STGM_SHARE_EXCLUSIVE|STGM_READWRITE, FALSE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwex_locked_bytes, rwex_fail_ranges, TRUE }, - { STGM_SHARE_EXCLUSIVE|STGM_READWRITE|STGM_TRANSACTED, FALSE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwex_locked_bytes, rwex_fail_ranges, TRUE }, - { STGM_READWRITE|STGM_TRANSACTED, FALSE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, rw_locked_bytes, rw_fail_ranges, TRUE }, + { STGM_CREATE|STGM_READWRITE|STGM_SHARE_DENY_WRITE|STGM_TRANSACTED, TRUE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwdw_locked_bytes, 0, FALSE }, + { STGM_CREATE|STGM_WRITE|STGM_SHARE_DENY_WRITE|STGM_TRANSACTED, TRUE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, wodw_locked_bytes, 0, FALSE }, + { STGM_SHARE_EXCLUSIVE|STGM_READWRITE, FALSE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwex_locked_bytes, rwex_fail_ranges, FALSE }, + { STGM_SHARE_EXCLUSIVE|STGM_READWRITE|STGM_TRANSACTED, FALSE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwex_locked_bytes, rwex_fail_ranges, FALSE }, + { STGM_READWRITE|STGM_TRANSACTED, FALSE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, rw_locked_bytes, rw_fail_ranges, FALSE }, + { STGM_READWRITE|STGM_TRANSACTED|STGM_NOSNAPSHOT, FALSE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, nosn_locked_bytes, rwdw_fail_ranges, FALSE }, + { STGM_READWRITE|STGM_TRANSACTED|STGM_SHARE_DENY_WRITE, FALSE, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, rwdw_locked_bytes, rwdw_fail_ranges, FALSE }, { STGM_READ|STGM_SHARE_DENY_WRITE, FALSE, GENERIC_READ, FILE_SHARE_READ, no_locked_bytes, dw_fail_ranges, TRUE }, - { STGM_READ|STGM_TRANSACTED, FALSE, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, tr_locked_bytes, tr_fail_ranges, TRUE }, + { STGM_READ|STGM_TRANSACTED, FALSE, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, tr_locked_bytes, tr_fail_ranges, FALSE }, { STGM_READ|STGM_SHARE_EXCLUSIVE, FALSE, GENERIC_READ, FILE_SHARE_READ, roex_locked_bytes, roex_fail_ranges, TRUE }, { STGM_READ|STGM_SHARE_EXCLUSIVE|STGM_TRANSACTED, FALSE, GENERIC_READ, FILE_SHARE_READ, roex_locked_bytes, roex_fail_ranges, TRUE }, }; @@ -3282,10 +3284,7 @@ IStorage_Release(stg); hr = StgOpenStorage(filename, NULL, current->stg_mode, NULL, 0, &stg); - if (current->stg_mode == (STGM_READ|STGM_TRANSACTED) || current->stg_mode == (STGM_READWRITE|STGM_TRANSACTED)) - todo_wine ok(SUCCEEDED(hr), "StgOpenStorage with mode %x failed with hr %x\n", current->stg_mode, hr); - else - ok(SUCCEEDED(hr), "StgOpenStorage with mode %x failed with hr %x\n", current->stg_mode, hr); + ok(SUCCEEDED(hr), "StgOpenStorage with mode %x failed with hr %x\n", current->stg_mode, hr); if (FAILED(hr)) { DeleteFileW(filename); @@ -3496,7 +3495,7 @@ /* commit fails because we're out of date */ r = IStorage_Commit(stgrw, STGC_ONLYIFCURRENT); - todo_wine ok(r==STG_E_NOTCURRENT, "IStorage->Commit failed %x\n", r); + ok(r==STG_E_NOTCURRENT, "IStorage->Commit failed %x\n", r); /* unless we force it */ r = IStorage_Commit(stgrw, STGC_DEFAULT); @@ -3520,7 +3519,7 @@ /* and committing fails forever */ r = IStorage_Commit(stg, STGC_ONLYIFCURRENT); - todo_wine ok(r==STG_E_NOTCURRENT, "IStorage->Commit failed %x\n", r); + ok(r==STG_E_NOTCURRENT, "IStorage->Commit failed %x\n", r); IStream_Release(stm); diff -Nru wine1.7-1.7.18/dlls/oleacc/client.c wine1.7-1.7.19/dlls/oleacc/client.c --- wine1.7-1.7.18/dlls/oleacc/client.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleacc/client.c 2014-05-16 19:06:48.000000000 +0000 @@ -27,6 +27,7 @@ typedef struct { IAccessible IAccessible_iface; + IOleWindow IOleWindow_iface; LONG ref; @@ -48,11 +49,16 @@ IsEqualIID(riid, &IID_IDispatch) || IsEqualIID(riid, &IID_IUnknown)) { *ppv = iface; - IAccessible_AddRef(iface); - return S_OK; + }else if(IsEqualIID(riid, &IID_IOleWindow)) { + *ppv = &This->IOleWindow_iface; + }else { + WARN("no interface: %s\n", debugstr_guid(riid)); + *ppv = NULL; + return E_NOINTERFACE; } - return E_NOINTERFACE; + IAccessible_AddRef(iface); + return S_OK; } static ULONG WINAPI Client_AddRef(IAccessible *iface) @@ -113,8 +119,11 @@ static HRESULT WINAPI Client_get_accParent(IAccessible *iface, IDispatch **ppdispParent) { Client *This = impl_from_Client(iface); - FIXME("(%p)->(%p)\n", This, ppdispParent); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, ppdispParent); + + return AccessibleObjectFromWindow(This->hwnd, OBJID_WINDOW, + &IID_IDispatch, (void**)ppdispParent); } static HRESULT WINAPI Client_get_accChildCount(IAccessible *iface, LONG *pcountChildren) @@ -323,9 +332,31 @@ LONG *pyTop, LONG *pcxWidth, LONG *pcyHeight, VARIANT varID) { Client *This = impl_from_Client(iface); - FIXME("(%p)->(%p %p %p %p %s)\n", This, pxLeft, pyTop, + RECT rect; + POINT pt; + + TRACE("(%p)->(%p %p %p %p %s)\n", This, pxLeft, pyTop, pcxWidth, pcyHeight, debugstr_variant(&varID)); - return E_NOTIMPL; + + *pxLeft = *pyTop = *pcxWidth = *pcyHeight = 0; + if(convert_child_id(&varID) != CHILDID_SELF) + return E_INVALIDARG; + + if(!GetClientRect(This->hwnd, &rect)) + return S_OK; + + pt.x = rect.left, + pt.y = rect.top; + MapWindowPoints(This->hwnd, NULL, &pt, 1); + *pxLeft = pt.x; + *pyTop = pt.y; + + pt.x = rect.right; + pt.y = rect.bottom; + MapWindowPoints(This->hwnd, NULL, &pt, 1); + *pcxWidth = pt.x - *pxLeft; + *pcyHeight = pt.y - *pyTop; + return S_OK; } static HRESULT WINAPI Client_accNavigate(IAccessible *iface, @@ -340,8 +371,26 @@ LONG xLeft, LONG yTop, VARIANT *pvarID) { Client *This = impl_from_Client(iface); - FIXME("(%p)->(%d %d %p)\n", This, xLeft, yTop, pvarID); - return E_NOTIMPL; + HWND child; + POINT pt; + + TRACE("(%p)->(%d %d %p)\n", This, xLeft, yTop, pvarID); + + V_VT(pvarID) = VT_I4; + V_I4(pvarID) = 0; + + pt.x = xLeft; + pt.y = yTop; + if(!IsWindowVisible(This->hwnd) || !ScreenToClient(This->hwnd, &pt)) + return S_OK; + + child = ChildWindowFromPointEx(This->hwnd, pt, CWP_SKIPINVISIBLE); + if(!child || child==This->hwnd) + return S_OK; + + V_VT(pvarID) = VT_DISPATCH; + return AccessibleObjectFromWindow(child, OBJID_WINDOW, + &IID_IDispatch, (void**)&V_DISPATCH(pvarID)); } static HRESULT WINAPI Client_accDoDefaultAction(IAccessible *iface, VARIANT varID) @@ -396,6 +445,54 @@ Client_put_accValue }; +static inline Client* impl_from_Client_OleWindow(IOleWindow *iface) +{ + return CONTAINING_RECORD(iface, Client, IOleWindow_iface); +} + +static HRESULT WINAPI Client_OleWindow_QueryInterface(IOleWindow *iface, REFIID riid, void **ppv) +{ + Client *This = impl_from_Client_OleWindow(iface); + return IAccessible_QueryInterface(&This->IAccessible_iface, riid, ppv); +} + +static ULONG WINAPI Client_OleWindow_AddRef(IOleWindow *iface) +{ + Client *This = impl_from_Client_OleWindow(iface); + return IAccessible_AddRef(&This->IAccessible_iface); +} + +static ULONG WINAPI Client_OleWindow_Release(IOleWindow *iface) +{ + Client *This = impl_from_Client_OleWindow(iface); + return IAccessible_Release(&This->IAccessible_iface); +} + +static HRESULT WINAPI Client_OleWindow_GetWindow(IOleWindow *iface, HWND *phwnd) +{ + Client *This = impl_from_Client_OleWindow(iface); + + TRACE("(%p)->(%p)\n", This, phwnd); + + *phwnd = This->hwnd; + return S_OK; +} + +static HRESULT WINAPI Client_OleWindow_ContextSensitiveHelp(IOleWindow *iface, BOOL fEnterMode) +{ + Client *This = impl_from_Client_OleWindow(iface); + FIXME("(%p)->(%x)\n", This, fEnterMode); + return E_NOTIMPL; +} + +static const IOleWindowVtbl ClientOleWindowVtbl = { + Client_OleWindow_QueryInterface, + Client_OleWindow_AddRef, + Client_OleWindow_Release, + Client_OleWindow_GetWindow, + Client_OleWindow_ContextSensitiveHelp +}; + HRESULT create_client_object(HWND hwnd, const IID *iid, void **obj) { Client *client; @@ -409,6 +506,7 @@ return E_OUTOFMEMORY; client->IAccessible_iface.lpVtbl = &ClientVtbl; + client->IOleWindow_iface.lpVtbl = &ClientOleWindowVtbl; client->ref = 1; client->hwnd = hwnd; diff -Nru wine1.7-1.7.18/dlls/oleacc/main.c wine1.7-1.7.19/dlls/oleacc/main.c --- wine1.7-1.7.18/dlls/oleacc/main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleacc/main.c 2014-05-16 19:06:48.000000000 +0000 @@ -23,11 +23,12 @@ #include #include "windef.h" #include "winbase.h" -#include "winuser.h" #include "ole2.h" +#include "commctrl.h" #include "initguid.h" #include "oleacc_private.h" +#include "resource.h" #include "wine/unicode.h" #include "wine/debug.h" @@ -36,6 +37,54 @@ static const WCHAR lresult_atom_prefix[] = {'w','i','n','e','_','o','l','e','a','c','c',':'}; +static const WCHAR menuW[] = {'#','3','2','7','6','8',0}; +static const WCHAR desktopW[] = {'#','3','2','7','6','9',0}; +static const WCHAR dialogW[] = {'#','3','2','7','7','0',0}; +static const WCHAR winswitchW[] = {'#','3','2','7','7','1',0}; +static const WCHAR mdi_clientW[] = {'M','D','I','C','l','i','e','n','t',0}; +static const WCHAR richeditW[] = {'R','I','C','H','E','D','I','T',0}; +static const WCHAR richedit20aW[] = {'R','i','c','h','E','d','i','t','2','0','A',0}; +static const WCHAR richedit20wW[] = {'R','i','c','h','E','d','i','t','2','0','W',0}; + +typedef HRESULT (WINAPI *accessible_create)(HWND, const IID*, void**); + +static struct { + const WCHAR *name; + DWORD idx; + accessible_create create_client; + accessible_create create_window; +} builtin_classes[] = { + {WC_LISTBOXW, 0x10000, NULL, NULL}, + {menuW, 0x10001, NULL, NULL}, + {WC_BUTTONW, 0x10002, NULL, NULL}, + {WC_STATICW, 0x10003, NULL, NULL}, + {WC_EDITW, 0x10004, NULL, NULL}, + {WC_COMBOBOXW, 0x10005, NULL, NULL}, + {dialogW, 0x10006, NULL, NULL}, + {winswitchW, 0x10007, NULL, NULL}, + {mdi_clientW, 0x10008, NULL, NULL}, + {desktopW, 0x10009, NULL, NULL}, + {WC_SCROLLBARW, 0x1000a, NULL, NULL}, + {STATUSCLASSNAMEW, 0x1000b, NULL, NULL}, + {TOOLBARCLASSNAMEW, 0x1000c, NULL, NULL}, + {PROGRESS_CLASSW, 0x1000d, NULL, NULL}, + {ANIMATE_CLASSW, 0x1000e, NULL, NULL}, + {WC_TABCONTROLW, 0x1000f, NULL, NULL}, + {HOTKEY_CLASSW, 0x10010, NULL, NULL}, + {WC_HEADERW, 0x10011, NULL, NULL}, + {TRACKBAR_CLASSW, 0x10012, NULL, NULL}, + {WC_LISTVIEWW, 0x10013, NULL, NULL}, + {UPDOWN_CLASSW, 0x10016, NULL, NULL}, + {TOOLTIPS_CLASSW, 0x10018, NULL, NULL}, + {WC_TREEVIEWW, 0x10019, NULL, NULL}, + {MONTHCAL_CLASSW, 0, NULL, NULL}, + {DATETIMEPICK_CLASSW, 0, NULL, NULL}, + {WC_IPADDRESSW, 0, NULL, NULL}, + {richeditW, 0x1001c, NULL, NULL}, + {richedit20aW, 0, NULL, NULL}, + {richedit20wW, 0, NULL, NULL}, +}; + static HINSTANCE oleacc_handle = 0; const char *debugstr_variant(const VARIANT *v) @@ -81,19 +130,66 @@ } } +static accessible_create get_builtin_accessible_obj(HWND hwnd, LONG objid) +{ + WCHAR class_name[64]; + int i, idx; + + if(!RealGetWindowClassW(hwnd, class_name, sizeof(class_name)/sizeof(WCHAR))) + return NULL; + TRACE("got window class: %s\n", debugstr_w(class_name)); + + for(i=0; i HRESULT create_client_object(HWND, const IID*, void**) DECLSPEC_HIDDEN; +HRESULT create_window_object(HWND, const IID*, void**) DECLSPEC_HIDDEN; const char *debugstr_variant(const VARIANT*) DECLSPEC_HIDDEN; int convert_child_id(VARIANT *v) DECLSPEC_HIDDEN; diff -Nru wine1.7-1.7.18/dlls/oleacc/oleacc.rc wine1.7-1.7.19/dlls/oleacc/oleacc.rc --- wine1.7-1.7.18/dlls/oleacc/oleacc.rc 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleacc/oleacc.rc 2014-05-16 19:06:48.000000000 +0000 @@ -19,6 +19,7 @@ */ #include "oleacc.h" +#include "resource.h" #pragma makedep po @@ -91,6 +92,39 @@ ROLE_SYSTEM_SPLITBUTTON "split button" ROLE_SYSTEM_IPADDRESS "IP address" ROLE_SYSTEM_OUTLINEBUTTON "outline button" + + IDS_STATE_NORMAL "#msgctxt#object state#normal" + IDS_STATE_UNAVAILABLE "#msgctxt#object state#unavailable" + IDS_STATE_SELECTED "#msgctxt#object state#selected" + IDS_STATE_FOCUSED "#msgctxt#object state#focused" + IDS_STATE_PRESSED "#msgctxt#object state#pressed" + IDS_STATE_CHECKED "#msgctxt#object state#checked" + IDS_STATE_MIXED "#msgctxt#object state#mixed" + IDS_STATE_READONLY "#msgctxt#object state#read only" + IDS_STATE_HOTTRACKED "#msgctxt#object state#hot tracked" + IDS_STATE_DEFAULT "#msgctxt#object state#default" + IDS_STATE_EXPANDED "#msgctxt#object state#expanded" + IDS_STATE_COLLAPSED "#msgctxt#object state#collapsed" + IDS_STATE_BUSY "#msgctxt#object state#busy" + IDS_STATE_FLOATING "#msgctxt#object state#floating" + IDS_STATE_MARQUEED "#msgctxt#object state#marqueed" + IDS_STATE_ANIMATED "#msgctxt#object state#animated" + IDS_STATE_INVISIBLE "#msgctxt#object state#invisible" + IDS_STATE_OFFSCREEN "#msgctxt#object state#offscreen" + IDS_STATE_SIZEABLE "#msgctxt#object state#sizeable" + IDS_STATE_MOVEABLE "#msgctxt#object state#moveable" + IDS_STATE_SELFVOICING "#msgctxt#object state#self voicing" + IDS_STATE_FOCUSABLE "#msgctxt#object state#focusable" + IDS_STATE_SELECTABLE "#msgctxt#object state#selectable" + IDS_STATE_LINKED "#msgctxt#object state#linked" + IDS_STATE_TRAVERSED "#msgctxt#object state#traversed" + IDS_STATE_MULTISELECTABLE "#msgctxt#object state#multi selectable" + IDS_STATE_EXTSELECTABLE "#msgctxt#object state#extended selectable" + IDS_STATE_ALERT_LOW "#msgctxt#object state#alert low" + IDS_STATE_ALERT_MEDIUM "#msgctxt#object state#alert medium" + IDS_STATE_ALERT_HIGH "#msgctxt#object state#alert high" + IDS_STATE_PROTECTED "#msgctxt#object state#protected" + IDS_STATE_HASPOPUP "#msgctxt#object state#has popup" } LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL diff -Nru wine1.7-1.7.18/dlls/oleacc/oleacc.spec wine1.7-1.7.19/dlls/oleacc/oleacc.spec --- wine1.7-1.7.18/dlls/oleacc/oleacc.spec 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleacc/oleacc.spec 2014-05-16 19:06:48.000000000 +0000 @@ -9,13 +9,14 @@ @ stdcall -private DllRegisterServer() @ stdcall -private DllUnregisterServer() @ stdcall GetOleaccVersionInfo(ptr ptr) +@ stdcall GetProcessHandleFromHwnd(ptr) @ stdcall GetRoleTextA(long ptr long) @ stdcall GetRoleTextW(long ptr long) -@ stub GetStateTextA -@ stub GetStateTextW -@ stub IID_IAccessible -@ stub IID_IAccessibleHandler -@ stub LIBID_Accessibility +@ stdcall GetStateTextA(long ptr long) +@ stdcall GetStateTextW(long ptr long) +@ extern IID_IAccessible +@ extern IID_IAccessibleHandler +@ extern LIBID_Accessibility @ stdcall LresultFromObject(ptr long ptr) @ stdcall ObjectFromLresult(long ptr long ptr) -@ stub WindowFromAccessibleObject +@ stdcall WindowFromAccessibleObject(ptr ptr) diff -Nru wine1.7-1.7.18/dlls/oleacc/resource.h wine1.7-1.7.19/dlls/oleacc/resource.h --- wine1.7-1.7.18/dlls/oleacc/resource.h 1970-01-01 00:00:00.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleacc/resource.h 2014-05-16 19:06:48.000000000 +0000 @@ -0,0 +1,50 @@ +/* + * Copyright 2014 Piotr Caban for CodeWeavers + * + * 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 + */ + +#define IDS_STATE_NORMAL 0x1000 +#define IDS_STATE_UNAVAILABLE 0x1001 +#define IDS_STATE_SELECTED 0x1002 +#define IDS_STATE_FOCUSED 0x1003 +#define IDS_STATE_PRESSED 0x1004 +#define IDS_STATE_CHECKED 0x1005 +#define IDS_STATE_MIXED 0x1006 +#define IDS_STATE_READONLY 0x1007 +#define IDS_STATE_HOTTRACKED 0x1008 +#define IDS_STATE_DEFAULT 0x1009 +#define IDS_STATE_EXPANDED 0x100a +#define IDS_STATE_COLLAPSED 0x100b +#define IDS_STATE_BUSY 0x100c +#define IDS_STATE_FLOATING 0x100d +#define IDS_STATE_MARQUEED 0x100e +#define IDS_STATE_ANIMATED 0x100f +#define IDS_STATE_INVISIBLE 0x1010 +#define IDS_STATE_OFFSCREEN 0x1011 +#define IDS_STATE_SIZEABLE 0x1012 +#define IDS_STATE_MOVEABLE 0x1013 +#define IDS_STATE_SELFVOICING 0x1014 +#define IDS_STATE_FOCUSABLE 0x1015 +#define IDS_STATE_SELECTABLE 0x1016 +#define IDS_STATE_LINKED 0x1017 +#define IDS_STATE_TRAVERSED 0x1018 +#define IDS_STATE_MULTISELECTABLE 0x1019 +#define IDS_STATE_EXTSELECTABLE 0x101a +#define IDS_STATE_ALERT_LOW 0x101b +#define IDS_STATE_ALERT_MEDIUM 0x101c +#define IDS_STATE_ALERT_HIGH 0x101d +#define IDS_STATE_PROTECTED 0x101e +#define IDS_STATE_HASPOPUP 0x101f diff -Nru wine1.7-1.7.18/dlls/oleacc/tests/main.c wine1.7-1.7.19/dlls/oleacc/tests/main.c --- wine1.7-1.7.18/dlls/oleacc/tests/main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleacc/tests/main.c 2014-05-16 19:06:48.000000000 +0000 @@ -26,6 +26,21 @@ #include "initguid.h" #include +static HANDLE (WINAPI *pGetProcessHandleFromHwnd)(HWND); + +static BOOL init(void) +{ + HMODULE oleacc = GetModuleHandleA("oleacc.dll"); + + pGetProcessHandleFromHwnd = (void*)GetProcAddress(oleacc, "GetProcessHandleFromHwnd"); + if(!pGetProcessHandleFromHwnd) { + win_skip("GetProcessHandleFromHwnd not available\n"); + return FALSE; + } + + return TRUE; +} + static void test_getroletext(void) { INT ret, role; @@ -38,9 +53,7 @@ buf[0] = '*'; ret = GetRoleTextA(-1, buf, 2); ok(ret == 0, "GetRoleTextA doesn't return zero on wrong role number, got %d\n", ret); - ok(buf[0] == '*' || - broken(buf[0] == 0), /* Win98 and WinMe */ - "GetRoleTextA modified buffer on wrong role number\n"); + ok(buf[0] == 0, "GetRoleTextA doesn't return NULL char on wrong role number\n"); buf[0] = '*'; ret = GetRoleTextA(-1, buf, 0); ok(ret == 0, "GetRoleTextA doesn't return zero on wrong role number, got %d\n", ret); @@ -51,9 +64,7 @@ bufW[0] = '*'; ret = GetRoleTextW(-1, bufW, 2); ok(ret == 0, "GetRoleTextW doesn't return zero on wrong role number, got %d\n", ret); - ok(bufW[0] == '\0' || - broken(bufW[0] == '*'), /* Win98 and WinMe */ - "GetRoleTextW doesn't return NULL char on wrong role number\n"); + ok(bufW[0] == '\0', "GetRoleTextW doesn't return NULL char on wrong role number\n"); bufW[0] = '*'; ret = GetRoleTextW(-1, bufW, 0); ok(ret == 0, "GetRoleTextW doesn't return zero on wrong role number, got %d\n", ret); @@ -75,17 +86,23 @@ ok(ret > 0, "GetRoleTextW doesn't return length on NULL buffer, got %d\n", ret); /* use a smaller buffer */ + bufW[0] = '*'; + ret = GetRoleTextA(ROLE_SYSTEM_TITLEBAR, buf, 0); + ok(!ret, "GetRoleTextA doesn't return 0, got %d\n", ret); + ok(buf[0] == '*', "GetRoleTextA modified buffer\n"); + buffW = NULL; + ret = GetRoleTextW(ROLE_SYSTEM_TITLEBAR, (WCHAR*)&buffW, 0); + ok(ret, "GetRoleTextW doesn't return length\n"); + ok(buffW != NULL, "GetRoleTextW doesn't modify buffer\n"); buf[0] = '*'; ret = GetRoleTextA(ROLE_SYSTEM_TITLEBAR, buf, 1); ok(ret == 0, "GetRoleTextA returned wrong length\n"); ok(buf[0] == '\0', "GetRoleTextA returned not zero-length buffer\n"); - buf[1] = '*'; + buf[0] = '*'; ret = GetRoleTextA(ROLE_SYSTEM_TITLEBAR, buf, 2); - ok(ret == 1 || - ret == 0, /* Vista and W2K8 */ - "GetRoleTextA returned wrong length, got %d, expected 0 or 1\n", ret); - if (ret == 1) - ok(buf[1] == '\0', "GetRoleTextA returned not zero-length buffer : (%c)\n", buf[1]); + ok(!ret, "GetRoleTextA returned wrong length, got %d, expected 0\n", ret); + ok(!buf[0] || broken(buf[0]!='*') /* WinXP */, + "GetRoleTextA returned not zero-length buffer : (%c)\n", buf[0]); bufW[0] = '*'; ret = GetRoleTextW(ROLE_SYSTEM_TITLEBAR, bufW, 1); @@ -120,11 +137,7 @@ memset(buff2, 0, sizeof(buff2)); ret = GetRoleTextA(role, NULL, 0); - /* Win98 up to W2K miss some of the roles */ - if (role >= ROLE_SYSTEM_SPLITBUTTON) - ok(ret > 0 || broken(ret == 0), "Expected the role %d to be present\n", role); - else - ok(ret > 0, "Expected the role to be present\n"); + ok(ret > 0, "Expected the role to be present\n"); GetRoleTextA(role, buff2, sizeof(buff2)); ok(ret == lstrlenA(buff2), @@ -140,6 +153,72 @@ } } +static void test_GetStateText(void) +{ + WCHAR buf[1024], buf2[1024]; + char bufa[1024]; + void *ptr; + UINT ret, ret2; + int i; + + ret2 = GetStateTextW(0, NULL, 1024); + ok(ret2, "GetStateText failed\n"); + + ptr = NULL; + ret = GetStateTextW(0, (WCHAR*)&ptr, 0); + ok(ret == ret2, "got %d, expected %d\n", ret, ret2); + ok(ptr != NULL, "ptr was not changed\n"); + + ret = GetStateTextW(0, buf, 1024); + ok(ret == ret2, "got %d, expected %d\n", ret, ret2); + ok(!memcmp(buf, ptr, ret*sizeof(WCHAR)), "got %s, expected %s\n", + wine_dbgstr_wn(buf, ret), wine_dbgstr_wn(ptr, ret)); + + ret = GetStateTextW(0, buf, 1); + ok(!ret, "got %d, expected 0\n", ret); + ok(!buf[0], "buf[0] = '%c'\n", buf[0]); + + for(i=0; i<31; i++) { + ret = GetStateTextW(1<(%s %p)\n", This, debugstr_guid(riid), ppv); + + if(IsEqualIID(riid, &IID_IAccessible) || + IsEqualIID(riid, &IID_IDispatch) || + IsEqualIID(riid, &IID_IUnknown)) { + *ppv = iface; + }else if(IsEqualIID(riid, &IID_IOleWindow)) { + *ppv = &This->IOleWindow_iface; + }else { + WARN("no interface: %s\n", debugstr_guid(riid)); + *ppv = NULL; + return E_NOINTERFACE; + } + + IAccessible_AddRef(iface); + return S_OK; +} + +static ULONG WINAPI Window_AddRef(IAccessible *iface) +{ + Window *This = impl_from_Window(iface); + ULONG ref = InterlockedIncrement(&This->ref); + + TRACE("(%p) ref = %u\n", This, ref); + return ref; +} + +static ULONG WINAPI Window_Release(IAccessible *iface) +{ + Window *This = impl_from_Window(iface); + ULONG ref = InterlockedDecrement(&This->ref); + + TRACE("(%p) ref = %u\n", This, ref); + + if(!ref) + heap_free(This); + return ref; +} + +static HRESULT WINAPI Window_GetTypeInfoCount(IAccessible *iface, UINT *pctinfo) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p)\n", This, pctinfo); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_GetTypeInfo(IAccessible *iface, + UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%u %x %p)\n", This, iTInfo, lcid, ppTInfo); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_GetIDsOfNames(IAccessible *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p %u %x %p)\n", This, debugstr_guid(riid), + rgszNames, cNames, lcid, rgDispId); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_Invoke(IAccessible *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%x %s %x %x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), + lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accParent(IAccessible *iface, IDispatch **ppdispParent) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p)\n", This, ppdispParent); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accChildCount(IAccessible *iface, LONG *pcountChildren) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p)\n", This, pcountChildren); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accChild(IAccessible *iface, + VARIANT varChildID, IDispatch **ppdispChild) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varChildID), ppdispChild); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accName(IAccessible *iface, VARIANT varID, BSTR *pszName) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszName); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accValue(IAccessible *iface, VARIANT varID, BSTR *pszValue) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszValue); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accDescription(IAccessible *iface, + VARIANT varID, BSTR *pszDescription) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszDescription); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accRole(IAccessible *iface, VARIANT varID, VARIANT *pvarRole) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pvarRole); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accState(IAccessible *iface, VARIANT varID, VARIANT *pvarState) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pvarState); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accHelp(IAccessible *iface, VARIANT varID, BSTR *pszHelp) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszHelp); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accHelpTopic(IAccessible *iface, + BSTR *pszHelpFile, VARIANT varID, LONG *pidTopic) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p %s %p)\n", This, pszHelpFile, debugstr_variant(&varID), pidTopic); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accKeyboardShortcut(IAccessible *iface, + VARIANT varID, BSTR *pszKeyboardShortcut) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszKeyboardShortcut); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accFocus(IAccessible *iface, VARIANT *pvarID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p)\n", This, pvarID); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accSelection(IAccessible *iface, VARIANT *pvarID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p)\n", This, pvarID); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_get_accDefaultAction(IAccessible *iface, + VARIANT varID, BSTR *pszDefaultAction) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(&varID), pszDefaultAction); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_accSelect(IAccessible *iface, LONG flagsSelect, VARIANT varID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%x %s)\n", This, flagsSelect, debugstr_variant(&varID)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_accLocation(IAccessible *iface, LONG *pxLeft, + LONG *pyTop, LONG *pcxWidth, LONG *pcyHeight, VARIANT varID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%p %p %p %p %s)\n", This, pxLeft, pyTop, + pcxWidth, pcyHeight, debugstr_variant(&varID)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_accNavigate(IAccessible *iface, + LONG navDir, VARIANT varStart, VARIANT *pvarEnd) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%d %s %p)\n", This, navDir, debugstr_variant(&varStart), pvarEnd); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_accHitTest(IAccessible *iface, + LONG xLeft, LONG yTop, VARIANT *pvarID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%d %d %p)\n", This, xLeft, yTop, pvarID); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_accDoDefaultAction(IAccessible *iface, VARIANT varID) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s)\n", This, debugstr_variant(&varID)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_put_accName(IAccessible *iface, VARIANT varID, BSTR pszName) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %s)\n", This, debugstr_variant(&varID), debugstr_w(pszName)); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_put_accValue(IAccessible *iface, VARIANT varID, BSTR pszValue) +{ + Window *This = impl_from_Window(iface); + FIXME("(%p)->(%s %s)\n", This, debugstr_variant(&varID), debugstr_w(pszValue)); + return E_NOTIMPL; +} + +static const IAccessibleVtbl WindowVtbl = { + Window_QueryInterface, + Window_AddRef, + Window_Release, + Window_GetTypeInfoCount, + Window_GetTypeInfo, + Window_GetIDsOfNames, + Window_Invoke, + Window_get_accParent, + Window_get_accChildCount, + Window_get_accChild, + Window_get_accName, + Window_get_accValue, + Window_get_accDescription, + Window_get_accRole, + Window_get_accState, + Window_get_accHelp, + Window_get_accHelpTopic, + Window_get_accKeyboardShortcut, + Window_get_accFocus, + Window_get_accSelection, + Window_get_accDefaultAction, + Window_accSelect, + Window_accLocation, + Window_accNavigate, + Window_accHitTest, + Window_accDoDefaultAction, + Window_put_accName, + Window_put_accValue +}; + +static inline Window* impl_from_Window_OleWindow(IOleWindow *iface) +{ + return CONTAINING_RECORD(iface, Window, IOleWindow_iface); +} + +static HRESULT WINAPI Window_OleWindow_QueryInterface(IOleWindow *iface, REFIID riid, void **ppv) +{ + Window *This = impl_from_Window_OleWindow(iface); + return IAccessible_QueryInterface(&This->IAccessible_iface, riid, ppv); +} + +static ULONG WINAPI Window_OleWindow_AddRef(IOleWindow *iface) +{ + Window *This = impl_from_Window_OleWindow(iface); + return IAccessible_AddRef(&This->IAccessible_iface); +} + +static ULONG WINAPI Window_OleWindow_Release(IOleWindow *iface) +{ + Window *This = impl_from_Window_OleWindow(iface); + return IAccessible_Release(&This->IAccessible_iface); +} + +static HRESULT WINAPI Window_OleWindow_GetWindow(IOleWindow *iface, HWND *phwnd) +{ + Window *This = impl_from_Window_OleWindow(iface); + FIXME("(%p)->(%p)\n", This, phwnd); + return E_NOTIMPL; +} + +static HRESULT WINAPI Window_OleWindow_ContextSensitiveHelp(IOleWindow *iface, BOOL fEnterMode) +{ + Window *This = impl_from_Window_OleWindow(iface); + FIXME("(%p)->(%x)\n", This, fEnterMode); + return E_NOTIMPL; +} + +static const IOleWindowVtbl WindowOleWindowVtbl = { + Window_OleWindow_QueryInterface, + Window_OleWindow_AddRef, + Window_OleWindow_Release, + Window_OleWindow_GetWindow, + Window_OleWindow_ContextSensitiveHelp +}; + +HRESULT create_window_object(HWND hwnd, const IID *iid, void **obj) +{ + Window *window; + HRESULT hres; + + if(!IsWindow(hwnd)) + return E_FAIL; + + window = heap_alloc_zero(sizeof(Window)); + if(!window) + return E_OUTOFMEMORY; + + window->IAccessible_iface.lpVtbl = &WindowVtbl; + window->IOleWindow_iface.lpVtbl = &WindowOleWindowVtbl; + window->ref = 1; + + hres = IAccessible_QueryInterface(&window->IAccessible_iface, iid, obj); + IAccessible_Release(&window->IAccessible_iface); + return hres; +} diff -Nru wine1.7-1.7.18/dlls/oleaut32/tests/olefont.c wine1.7-1.7.19/dlls/oleaut32/tests/olefont.c --- wine1.7-1.7.18/dlls/oleaut32/tests/olefont.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleaut32/tests/olefont.c 2014-05-16 19:06:48.000000000 +0000 @@ -412,10 +412,12 @@ IConnectionPoint_Release(pCP); fonteventsdisp_invoke_called = 0; + fonteventsdisp_invoke_arg0 = NULL; hr = IFont_put_Bold(pFont, TRUE); EXPECT_HR(hr, S_OK); ok(fonteventsdisp_invoke_called == 1, "IFontEventDisp::Invoke wasn't called once\n"); + SysFreeString(fonteventsdisp_invoke_arg0); hr = IFont_QueryInterface(pFont, &IID_IFontDisp, (void **)&pFontDisp); EXPECT_HR(hr, S_OK); diff -Nru wine1.7-1.7.18/dlls/oleaut32/tests/vartest.c wine1.7-1.7.19/dlls/oleaut32/tests/vartest.c --- wine1.7-1.7.18/dlls/oleaut32/tests/vartest.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleaut32/tests/vartest.c 2014-05-16 19:06:48.000000000 +0000 @@ -5611,6 +5611,7 @@ VARTYPE leftvt, rightvt, resultvt; HRESULT hres; HRESULT expected_error_num; + int cmp; CHECKPTR(VarCat); @@ -5952,7 +5953,11 @@ V_BSTR(&right) = SysAllocStringLen(NULL,0); hres = pVarCat(&left, &right, &result); ok(hres == S_OK, "VarCat failed: %08x\n", hres); - if(!strcmp_wa(V_BSTR(&result), "True")) { + VariantClear(&right); + + cmp = strcmp_wa(V_BSTR(&result), "True"); + VariantClear(&result); + if(!cmp) { V_VT(&right) = VT_BOOL; V_BOOL(&right) = 100; hres = pVarCat(&left, &right, &result); diff -Nru wine1.7-1.7.18/dlls/oleaut32/varformat.c wine1.7-1.7.19/dlls/oleaut32/varformat.c --- wine1.7-1.7.18/dlls/oleaut32/varformat.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleaut32/varformat.c 2014-05-16 19:06:48.000000000 +0000 @@ -1201,9 +1201,8 @@ const BYTE* pToken = NULL; HRESULT hRes = S_OK; - TRACE("(%p->(%s%s),%s,%p,0x%08x,%p,0x%08x)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), debugstr_w(lpszFormat), rgbTok, dwFlags, pbstrOut, - lcid); + TRACE("(%s,%s,%p,0x%08x,%p,0x%08x)\n", debugstr_variant(pVarIn), debugstr_w(lpszFormat), + rgbTok, dwFlags, pbstrOut, lcid); V_VT(&vString) = VT_EMPTY; V_VT(&vBool) = VT_BOOL; @@ -1612,9 +1611,8 @@ const BYTE* pToken = NULL; HRESULT hRes; - TRACE("(%p->(%s%s),%s,%p,0x%08x,%p,0x%08x)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), debugstr_w(lpszFormat), rgbTok, dwFlags, pbstrOut, - lcid); + TRACE("(%s,%s,%p,0x%08x,%p,0x%08x)\n", debugstr_variant(pVarIn), + debugstr_w(lpszFormat), rgbTok, dwFlags, pbstrOut, lcid); V_VT(&vDate) = VT_EMPTY; @@ -1954,9 +1952,8 @@ BOOL bUpper = FALSE; HRESULT hRes = S_OK; - TRACE("(%p->(%s%s),%s,%p,0x%08x,%p,0x%08x)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), debugstr_w(lpszFormat), rgbTok, dwFlags, pbstrOut, - lcid); + TRACE("%s,%s,%p,0x%08x,%p,0x%08x)\n", debugstr_variant(pVarIn), debugstr_w(lpszFormat), + rgbTok, dwFlags, pbstrOut, lcid); V_VT(&vStr) = VT_EMPTY; @@ -2168,9 +2165,8 @@ BYTE buff[256]; HRESULT hres; - TRACE("(%p->(%s%s),%s,%d,%d,0x%08x,%p)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), debugstr_w(lpszFormat), nFirstDay, nFirstWeek, - dwFlags, pbstrOut); + TRACE("(%s,%s,%d,%d,0x%08x,%p)\n", debugstr_variant(pVarIn), debugstr_w(lpszFormat), + nFirstDay, nFirstWeek, dwFlags, pbstrOut); if (!pbstrOut) return E_INVALIDARG; @@ -2219,8 +2215,7 @@ static WCHAR szEmpty[] = { '\0' }; const BYTE* lpFmt = NULL; - TRACE("(%p->(%s%s),%d,0x%08x,%p)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), nFormat, dwFlags, pbstrOut); + TRACE("%s,%d,0x%08x,%p)\n", debugstr_variant(pVarIn), nFormat, dwFlags, pbstrOut); if (!pVarIn || !pbstrOut || nFormat < 0 || nFormat > 4) return E_INVALIDARG; @@ -2272,8 +2267,8 @@ HRESULT hRet; VARIANT vStr; - TRACE("(%p->(%s%s),%d,%d,%d,%d,0x%08x,%p)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), nDigits, nLeading, nParens, nGrouping, dwFlags, pbstrOut); + TRACE("(%s,%d,%d,%d,%d,0x%08x,%p)\n", debugstr_variant(pVarIn), nDigits, nLeading, + nParens, nGrouping, dwFlags, pbstrOut); if (!pVarIn || !pbstrOut || nDigits > 9) return E_INVALIDARG; @@ -2383,9 +2378,8 @@ HRESULT hRet; VARIANT vDbl; - TRACE("(%p->(%s%s),%d,%d,%d,%d,0x%08x,%p)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), nDigits, nLeading, nParens, nGrouping, - dwFlags, pbstrOut); + TRACE("(%s,%d,%d,%d,%d,0x%08x,%p)\n", debugstr_variant(pVarIn), nDigits, nLeading, + nParens, nGrouping, dwFlags, pbstrOut); if (!pVarIn || !pbstrOut || nDigits > 9) return E_INVALIDARG; @@ -2457,8 +2451,8 @@ HRESULT hRet; VARIANT vStr; - TRACE("(%p->(%s%s),%d,%d,%d,%d,0x%08x,%p)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), nDigits, nLeading, nParens, nGrouping, dwFlags, pbstrOut); + TRACE("(%s,%d,%d,%d,%d,0x%08x,%p)\n", debugstr_variant(pVarIn), nDigits, nLeading, + nParens, nGrouping, dwFlags, pbstrOut); if (!pVarIn || !pbstrOut || nDigits > 9) return E_INVALIDARG; diff -Nru wine1.7-1.7.18/dlls/oleaut32/variant.c wine1.7-1.7.19/dlls/oleaut32/variant.c --- wine1.7-1.7.18/dlls/oleaut32/variant.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleaut32/variant.c 2014-05-16 19:06:48.000000000 +0000 @@ -78,6 +78,41 @@ "|VT_VECTOR|VT_ARRAY|VT_BYREF|VT_HARDTYPE", }; +const char *debugstr_variant(const VARIANT *v) +{ + if(!v) + return "(null)"; + + switch(V_VT(v)) { + case VT_EMPTY: + return wine_dbg_sprintf("%p {VT_EMPTY}", v); + case VT_NULL: + return wine_dbg_sprintf("%p {VT_NULL}", v); + case VT_I1: + return wine_dbg_sprintf("%p {VT_I1: %d}", v, V_I1(v)); + case VT_I2: + return wine_dbg_sprintf("%p {VT_I2: %d}", v, V_I2(v)); + case VT_I4: + return wine_dbg_sprintf("%p {VT_I4: %d}", v, V_I4(v)); + case VT_R4: + return wine_dbg_sprintf("%p {VT_R4: %f}", v, V_R4(v)); + case VT_R8: + return wine_dbg_sprintf("%p {VT_R8: %lf}", v, V_R8(v)); + case VT_BSTR: + return wine_dbg_sprintf("%p {VT_BSTR: %s}", v, debugstr_w(V_BSTR(v))); + case VT_DISPATCH: + return wine_dbg_sprintf("%p {VT_DISPATCH: %p}", v, V_DISPATCH(v)); + case VT_ERROR: + return wine_dbg_sprintf("%p {VT_ERROR: %08x}", v, V_ERROR(v)); + case VT_BOOL: + return wine_dbg_sprintf("%p {VT_BOOL: %x}", v, V_BOOL(v)); + case VT_UINT: + return wine_dbg_sprintf("%p {VT_UINT: %u}", v, V_UINT(v)); + default: + return wine_dbg_sprintf("%p {vt %s%s}", v, debugstr_VT(v), debugstr_VF(v)); + } +} + /* Convert a variant from one type to another */ static inline HRESULT VARIANT_Coerce(VARIANTARG* pd, LCID lcid, USHORT wFlags, VARIANTARG* ps, VARTYPE vt) @@ -86,9 +121,8 @@ VARTYPE vtFrom = V_TYPE(ps); DWORD dwFlags = 0; - TRACE("(%p->(%s%s),0x%08x,0x%04x,%p->(%s%s),%s%s)\n", pd, debugstr_VT(pd), - debugstr_VF(pd), lcid, wFlags, ps, debugstr_VT(ps), debugstr_VF(ps), - debugstr_vt(vt), debugstr_vf(vt)); + TRACE("(%s,0x%08x,0x%04x,%s,%s%s)\n", debugstr_variant(pd), lcid, wFlags, + debugstr_variant(ps), debugstr_vt(vt), debugstr_vf(vt)); if (vt == VT_BSTR || vtFrom == VT_BSTR) { @@ -583,7 +617,7 @@ { HRESULT hres; - TRACE("(%p->(%s%s))\n", pVarg, debugstr_VT(pVarg), debugstr_VF(pVarg)); + TRACE("(%s)\n", debugstr_variant(pVarg)); hres = VARIANT_ValidateType(V_VT(pVarg)); if (FAILED(hres)) @@ -655,7 +689,7 @@ { HRESULT hres; - TRACE("(%p->(%s%s))\n", pVarg, debugstr_VT(pVarg), debugstr_VF(pVarg)); + TRACE("(%s)\n", debugstr_variant(pVarg)); hres = VARIANT_ValidateType(V_VT(pVarg)); @@ -755,9 +789,7 @@ { HRESULT hres = S_OK; - TRACE("(%p->(%s%s),%p->(%s%s))\n", pvargDest, debugstr_VT(pvargDest), - debugstr_VF(pvargDest), pvargSrc, debugstr_VT(pvargSrc), - debugstr_VF(pvargSrc)); + TRACE("(%s,%s)\n", debugstr_variant(pvargDest), debugstr_variant(pvargSrc)); if (V_TYPE(pvargSrc) == VT_CLSID || /* VT_CLSID is a special case */ FAILED(VARIANT_ValidateType(V_VT(pvargSrc)))) @@ -820,7 +852,7 @@ case VT_CY: return sizeof(CY); case VT_ERROR: return sizeof(SCODE); } - TRACE("Shouldn't be called for vt %s%s!\n", debugstr_VT(pv), debugstr_VF(pv)); + TRACE("Shouldn't be called for variant %s!\n", debugstr_variant(pv)); return 0; } @@ -858,9 +890,7 @@ VARTYPE vt; HRESULT hres = S_OK; - TRACE("(%p->(%s%s),%p->(%s%s))\n", pvargDest, debugstr_VT(pvargDest), - debugstr_VF(pvargDest), pvargSrc, debugstr_VT(pvargSrc), - debugstr_VF(pvargSrc)); + TRACE("(%s,%s)\n", debugstr_variant(pvargDest), debugstr_variant(pvargSrc)); if (!V_ISBYREF(pvargSrc)) return VariantCopy(pvargDest, pvargSrc); @@ -946,8 +976,7 @@ if (pSrc != pvargSrc) VariantClear(pSrc); - TRACE("returning 0x%08x, %p->(%s%s)\n", hres, pvargDest, - debugstr_VT(pvargDest), debugstr_VF(pvargDest)); + TRACE("returning 0x%08x, %s\n", hres, debugstr_variant(pvargDest)); return hres; } @@ -1001,10 +1030,8 @@ { HRESULT res = S_OK; - TRACE("(%p->(%s%s),%p->(%s%s),0x%08x,0x%04x,%s%s)\n", pvargDest, - debugstr_VT(pvargDest), debugstr_VF(pvargDest), pvargSrc, - debugstr_VT(pvargSrc), debugstr_VF(pvargSrc), lcid, wFlags, - debugstr_vt(vt), debugstr_vf(vt)); + TRACE("(%s,%s,0x%08x,0x%04x,%s%s)\n", debugstr_variant(pvargDest), + debugstr_variant(pvargSrc), lcid, wFlags, debugstr_vt(vt), debugstr_vf(vt)); if (vt == VT_CLSID) res = DISP_E_BADVARTYPE; @@ -1052,8 +1079,7 @@ } } - TRACE("returning 0x%08x, %p->(%s%s)\n", res, pvargDest, - debugstr_VT(pvargDest), debugstr_VF(pvargDest)); + TRACE("returning 0x%08x, %s\n", res, debugstr_variant(pvargDest)); return res; } @@ -2533,8 +2559,7 @@ leftvt = V_VT(left); rightvt = V_VT(right); - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", left, debugstr_VT(left), - debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right), out); + TRACE("%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), out); if (!str_true[0]) { VARIANT_GetLocalisedText(LOCALE_USER_DEFAULT, IDS_FALSE, str_false); @@ -2777,8 +2802,7 @@ DWORD xmask; HRESULT rc; - TRACE("(%p->(%s%s),%p->(%s%s),0x%08x,0x%08x)\n", left, debugstr_VT(left), - debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right), lcid, flags); + TRACE("(%s,%s,0x%08x,0x%08x)\n", debugstr_variant(left), debugstr_variant(right), lcid, flags); lvt = V_VT(left) & VT_TYPEMASK; rvt = V_VT(right) & VT_TYPEMASK; @@ -2982,8 +3006,7 @@ VariantInit(&tempLeft); VariantInit(&tempRight); - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", left, debugstr_VT(left), - debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right), result); + TRACE("(%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), result); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(left) & VT_TYPEMASK) == VT_DISPATCH) @@ -3237,9 +3260,7 @@ vt_ERROR, vt_ERROR, vt_UI1, vt_ERROR, vt_ERROR, vt_I8 }; - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", left, debugstr_VT(left), - debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right), - result); + TRACE("(%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), result); VariantInit(&lv); VariantInit(&rv); @@ -3393,7 +3414,7 @@ VariantClear(&tv); VariantClear(&tempLeft); VariantClear(&tempRight); - TRACE("returning 0x%8x (variant type %s)\n", hres, debugstr_VT(result)); + TRACE("returning 0x%8x %s\n", hres, debugstr_variant(result)); return hres; } @@ -3450,9 +3471,7 @@ vt_ERROR, vt_ERROR, vt_UI1, vt_ERROR, vt_ERROR, vt_I8 }; - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", left, debugstr_VT(left), - debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right), - result); + TRACE("(%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), result); VariantInit(&lv); VariantInit(&rv); @@ -3584,7 +3603,7 @@ VariantClear(&tv); VariantClear(&tempLeft); VariantClear(&tempRight); - TRACE("returning 0x%8x (variant type %s)\n", hres, debugstr_VT(result)); + TRACE("returning 0x%8x %s\n", hres, debugstr_variant(result)); return hres; } @@ -3616,8 +3635,7 @@ VariantInit(&lv); VariantInit(&rv); - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", left, debugstr_VT(left), - debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right), result); + TRACE("(%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), result); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(left) & VT_TYPEMASK) == VT_DISPATCH) @@ -3747,7 +3765,7 @@ VariantClear(&rv); VariantClear(&tempLeft); VariantClear(&tempRight); - TRACE("returning 0x%8x (variant type %s)\n", hres, debugstr_VT(result)); + TRACE("returning 0x%8x %s\n", hres, debugstr_variant(result)); return hres; } @@ -3779,8 +3797,7 @@ VariantInit(&tempLeft); VariantInit(&tempRight); - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", left, debugstr_VT(left), - debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right), result); + TRACE("(%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), result); if ((V_VT(left) & VT_TYPEMASK) == VT_DISPATCH && (V_VT(left)&(~VT_TYPEMASK)) == 0 && @@ -4014,7 +4031,7 @@ VariantClear(&rv); VariantClear(&tempLeft); VariantClear(&tempRight); - TRACE("returning 0x%8x (variant type %s)\n", hres, debugstr_VT(result)); + TRACE("returning 0x%8x %s\n", hres, debugstr_variant(result)); return hres; } @@ -4050,9 +4067,7 @@ VariantInit(&varRight); VariantInit(&varStr); - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", pVarLeft, debugstr_VT(pVarLeft), - debugstr_VF(pVarLeft), pVarRight, debugstr_VT(pVarRight), - debugstr_VF(pVarRight), pVarOut); + TRACE("(%s,%s,%p)\n", debugstr_variant(pVarLeft), debugstr_variant(pVarRight), pVarOut); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(pVarLeft) & VT_TYPEMASK) == VT_DISPATCH) @@ -4359,8 +4374,7 @@ VariantInit(&temp); - TRACE("(%p->(%s%s),%p)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), pVarOut); + TRACE("(%s,%p)\n", debugstr_variant(pVarIn), pVarOut); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(pVarIn) & VT_TYPEMASK) == VT_DISPATCH && ((V_VT(pVarIn) & ~VT_TYPEMASK) == 0)) @@ -4463,8 +4477,7 @@ VariantInit(&temp); - TRACE("(%p->(%s%s),%p)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), pVarOut); + TRACE("(%s,%p)\n", debugstr_variant(pVarIn), pVarOut); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(pVarIn) & VT_TYPEMASK) == VT_DISPATCH && ((V_VT(pVarIn) & ~VT_TYPEMASK) == 0)) @@ -4570,8 +4583,7 @@ VariantInit(&temp); - TRACE("(%p->(%s%s),%p)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), pVarOut); + TRACE("(%s,%p)\n", debugstr_variant(pVarIn), pVarOut); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(pVarIn) & VT_TYPEMASK) == VT_DISPATCH && ((V_VT(pVarIn) & ~VT_TYPEMASK) == 0)) @@ -4645,9 +4657,7 @@ double d; HRESULT hRet; - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", pVarLeft, debugstr_VT(pVarLeft), - debugstr_VF(pVarLeft), pVarRight, debugstr_VT(pVarRight), - debugstr_VF(pVarRight), pVarOut); + TRACE("(%s,%s,%p)\n", debugstr_variant(pVarLeft), debugstr_variant(pVarRight), pVarOut); if (V_EXTRA_TYPE(pVarLeft) || V_EXTRA_TYPE(pVarRight) || V_VT(pVarLeft) > VT_UINT || V_VT(pVarRight) > VT_UINT || @@ -4824,9 +4834,7 @@ { HRESULT hRet; - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", pVarLeft, debugstr_VT(pVarLeft), - debugstr_VF(pVarLeft), pVarRight, debugstr_VT(pVarRight), - debugstr_VF(pVarRight), pVarOut); + TRACE("(%s,%s,%p)\n", debugstr_variant(pVarLeft), debugstr_variant(pVarRight), pVarOut); hRet = VarXor(pVarLeft, pVarRight, pVarOut); if (SUCCEEDED(hRet)) @@ -4883,8 +4891,7 @@ VariantInit(&temp); - TRACE("(%p->(%s%s),%p)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), pVarOut); + TRACE("(%s,%p)\n", debugstr_variant(pVarIn), pVarOut); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(pVarIn) & VT_TYPEMASK) == VT_DISPATCH && ((V_VT(pVarIn) & ~VT_TYPEMASK) == 0)) @@ -5013,8 +5020,7 @@ VariantInit(&temp); - TRACE("(%p->(%s%s),%p)\n", pVarIn, debugstr_VT(pVarIn), - debugstr_VF(pVarIn), pVarOut); + TRACE("(%s,%p)\n", debugstr_variant(pVarIn), pVarOut); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(pVarIn) & VT_TYPEMASK) == VT_DISPATCH && ((V_VT(pVarIn) & ~VT_TYPEMASK) == 0)) @@ -5138,7 +5144,7 @@ VariantInit(&temp); - TRACE("(%p->(%s%s),%d)\n", pVarIn, debugstr_VT(pVarIn), debugstr_VF(pVarIn), deci); + TRACE("(%s,%d)\n", debugstr_variant(pVarIn), deci); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(pVarIn) & VT_TYPEMASK) == VT_DISPATCH && ((V_VT(pVarIn) & ~VT_TYPEMASK) == 0)) @@ -5243,10 +5249,7 @@ V_VT(pVarOut) = VT_EMPTY; VariantClear(&temp); - TRACE("returning 0x%08x (%s%s),%f\n", hRet, debugstr_VT(pVarOut), - debugstr_VF(pVarOut), (V_VT(pVarOut) == VT_R4) ? V_R4(pVarOut) : - (V_VT(pVarOut) == VT_R8) ? V_R8(pVarOut) : 0); - + TRACE("returning 0x%08x %s\n", hRet, debugstr_variant(pVarOut)); return hRet; } @@ -5276,8 +5279,7 @@ VARIANT lv,rv; VARIANT tempLeft, tempRight; - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", left, debugstr_VT(left), - debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right), result); + TRACE("(%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), result); VariantInit(&lv); VariantInit(&rv); @@ -5435,8 +5437,7 @@ VariantInit(&lv); VariantInit(&rv); - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", left, debugstr_VT(left), - debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right), result); + TRACE("(%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), result); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(left) & VT_TYPEMASK) == VT_DISPATCH) @@ -5674,8 +5675,7 @@ VARTYPE rightExtraFlags,leftExtraFlags,ExtraFlags; VARIANT tempLeft, tempRight; - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", left, debugstr_VT(left), debugstr_VF(left), - right, debugstr_VT(right), debugstr_VF(right), result); + TRACE("(%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), result); VariantInit(&dl); VariantInit(&dr); @@ -5795,8 +5795,7 @@ VariantInit(&tempLeft); VariantInit(&tempRight); - TRACE("(%p->(%s%s),%p->(%s%s),%p)\n", left, debugstr_VT(left), - debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right), result); + TRACE("(%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), result); /* Handle VT_DISPATCH by storing and taking address of returned value */ if ((V_VT(left) & VT_TYPEMASK) == VT_DISPATCH) diff -Nru wine1.7-1.7.18/dlls/oleaut32/variant.h wine1.7-1.7.19/dlls/oleaut32/variant.h --- wine1.7-1.7.18/dlls/oleaut32/variant.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oleaut32/variant.h 2014-05-16 19:06:48.000000000 +0000 @@ -57,6 +57,8 @@ #define debugstr_vf(v) (wine_vflags[((v)&VT_EXTRA_TYPE)>>12]) #define debugstr_VF(v) (!(v) ? "(null)" : debugstr_vf(V_EXTRA_TYPE(v))) +const char *debugstr_variant(const VARIANT*) DECLSPEC_HIDDEN; + /* Size constraints */ #define I1_MAX 0x7f #define I1_MIN ((-I1_MAX)-1) diff -Nru wine1.7-1.7.18/dlls/oledb32/datainit.c wine1.7-1.7.19/dlls/oledb32/datainit.c --- wine1.7-1.7.18/dlls/oledb32/datainit.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oledb32/datainit.c 2014-05-16 19:06:48.000000000 +0000 @@ -205,7 +205,7 @@ dbinit_Uninitialize }; -static HRESULT create_db_init(void **obj) +static HRESULT create_db_init(IUnknown **obj) { dbinit *This; @@ -220,7 +220,7 @@ This->IDBProperties_iface.lpVtbl = &dbprops_vtbl; This->ref = 1; - *obj = &This->IDBInitialize_iface; + *obj = (IUnknown*)&This->IDBInitialize_iface; return S_OK; } @@ -512,7 +512,7 @@ hr = CoCreateInstance(&provclsid, outer, clsctx, riid, (void**)datasource); if (FAILED(hr) && IsEqualIID(riid, &IID_IDBInitialize)) - hr = create_db_init((void**)datasource); + hr = create_db_init(datasource); } /* now set properties */ @@ -555,7 +555,7 @@ hr = set_dbpropset(name, value, &propset); SysFreeString(name); SysFreeString(value); - if (FAILED(hr)) return hr; + if (FAILED(hr)) break; hr = IDBProperties_SetProperties(dbprops, 1, propset); free_dbpropset(1, propset); diff -Nru wine1.7-1.7.18/dlls/oledb32/tests/database.c wine1.7-1.7.19/dlls/oledb32/tests/database.c --- wine1.7-1.7.18/dlls/oledb32/tests/database.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oledb32/tests/database.c 2014-05-16 19:06:48.000000000 +0000 @@ -29,7 +29,6 @@ #include "ole2.h" #include "msdadc.h" #include "msdasc.h" -#include "shlobj.h" #include "msdaguid.h" #include "initguid.h" #include "oledberr.h" @@ -56,14 +55,6 @@ if(SUCCEEDED(hr)) { IDBProperties *props = NULL; - IMalloc *ppM = NULL; - - hr = SHGetMalloc(&ppM); - if (FAILED(hr)) - { - ok(0, "Couldn't get IMalloc object.\n"); - goto end; - } hr = IDBInitialize_QueryInterface(dbinit, &IID_IDBProperties, (void**)&props); ok(hr == S_OK, "got %08x\n", hr); @@ -84,15 +75,12 @@ pInfoset->rgPropertyInfos[i].vtType); } - IMalloc_Free(ppM, ary); + CoTaskMemFree(ary); } IDBProperties_Release(props); } - IMalloc_Release(ppM); - -end: IDBInitialize_Release(dbinit); } diff -Nru wine1.7-1.7.18/dlls/oledb32/tests/Makefile.in wine1.7-1.7.19/dlls/oledb32/tests/Makefile.in --- wine1.7-1.7.18/dlls/oledb32/tests/Makefile.in 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/oledb32/tests/Makefile.in 2014-05-16 19:06:48.000000000 +0000 @@ -1,5 +1,5 @@ TESTDLL = oledb32.dll -IMPORTS = uuid shell32 oleaut32 ole32 user32 gdi32 advapi32 +IMPORTS = uuid oleaut32 ole32 user32 gdi32 advapi32 C_SRCS = \ convert.c \ diff -Nru wine1.7-1.7.18/dlls/quartz/avisplit.c wine1.7-1.7.19/dlls/quartz/avisplit.c --- wine1.7-1.7.18/dlls/quartz/avisplit.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/quartz/avisplit.c 2014-05-16 19:06:48.000000000 +0000 @@ -820,7 +820,7 @@ TRACE("dwChunkId: %.4s\n", (const char *)&pIndex->dwChunkId); if (pIndex->dwReserved[0]) TRACE("dwReserved[0]: %u\n", pIndex->dwReserved[0]); - if (pIndex->dwReserved[2]) + if (pIndex->dwReserved[1]) TRACE("dwReserved[1]: %u\n", pIndex->dwReserved[1]); if (pIndex->dwReserved[2]) TRACE("dwReserved[2]: %u\n", pIndex->dwReserved[2]); diff -Nru wine1.7-1.7.18/dlls/sane.ds/sane_main.c wine1.7-1.7.19/dlls/sane.ds/sane_main.c --- wine1.7-1.7.18/dlls/sane.ds/sane_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/sane.ds/sane_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -30,10 +30,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(twain); -HINSTANCE SANE_instance; - #ifdef SONAME_LIBSANE +HINSTANCE SANE_instance; + static void *libsane_handle; static void close_libsane(void *h) @@ -79,8 +79,6 @@ return h; } -#endif /* SONAME_LIBSANE */ - BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { TRACE("%p,%x,%p\n", hinstDLL, fdwReason, lpvReserved); @@ -88,7 +86,6 @@ switch (fdwReason) { case DLL_PROCESS_ATTACH: { -#ifdef SONAME_LIBSANE SANE_Int version_code; libsane_handle = open_libsane(); @@ -96,28 +93,25 @@ return FALSE; psane_init (&version_code, NULL); -#endif SANE_instance = hinstDLL; DisableThreadLibraryCalls(hinstDLL); break; } case DLL_PROCESS_DETACH: if (lpvReserved) break; -#ifdef SONAME_LIBSANE TRACE("calling sane_exit()\n"); psane_exit (); close_libsane(libsane_handle); -#endif break; } return TRUE; } -#ifdef SONAME_LIBSANE static TW_UINT16 SANE_GetIdentity( pTW_IDENTITY, pTW_IDENTITY); static TW_UINT16 SANE_OpenDS( pTW_IDENTITY, pTW_IDENTITY); -#endif + +#endif /* SONAME_LIBSANE */ static TW_UINT16 SANE_SourceControlHandler ( pTW_IDENTITY pOrigin, diff -Nru wine1.7-1.7.18/dlls/scrrun/filesystem.c wine1.7-1.7.19/dlls/scrrun/filesystem.c --- wine1.7-1.7.18/dlls/scrrun/filesystem.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/scrrun/filesystem.c 2014-05-16 19:06:48.000000000 +0000 @@ -2721,9 +2721,6 @@ return E_FAIL; } - if(path[len-1]=='/' || path[len-1]=='\\') - path[len-1] = 0; - attrs = GetFileAttributesW(f->path); if(attrs==INVALID_FILE_ATTRIBUTES || (attrs&(FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_DEVICE))) { @@ -3657,11 +3654,15 @@ } ret = VerQueryValueW(ptr, rootW, (void**)&info, &len); - heap_free(ptr); if (!ret) + { + heap_free(ptr); return HRESULT_FROM_WIN32(GetLastError()); + } get_versionstring(info, ver); + heap_free(ptr); + *version = SysAllocString(ver); TRACE("version=%s\n", debugstr_w(ver)); diff -Nru wine1.7-1.7.18/dlls/scrrun/tests/filesystem.c wine1.7-1.7.19/dlls/scrrun/tests/filesystem.c --- wine1.7-1.7.18/dlls/scrrun/tests/filesystem.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/scrrun/tests/filesystem.c 2014-05-16 19:06:48.000000000 +0000 @@ -45,6 +45,15 @@ #define GET_REFCOUNT(iface) \ get_refcount((IUnknown*)iface) +static inline void get_temp_path(const WCHAR *prefix, WCHAR *path) +{ + WCHAR buffW[MAX_PATH]; + + GetTempPathW(MAX_PATH, buffW); + GetTempFileNameW(buffW, prefix, 0, path); + DeleteFileW(path); +} + static void test_interfaces(void) { static const WCHAR nonexistent_dirW[] = { @@ -129,15 +138,13 @@ static void test_createfolder(void) { - WCHAR pathW[MAX_PATH], buffW[MAX_PATH]; + WCHAR buffW[MAX_PATH]; HRESULT hr; BSTR path; IFolder *folder; BOOL ret; - GetTempPathW(MAX_PATH, pathW); - GetTempFileNameW(pathW, NULL, 0, buffW); - DeleteFileW(buffW); + get_temp_path(NULL, buffW); ret = CreateDirectoryW(buffW, NULL); ok(ret, "got %d, %d\n", ret, GetLastError()); @@ -528,33 +535,31 @@ static void test_GetFile(void) { - static const WCHAR get_file[] = {'g','e','t','_','f','i','l','e','.','t','s','t',0}; - - BSTR path = SysAllocString(get_file); + static const WCHAR slW[] = {'\\',0}; + BSTR path; + WCHAR pathW[MAX_PATH]; FileAttribute fa; VARIANT size; DWORD gfa; IFile *file; HRESULT hr; HANDLE hf; + BOOL ret; + get_temp_path(NULL, pathW); + + path = SysAllocString(pathW); hr = IFileSystem3_GetFile(fs3, path, NULL); ok(hr == E_POINTER, "GetFile returned %x, expected E_POINTER\n", hr); hr = IFileSystem3_GetFile(fs3, NULL, &file); ok(hr == E_INVALIDARG, "GetFile returned %x, expected E_INVALIDARG\n", hr); - if(GetFileAttributesW(path) != INVALID_FILE_ATTRIBUTES) { - skip("File already exists, skipping GetFile tests\n"); - SysFreeString(path); - return; - } - file = (IFile*)0xdeadbeef; hr = IFileSystem3_GetFile(fs3, path, &file); ok(!file, "file != NULL\n"); ok(hr == CTL_E_FILENOTFOUND, "GetFile returned %x, expected CTL_E_FILENOTFOUND\n", hr); - hf = CreateFileW(path, GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_READONLY, NULL); + hf = CreateFileW(pathW, GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_READONLY, NULL); if(hf == INVALID_HANDLE_VALUE) { skip("Can't create temporary file\n"); SysFreeString(path); @@ -566,7 +571,7 @@ ok(hr == S_OK, "GetFile returned %x, expected S_OK\n", hr); hr = IFile_get_Attributes(file, &fa); - gfa = GetFileAttributesW(get_file) & (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | + gfa = GetFileAttributesW(pathW) & (FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_REPARSE_POINT | FILE_ATTRIBUTE_COMPRESSED); ok(hr == S_OK, "get_Attributes returned %x, expected S_OK\n", hr); @@ -589,6 +594,18 @@ ok(hr == CTL_E_FILENOTFOUND, "DeleteFile returned %x, expected CTL_E_FILENOTFOUND\n", hr); SysFreeString(path); + + /* try with directory */ + lstrcatW(pathW, slW); + ret = CreateDirectoryW(pathW, NULL); + ok(ret, "got %d, error %d\n", ret, GetLastError()); + + path = SysAllocString(pathW); + hr = IFileSystem3_GetFile(fs3, path, &file); + ok(hr == CTL_E_FILENOTFOUND, "GetFile returned %x, expected S_OK\n", hr); + SysFreeString(path); + + RemoveDirectoryW(pathW); } static inline BOOL create_file(const WCHAR *name) @@ -858,9 +875,7 @@ BSTR str; int found_a = 0, found_b = 0, found_c = 0; - GetTempPathW(MAX_PATH, pathW); - GetTempFileNameW(pathW, fooW, 0, buffW); - DeleteFileW(buffW); + get_temp_path(fooW, buffW); CreateDirectoryW(buffW, NULL); str = SysAllocString(buffW); @@ -1042,9 +1057,7 @@ HANDLE file_a, file_b, file_c; int found_a = 0, found_b = 0, found_c = 0; - GetTempPathW(MAX_PATH, pathW); - GetTempFileNameW(pathW, fooW, 0, buffW); - DeleteFileW(buffW); + get_temp_path(fooW, buffW); CreateDirectoryW(buffW, NULL); str = SysAllocString(buffW); diff -Nru wine1.7-1.7.18/dlls/setupapi/queue.c wine1.7-1.7.19/dlls/setupapi/queue.c --- wine1.7-1.7.18/dlls/setupapi/queue.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/setupapi/queue.c 2014-05-16 19:06:48.000000000 +0000 @@ -39,9 +39,13 @@ /* context structure for the default queue callback */ struct default_callback_context { - HWND owner; - HWND progress; - UINT message; + DWORD magic; + HWND owner; + DWORD unk1[4]; + DWORD_PTR unk2[7]; + HWND progress; + UINT message; + DWORD_PTR unk3[5]; }; struct file_op @@ -1482,8 +1486,9 @@ { struct default_callback_context *context; - if ((context = HeapAlloc( GetProcessHeap(), 0, sizeof(*context) ))) + if ((context = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*context) ))) { + context->magic = 0x43515053; /* "SPQC" */ context->owner = owner; context->progress = progress; context->message = msg; diff -Nru wine1.7-1.7.18/dlls/setupapi/setupapi.spec wine1.7-1.7.19/dlls/setupapi/setupapi.spec --- wine1.7-1.7.18/dlls/setupapi/setupapi.spec 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/setupapi/setupapi.spec 2014-05-16 19:06:48.000000000 +0000 @@ -67,8 +67,8 @@ @ stdcall CM_Get_Class_Registry_PropertyW(ptr long ptr ptr long long ptr) @ stub CM_Get_Depth @ stub CM_Get_Depth_Ex -@ stub CM_Get_DevNode_Registry_PropertyA -@ stub CM_Get_DevNode_Registry_PropertyW +@ stdcall CM_Get_DevNode_Registry_PropertyA(long long ptr ptr long long) +@ stdcall CM_Get_DevNode_Registry_PropertyW(long long ptr ptr long long) @ stdcall CM_Get_DevNode_Registry_Property_ExA(long long ptr ptr ptr long ptr) @ stdcall CM_Get_DevNode_Registry_Property_ExW(long long ptr ptr ptr long ptr) @ stub CM_Get_DevNode_Status diff -Nru wine1.7-1.7.18/dlls/setupapi/stringtable.c wine1.7-1.7.19/dlls/setupapi/stringtable.c --- wine1.7-1.7.18/dlls/setupapi/stringtable.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/setupapi/stringtable.c 2014-05-16 19:06:48.000000000 +0000 @@ -2,6 +2,7 @@ * Setupapi string table functions * * Copyright 2005 Eric Kohl + * Copyright 2014 Nikolay Sivov for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -19,88 +20,103 @@ */ #include "config.h" -#include "wine/port.h" #include #include "windef.h" #include "winbase.h" -#include "wingdi.h" #include "winuser.h" #include "winreg.h" +#include "winnls.h" #include "setupapi.h" #include "wine/debug.h" - - -#define TABLE_DEFAULT_SIZE 256 +#include "wine/unicode.h" WINE_DEFAULT_DEBUG_CHANNEL(setupapi); DECLARE_HANDLE(HSTRING_TABLE); -typedef struct _TABLE_SLOT -{ - LPWSTR pString; - LPVOID pData; - DWORD dwSize; -} TABLE_SLOT, *PTABLE_SLOT; - -typedef struct _STRING_TABLE -{ - PTABLE_SLOT pSlots; - DWORD dwUsedSlots; - DWORD dwMaxSlots; - DWORD dwMaxDataSize; -} STRING_TABLE, *PSTRING_TABLE; +struct stringtable { + char *data; + ULONG nextoffset; + ULONG allocated; + DWORD_PTR unk[2]; + ULONG max_extra_size; + LCID lcid; +}; +struct stringentry { + DWORD nextoffset; + WCHAR data[1]; +}; -/************************************************************************** - * StringTableInitialize [SETUPAPI.@] - * - * Creates a new string table and initializes it. - * - * PARAMS - * None - * - * RETURNS - * Success: Handle to the string table - * Failure: NULL - */ -HSTRING_TABLE WINAPI -StringTableInitialize(VOID) -{ - PSTRING_TABLE pStringTable; +#define BUCKET_COUNT 509 +#define DEFAULT_ALLOC_SIZE 4096 - TRACE("\n"); +/* + String table details - pStringTable = MyMalloc(sizeof(STRING_TABLE)); - if (pStringTable == NULL) - { - ERR("Invalid hStringTable!\n"); - return NULL; - } + Returned string table 'handle' is a pointer to 'struct stringtable' structure. + Data itself is allocated separately, pointer is stored in 'data' field. - memset(pStringTable, 0, sizeof(STRING_TABLE)); + Data starts with array of 509 DWORDs - lookup table. Initially all offsets in that + array are set to -1. Right after lookup table goes data itself, stored in linked lists. + Lookup table offset points to first record of 'struct stringentry' type. When more + than one record is present in a bucket, first record links to next one with 'nextoffset' + field. Last record has nextoffset == -1, same when there's only one record. String data + is placed right after offset, and is followed by extra data. Each record has reserved + 'max_extra_size' bytes to store extra data, it's not compacted in any way. - pStringTable->pSlots = MyMalloc(sizeof(TABLE_SLOT) * TABLE_DEFAULT_SIZE); - if (pStringTable->pSlots == NULL) - { - MyFree(pStringTable); - return NULL; + A simple hash function is used to determine which bucket a given string belongs to (see below). + + All offsets including returned string ids are relative to 'data' pointer. When table + needs to grow 'allocated' size is doubled, but offsets are always valid and preserved. + +*/ + +static inline DWORD get_string_hash(const WCHAR *str, BOOL case_sensitive) +{ + DWORD hash = 0; + + while (*str) { + WCHAR ch = case_sensitive ? *str : tolowerW(*str); + hash += ch; + if (ch & ~0xff) + hash |= 1; + str++; } - memset(pStringTable->pSlots, 0, sizeof(TABLE_SLOT) * TABLE_DEFAULT_SIZE); + return hash % BUCKET_COUNT; +} + +static inline DWORD *get_bucket_ptr(struct stringtable *table, const WCHAR *string, BOOL case_sensitive) +{ + DWORD hash = get_string_hash(string, case_sensitive); + return (DWORD*)(table->data + hash*sizeof(DWORD)); +} - pStringTable->dwUsedSlots = 0; - pStringTable->dwMaxSlots = TABLE_DEFAULT_SIZE; - pStringTable->dwMaxDataSize = 0; +static inline WCHAR *get_string_ptr(struct stringtable *table, DWORD id) +{ + return (WCHAR*)(table->data + id + sizeof(DWORD)); +} - TRACE("Done\n"); +static inline char *get_extradata_ptr(struct stringtable *table, DWORD id) +{ + WCHAR *ptrW = get_string_ptr(table, id); + /* skip string itself */ + return (char*)(ptrW + strlenW(ptrW) + 1); +} - return (HSTRING_TABLE)pStringTable; +static inline BOOL is_valid_string_id(struct stringtable *table, DWORD id) +{ + return (id >= BUCKET_COUNT*sizeof(DWORD)) && (id < table->allocated); } +static inline int get_aligned16_size(int size) +{ + return (size + 15) & ~15; +} /************************************************************************** * StringTableInitializeEx [SETUPAPI.@] @@ -108,433 +124,340 @@ * Creates a new string table and initializes it. * * PARAMS - * dwMaxExtraDataSize [I] Maximum extra data size - * dwReserved [I] Unused + * max_extra_size [I] Maximum extra data size + * reserved [I] Unused * * RETURNS * Success: Handle to the string table * Failure: NULL */ -HSTRING_TABLE WINAPI -StringTableInitializeEx(DWORD dwMaxExtraDataSize, - DWORD dwReserved) +HSTRING_TABLE WINAPI StringTableInitializeEx(ULONG max_extra_size, DWORD reserved) { - PSTRING_TABLE pStringTable; + struct stringtable *table; - TRACE("\n"); + TRACE("(%d %x)\n", max_extra_size, reserved); - pStringTable = MyMalloc(sizeof(STRING_TABLE)); - if (pStringTable == NULL) return NULL; + table = MyMalloc(sizeof(*table)); + if (!table) return NULL; - memset(pStringTable, 0, sizeof(STRING_TABLE)); - - pStringTable->pSlots = MyMalloc(sizeof(TABLE_SLOT) * TABLE_DEFAULT_SIZE); - if (pStringTable->pSlots == NULL) - { - MyFree(pStringTable); + table->allocated = get_aligned16_size(BUCKET_COUNT*sizeof(DWORD) + DEFAULT_ALLOC_SIZE); + table->data = MyMalloc(table->allocated); + if (!table->data) { + MyFree(table); return NULL; } - memset(pStringTable->pSlots, 0, sizeof(TABLE_SLOT) * TABLE_DEFAULT_SIZE); - - pStringTable->dwUsedSlots = 0; - pStringTable->dwMaxSlots = TABLE_DEFAULT_SIZE; - pStringTable->dwMaxDataSize = dwMaxExtraDataSize; + table->nextoffset = BUCKET_COUNT*sizeof(DWORD); + /* FIXME: actually these two are not zero */ + table->unk[0] = table->unk[1] = 0; + table->max_extra_size = max_extra_size; + table->lcid = GetThreadLocale(); + + /* bucket area is filled with 0xff, actual string data area is zeroed */ + memset(table->data, 0xff, table->nextoffset); + memset(table->data + table->nextoffset, 0, table->allocated - table->nextoffset); - TRACE("Done\n"); - - return (HSTRING_TABLE)pStringTable; + return (HSTRING_TABLE)table; } - /************************************************************************** - * StringTableDestroy [SETUPAPI.@] + * StringTableInitialize [SETUPAPI.@] * - * Destroys a string table. + * Creates a new string table and initializes it. * * PARAMS - * hStringTable [I] Handle to the string table to be destroyed + * None * * RETURNS - * None + * Success: Handle to the string table + * Failure: NULL */ -VOID WINAPI -StringTableDestroy(HSTRING_TABLE hStringTable) +HSTRING_TABLE WINAPI StringTableInitialize(void) { - PSTRING_TABLE pStringTable; - DWORD i; - - TRACE("%p\n", hStringTable); - - pStringTable = (PSTRING_TABLE)hStringTable; - if (pStringTable == NULL) - return; - - if (pStringTable->pSlots != NULL) - { - for (i = 0; i < pStringTable->dwMaxSlots; i++) - { - MyFree(pStringTable->pSlots[i].pString); - pStringTable->pSlots[i].pString = NULL; - - MyFree(pStringTable->pSlots[i].pData); - pStringTable->pSlots[i].pData = NULL; - pStringTable->pSlots[i].dwSize = 0; - } - - MyFree(pStringTable->pSlots); - } - - MyFree(pStringTable); + return StringTableInitializeEx(0, 0); } - /************************************************************************** - * StringTableAddStringEx [SETUPAPI.@] + * StringTableDestroy [SETUPAPI.@] * - * Adds a new string plus extra data to the string table. + * Destroys a string table. * * PARAMS - * hStringTable [I] Handle to the string table - * lpString [I] String to be added to the string table - * dwFlags [I] Flags - * 1: case sensitive compare - * lpExtraData [I] Pointer to the extra data - * dwExtraDataSize [I] Size of the extra data + * hTable [I] Handle to the string table to be destroyed * * RETURNS - * Success: String ID - * Failure: ~0u - * - * NOTES - * If the given string already exists in the string table it will not - * be added again. The ID of the existing string will be returned in - * this case. + * None */ -DWORD WINAPI -StringTableAddStringEx(HSTRING_TABLE hStringTable, LPWSTR lpString, - DWORD dwFlags, LPVOID lpExtraData, DWORD dwExtraDataSize) +void WINAPI StringTableDestroy(HSTRING_TABLE hTable) { - PSTRING_TABLE pStringTable; - DWORD i; - - TRACE("%p %s %x %p, %u\n", hStringTable, debugstr_w(lpString), dwFlags, - lpExtraData, dwExtraDataSize); + struct stringtable *table = (struct stringtable*)hTable; - pStringTable = (PSTRING_TABLE)hStringTable; - if (!pStringTable) - { - ERR("Invalid hStringTable!\n"); - return ~0u; - } - - /* Search for existing string in the string table */ - for (i = 0; i < pStringTable->dwMaxSlots; i++) - { - if (pStringTable->pSlots[i].pString) - { - if (dwFlags & 1) - { - if (!lstrcmpW(pStringTable->pSlots[i].pString, lpString)) - return i + 1; - } - else - { - if (!lstrcmpiW(pStringTable->pSlots[i].pString, lpString)) - return i + 1; - } - } - } + TRACE("%p\n", table); - /* Check for filled slot table */ - if (pStringTable->dwUsedSlots == pStringTable->dwMaxSlots) - { - FIXME("Resize the string table!\n"); - return ~0u; - } + if (!table) + return; - /* Search for an empty slot */ - for (i = 0; i < pStringTable->dwMaxSlots; i++) - { - if (!pStringTable->pSlots[i].pString) - { - pStringTable->pSlots[i].pString = MyMalloc((lstrlenW(lpString) + 1) * sizeof(WCHAR)); - if (!pStringTable->pSlots[i].pString) - { - WARN("Couldn't allocate memory for a new string!\n"); - return ~0u; - } - lstrcpyW(pStringTable->pSlots[i].pString, lpString); - - pStringTable->pSlots[i].pData = MyMalloc(dwExtraDataSize); - if (!pStringTable->pSlots[i].pData) - { - TRACE("Couldn't allocate memory for data!\n"); - return ~0u; - } - memcpy(pStringTable->pSlots[i].pData, lpExtraData, dwExtraDataSize); - pStringTable->pSlots[i].dwSize = dwExtraDataSize; - pStringTable->dwUsedSlots++; - return i + 1; - } - } - TRACE("Couldn't find an empty slot!\n"); - return ~0u; + MyFree(table->data); + MyFree(table); } /************************************************************************** - * StringTableAddString [SETUPAPI.@] - * - * Adds a new string to the string table. - * - * PARAMS - * hStringTable [I] Handle to the string table - * lpString [I] String to be added to the string table - * dwFlags [I] Flags - * 1: case sensitive compare - * - * RETURNS - * Success: String ID - * Failure: ~0u - * - * NOTES - * If the given string already exists in the string table it will not - * be added again. The ID of the existing string will be returned in - * this case. - */ -DWORD WINAPI -StringTableAddString(HSTRING_TABLE hStringTable, LPWSTR lpString, DWORD dwFlags) -{ - return StringTableAddStringEx(hStringTable, lpString, dwFlags, NULL, 0); -} - - -/************************************************************************** * StringTableDuplicate [SETUPAPI.@] * * Duplicates a given string table. * * PARAMS - * hStringTable [I] Handle to the string table + * hTable [I] Handle to the string table * * RETURNS * Success: Handle to the duplicated string table * Failure: NULL * */ -HSTRING_TABLE WINAPI -StringTableDuplicate(HSTRING_TABLE hStringTable) +HSTRING_TABLE WINAPI StringTableDuplicate(HSTRING_TABLE hTable) { - PSTRING_TABLE pSourceTable; - PSTRING_TABLE pDestinationTable; - DWORD i; - DWORD length; + struct stringtable *src = (struct stringtable*)hTable, *dest; - TRACE("%p\n", hStringTable); + TRACE("%p\n", src); - pSourceTable = (PSTRING_TABLE)hStringTable; - if (pSourceTable == NULL) - { - ERR("Invalid hStringTable!\n"); + if (!src) return NULL; - } - pDestinationTable = MyMalloc(sizeof(STRING_TABLE)); - if (pDestinationTable == NULL) - { - ERR("Could not allocate a new string table!\n"); + dest = MyMalloc(sizeof(*dest)); + if (!dest) return NULL; - } - memset(pDestinationTable, 0, sizeof(STRING_TABLE)); - - pDestinationTable->pSlots = MyMalloc(sizeof(TABLE_SLOT) * pSourceTable->dwMaxSlots); - if (pDestinationTable->pSlots == NULL) - { - MyFree(pDestinationTable); + *dest = *src; + dest->data = MyMalloc(src->allocated); + if (!dest->data) { + MyFree(dest); return NULL; } - memset(pDestinationTable->pSlots, 0, sizeof(TABLE_SLOT) * pSourceTable->dwMaxSlots); - - pDestinationTable->dwUsedSlots = 0; - pDestinationTable->dwMaxSlots = pSourceTable->dwMaxSlots; - - for (i = 0; i < pSourceTable->dwMaxSlots; i++) - { - if (pSourceTable->pSlots[i].pString != NULL) - { - length = (lstrlenW(pSourceTable->pSlots[i].pString) + 1) * sizeof(WCHAR); - pDestinationTable->pSlots[i].pString = MyMalloc(length); - if (pDestinationTable->pSlots[i].pString != NULL) - { - memcpy(pDestinationTable->pSlots[i].pString, - pSourceTable->pSlots[i].pString, - length); - pDestinationTable->dwUsedSlots++; - } - - if (pSourceTable->pSlots[i].pData != NULL) - { - length = pSourceTable->pSlots[i].dwSize; - pDestinationTable->pSlots[i].pData = MyMalloc(length); - if (pDestinationTable->pSlots[i].pData) - { - memcpy(pDestinationTable->pSlots[i].pData, - pSourceTable->pSlots[i].pData, - length); - pDestinationTable->pSlots[i].dwSize = length; - } - } - } - } - - return (HSTRING_TABLE)pDestinationTable; + memcpy(dest->data, src->data, src->allocated); + return (HSTRING_TABLE)dest; } - /************************************************************************** * StringTableGetExtraData [SETUPAPI.@] * * Retrieves extra data from a given string table entry. * * PARAMS - * hStringTable [I] Handle to the string table - * dwId [I] String ID - * lpExtraData [I] Pointer a buffer that receives the extra data - * dwExtraDataSize [I] Size of the buffer + * hTable [I] Handle to the string table + * id [I] String ID + * extra [I] Pointer a buffer that receives the extra data + * extra_size [I] Size of the buffer * * RETURNS * Success: TRUE * Failure: FALSE */ -BOOL WINAPI -StringTableGetExtraData(HSTRING_TABLE hStringTable, - DWORD dwId, - LPVOID lpExtraData, - DWORD dwExtraDataSize) +BOOL WINAPI StringTableGetExtraData(HSTRING_TABLE hTable, ULONG id, void *extra, ULONG extra_size) { - PSTRING_TABLE pStringTable; + struct stringtable *table = (struct stringtable*)hTable; + char *extraptr; - TRACE("%p %x %p %u\n", - hStringTable, dwId, lpExtraData, dwExtraDataSize); + TRACE("%p %u %p %u\n", table, id, extra, extra_size); - pStringTable = (PSTRING_TABLE)hStringTable; - if (pStringTable == NULL) - { - ERR("Invalid hStringTable!\n"); + if (!table) return FALSE; - } - if (dwId == 0 || dwId > pStringTable->dwMaxSlots) - { - ERR("Invalid Slot id!\n"); + if (!is_valid_string_id(table, id)) return FALSE; - } - if (pStringTable->pSlots[dwId - 1].dwSize > dwExtraDataSize) + if (table->max_extra_size > extra_size) { - ERR("Data size is too large!\n"); + ERR("data size is too large\n"); return FALSE; } - memcpy(lpExtraData, - pStringTable->pSlots[dwId - 1].pData, - dwExtraDataSize); - + extraptr = get_extradata_ptr(table, id); + memcpy(extra, extraptr, extra_size); return TRUE; } - /************************************************************************** * StringTableLookUpStringEx [SETUPAPI.@] * * Searches a string table and extra data for a given string. * * PARAMS - * hStringTable [I] Handle to the string table - * lpString [I] String to be searched for - * dwFlags [I] Flags + * hTable [I] Handle to the string table + * string [I] String to be searched for + * flags [I] Flags * 1: case sensitive compare - * lpExtraData [O] Pointer to the buffer that receives the extra data - * dwReserved [I/O] Unused + * extra [O] Pointer to the buffer that receives the extra data + * extra_size [I/O] Unused * * RETURNS * Success: String ID * Failure: -1 */ -DWORD WINAPI -StringTableLookUpStringEx(HSTRING_TABLE hStringTable, - LPWSTR lpString, - DWORD dwFlags, - LPVOID lpExtraData, - DWORD dwReserved) +DWORD WINAPI StringTableLookUpStringEx(HSTRING_TABLE hTable, LPWSTR string, DWORD flags, + void *extra, ULONG extra_size) { - PSTRING_TABLE pStringTable; - DWORD i; - - TRACE("%p %s %x %p, %x\n", hStringTable, debugstr_w(lpString), dwFlags, - lpExtraData, dwReserved); - - pStringTable = (PSTRING_TABLE)hStringTable; - if (pStringTable == NULL) - { - ERR("Invalid hStringTable!\n"); - return ~0u; - } - - /* Search for existing string in the string table */ - for (i = 0; i < pStringTable->dwMaxSlots; i++) - { - if (pStringTable->pSlots[i].pString != NULL) - { - if (dwFlags & 1) - { - if (!lstrcmpW(pStringTable->pSlots[i].pString, lpString)) - { - if (lpExtraData) - memcpy(lpExtraData, pStringTable->pSlots[i].pData, dwReserved); - return i + 1; - } - } - else - { - if (!lstrcmpiW(pStringTable->pSlots[i].pString, lpString)) - { - if (lpExtraData) - memcpy(lpExtraData, pStringTable->pSlots[i].pData, dwReserved); - return i + 1; - } - } + struct stringtable *table = (struct stringtable*)hTable; + BOOL case_sensitive = flags & 1; + struct stringentry *entry; + DWORD offset; + int cmp; + + TRACE("%p->%p %s %x %p, %x\n", table, table->data, debugstr_w(string), flags, extra, extra_size); + + if (!table) + return -1; + + /* get corresponding offset */ + offset = *get_bucket_ptr(table, string, case_sensitive); + if (offset == -1) + return -1; + + /* now we're at correct bucket, do linear search for string */ + while (1) { + entry = (struct stringentry*)(table->data + offset); + if (case_sensitive) + cmp = lstrcmpW(entry->data, string); + else + cmp = lstrcmpiW(entry->data, string); + if (!cmp) { + if (extra) + memcpy(extra, get_extradata_ptr(table, offset), extra_size); + return offset; } + + /* last entry */ + if (entry->nextoffset == -1) + return -1; + + offset = entry->nextoffset; + if (offset > table->allocated) + return -1; } - return ~0u; } - /************************************************************************** * StringTableLookUpString [SETUPAPI.@] * * Searches a string table for a given string. * * PARAMS - * hStringTable [I] Handle to the string table - * lpString [I] String to be searched for - * dwFlags [I] Flags - * 1: case sensitive compare + * hTable [I] Handle to the string table + * string [I] String to be searched for + * flags [I] Flags + * 1: case sensitive compare + * + * RETURNS + * Success: String ID + * Failure: -1 + */ +DWORD WINAPI StringTableLookUpString(HSTRING_TABLE hTable, LPWSTR string, DWORD flags) +{ + return StringTableLookUpStringEx(hTable, string, flags, NULL, 0); +} + +/************************************************************************** + * StringTableAddStringEx [SETUPAPI.@] + * + * Adds a new string plus extra data to the string table. + * + * PARAMS + * hTable [I] Handle to the string table + * string [I] String to be added to the string table + * flags [I] Flags + * 1: case sensitive compare + * extra [I] Pointer to the extra data + * extra_size [I] Size of the extra data * * RETURNS * Success: String ID - * Failure: ~0u + * Failure: -1 + * + * NOTES + * If the given string already exists in the string table it will not + * be added again. The ID of the existing string will be returned in + * this case. */ -DWORD WINAPI -StringTableLookUpString(HSTRING_TABLE hStringTable, - LPWSTR lpString, - DWORD dwFlags) +DWORD WINAPI StringTableAddStringEx(HSTRING_TABLE hTable, LPWSTR string, + DWORD flags, void *extra, DWORD extra_size) { - return StringTableLookUpStringEx(hStringTable, lpString, dwFlags, NULL, 0); + struct stringtable *table = (struct stringtable*)hTable; + BOOL case_sensitive = flags & 1; + struct stringentry *entry; + DWORD id, *offset; + WCHAR *ptrW; + int len; + + TRACE("%p %s %x %p, %u\n", hTable, debugstr_w(string), flags, extra, extra_size); + + if (!table) + return -1; + + id = StringTableLookUpStringEx(hTable, string, flags, NULL, 0); + if (id != -1) + return id; + + /* needed space for new record */ + len = sizeof(DWORD) + (strlenW(string)+1)*sizeof(WCHAR) + table->max_extra_size; + if (table->nextoffset + len >= table->allocated) { + table->allocated <<= 1; + table->data = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, table->data, table->allocated); + } + + /* hash string */ + offset = get_bucket_ptr(table, string, case_sensitive); + if (*offset == -1) + /* bucket used for a very first time */ + *offset = table->nextoffset; + else { + entry = (struct stringentry*)(table->data + *offset); + /* link existing last entry to newly added */ + while (entry->nextoffset != -1) + entry = (struct stringentry*)(table->data + entry->nextoffset); + entry->nextoffset = table->nextoffset; + } + entry = (struct stringentry*)(table->data + table->nextoffset); + entry->nextoffset = -1; + id = table->nextoffset; + + /* copy string */ + ptrW = get_string_ptr(table, id); + strcpyW(ptrW, string); + if (!case_sensitive) + strlwrW(ptrW); + + /* copy extra data */ + if (extra) + memcpy(get_extradata_ptr(table, id), extra, extra_size); + + table->nextoffset += len; + return id; } +/************************************************************************** + * StringTableAddString [SETUPAPI.@] + * + * Adds a new string to the string table. + * + * PARAMS + * hTable [I] Handle to the string table + * string [I] String to be added to the string table + * flags [I] Flags + * 1: case sensitive compare + * + * RETURNS + * Success: String ID + * Failure: -1 + * + * NOTES + * If the given string already exists in the string table it will not + * be added again. The ID of the existing string will be returned in + * this case. + */ +DWORD WINAPI StringTableAddString(HSTRING_TABLE hTable, LPWSTR string, DWORD flags) +{ + return StringTableAddStringEx(hTable, string, flags, NULL, 0); +} /************************************************************************** * StringTableSetExtraData [SETUPAPI.@] @@ -542,166 +465,128 @@ * Sets extra data for a given string table entry. * * PARAMS - * hStringTable [I] Handle to the string table - * dwId [I] String ID - * lpExtraData [I] Pointer to the extra data - * dwExtraDataSize [I] Size of the extra data + * hTable [I] Handle to the string table + * id [I] String ID + * extra [I] Pointer to the extra data + * extra_size [I] Size of the extra data * * RETURNS * Success: TRUE * Failure: FALSE */ -BOOL WINAPI -StringTableSetExtraData(HSTRING_TABLE hStringTable, - DWORD dwId, - LPVOID lpExtraData, - DWORD dwExtraDataSize) +BOOL WINAPI StringTableSetExtraData(HSTRING_TABLE hTable, DWORD id, void *extra, ULONG extra_size) { - PSTRING_TABLE pStringTable; - - TRACE("%p %x %p %u\n", - hStringTable, dwId, lpExtraData, dwExtraDataSize); + struct stringtable *table = (struct stringtable*)hTable; + char *extraptr; - pStringTable = (PSTRING_TABLE)hStringTable; - if (pStringTable == NULL) - { - ERR("Invalid hStringTable!\n"); - return FALSE; - } + TRACE("%p %d %p %u\n", hTable, id, extra, extra_size); - if (dwId == 0 || dwId > pStringTable->dwMaxSlots) - { - ERR("Invalid Slot id!\n"); + if (!table) return FALSE; - } - if (pStringTable->dwMaxDataSize < dwExtraDataSize) - { - ERR("Data size is too large!\n"); + if (!is_valid_string_id(table, id)) return FALSE; - } - pStringTable->pSlots[dwId - 1].pData = MyMalloc(dwExtraDataSize); - if (pStringTable->pSlots[dwId - 1].pData == NULL) + if (table->max_extra_size < extra_size) { - ERR("\n"); + ERR("data size is too large\n"); return FALSE; } - memcpy(pStringTable->pSlots[dwId - 1].pData, - lpExtraData, - dwExtraDataSize); - pStringTable->pSlots[dwId - 1].dwSize = dwExtraDataSize; + extraptr = get_extradata_ptr(table, id); + memset(extraptr, 0, table->max_extra_size); + memcpy(extraptr, extra, extra_size); return TRUE; } - /************************************************************************** * StringTableStringFromId [SETUPAPI.@] * * Returns a pointer to a string for the given string ID. * * PARAMS - * hStringTable [I] Handle to the string table. - * dwId [I] String ID + * hTable [I] Handle to the string table. + * id [I] String ID * * RETURNS * Success: Pointer to the string * Failure: NULL */ -LPWSTR WINAPI -StringTableStringFromId(HSTRING_TABLE hStringTable, - DWORD dwId) +LPWSTR WINAPI StringTableStringFromId(HSTRING_TABLE hTable, ULONG id) { - PSTRING_TABLE pStringTable; + struct stringtable *table = (struct stringtable*)hTable; static WCHAR empty[] = {0}; - TRACE("%p %x\n", hStringTable, dwId); + TRACE("%p %d\n", table, id); - pStringTable = (PSTRING_TABLE)hStringTable; - if (pStringTable == NULL) - { - ERR("Invalid hStringTable!\n"); + if (!table) return NULL; - } - if (dwId == 0 || dwId > pStringTable->dwMaxSlots) + if (!is_valid_string_id(table, id)) return empty; - return pStringTable->pSlots[dwId - 1].pString; + return get_string_ptr(table, id); } - /************************************************************************** * StringTableStringFromIdEx [SETUPAPI.@] * * Returns a string for the given string ID. * * PARAMS - * hStringTable [I] Handle to the string table - * dwId [I] String ID - * lpBuffer [I] Pointer to string buffer - * lpBufferSize [I/O] Pointer to the size of the string buffer + * hTable [I] Handle to the string table + * id [I] String ID + * buff [I] Pointer to string buffer + * buflen [I/O] Pointer to the size of the string buffer * * RETURNS * Success: TRUE * Failure: FALSE */ -BOOL WINAPI -StringTableStringFromIdEx(HSTRING_TABLE hStringTable, - DWORD dwId, - LPWSTR lpBuffer, - LPDWORD lpBufferLength) -{ - PSTRING_TABLE pStringTable; - DWORD dwLength; - BOOL bResult = FALSE; +BOOL WINAPI StringTableStringFromIdEx(HSTRING_TABLE hTable, ULONG id, LPWSTR buff, DWORD *buflen) +{ + struct stringtable *table = (struct stringtable*)hTable; + BOOL ret = TRUE; + WCHAR *ptrW; + int len; - TRACE("%p %x %p %p\n", hStringTable, dwId, lpBuffer, lpBufferLength); + TRACE("%p %x %p %p\n", table, id, buff, buflen); - pStringTable = (PSTRING_TABLE)hStringTable; - if (pStringTable == NULL) - { - ERR("Invalid hStringTable!\n"); - *lpBufferLength = 0; + if (!table) { + *buflen = 0; return FALSE; } - if (dwId == 0 || dwId > pStringTable->dwMaxSlots || - pStringTable->pSlots[dwId - 1].pString == NULL) - { - WARN("Invalid string ID!\n"); - *lpBufferLength = 0; + if (!is_valid_string_id(table, id)) { + WARN("invalid string id\n"); + *buflen = 0; return FALSE; } - dwLength = (lstrlenW(pStringTable->pSlots[dwId - 1].pString) + 1) * sizeof(WCHAR); - if (dwLength <= *lpBufferLength) - { - lstrcpyW(lpBuffer, pStringTable->pSlots[dwId - 1].pString); - bResult = TRUE; - } - - *lpBufferLength = dwLength; + ptrW = get_string_ptr(table, id); + len = (strlenW(ptrW) + 1)*sizeof(WCHAR); + if (len <= *buflen) + strcpyW(buff, ptrW); + else + ret = FALSE; - return bResult; + *buflen = len; + return ret; } - /************************************************************************** * StringTableTrim [SETUPAPI.@] * * ... * * PARAMS - * hStringTable [I] Handle to the string table + * hTable [I] Handle to the string table * * RETURNS * None */ -VOID WINAPI -StringTableTrim(HSTRING_TABLE hStringTable) +void WINAPI StringTableTrim(HSTRING_TABLE hTable) { - FIXME("%p\n", hStringTable); + FIXME("%p\n", hTable); } diff -Nru wine1.7-1.7.18/dlls/setupapi/stubs.c wine1.7-1.7.19/dlls/setupapi/stubs.c --- wine1.7-1.7.18/dlls/setupapi/stubs.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/setupapi/stubs.c 2014-05-16 19:06:48.000000000 +0000 @@ -407,6 +407,24 @@ } /*********************************************************************** + * CM_Get_DevNode_Registry_PropertyA (SETUPAPI.@) + */ +CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyA(DEVINST dev, ULONG prop, PULONG regdatatype, + PVOID buf, PULONG len, ULONG flags) +{ + return CM_Get_DevNode_Registry_Property_ExA(dev, prop, regdatatype, buf, len, flags, NULL); +} + +/*********************************************************************** + * CM_Get_DevNode_Registry_PropertyW (SETUPAPI.@) + */ +CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyW(DEVINST dev, ULONG prop, PULONG regdatatype, + PVOID buf, PULONG len, ULONG flags) +{ + return CM_Get_DevNode_Registry_Property_ExW(dev, prop, regdatatype, buf, len, flags, NULL); +} + +/*********************************************************************** * CM_Enumerate_Classes (SETUPAPI.@) */ CONFIGRET WINAPI CM_Enumerate_Classes(ULONG index, LPGUID class, ULONG flags) diff -Nru wine1.7-1.7.18/dlls/setupapi/tests/misc.c wine1.7-1.7.19/dlls/setupapi/tests/misc.c --- wine1.7-1.7.18/dlls/setupapi/tests/misc.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/setupapi/tests/misc.c 2014-05-16 19:06:48.000000000 +0000 @@ -731,6 +731,51 @@ } } +struct default_callback_context +{ + DWORD magic; + HWND owner; + DWORD unk1[4]; + DWORD_PTR unk2[7]; + HWND progress; + UINT message; + DWORD_PTR unk3[5]; +}; + +static void test_defaultcallback(void) +{ + struct default_callback_context *ctxt; + static const DWORD magic = 0x43515053; /* "SPQC" */ + HWND owner, progress; + + owner = (HWND)0x123; + progress = (HWND)0x456; + ctxt = SetupInitDefaultQueueCallbackEx(owner, progress, WM_USER, 0, NULL); + ok(ctxt != NULL, "got %p\n", ctxt); + + ok(ctxt->magic == magic || broken(ctxt->magic != magic) /* win2000 */, "got magic 0x%08x\n", ctxt->magic); + if (ctxt->magic == magic) + { + ok(ctxt->owner == owner, "got %p, expected %p\n", ctxt->owner, owner); + ok(ctxt->progress == progress, "got %p, expected %p\n", ctxt->progress, progress); + ok(ctxt->message == WM_USER, "got %d, expected %d\n", ctxt->message, WM_USER); + SetupTermDefaultQueueCallback(ctxt); + } + else + { + win_skip("Skipping tests on old systems.\n"); + SetupTermDefaultQueueCallback(ctxt); + return; + } + + ctxt = SetupInitDefaultQueueCallback(owner); + ok(ctxt->magic == magic, "got magic 0x%08x\n", ctxt->magic); + ok(ctxt->owner == owner, "got %p, expected %p\n", ctxt->owner, owner); + ok(ctxt->progress == NULL, "got %p, expected %p\n", ctxt->progress, progress); + ok(ctxt->message == 0, "got %d\n", ctxt->message); + SetupTermDefaultQueueCallback(ctxt); +} + START_TEST(misc) { HMODULE hsetupapi = GetModuleHandleA("setupapi.dll"); @@ -760,4 +805,6 @@ test_SetupUninstallOEMInf(); else win_skip("SetupUninstallOEMInfA is not available\n"); + + test_defaultcallback(); } diff -Nru wine1.7-1.7.18/dlls/setupapi/tests/stringtable.c wine1.7-1.7.19/dlls/setupapi/tests/stringtable.c --- wine1.7-1.7.18/dlls/setupapi/tests/stringtable.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/setupapi/tests/stringtable.c 2014-05-16 19:06:48.000000000 +0000 @@ -29,11 +29,11 @@ #include "wingdi.h" #include "winuser.h" #include "winreg.h" +#include "winnls.h" #include "setupapi.h" #include "wine/test.h" - DECLARE_HANDLE(HSTRING_TABLE); /* Flags for StringTableAddString and StringTableLookUpString */ @@ -48,57 +48,35 @@ static DWORD (WINAPI *pStringTableLookUpString)(HSTRING_TABLE, LPWSTR, DWORD); static DWORD (WINAPI *pStringTableLookUpStringEx)(HSTRING_TABLE, LPWSTR, DWORD, LPVOID, DWORD); static LPWSTR (WINAPI *pStringTableStringFromId)(HSTRING_TABLE, DWORD); +static BOOL (WINAPI *pStringTableGetExtraData)(HSTRING_TABLE, ULONG, void*, ULONG); -static HMODULE hdll; static WCHAR string[] = {'s','t','r','i','n','g',0}; static WCHAR String[] = {'S','t','r','i','n','g',0}; static WCHAR foo[] = {'f','o','o',0}; static void load_it_up(void) { - hdll = GetModuleHandleA("setupapi.dll"); + HMODULE hdll = GetModuleHandleA("setupapi.dll"); - pStringTableInitialize = (void*)GetProcAddress(hdll, "StringTableInitialize"); - if (!pStringTableInitialize) - pStringTableInitialize = (void*)GetProcAddress(hdll, "pSetupStringTableInitialize"); - - pStringTableInitializeEx = (void*)GetProcAddress(hdll, "StringTableInitializeEx"); - if (!pStringTableInitializeEx) - pStringTableInitializeEx = (void*)GetProcAddress(hdll, "pSetupStringTableInitializeEx"); - - pStringTableAddString = (void*)GetProcAddress(hdll, "StringTableAddString"); - if (!pStringTableAddString) - pStringTableAddString = (void*)GetProcAddress(hdll, "pSetupStringTableAddString"); - - pStringTableAddStringEx = (void*)GetProcAddress(hdll, "StringTableAddStringEx"); - if (!pStringTableAddStringEx) - pStringTableAddStringEx = (void*)GetProcAddress(hdll, "pSetupStringTableAddStringEx"); - - pStringTableDuplicate = (void*)GetProcAddress(hdll, "StringTableDuplicate"); - if (!pStringTableDuplicate) - pStringTableDuplicate = (void*)GetProcAddress(hdll, "pSetupStringTableDuplicate"); - - pStringTableDestroy = (void*)GetProcAddress(hdll, "StringTableDestroy"); - if (!pStringTableDestroy) - pStringTableDestroy = (void*)GetProcAddress(hdll, "pSetupStringTableDestroy"); - - pStringTableLookUpString = (void*)GetProcAddress(hdll, "StringTableLookUpString"); - if (!pStringTableLookUpString) - pStringTableLookUpString = (void*)GetProcAddress(hdll, "pSetupStringTableLookUpString"); - - pStringTableLookUpStringEx = (void*)GetProcAddress(hdll, "StringTableLookUpStringEx"); - if (!pStringTableLookUpStringEx) - pStringTableLookUpStringEx = (void*)GetProcAddress(hdll, "pSetupStringTableLookUpStringEx"); - - pStringTableStringFromId = (void*)GetProcAddress(hdll, "StringTableStringFromId"); - if (!pStringTableStringFromId) - pStringTableStringFromId = (void*)GetProcAddress(hdll, "pSetupStringTableStringFromId"); +#define X(f) if (!(p##f = (void*)GetProcAddress(hdll, #f))) \ + p##f = (void*)GetProcAddress(hdll, "pSetup"#f); + X(StringTableInitialize); + X(StringTableInitializeEx); + X(StringTableAddString); + X(StringTableAddStringEx); + X(StringTableDuplicate); + X(StringTableDestroy); + X(StringTableLookUpString); + X(StringTableLookUpStringEx); + X(StringTableStringFromId); + X(StringTableGetExtraData); +#undef X } static void test_StringTableAddString(void) { DWORD retval, hstring, hString, hfoo; - HANDLE table; + HSTRING_TABLE table; table = pStringTableInitialize(); ok(table != NULL, "failed to initialize string table\n"); @@ -106,7 +84,7 @@ /* case insensitive */ hstring=pStringTableAddString(table,string,0); ok(hstring!=-1,"Failed to add string to String Table\n"); - + retval=pStringTableAddString(table,String,0); ok(retval!=-1,"Failed to add String to String Table\n"); ok(hstring==retval,"string handle %x != String handle %x in String Table\n", hstring, retval); @@ -124,22 +102,23 @@ static void test_StringTableAddStringEx(void) { - DWORD retval, hstring, hString, hfoo; + DWORD retval, hstring, hString, hfoo, extra; HANDLE table; + BOOL ret; table = pStringTableInitialize(); ok(table != NULL,"Failed to Initialize String Table\n"); /* case insensitive */ hstring = pStringTableAddStringEx(table, string, 0, NULL, 0); - ok(hstring != ~0u, "Failed to add string to String Table\n"); + ok(hstring != -1, "Failed to add string to String Table\n"); retval = pStringTableAddStringEx(table, String, 0, NULL, 0); - ok(retval != ~0u, "Failed to add String to String Table\n"); + ok(retval != -1, "Failed to add String to String Table\n"); ok(hstring == retval, "string handle %x != String handle %x in String Table\n", hstring, retval); hfoo = pStringTableAddStringEx(table, foo, 0, NULL, 0); - ok(hfoo != ~0u, "Failed to add foo to String Table\n"); + ok(hfoo != -1, "Failed to add foo to String Table\n"); ok(hfoo != hstring, "foo and string share the same ID %x in String Table\n", hfoo); /* case sensitive */ @@ -147,11 +126,33 @@ ok(hstring != hString, "String handle and string share same ID %x in Table\n", hstring); pStringTableDestroy(table); + + /* set same string twice but with different extra */ + table = pStringTableInitializeEx(4, 0); + ok(table != NULL, "Failed to Initialize String Table\n"); + + extra = 10; + hstring = pStringTableAddStringEx(table, string, 0, &extra, 4); + ok(hstring != -1, "failed to add string, %d\n", hstring); + + extra = 0; + ret = pStringTableGetExtraData(table, hstring, &extra, 4); + ok(ret && extra == 10, "got %d, extra %d\n", ret, extra); + + extra = 11; + hstring = pStringTableAddStringEx(table, string, 0, &extra, 4); + ok(hstring != -1, "failed to add string, %d\n", hstring); + + extra = 0; + ret = pStringTableGetExtraData(table, hstring, &extra, 4); + ok(ret && extra == 10, "got %d, extra %d\n", ret, extra); + + pStringTableDestroy(table); } static void test_StringTableDuplicate(void) { - HANDLE table, table2; + HSTRING_TABLE table, table2; table = pStringTableInitialize(); ok(table != NULL,"Failed to Initialize String Table\n"); @@ -166,7 +167,7 @@ static void test_StringTableLookUpString(void) { DWORD retval, retval2, hstring, hString, hfoo; - HANDLE table, table2; + HSTRING_TABLE table, table2; table = pStringTableInitialize(); ok(table != NULL,"failed to initialize string table\n"); @@ -224,7 +225,7 @@ { static WCHAR uilevel[] = {'U','I','L','E','V','E','L',0}; DWORD retval, retval2, hstring, hString, hfoo, data; - HANDLE table, table2; + HSTRING_TABLE table, table2; char buffer[4]; table = pStringTableInitialize(); @@ -305,23 +306,55 @@ static void test_StringTableStringFromId(void) { - HANDLE table; - DWORD hstring; + HSTRING_TABLE table; WCHAR *string2; - int result; + DWORD id, id2; table = pStringTableInitialize(); - ok(table != NULL,"Failed to Initialize String Table\n"); + ok(table != NULL, "Failed to Initialize String Table\n"); - hstring = pStringTableAddString(table, string, 0); - ok(hstring != ~0u,"failed to add 'string' to string table\n"); + id = pStringTableAddString(table, string, 0); + ok(id != -1, "failed to add 'string' to string table\n"); /* correct */ - string2=pStringTableStringFromId(table,pStringTableLookUpString(table,string,0)); - ok(string2!=NULL,"Failed to look up string by ID from String Table\n"); - - result=lstrcmpiW(string, string2); - ok(result==0,"StringID %p does not match requested StringID %p\n",string,string2); + id2 = pStringTableLookUpString(table, string, 0); + ok(id2 == id, "got %d and %d\n", id2, id); + + string2 = pStringTableStringFromId(table, id2); + ok(string2 != NULL, "failed to lookup string %d\n", id2); + ok(!lstrcmpiW(string, string2), "got %s, expected %s\n", wine_dbgstr_w(string2), wine_dbgstr_w(string)); + + pStringTableDestroy(table); +} + +struct stringtable { + char *data; + ULONG nextoffset; + ULONG allocated; + DWORD_PTR unk[2]; + ULONG max_extra_size; + LCID lcid; +}; + +static void test_stringtable_layout(void) +{ + struct stringtable *ptr; + HSTRING_TABLE table; + + table = pStringTableInitialize(); + ok(table != NULL,"failed to initialize string table\n"); + + ptr = (struct stringtable*)table; + ok(ptr->data != NULL, "got %p\n", ptr->data); + /* first data offset is right after bucket area */ + ok(ptr->nextoffset == 509*sizeof(DWORD), "got %d\n", ptr->nextoffset); + ok(ptr->allocated != 0, "got %d\n", ptr->allocated); +todo_wine { + ok(ptr->unk[0] != 0, "got %lx\n", ptr->unk[0]); + ok(ptr->unk[1] != 0, "got %lx\n", ptr->unk[1]); +} + ok(ptr->max_extra_size == 0, "got %d\n", ptr->max_extra_size); + ok(ptr->lcid == GetThreadLocale(), "got %x, thread lcid %x\n", ptr->lcid, GetThreadLocale()); pStringTableDestroy(table); } @@ -336,4 +369,5 @@ test_StringTableLookUpString(); test_StringTableLookUpStringEx(); test_StringTableStringFromId(); + test_stringtable_layout(); } diff -Nru wine1.7-1.7.18/dlls/shell32/tests/shlexec.c wine1.7-1.7.19/dlls/shell32/tests/shlexec.c --- wine1.7-1.7.18/dlls/shell32/tests/shlexec.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/shell32/tests/shlexec.c 2014-05-16 19:06:48.000000000 +0000 @@ -118,7 +118,7 @@ * association it displays the 'Open With' dialog and I could not find * a flag to prevent this. */ - rc=(INT_PTR)ShellExecuteA(NULL, verb, file, parameters, directory, SW_SHOWNORMAL); + rc=(INT_PTR)ShellExecuteA(NULL, verb, file, parameters, directory, SW_HIDE); if (rc > 32) { diff -Nru wine1.7-1.7.18/dlls/shell32/tests/shlfolder.c wine1.7-1.7.19/dlls/shell32/tests/shlfolder.c --- wine1.7-1.7.18/dlls/shell32/tests/shlfolder.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/shell32/tests/shlfolder.c 2014-05-16 19:06:48.000000000 +0000 @@ -533,12 +533,13 @@ IShellFolder_Release(psfSystemDir); - GetCurrentDirectoryA(MAX_PATH, buf); - if(!lstrlenA(buf)) + cChars = GetCurrentDirectoryA(MAX_PATH, buf); + if(!cChars) { skip("Failed to get current directory, skipping tests.\n"); return; } + if(buf[cChars-1] != '\\') lstrcatA(buf, "\\"); SHGetDesktopFolder(&psfDesktop); @@ -546,7 +547,6 @@ /* .html */ lstrcpyA(pathA, buf); - lstrcatA(pathA, "\\"); lstrcatA(pathA, filename_html); hfile = CreateFileA(pathA, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); if(hfile != INVALID_HANDLE_VALUE) @@ -590,7 +590,6 @@ /* .txt */ lstrcpyA(pathA, buf); - lstrcatA(pathA, "\\"); lstrcatA(pathA, filename_txt); hfile = CreateFileA(pathA, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); if(hfile != INVALID_HANDLE_VALUE) @@ -604,6 +603,7 @@ hr = IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (void**)&psfChild); ok(hr == E_FAIL || /* Vista+ */ hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) || /* XP, W2K3 */ + hr == E_INVALIDARG || /* W2K item in top dir */ broken(hr == S_OK), /* Win9x, NT4, W2K */ "Got 0x%08x\n", hr); if(SUCCEEDED(hr)) IShellFolder_Release(psfChild); @@ -616,7 +616,6 @@ /* .foo */ lstrcpyA(pathA, buf); - lstrcatA(pathA, "\\"); lstrcatA(pathA, filename_foo); hfile = CreateFileA(pathA, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); if(hfile != INVALID_HANDLE_VALUE) @@ -630,6 +629,7 @@ hr = IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (void**)&psfChild); ok(hr == E_FAIL || /* Vista+ */ hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) || /* XP, W2K3 */ + hr == E_INVALIDARG || /* W2K item in top dir */ broken(hr == S_OK), /* Win9x, NT4, W2K */ "Got 0x%08x\n", hr); if(SUCCEEDED(hr)) IShellFolder_Release(psfChild); @@ -779,7 +779,8 @@ if (pidlLast->mkid.cb >= 76) { ok(!lstrcmpW((WCHAR*)&pidlLast->mkid.abID[46], wszFileName) || (pidlLast->mkid.cb >= 94 && !lstrcmpW((WCHAR*)&pidlLast->mkid.abID[64], wszFileName)) || /* Vista */ - (pidlLast->mkid.cb >= 98 && !lstrcmpW((WCHAR*)&pidlLast->mkid.abID[68], wszFileName)), /* Win7 */ + (pidlLast->mkid.cb >= 98 && !lstrcmpW((WCHAR*)&pidlLast->mkid.abID[68], wszFileName)) || /* Win7 */ + (pidlLast->mkid.cb >= 102 && !lstrcmpW((WCHAR*)&pidlLast->mkid.abID[72], wszFileName)), /* Win8 */ "Filename should be stored as wchar-string at this position!\n"); } @@ -1853,8 +1854,9 @@ } ok (!lstrcmpW(wszFile[i], name) || - !lstrcmpW(wszFile[i], name + 9) || /* Vista */ - !lstrcmpW(wszFile[i], name + 11), /* Win7 */ + !lstrcmpW(wszFile[i], name + 9) || /* Vista */ + !lstrcmpW(wszFile[i], name + 11) || /* Win7 */ + !lstrcmpW(wszFile[i], name + 13), /* Win8 */ "The filename should be stored in unicode at this position!\n"); } } @@ -3969,7 +3971,8 @@ } max_id_check -= baseItem; ok((max_id_check == max_id) || - (max_id_check == max_id-1 /* Win 7 */), + (max_id_check == max_id-1) || /* Win 7 */ + (max_id_check == max_id-2), /* Win 8 */ "Not equal (or near equal), got %d and %d\n", max_id_check, max_id); #define is_win2k() (pSHGetFolderPathA && !pSHGetFolderPathAndSubDirA) diff -Nru wine1.7-1.7.18/dlls/shlwapi/path.c wine1.7-1.7.19/dlls/shlwapi/path.c --- wine1.7-1.7.18/dlls/shlwapi/path.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/shlwapi/path.c 2014-05-16 19:06:48.000000000 +0000 @@ -3533,7 +3533,7 @@ if(!(dwAttrFrom & FILE_ATTRIBUTE_DIRECTORY)) PathRemoveFileSpecW(szFrom); - if(!(dwAttrFrom & FILE_ATTRIBUTE_DIRECTORY)) + if(!(dwAttrTo & FILE_ATTRIBUTE_DIRECTORY)) PathRemoveFileSpecW(szTo); /* Paths can only be relative if they have a common root */ diff -Nru wine1.7-1.7.18/dlls/urlmon/bindprot.c wine1.7-1.7.19/dlls/urlmon/bindprot.c --- wine1.7-1.7.18/dlls/urlmon/bindprot.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/urlmon/bindprot.c 2014-05-16 19:06:48.000000000 +0000 @@ -698,6 +698,9 @@ if(!This->reported_result) return E_FAIL; + /* This may get released in Terminate call. */ + IInternetProtocolEx_AddRef(&This->IInternetProtocolEx_iface); + IInternetProtocol_Terminate(This->protocol, 0); set_binding_sink(This, NULL, NULL); @@ -707,6 +710,7 @@ This->bind_info = NULL; } + IInternetProtocolEx_Release(&This->IInternetProtocolEx_iface); return S_OK; } diff -Nru wine1.7-1.7.18/dlls/user32/defwnd.c wine1.7-1.7.19/dlls/user32/defwnd.c --- wine1.7-1.7.18/dlls/user32/defwnd.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/user32/defwnd.c 2014-05-16 19:06:48.000000000 +0000 @@ -831,6 +831,7 @@ case WM_IME_ENDCOMPOSITION: case WM_IME_SELECT: case WM_IME_NOTIFY: + case WM_IME_CONTROL: { HWND hwndIME = ImmGetDefaultIMEWnd( hwnd ); if (hwndIME) @@ -983,6 +984,7 @@ case WM_IME_ENDCOMPOSITION: case WM_IME_SELECT: case WM_IME_NOTIFY: + case WM_IME_CONTROL: { HWND hwndIME = ImmGetDefaultIMEWnd( hwnd ); if (hwndIME) diff -Nru wine1.7-1.7.18/dlls/user32/resource.c wine1.7-1.7.19/dlls/user32/resource.c --- wine1.7-1.7.18/dlls/user32/resource.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/user32/resource.c 2014-05-16 19:06:48.000000000 +0000 @@ -310,7 +310,8 @@ while (id--) p += *p + 1; - RtlUnicodeToMultiByteN( buffer, buflen - 1, &retval, p + 1, *p * sizeof(WCHAR) ); + if (buflen != 1) + RtlUnicodeToMultiByteN( buffer, buflen - 1, &retval, p + 1, *p * sizeof(WCHAR) ); } buffer[retval] = 0; TRACE("returning %s\n", debugstr_a(buffer)); diff -Nru wine1.7-1.7.18/dlls/user32/tests/cursoricon.c wine1.7-1.7.19/dlls/user32/tests/cursoricon.c --- wine1.7-1.7.18/dlls/user32/tests/cursoricon.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/user32/tests/cursoricon.c 2014-05-16 19:06:48.000000000 +0000 @@ -955,14 +955,14 @@ /* Shamelessly ripped from dlls/oleaut32/tests/olepicture.c */ /* 1x1 pixel gif */ -static unsigned char gifimage[35] = { +static const unsigned char gifimage[35] = { 0x47,0x49,0x46,0x38,0x37,0x61,0x01,0x00,0x01,0x00,0x80,0x00,0x00,0xff,0xff,0xff, 0xff,0xff,0xff,0x2c,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x02,0x02,0x44, 0x01,0x00,0x3b }; /* 1x1 pixel jpg */ -static unsigned char jpgimage[285] = { +static const unsigned char jpgimage[285] = { 0xff,0xd8,0xff,0xe0,0x00,0x10,0x4a,0x46,0x49,0x46,0x00,0x01,0x01,0x01,0x01,0x2c, 0x01,0x2c,0x00,0x00,0xff,0xdb,0x00,0x43,0x00,0x05,0x03,0x04,0x04,0x04,0x03,0x05, 0x04,0x04,0x04,0x05,0x05,0x05,0x06,0x07,0x0c,0x08,0x07,0x07,0x07,0x07,0x0f,0x0b, @@ -984,7 +984,7 @@ }; /* 1x1 pixel png */ -static unsigned char pngimage[285] = { +static const unsigned char pngimage[285] = { 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x02,0x00,0x00,0x00,0x90,0x77,0x53, 0xde,0x00,0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x0b,0x13,0x00,0x00,0x0b, @@ -1005,14 +1005,14 @@ }; /* 1x1 pixel bmp using BITMAPCOREHEADER */ -static unsigned char bmpcoreimage[38] = { +static const unsigned char bmpcoreimage[38] = { 0x42,0x4d,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x0c,0x00, 0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xff,0xff,0xff,0x00,0x55,0x55, 0x55,0x00,0x00,0x00,0x00,0x00 }; /* 2x2 pixel gif */ -static unsigned char gif4pixel[42] = { +static const unsigned char gif4pixel[42] = { 0x47,0x49,0x46,0x38,0x37,0x61,0x02,0x00,0x02,0x00,0xa1,0x00,0x00,0x00,0x00,0x00, 0x39,0x62,0xfc,0xff,0x1a,0xe5,0xff,0xff,0xff,0x2c,0x00,0x00,0x00,0x00,0x02,0x00, 0x02,0x00,0x00,0x02,0x03,0x14,0x16,0x05,0x00,0x3b @@ -1059,7 +1059,7 @@ ok(color_match(pixel, 0x00ffffff), "%s: Pixel is 0x%08x\n", test_desc, pixel); } -static void test_LoadImageFile(const char * test_desc, unsigned char * image_data, +static void test_LoadImageFile(const char * test_desc, const unsigned char * image_data, unsigned int image_size, const char * ext, BOOL expect_success) { HANDLE handle; diff -Nru wine1.7-1.7.18/dlls/user32/tests/resource.c wine1.7-1.7.19/dlls/user32/tests/resource.c --- wine1.7-1.7.18/dlls/user32/tests/resource.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/user32/tests/resource.c 2014-05-16 19:06:48.000000000 +0000 @@ -126,6 +126,13 @@ ok( ret == -1 || broken(ret == 0), "LoadStringA did not return -1 when called with buflen = 0, got %d, err %d\n", ret, GetLastError()); + + SetLastError(0xdeadbeef); + buf[0] = 'a'; + ret = LoadStringA(hInst, 1, buf, 1); + ok( !ret, "LoadString returned %d\n", ret); + ok( buf[0] == 0, "buf[0] = %c (%x)\n", buf[0], buf[0]); + ok( GetLastError() == 0xdeadbeef, "GetLastError() = %d\n", GetLastError()); } static void test_accel1(void) diff -Nru wine1.7-1.7.18/dlls/user32/user32.spec wine1.7-1.7.19/dlls/user32/user32.spec --- wine1.7-1.7.18/dlls/user32/user32.spec 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/user32/user32.spec 2014-05-16 19:06:48.000000000 +0000 @@ -573,6 +573,7 @@ @ stdcall RegisterShellHookWindow (long) @ stdcall RegisterSystemThread(long long) @ stdcall RegisterTasklist (long) +@ stdcall RegisterTouchWindow(long long) # @ stub RegisterUserApiHook @ stdcall RegisterWindowMessageA(str) @ stdcall RegisterWindowMessageW(wstr) diff -Nru wine1.7-1.7.18/dlls/user32/win.c wine1.7-1.7.19/dlls/user32/win.c --- wine1.7-1.7.18/dlls/user32/win.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/user32/win.c 2014-05-16 19:06:48.000000000 +0000 @@ -3887,3 +3887,13 @@ { return WIN_SetWindowLong( hwnd, offset, sizeof(LONG_PTR), newval, FALSE ); } + +/***************************************************************************** + * RegisterTouchWindow (USER32.@) + */ +BOOL WINAPI RegisterTouchWindow(HWND hwnd, ULONG flags) +{ + FIXME("(%p %08x): stub\n", hwnd, flags); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; +} diff -Nru wine1.7-1.7.18/dlls/usp10/tests/usp10.c wine1.7-1.7.19/dlls/usp10/tests/usp10.c --- wine1.7-1.7.18/dlls/usp10/tests/usp10.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/usp10/tests/usp10.c 2014-05-16 19:06:48.000000000 +0000 @@ -243,12 +243,12 @@ /* Hebrew */ static const WCHAR test6[] = {0x05e9, 0x05dc, 0x05d5, 0x05dd, '.',0}; - static const itemTest t61[3] = {{{0,0,0,0,0},0,1,1,1,hebr_tag,FALSE},{{0,0,0,0,0},4,0,0,0,0,FALSE},{{0,0,0,0,0},5,0,0,0,-1,FALSE}}; + static const itemTest t61[3] = {{{0,0,0,0,0},0,1,1,1,hebr_tag,TRUE,{-1,0,0,0,-1}},{{0,0,0,0,0},4,0,0,0,0,FALSE},{{0,0,0,0,0},5,0,0,0,-1,FALSE}}; static const itemTest t62[3] = {{{0,0,0,0,0},0,1,1,1,hebr_tag,FALSE},{{0,0,0,0,0},4,1,1,1,0,FALSE},{{0,0,0,0,0},5,0,0,0,-1,FALSE}}; static const itemTest t63[2] = {{{0,0,0,0,0},0,1,1,1,hebr_tag,FALSE},{{0,0,0,0,0},5,0,0,0,-1,FALSE}}; static const int b63[2] = {2,2}; static const WCHAR test7[] = {'p','a','r','t',' ','o','n','e',' ',0x05d7, 0x05dc, 0x05e7, ' ', 0x05e9, 0x05ea, 0x05d9, 0x05d9, 0x05dd, ' ','p','a','r','t',' ','t','h','r','e','e', 0}; - static const itemTest t71[4] = {{{0,0,0,0,0},0,0,0,0,latn_tag,FALSE},{{0,0,0,0,0},9,1,1,1,hebr_tag,FALSE},{{0,0,0,0,0},19,0,0,0,latn_tag,FALSE},{{0,0,0,0,0},29,0,0,0,-1,FALSE}}; + static const itemTest t71[4] = {{{0,0,0,0,0},0,0,0,0,latn_tag,FALSE},{{0,0,0,0,0},9,1,1,1,hebr_tag,TRUE,{-1,0,0,0,-1}},{{0,0,0,0,0},19,0,0,0,latn_tag,FALSE},{{0,0,0,0,0},29,0,0,0,-1,FALSE}}; static const itemTest t72[4] = {{{0,0,0,0,0},0,0,0,0,latn_tag,FALSE},{{0,0,0,0,0},9,1,1,1,hebr_tag,FALSE},{{0,0,0,0,0},18,0,0,0,latn_tag,FALSE},{{0,0,0,0,0},29,0,0,0,-1,FALSE}}; static const itemTest t73[4] = {{{0,0,0,0,0},0,0,0,2,latn_tag,FALSE},{{0,0,0,0,0},8,1,1,1,hebr_tag,FALSE},{{0,0,0,0,0},19,0,0,2,latn_tag,FALSE},{{0,0,0,0,0},29,0,0,0,-1,FALSE}}; static const WCHAR test8[] = {0x0633, 0x0644, 0x0627, 0x0645,0}; diff -Nru wine1.7-1.7.18/dlls/usp10/usp10.c wine1.7-1.7.19/dlls/usp10/usp10.c --- wine1.7-1.7.18/dlls/usp10/usp10.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/usp10/usp10.c 2014-05-16 19:06:48.000000000 +0000 @@ -2848,6 +2848,7 @@ unsigned int g; BOOL rtl; int cluster; + static int once = 0; TRACE("(%p, %p, %p, %s, %s, %p, %p, %d, %s, %d, %d, %p, %p, %p, %p, %p )\n", hdc, psc, psa, @@ -2862,7 +2863,7 @@ if (cChars > cMaxGlyphs) return E_OUTOFMEMORY; if (cRanges) - FIXME("Ranges not supported yet\n"); + if(!once++) FIXME("Ranges not supported yet\n"); rtl = (psa && !psa->fLogicalOrder && psa->fRTL); @@ -3077,6 +3078,7 @@ { HRESULT hr; int i; + static int once = 0; TRACE("(%p, %p, %p, %s, %s, %p, %p, %d, %s, %p, %p, %d, %p, %p, %d, %p %p %p)\n", hdc, psc, psa, @@ -3090,7 +3092,7 @@ if (!pGoffset) return E_FAIL; if (cRanges) - FIXME("Ranges not supported yet\n"); + if (!once++) FIXME("Ranges not supported yet\n"); ((ScriptCache *)*psc)->userScript = tagScript; ((ScriptCache *)*psc)->userLang = tagLangSys; diff -Nru wine1.7-1.7.18/dlls/vbscript/global.c wine1.7-1.7.19/dlls/vbscript/global.c --- wine1.7-1.7.18/dlls/vbscript/global.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/vbscript/global.c 2014-05-16 19:06:48.000000000 +0000 @@ -114,16 +114,6 @@ return S_OK; } -static HRESULT return_bool(VARIANT *res, int val) -{ - if(res) { - V_VT(res) = VT_BOOL; - V_BOOL(res) = val != 0 ? VARIANT_TRUE : VARIANT_FALSE; - } - - return S_OK; -} - static inline HRESULT return_double(VARIANT *res, double val) { if(res) { @@ -413,36 +403,46 @@ static HRESULT Global_CBool(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) { - int val; + VARIANT v; + HRESULT hres; + TRACE("%s\n", debugstr_variant(arg)); assert(args_cnt == 1); - switch(V_VT(arg)) { - case VT_I2: - val = V_I2(arg); - break; - case VT_I4: - val = V_I4(arg); - break; - case VT_R4: - val = V_R4(arg) > 0.0 || V_R4(arg) < 0.0; - break; - case VT_R8: - val = V_R8(arg) > 0.0 || V_R8(arg) < 0.0; - break; - default: - ERR("Not a numeric value: %s\n", debugstr_variant(arg)); - return E_FAIL; - } + V_VT(&v) = VT_EMPTY; + hres = VariantChangeType(&v, arg, VARIANT_LOCALBOOL, VT_BOOL); + if(FAILED(hres)) + return hres; - return return_bool(res, val); + if(res) + *res = v; + else + VariantClear(&v); + return S_OK; } static HRESULT Global_CByte(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) { - FIXME("\n"); - return E_NOTIMPL; + VARIANT v; + HRESULT hres; + + TRACE("%s\n", debugstr_variant(arg)); + + assert(args_cnt == 1); + + V_VT(&v) = VT_EMPTY; + hres = VariantChangeType(&v, arg, VARIANT_LOCALBOOL, VT_UI1); + if(FAILED(hres)) + return hres; + + if(!res) { + VariantClear(&v); + return DISP_E_BADVARTYPE; + } + + *res = v; + return S_OK; } static HRESULT Global_CDate(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) diff -Nru wine1.7-1.7.18/dlls/vbscript/tests/api.vbs wine1.7-1.7.19/dlls/vbscript/tests/api.vbs --- wine1.7-1.7.18/dlls/vbscript/tests/api.vbs 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/vbscript/tests/api.vbs 2014-05-16 19:06:48.000000000 +0000 @@ -478,4 +478,103 @@ Call ok(CBool(-5) = true, "CBool(-5) = " & CBool(-5)) Call ok(getVT(CBool(-5)) = "VT_BOOL", "getVT(CBool(-5)) = " & getVT(CBool(-5))) +Sub testCBoolError(strings, error_num) + on error resume next + + Call Err.clear() + Call CBool(strings) + Call ok(Err.number = error_num, "Err.number = " & Err.number) +End Sub + +Class ValClass + Public myval + + Public default Property Get defprop + defprop = myval + End Property +End Class + +Dim MyObject +Set MyObject = New ValClass + +Call ok(CBool(Empty) = False, "CBool(Empty) = " & CBool(Empty)) +Call ok(getVT(CBool(Empty)) = "VT_BOOL", "getVT(CBool(Empty)) = " & getVT(CBool(Empty))) +Call ok(CBool(1) = True, "CBool(1) = " & CBool(1)) +Call ok(getVT(CBool(1)) = "VT_BOOL", "getVT(CBool(1)) = " & getVT(CBool(1))) +Call ok(CBool(0) = False, "CBool(0) = " & CBool(0)) +Call ok(getVT(CBool(0)) = "VT_BOOL", "getVT(CBool(0)) = " & getVT(CBool(0))) +Call ok(CBool(-0.56) = True, "CBool(-0.56) = " & CBool(-0.56)) +Call ok(getVT(CBool(-0.56)) = "VT_BOOL", "getVT(CBool(-0.56)) = " & getVT(CBool(-0.56))) +Call testCBoolError("", 13) +Call ok(CBool("0") = False, "CBool(""0"") = " & CBool("0")) +Call ok(getVT(CBool("0")) = "VT_BOOL", "getVT(CBool(""0"")) = " & getVT(CBool("0"))) +If isEnglishLang Then + Call ok(CBool("0.1") = True, "CBool(""0.1"") = " & CBool("0.1")) + Call ok(getVT(CBool("0.1")) = "VT_BOOL", "getVT(CBool(""0.1"")) = " & getVT(CBool("0.1"))) +End If + Call ok(CBool("true") = True, "CBool(""true"") = " & CBool("true")) +Call ok(getVT(CBool("true")) = "VT_BOOL", "getVT(CBool(""true"")) = " & getVT(CBool("true"))) +Call ok(CBool("false") = False, "CBool(""false"") = " & CBool("false")) +Call ok(getVT(CBool("false")) = "VT_BOOL", "getVT(CBool(""false"")) = " & getVT(CBool("false"))) +Call ok(CBool("TRUE") = True, "CBool(""TRUE"") = " & CBool("TRUE")) +Call ok(getVT(CBool("TRUE")) = "VT_BOOL", "getVT(CBool(""TRUE"")) = " & getVT(CBool("TRUE"))) +Call ok(CBool("FALSE") = False, "CBool(""FALSE"") = " & CBool("FALSE")) +Call ok(getVT(CBool("FALSE")) = "VT_BOOL", "getVT(CBool(""FALSE"")) = " & getVT(CBool("FALSE"))) +Call ok(CBool("#TRUE#") = True, "CBool(""#TRUE#"") = " & CBool("#TRUE#")) +Call ok(getVT(CBool("#TRUE#")) = "VT_BOOL", "getVT(CBool(""#TRUE#"")) = " & getVT(CBool("#TRUE#"))) +Call ok(CBool("#FALSE#") = False, "CBool(""#FALSE#"") = " & CBool("#FALSE#")) +Call ok(getVT(CBool("#FALSE#")) = "VT_BOOL", "getVT(CBool(""#FALSE#"")) = " & getVT(CBool("#FALSE#"))) +Call ok(CBool(MyObject) = False, "CBool(MyObject) = " & CBool(MyObject)) +Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject))) +MyObject.myval = 1 +Call ok(CBool(MyObject) = True, "CBool(MyObject) = " & CBool(MyObject)) +Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject))) +MyObject.myval = 0 +Call ok(CBool(MyObject) = False, "CBool(MyObject) = " & CBool(MyObject)) +Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject))) + +Sub testCByteError(strings, error_num1,error_num2) + on error resume next + Dim x + + Call Err.clear() + x = CByte(strings) + Call ok(Err.number = error_num1, "Err.number = " & Err.number) + + Call Err.clear() + Call CByte(strings) + Call ok(Err.number = error_num2, "Err.number = " & Err.number) +End Sub + +Call ok(CByte(Empty) = 0, "CByte(Empty) = " & CByte(Empty)) +Call ok(getVT(CByte(Empty)) = "VT_UI1", "getVT(CByte(Empty)) = " & getVT(CByte(Empty))) +Call ok(CByte(255) = 255, "CByte(255) = " & CByte(255)) +Call ok(getVT(CByte(255)) = "VT_UI1", "getVT(CByte(255)) = " & getVT(CByte(255))) +Call ok(CByte(255.49) = 255, "CByte(255.49) = " & CByte(255.49)) +Call ok(getVT(CByte(255.49)) = "VT_UI1", "getVT(CByte(255.49)) = " & getVT(CByte(255.49))) +Call testCByteError(1, 0, 458) +Call testCByteError("", 13, 13) +Call testCByteError("-1", 6, 6) +Call testCByteError("258", 6, 6) +Call testCByteError("TRUE", 13, 13) +Call testCByteError("FALSE", 13, 13) +Call testCByteError("#TRue#", 13, 13) +Call testCByteError("#fAlSE#", 13, 13) +If isEnglishLang Then + Call ok(CByte("-0.5") = 0, "CByte(""-0.5"") = " & CByte("-0.5")) + Call ok(getVT(CByte("-0.5")) = "VT_UI1", "getVT(CByte(""-0.5"")) = " & getVT(CByte("-0.5"))) +End If +Call ok(CByte(True) = 255, "CByte(True) = " & CByte(True)) +Call ok(getVT(CByte(True)) = "VT_UI1", "getVT(CByte(True)) = " & getVT(CByte(True))) +Call ok(CByte(False) = 0, "CByte(False) = " & CByte(False)) +Call ok(getVT(CByte(False)) = "VT_UI1", "getVT(CByte(False)) = " & getVT(CByte(False))) +Call ok(CByte(MyObject) = 0, "CByte(MyObject) = " & CByte(MyObject)) +Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject))) +MyObject.myval = 1 +Call ok(CByte(MyObject) = 1, "CByte(MyObject) = " & CByte(MyObject)) +Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject))) +MyObject.myval = 0 +Call ok(CByte(MyObject) = 0, "CByte(MyObject) = " & CByte(MyObject)) +Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject))) + Call reportSuccess() diff -Nru wine1.7-1.7.18/dlls/vbscript/tests/run.c wine1.7-1.7.19/dlls/vbscript/tests/run.c --- wine1.7-1.7.18/dlls/vbscript/tests/run.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/vbscript/tests/run.c 2014-05-16 19:06:48.000000000 +0000 @@ -181,6 +181,8 @@ return "VT_ARRAY|VT_VARIANT"; case VT_ARRAY|VT_BYREF|VT_VARIANT: return "VT_ARRAY|VT_BYREF|VT_VARIANT"; + case VT_UI1: + return "VT_UI1"; default: ok(0, "unknown vt %d\n", V_VT(v)); return NULL; diff -Nru wine1.7-1.7.18/dlls/ver.dll16/version.c wine1.7-1.7.19/dlls/ver.dll16/version.c --- wine1.7-1.7.18/dlls/ver.dll16/version.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ver.dll16/version.c 2014-05-16 19:06:48.000000000 +0000 @@ -522,7 +522,8 @@ LPSTR lpszSrcDir, LPSTR lpszDestDir, LPSTR lpszCurDir, LPSTR lpszTmpFile, UINT16 *lpwTmpFileLen ) { - UINT filelen; + UINT filelen = *lpwTmpFileLen; + DWORD retv = VerInstallFileA( flags, lpszSrcFilename, lpszDestFilename, lpszSrcDir, lpszDestDir, lpszCurDir, lpszTmpFile, &filelen); diff -Nru wine1.7-1.7.18/dlls/wbemprox/main.c wine1.7-1.7.19/dlls/wbemprox/main.c --- wine1.7-1.7.18/dlls/wbemprox/main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wbemprox/main.c 2014-05-16 19:06:48.000000000 +0000 @@ -118,8 +118,6 @@ switch (fdwReason) { - case DLL_WINE_PREATTACH: - return FALSE; /* prefer native version */ case DLL_PROCESS_ATTACH: instance = hinstDLL; DisableThreadLibraryCalls(hinstDLL); diff -Nru wine1.7-1.7.18/dlls/wbemprox/query.c wine1.7-1.7.19/dlls/wbemprox/query.c --- wine1.7-1.7.18/dlls/wbemprox/query.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wbemprox/query.c 2014-05-16 19:06:48.000000000 +0000 @@ -963,12 +963,12 @@ { SAFEARRAY *sa; BSTR str; - LONG i; - UINT num_props = count_selected_properties( view ); + UINT i, num_props = count_selected_properties( view ); + LONG j; if (!(sa = SafeArrayCreateVector( VT_BSTR, 0, num_props ))) return E_OUTOFMEMORY; - for (i = 0; i < view->table->num_cols; i++) + for (i = 0, j = 0; i < view->table->num_cols; i++) { BOOL is_system; @@ -980,12 +980,13 @@ else if ((flags & WBEM_FLAG_SYSTEM_ONLY) && !is_system) continue; str = SysAllocString( view->table->columns[i].name ); - if (!str || SafeArrayPutElement( sa, &i, str ) != S_OK) + if (!str || SafeArrayPutElement( sa, &j, str ) != S_OK) { SysFreeString( str ); SafeArrayDestroy( sa ); return E_OUTOFMEMORY; } + j++; } *props = sa; return S_OK; diff -Nru wine1.7-1.7.18/dlls/wined3d/arb_program_shader.c wine1.7-1.7.19/dlls/wined3d/arb_program_shader.c --- wine1.7-1.7.18/dlls/wined3d/arb_program_shader.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wined3d/arb_program_shader.c 2014-05-16 19:06:48.000000000 +0000 @@ -7282,9 +7282,8 @@ struct wined3d_device *device = surface->resource.device; const struct wined3d_gl_info *gl_info = context->gl_info; struct arbfp_blit_priv *priv = device->blit_priv; - BOOL colorkey = !!(surface->container->color_key_flags & WINEDDSD_CKSRCBLT); - d3dfmt_p8_init_palette(surface, table, colorkey); + d3dfmt_p8_init_palette(surface, table); if (!priv->palette_texture) gl_info->gl_ops.gl.p_glGenTextures(1, &priv->palette_texture); diff -Nru wine1.7-1.7.18/dlls/wined3d/palette.c wine1.7-1.7.19/dlls/wined3d/palette.c --- wine1.7-1.7.18/dlls/wined3d/palette.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wined3d/palette.c 2014-05-16 19:06:48.000000000 +0000 @@ -53,6 +53,7 @@ HRESULT CDECL wined3d_palette_get_entries(const struct wined3d_palette *palette, DWORD flags, DWORD start, DWORD count, PALETTEENTRY *entries) { + unsigned int i; TRACE("palette %p, flags %#x, start %u, count %u, entries %p.\n", palette, flags, start, count, entries); @@ -64,21 +65,35 @@ if (palette->flags & WINED3D_PALETTE_8BIT_ENTRIES) { BYTE *entry = (BYTE *)entries; - unsigned int i; for (i = start; i < count + start; ++i) - *entry++ = palette->palents[i].peRed; + *entry++ = palette->colors[i].rgbRed; } else - memcpy(entries, palette->palents + start, count * sizeof(*entries)); + { + for (i = 0; i < count; ++i) + { + entries[i].peRed = palette->colors[i + start].rgbRed; + entries[i].peGreen = palette->colors[i + start].rgbGreen; + entries[i].peBlue = palette->colors[i + start].rgbBlue; + entries[i].peFlags = palette->colors[i + start].rgbReserved; + } + } return WINED3D_OK; } +void CDECL wined3d_palette_apply_to_dc(const struct wined3d_palette *palette, HDC dc) +{ + if (SetDIBColorTable(dc, 0, 256, palette->colors) != 256) + ERR("Failed to set DIB color table.\n"); +} + HRESULT CDECL wined3d_palette_set_entries(struct wined3d_palette *palette, DWORD flags, DWORD start, DWORD count, const PALETTEENTRY *entries) { struct wined3d_resource *resource; + unsigned int i; TRACE("palette %p, flags %#x, start %u, count %u, entries %p.\n", palette, flags, start, count, entries); @@ -87,26 +102,31 @@ if (palette->flags & WINED3D_PALETTE_8BIT_ENTRIES) { const BYTE *entry = (const BYTE *)entries; - unsigned int i; for (i = start; i < count + start; ++i) - palette->palents[i].peRed = *entry++; + palette->colors[i].rgbRed = *entry++; } else { - memcpy(palette->palents + start, entries, count * sizeof(*palette->palents)); + for (i = 0; i < count; ++i) + { + palette->colors[i + start].rgbRed = entries[i].peRed; + palette->colors[i + start].rgbGreen = entries[i].peGreen; + palette->colors[i + start].rgbBlue = entries[i].peBlue; + palette->colors[i + start].rgbReserved = entries[i].peFlags; + } /* When WINEDDCAPS_ALLOW256 isn't set we need to override entry 0 with black and 255 with white */ if (!(palette->flags & WINED3D_PALETTE_ALLOW_256)) { TRACE("WINED3D_PALETTE_ALLOW_256 not set, overriding palette entry 0 with black and 255 with white.\n"); - palette->palents[0].peRed = 0; - palette->palents[0].peGreen = 0; - palette->palents[0].peBlue = 0; - - palette->palents[255].peRed = 255; - palette->palents[255].peGreen = 255; - palette->palents[255].peBlue = 255; + palette->colors[0].rgbRed = 0; + palette->colors[0].rgbGreen = 0; + palette->colors[0].rgbBlue = 0; + + palette->colors[255].rgbRed = 255; + palette->colors[255].rgbGreen = 255; + palette->colors[255].rgbBlue = 255; } } diff -Nru wine1.7-1.7.18/dlls/wined3d/stateblock.c wine1.7-1.7.19/dlls/wined3d/stateblock.c --- wine1.7-1.7.18/dlls/wined3d/stateblock.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wined3d/stateblock.c 2014-05-16 19:06:48.000000000 +0000 @@ -539,6 +539,11 @@ if (!(state->flags & WINED3D_STATE_NO_REF)) state_unbind_resources(state); + for (counter = 0; counter < MAX_ACTIVE_LIGHTS; ++counter) + { + state->lights[counter] = NULL; + } + for (counter = 0; counter < LIGHTMAP_SIZE; ++counter) { struct list *e1, *e2; diff -Nru wine1.7-1.7.18/dlls/wined3d/surface.c wine1.7-1.7.19/dlls/wined3d/surface.c --- wine1.7-1.7.18/dlls/wined3d/surface.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wined3d/surface.c 2014-05-16 19:06:48.000000000 +0000 @@ -787,23 +787,6 @@ } } - if (surface->flags & SFLAG_DIBSECTION) - { - RGBQUAD col[256]; - unsigned int i; - - TRACE("Updating the DC's palette.\n"); - - for (i = 0; i < 256; ++i) - { - col[i].rgbRed = palette->palents[i].peRed; - col[i].rgbGreen = palette->palents[i].peGreen; - col[i].rgbBlue = palette->palents[i].peBlue; - col[i].rgbReserved = 0; - } - SetDIBColorTable(surface->hDC, 0, 256, col); - } - /* Propagate the changes to the drawable when we have a palette. */ if (surface->resource.usage & WINED3DUSAGE_RENDERTARGET) surface_load_location(surface, surface->draw_binding); @@ -1115,16 +1098,15 @@ DWORD color, struct wined3d_color *float_color) { const struct wined3d_format *format = surface->resource.format; - const struct wined3d_device *device = surface->resource.device; switch (format->id) { case WINED3DFMT_P8_UINT: if (surface->palette) { - float_color->r = surface->palette->palents[color].peRed / 255.0f; - float_color->g = surface->palette->palents[color].peGreen / 255.0f; - float_color->b = surface->palette->palents[color].peBlue / 255.0f; + float_color->r = surface->palette->colors[color].rgbRed / 255.0f; + float_color->g = surface->palette->colors[color].rgbGreen / 255.0f; + float_color->b = surface->palette->colors[color].rgbBlue / 255.0f; } else { @@ -1132,7 +1114,7 @@ float_color->g = 0.0f; float_color->b = 0.0f; } - float_color->a = swapchain_is_p8(device->swapchains[0]) ? color / 255.0f : 1.0f; + float_color->a = color / 255.0f; break; case WINED3DFMT_B5G6R5_UNORM: @@ -1391,28 +1373,14 @@ if (!palette) return; - if (surface->flags & SFLAG_DIBSECTION) - { - RGBQUAD col[256]; - unsigned int i; - - TRACE("Updating the DC's palette.\n"); - - for (i = 0; i < 256; ++i) - { - col[i].rgbRed = palette->palents[i].peRed; - col[i].rgbGreen = palette->palents[i].peGreen; - col[i].rgbBlue = palette->palents[i].peBlue; - col[i].rgbReserved = 0; - } - SetDIBColorTable(surface->hDC, 0, 256, col); - } - /* Update the image because of the palette change. Some games like e.g. * Red Alert call SetEntries a lot to implement fading. */ /* Tell the swapchain to update the screen. */ if (surface->swapchain && surface == surface->swapchain->front_buffer) + { + wined3d_palette_apply_to_dc(palette, surface->hDC); x11_copy_to_screen(surface->swapchain, NULL); + } } static void gdi_surface_unmap(struct wined3d_surface *surface) @@ -1480,13 +1448,6 @@ int src_pitch = 0; int dst_pitch = 0; - /* In case of P8 the index is stored in the alpha component if the primary render target uses P8. */ - if (format->id == WINED3DFMT_P8_UINT && swapchain_is_p8(surface->resource.device->swapchains[0])) - { - gl_format = GL_ALPHA; - gl_type = GL_UNSIGNED_BYTE; - } - if (surface->flags & SFLAG_NONPOW2) { unsigned char alignment = surface->resource.device->surface_alignment; @@ -1749,10 +1710,7 @@ format->glInternal = GL_RGBA; format->glType = GL_UNSIGNED_BYTE; format->conv_byte_count = 4; - if (colorkey_active) - *conversion_type = WINED3D_CT_PALETTED_CK; - else - *conversion_type = WINED3D_CT_PALETTED; + *conversion_type = WINED3D_CT_PALETTED; } break; @@ -2403,13 +2361,6 @@ surface->surface_ops->surface_realize_palette(surface); } -struct wined3d_palette * CDECL wined3d_surface_get_palette(const struct wined3d_surface *surface) -{ - TRACE("surface %p.\n", surface); - - return surface->palette; -} - DWORD CDECL wined3d_surface_get_pitch(const struct wined3d_surface *surface) { unsigned int alignment; @@ -3171,43 +3122,6 @@ surface_load_location(surface, WINED3D_LOCATION_DIB); surface_invalidate_location(surface, ~WINED3D_LOCATION_DIB); - if (surface->resource.format->id == WINED3DFMT_P8_UINT - || surface->resource.format->id == WINED3DFMT_P8_UINT_A8_UNORM) - { - /* GetDC on palettized formats is unsupported in D3D9, and the method - * is missing in D3D8, so this should only be used for DX <=7 - * surfaces (with non-device palettes). */ - const PALETTEENTRY *pal = NULL; - - if (surface->palette) - { - pal = surface->palette->palents; - } - else - { - struct wined3d_swapchain *swapchain = surface->resource.device->swapchains[0]; - struct wined3d_surface *dds_primary = swapchain->front_buffer; - - if (dds_primary && dds_primary->palette) - pal = dds_primary->palette->palents; - } - - if (pal) - { - RGBQUAD col[256]; - unsigned int i; - - for (i = 0; i < 256; ++i) - { - col[i].rgbRed = pal[i].peRed; - col[i].rgbGreen = pal[i].peGreen; - col[i].rgbBlue = pal[i].peBlue; - col[i].rgbReserved = 0; - } - SetDIBColorTable(surface->hDC, 0, 256, col); - } - } - surface->flags |= SFLAG_DCINUSE; surface->resource.map_count++; @@ -3234,8 +3148,19 @@ surface->resource.map_count--; surface->flags &= ~SFLAG_DCINUSE; - if (surface->map_binding == WINED3D_LOCATION_USER_MEMORY) - surface_load_location(surface, WINED3D_LOCATION_USER_MEMORY); + if (surface->map_binding == WINED3D_LOCATION_USER_MEMORY || (surface->flags & SFLAG_PIN_SYSMEM + && surface->map_binding != WINED3D_LOCATION_DIB)) + { + /* The game Salammbo modifies the surface contents without mapping the surface between + * a GetDC/ReleaseDC operation and flipping the surface. If the DIB remains the active + * copy and is copied to the screen, this update, which draws the mouse pointer, is lost. + * Do not only copy the DIB to the map location, but also make sure the map location is + * copied back to the DIB in the next getdc call. + * + * The same consideration applies to user memory surfaces. */ + surface_load_location(surface, surface->map_binding); + surface_invalidate_location(surface, WINED3D_LOCATION_DIB); + } return WINED3D_OK; } @@ -3246,14 +3171,10 @@ const struct wined3d_gl_info *gl_info; struct wined3d_context *context; BYTE *mem; - GLint fmt; - GLint type; BYTE *row, *top, *bottom; int i; - BOOL bpp; BOOL srcIsUpsideDown; struct wined3d_bo_address data; - UINT pitch = wined3d_surface_get_pitch(surface); surface_get_memory(surface, &data, dst_location); @@ -3283,56 +3204,10 @@ srcIsUpsideDown = FALSE; } - switch (surface->resource.format->id) - { - case WINED3DFMT_P8_UINT: - { - if (swapchain_is_p8(context->swapchain)) - { - /* In case of P8 render targets the index is stored in the alpha component */ - fmt = GL_ALPHA; - type = GL_UNSIGNED_BYTE; - mem = data.addr; - bpp = surface->resource.format->byte_count; - } - else - { - /* GL can't return palettized data, so read ARGB pixels into a - * separate block of memory and convert them into palettized format - * in software. Slow, but if the app means to use palettized render - * targets and locks it... - * - * Use GL_RGB, GL_UNSIGNED_BYTE to read the surface for performance reasons - * Don't use GL_BGR as in the WINED3DFMT_R8G8B8 case, instead watch out - * for the color channels when palettizing the colors. - */ - fmt = GL_RGB; - type = GL_UNSIGNED_BYTE; - pitch *= 3; - mem = HeapAlloc(GetProcessHeap(), 0, surface->resource.size * 3); - if (!mem) - { - ERR("Out of memory\n"); - return; - } - bpp = surface->resource.format->byte_count * 3; - } - } - break; - - default: - mem = data.addr; - fmt = surface->resource.format->glFormat; - type = surface->resource.format->glType; - bpp = surface->resource.format->byte_count; - } - if (data.buffer_object) { GL_EXTCALL(glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, data.buffer_object)); checkGLcall("glBindBufferARB"); - if (mem) - ERR("mem not null for pbo -- unexpected\n"); } /* Setup pixel store pack state -- to glReadPixels into the correct place */ @@ -3341,109 +3216,55 @@ gl_info->gl_ops.gl.p_glReadPixels(0, 0, surface->resource.width, surface->resource.height, - fmt, type, mem); + surface->resource.format->glFormat, + surface->resource.format->glType, data.addr); checkGLcall("glReadPixels"); /* Reset previous pixel store pack state */ gl_info->gl_ops.gl.p_glPixelStorei(GL_PACK_ROW_LENGTH, 0); checkGLcall("glPixelStorei"); - if (data.buffer_object && !srcIsUpsideDown) - { - /* Check if we need to flip the image. If we need to flip use glMapBufferARB - * to get a pointer to it and perform the flipping in software. This is a lot - * faster than calling glReadPixels for each line. In case we want more speed - * we should rerender it flipped in a FBO and read the data back from the FBO. */ - mem = GL_EXTCALL(glMapBufferARB(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_WRITE_ARB)); - checkGLcall("glMapBufferARB(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_WRITE_ARB)"); - } - - /* TODO: Merge this with the palettization loop below for P8 targets */ if (!srcIsUpsideDown) { - UINT len; /* glReadPixels returns the image upside down, and there is no way to prevent this. - Flip the lines in software */ - len = surface->resource.width * bpp; + * Flip the lines in software. */ + UINT pitch = wined3d_surface_get_pitch(surface); + + if (!(row = HeapAlloc(GetProcessHeap(), 0, pitch))) + goto error; - row = HeapAlloc(GetProcessHeap(), 0, len); - if (!row) + if (data.buffer_object) { - ERR("Out of memory\n"); - if (surface->resource.format->id == WINED3DFMT_P8_UINT) - HeapFree(GetProcessHeap(), 0, mem); - return; + mem = GL_EXTCALL(glMapBufferARB(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_WRITE_ARB)); + checkGLcall("glMapBufferARB(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_WRITE_ARB)"); } + else + mem = data.addr; top = mem; bottom = mem + pitch * (surface->resource.height - 1); for (i = 0; i < surface->resource.height / 2; i++) { - memcpy(row, top, len); - memcpy(top, bottom, len); - memcpy(bottom, row, len); + memcpy(row, top, pitch); + memcpy(top, bottom, pitch); + memcpy(bottom, row, pitch); top += pitch; bottom -= pitch; } HeapFree(GetProcessHeap(), 0, row); + + if (data.buffer_object) + GL_EXTCALL(glUnmapBufferARB(GL_PIXEL_PACK_BUFFER_ARB)); } +error: if (data.buffer_object) { - if (!srcIsUpsideDown) - GL_EXTCALL(glUnmapBufferARB(GL_PIXEL_PACK_BUFFER_ARB)); - GL_EXTCALL(glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, 0)); checkGLcall("glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, 0)"); } context_release(context); - - /* For P8 textures we need to perform an inverse palette lookup. This is - * done by searching for a palette index which matches the RGB value. - * Note this isn't guaranteed to work when there are multiple entries for - * the same color but we have no choice. In case of P8 render targets, - * the index is stored in the alpha component so no conversion is needed. */ - if (surface->resource.format->id == WINED3DFMT_P8_UINT && !swapchain_is_p8(context->swapchain)) - { - const PALETTEENTRY *pal = NULL; - DWORD width = pitch / 3; - int x, y, c; - - if (surface->palette) - { - pal = surface->palette->palents; - } - else - { - ERR("Palette is missing, cannot perform inverse palette lookup\n"); - HeapFree(GetProcessHeap(), 0, mem); - return; - } - - for (y = 0; y < surface->resource.height; y++) - { - for (x = 0; x < surface->resource.width; x++) - { - /* start lines pixels */ - const BYTE *blue = mem + y * pitch + x * (sizeof(BYTE) * 3); - const BYTE *green = blue + 1; - const BYTE *red = green + 1; - - for (c = 0; c < 256; c++) - { - if (*red == pal[c].peRed - && *green == pal[c].peGreen - && *blue == pal[c].peBlue) - { - *((BYTE *)data.addr + y * width + x) = c; - break; - } - } - } - } - HeapFree(GetProcessHeap(), 0, mem); - } } /* Read the framebuffer contents into a texture. Note that this function @@ -3549,54 +3370,34 @@ && color <= color_key->color_space_high_value; } -void d3dfmt_p8_init_palette(const struct wined3d_surface *surface, BYTE table[256][4], BOOL colorkey) +void d3dfmt_p8_init_palette(const struct wined3d_surface *surface, BYTE table[256][4]) { - const struct wined3d_device *device = surface->resource.device; const struct wined3d_palette *pal = surface->palette; - BOOL index_in_alpha = FALSE; unsigned int i; - /* Old games like StarCraft, C&C, Red Alert and others use P8 render targets. - * Reading back the RGB output each lockrect (each frame as they lock the whole screen) - * is slow. Further RGB->P8 conversion is not possible because palettes can have - * duplicate entries. Store the color key in the unused alpha component to speed the - * download up and to make conversion unneeded. */ - index_in_alpha = swapchain_is_p8(device->swapchains[0]); - if (!pal) { FIXME("No palette set.\n"); - if (index_in_alpha) - { - /* Guarantees that memory representation remains correct after sysmem<->texture transfers even if - * there's no palette at this time. */ - for (i = 0; i < 256; i++) table[i][3] = i; - } + /* Guarantees that memory representation remains correct after sysmem<->texture transfers even if + * there's no palette at this time. */ + for (i = 0; i < 256; i++) + table[i][3] = i; } else { TRACE("Using surface palette %p\n", pal); - /* Get the surface's palette */ for (i = 0; i < 256; ++i) { - table[i][0] = pal->palents[i].peRed; - table[i][1] = pal->palents[i].peGreen; - table[i][2] = pal->palents[i].peBlue; - - /* When index_in_alpha is set the palette index is stored in the - * alpha component. In case of a readback we can then read - * GL_ALPHA. Color keying is handled in surface_blt_special() using a - * GL_ALPHA_TEST using GL_NOT_EQUAL. In case of index_in_alpha the - * color key itself is passed to glAlphaFunc in other cases the - * alpha component of pixels that should be masked away is set to 0. */ - if (index_in_alpha) - table[i][3] = i; - else if (colorkey && color_in_range(&surface->container->src_blt_color_key, i)) - table[i][3] = 0x00; - else if (pal->flags & WINED3D_PALETTE_ALPHA) - table[i][3] = pal->palents[i].peFlags; - else - table[i][3] = 0xff; + table[i][0] = pal->colors[i].rgbRed; + table[i][1] = pal->colors[i].rgbGreen; + table[i][2] = pal->colors[i].rgbBlue; + /* The palette index is stored in the alpha component. In case of a + * readback we can then read GL_ALPHA. Color keying is handled in + * surface_blt_to_drawable() using a GL_ALPHA_TEST using GL_NOT_EQUAL. + * In case of a P8 surface the color key itself is passed to + * glAlphaFunc in other cases the alpha component of pixels that + * should be masked away is set to 0. */ + table[i][3] = i; } } } @@ -3619,12 +3420,11 @@ } case WINED3D_CT_PALETTED: - case WINED3D_CT_PALETTED_CK: { BYTE table[256][4]; unsigned int x, y; - d3dfmt_p8_init_palette(surface, table, (conversion_type == WINED3D_CT_PALETTED_CK)); + d3dfmt_p8_init_palette(surface, table); for (y = 0; y < height; y++) { @@ -4286,11 +4086,10 @@ gl_info->gl_ops.gl.p_glEnable(GL_ALPHA_TEST); checkGLcall("glEnable(GL_ALPHA_TEST)"); - /* When the primary render target uses P8, the alpha component - * contains the palette index. Which means that the colorkey is one of - * the palette entries. In other cases pixels that should be masked - * away have alpha set to 0. */ - if (swapchain_is_p8(context->swapchain)) + /* For P8 surfaces, the alpha component contains the palette index. + * Which means that the colorkey is one of the palette entries. In + * other cases pixels that should be masked away have alpha set to 0. */ + if (src_surface->resource.format->id == WINED3DFMT_P8_UINT) gl_info->gl_ops.gl.p_glAlphaFunc(GL_NOTEQUAL, (float)src_surface->container->src_blt_color_key.color_space_low_value / 256.0f); else @@ -5395,6 +5194,7 @@ } return WINED3D_OK; + case WINED3DFMT_DXT2: case WINED3DFMT_DXT3: for (y = 0; y < update_h; y += format->block_height) { diff -Nru wine1.7-1.7.18/dlls/wined3d/utils.c wine1.7-1.7.19/dlls/wined3d/utils.c --- wine1.7-1.7.18/dlls/wined3d/utils.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wined3d/utils.c 2014-05-16 19:06:48.000000000 +0000 @@ -740,10 +740,10 @@ | WINED3DFMT_FLAG_VTF, ARB_TEXTURE_FLOAT, NULL}, /* Palettized formats */ - {WINED3DFMT_P8_UINT, GL_RGBA, GL_RGBA, 0, + {WINED3DFMT_P8_UINT, GL_ALPHA8, GL_ALPHA8, 0, GL_ALPHA, GL_UNSIGNED_BYTE, 0, 0, - ARB_FRAGMENT_PROGRAM, NULL}, + 0, NULL}, /* Standard ARGB formats */ {WINED3DFMT_B8G8R8_UNORM, GL_RGB8, GL_RGB8, 0, GL_BGR, GL_UNSIGNED_BYTE, 0, @@ -3064,6 +3064,7 @@ {WINED3DFMT_R8G8B8X8_UNORM, 255.0f, 255.0f, 255.0f, 255.0f, 0, 8, 16, 24}, {WINED3DFMT_B10G10R10A2_UNORM, 1023.0f, 1023.0f, 1023.0f, 3.0f, 20, 10, 0, 30}, {WINED3DFMT_R10G10B10A2_UNORM, 1023.0f, 1023.0f, 1023.0f, 3.0f, 0, 10, 20, 30}, + {WINED3DFMT_P8_UINT, 0.0f, 0.0f, 0.0f, 255.0f, 0, 0, 0, 0}, }; const struct wined3d_format *format = surface->resource.format; unsigned int i; @@ -3087,40 +3088,6 @@ return ret; } - if (format->id == WINED3DFMT_P8_UINT) - { - PALETTEENTRY *e; - BYTE r, g, b, a; - - if (!surface->palette) - { - WARN("Surface doesn't have a palette, returning 0.\n"); - return 0; - } - - r = (BYTE)((color->r * 255.0f) + 0.5f); - g = (BYTE)((color->g * 255.0f) + 0.5f); - b = (BYTE)((color->b * 255.0f) + 0.5f); - a = (BYTE)((color->a * 255.0f) + 0.5f); - - e = &surface->palette->palents[a]; - if (e->peRed == r && e->peGreen == g && e->peBlue == b) - return a; - - WARN("Alpha didn't match index, searching full palette.\n"); - - for (i = 0; i < 256; ++i) - { - e = &surface->palette->palents[i]; - if (e->peRed == r && e->peGreen == g && e->peBlue == b) - return i; - } - - FIXME("Unable to convert color to palette index.\n"); - - return 0; - } - FIXME("Conversion for format %s not implemented.\n", debug_d3dformat(format->id)); return 0; diff -Nru wine1.7-1.7.18/dlls/wined3d/wined3d_private.h wine1.7-1.7.19/dlls/wined3d/wined3d_private.h --- wine1.7-1.7.18/dlls/wined3d/wined3d_private.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wined3d/wined3d_private.h 2014-05-16 19:06:48.000000000 +0000 @@ -2341,7 +2341,6 @@ { WINED3D_CT_NONE, WINED3D_CT_PALETTED, - WINED3D_CT_PALETTED_CK, WINED3D_CT_CK_565, WINED3D_CT_CK_5551, WINED3D_CT_CK_RGB24, @@ -2349,7 +2348,7 @@ WINED3D_CT_CK_ARGB32, }; -void d3dfmt_p8_init_palette(const struct wined3d_surface *surface, BYTE table[256][4], BOOL colorkey) DECLSPEC_HIDDEN; +void d3dfmt_p8_init_palette(const struct wined3d_surface *surface, BYTE table[256][4]) DECLSPEC_HIDDEN; struct wined3d_sampler { @@ -2636,11 +2635,6 @@ HWND backup_wnd; }; -static inline BOOL swapchain_is_p8(const struct wined3d_swapchain *swapchain) -{ - return swapchain->desc.backbuffer_format == WINED3DFMT_P8_UINT; -} - void x11_copy_to_screen(const struct wined3d_swapchain *swapchain, const RECT *rect) DECLSPEC_HIDDEN; struct wined3d_context *swapchain_get_context(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; @@ -2958,7 +2952,7 @@ struct wined3d_device *device; unsigned int size; - PALETTEENTRY palents[256]; + RGBQUAD colors[256]; DWORD flags; }; diff -Nru wine1.7-1.7.18/dlls/wined3d/wined3d.spec wine1.7-1.7.19/dlls/wined3d/wined3d.spec --- wine1.7-1.7.18/dlls/wined3d/wined3d.spec 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wined3d/wined3d.spec 2014-05-16 19:06:48.000000000 +0000 @@ -160,6 +160,7 @@ @ cdecl wined3d_palette_create(ptr long long ptr ptr) @ cdecl wined3d_palette_decref(ptr) @ cdecl wined3d_palette_get_entries(ptr long long long ptr) +@ cdecl wined3d_palette_apply_to_dc(ptr ptr) @ cdecl wined3d_palette_incref(ptr) @ cdecl wined3d_palette_set_entries(ptr long long long ptr) @@ -207,7 +208,6 @@ @ cdecl wined3d_surface_get_blt_status(ptr long) @ cdecl wined3d_surface_get_flip_status(ptr long) @ cdecl wined3d_surface_get_overlay_position(ptr ptr ptr) -@ cdecl wined3d_surface_get_palette(ptr) @ cdecl wined3d_surface_get_parent(ptr) @ cdecl wined3d_surface_get_pitch(ptr) @ cdecl wined3d_surface_get_priority(ptr) diff -Nru wine1.7-1.7.18/dlls/winemac.drv/cocoa_app.h wine1.7-1.7.19/dlls/winemac.drv/cocoa_app.h --- wine1.7-1.7.18/dlls/winemac.drv/cocoa_app.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winemac.drv/cocoa_app.h 2014-05-16 19:06:48.000000000 +0000 @@ -66,6 +66,9 @@ double mouseMoveDeltaX, mouseMoveDeltaY; NSUInteger unmatchedMouseDowns; + NSTimeInterval lastScrollTime; + double accumScrollX, accumScrollY; + NSMutableDictionary* originalDisplayModes; NSMutableDictionary* latentDisplayModes; BOOL displaysCapturedForFullscreen; diff -Nru wine1.7-1.7.18/dlls/winemac.drv/cocoa_app.m wine1.7-1.7.19/dlls/winemac.drv/cocoa_app.m --- wine1.7-1.7.18/dlls/winemac.drv/cocoa_app.m 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winemac.drv/cocoa_app.m 2014-05-16 19:06:48.000000000 +0000 @@ -1597,60 +1597,6 @@ } } } - - if (broughtWindowForward) - { - // Clicking on a child window does not normally reorder it with - // respect to its siblings, but we want it to. We have to do it - // manually. - NSWindow* parent = [window parentWindow]; - NSInteger level = [window level]; - __block BOOL needReorder = FALSE; - NSMutableArray* higherLevelSiblings = [NSMutableArray array]; - - // If the window is already the last child or if it's only below - // children with higher window level, then no need to reorder it. - [[parent childWindows] enumerateObjectsWithOptions:NSEnumerationReverse - usingBlock:^(id obj, NSUInteger idx, BOOL *stop){ - WineWindow* child = obj; - if (child == window) - *stop = TRUE; - else if ([child level] <= level) - { - needReorder = TRUE; - *stop = TRUE; - } - else - [higherLevelSiblings insertObject:child atIndex:0]; - }]; - - if (needReorder) - { - WineWindow* sibling; - - NSDisableScreenUpdates(); - - [parent removeChildWindow:window]; - for (sibling in higherLevelSiblings) - [parent removeChildWindow:sibling]; - - [parent addChildWindow:window ordered:NSWindowAbove]; - for (sibling in higherLevelSiblings) - { - // Setting a window as a child can reset its level to be - // the same as the parent, so save it and restore it. - // The call to -setLevel: puts the window at the front - // of its level but testing shows that that's what Cocoa - // does when you click on any window in an ownership - // hierarchy, anyway. - level = [sibling level]; - [parent addChildWindow:sibling ordered:NSWindowAbove]; - [sibling setLevel:level]; - } - - NSEnableScreenUpdates(); - } - } } if ([windowsBeingDragged count]) @@ -1779,7 +1725,7 @@ if (process) { macdrv_event* event; - CGFloat x, y; + double x, y; BOOL continuous = FALSE; event = macdrv_create_event(MOUSE_SCROLL, window); @@ -1822,26 +1768,69 @@ /* The x,y values so far are in pixels. Win32 expects to receive some fraction of WHEEL_DELTA == 120. By my estimation, that's roughly 6 times the pixel value. */ - event->mouse_scroll.x_scroll = 6 * x; - event->mouse_scroll.y_scroll = 6 * y; + x *= 6; + y *= 6; + + if (use_precise_scrolling) + { + event->mouse_scroll.x_scroll = x; + event->mouse_scroll.y_scroll = y; - if (!continuous) + if (!continuous) + { + /* For non-continuous "clicky" wheels, if there was any motion, make + sure there was at least WHEEL_DELTA motion. This is so, at slow + speeds where the system's acceleration curve is actually reducing the + scroll distance, the user is sure to get some action out of each click. + For example, this is important for rotating though weapons in a + first-person shooter. */ + if (0 < event->mouse_scroll.x_scroll && event->mouse_scroll.x_scroll < 120) + event->mouse_scroll.x_scroll = 120; + else if (-120 < event->mouse_scroll.x_scroll && event->mouse_scroll.x_scroll < 0) + event->mouse_scroll.x_scroll = -120; + + if (0 < event->mouse_scroll.y_scroll && event->mouse_scroll.y_scroll < 120) + event->mouse_scroll.y_scroll = 120; + else if (-120 < event->mouse_scroll.y_scroll && event->mouse_scroll.y_scroll < 0) + event->mouse_scroll.y_scroll = -120; + } + } + else { - /* For non-continuous "clicky" wheels, if there was any motion, make - sure there was at least WHEEL_DELTA motion. This is so, at slow - speeds where the system's acceleration curve is actually reducing the - scroll distance, the user is sure to get some action out of each click. - For example, this is important for rotating though weapons in a - first-person shooter. */ - if (0 < event->mouse_scroll.x_scroll && event->mouse_scroll.x_scroll < 120) - event->mouse_scroll.x_scroll = 120; - else if (-120 < event->mouse_scroll.x_scroll && event->mouse_scroll.x_scroll < 0) - event->mouse_scroll.x_scroll = -120; - - if (0 < event->mouse_scroll.y_scroll && event->mouse_scroll.y_scroll < 120) - event->mouse_scroll.y_scroll = 120; - else if (-120 < event->mouse_scroll.y_scroll && event->mouse_scroll.y_scroll < 0) - event->mouse_scroll.y_scroll = -120; + /* If it's been a while since the last scroll event or if the scrolling has + reversed direction, reset the accumulated scroll value. */ + if ([theEvent timestamp] - lastScrollTime > 1) + accumScrollX = accumScrollY = 0; + else + { + /* The accumulated scroll value is in the opposite direction/sign of the last + scroll. That's because it's the "debt" resulting from over-scrolling in + that direction. We accumulate by adding in the scroll amount and then, if + it has the same sign as the scroll value, we subtract any whole or partial + WHEEL_DELTAs, leaving it 0 or the opposite sign. So, the user switched + scroll direction if the accumulated debt and the new scroll value have the + same sign. */ + if ((accumScrollX < 0 && x < 0) || (accumScrollX > 0 && x > 0)) + accumScrollX = 0; + if ((accumScrollY < 0 && y < 0) || (accumScrollY > 0 && y > 0)) + accumScrollY = 0; + } + lastScrollTime = [theEvent timestamp]; + + accumScrollX += x; + accumScrollY += y; + + if (accumScrollX > 0 && x > 0) + event->mouse_scroll.x_scroll = 120 * ceil(accumScrollX / 120); + if (accumScrollX < 0 && x < 0) + event->mouse_scroll.x_scroll = 120 * -ceil(-accumScrollX / 120); + if (accumScrollY > 0 && y > 0) + event->mouse_scroll.y_scroll = 120 * ceil(accumScrollY / 120); + if (accumScrollY < 0 && y < 0) + event->mouse_scroll.y_scroll = 120 * -ceil(-accumScrollY / 120); + + accumScrollX -= event->mouse_scroll.x_scroll; + accumScrollY -= event->mouse_scroll.y_scroll; } if (event->mouse_scroll.x_scroll || event->mouse_scroll.y_scroll) diff -Nru wine1.7-1.7.18/dlls/winemac.drv/dragdrop.c wine1.7-1.7.19/dlls/winemac.drv/dragdrop.c --- wine1.7-1.7.18/dlls/winemac.drv/dragdrop.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winemac.drv/dragdrop.c 2014-05-16 19:06:48.000000000 +0000 @@ -466,8 +466,8 @@ ret = PostMessageW(hwnd, WM_DROPFILES, (WPARAM)hdrop, 0L); /* hdrop is owned by the message and freed when the recipient calls DragFinish(). */ } - else - GlobalFree(hdrop); + + if (!ret) GlobalFree(hdrop); } } diff -Nru wine1.7-1.7.18/dlls/winemac.drv/macdrv_cocoa.h wine1.7-1.7.19/dlls/winemac.drv/macdrv_cocoa.h --- wine1.7-1.7.18/dlls/winemac.drv/macdrv_cocoa.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winemac.drv/macdrv_cocoa.h 2014-05-16 19:06:48.000000000 +0000 @@ -148,6 +148,7 @@ extern int right_option_is_alt DECLSPEC_HIDDEN; extern int allow_immovable_windows DECLSPEC_HIDDEN; extern int cursor_clipping_locks_windows DECLSPEC_HIDDEN; +extern int use_precise_scrolling DECLSPEC_HIDDEN; extern int macdrv_start_cocoa_app(unsigned long long tickcount) DECLSPEC_HIDDEN; extern void macdrv_window_rejected_focus(const struct macdrv_event *event) DECLSPEC_HIDDEN; diff -Nru wine1.7-1.7.18/dlls/winemac.drv/macdrv_main.c wine1.7-1.7.19/dlls/winemac.drv/macdrv_main.c --- wine1.7-1.7.18/dlls/winemac.drv/macdrv_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winemac.drv/macdrv_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -56,6 +56,7 @@ BOOL disable_window_decorations = FALSE; int allow_immovable_windows = TRUE; int cursor_clipping_locks_windows = TRUE; +int use_precise_scrolling = TRUE; HMODULE macdrv_module = 0; @@ -179,6 +180,9 @@ if (!get_config_key(hkey, appkey, "CursorClippingLocksWindows", buffer, sizeof(buffer))) cursor_clipping_locks_windows = IS_OPTION_TRUE(buffer[0]); + if (!get_config_key(hkey, appkey, "UsePreciseScrolling", buffer, sizeof(buffer))) + use_precise_scrolling = IS_OPTION_TRUE(buffer[0]); + if (appkey) RegCloseKey(appkey); if (hkey) RegCloseKey(hkey); } diff -Nru wine1.7-1.7.18/dlls/winemapi/main.c wine1.7-1.7.19/dlls/winemapi/main.c --- wine1.7-1.7.18/dlls/winemapi/main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winemapi/main.c 2014-05-16 19:06:48.000000000 +0000 @@ -31,14 +31,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(winemapi); -/*********************************************************************** - * DllMain (MAPI32.init) - */ -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad) -{ - TRACE("(%p,%d,%p)\n", hinstDLL, fdwReason, fImpLoad); - return TRUE; -} ULONG WINAPI MAPIAddress(LHANDLE session, ULONG_PTR uiparam, LPSTR caption, ULONG editfields, LPSTR labels, ULONG nRecips, lpMapiRecipDesc lpRecips, diff -Nru wine1.7-1.7.18/dlls/winex11.drv/opengl.c wine1.7-1.7.19/dlls/winex11.drv/opengl.c --- wine1.7-1.7.18/dlls/winex11.drv/opengl.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winex11.drv/opengl.c 2014-05-16 19:06:48.000000000 +0000 @@ -1407,6 +1407,66 @@ return TRUE; } + +static BOOL set_pixel_format(HDC hdc, int format, BOOL allow_change) +{ + const struct wgl_pixel_format *fmt; + int value; + HWND hwnd = WindowFromDC( hdc ); + + TRACE("(%p,%d)\n", hdc, format); + + if (!hwnd || hwnd == GetDesktopWindow()) + { + WARN( "not a valid window DC %p/%p\n", hdc, hwnd ); + return FALSE; + } + + fmt = get_pixel_format(gdi_display, format, FALSE /* Offscreen */); + if (!fmt) + { + ERR( "Invalid format %d\n", format ); + return FALSE; + } + + pglXGetFBConfigAttrib(gdi_display, fmt->fbconfig, GLX_DRAWABLE_TYPE, &value); + if (!(value & GLX_WINDOW_BIT)) + { + WARN( "Pixel format %d is not compatible for window rendering\n", format ); + return FALSE; + } + + if (!allow_change) + { + struct gl_drawable *gl; + if ((gl = get_gl_drawable( hwnd, hdc ))) + { + int prev = pixel_format_index( gl->format ); + release_gl_drawable( gl ); + return prev == format; /* cannot change it if already set */ + } + } + + if (TRACE_ON(wgl)) { + int gl_test = 0; + + gl_test = pglXGetFBConfigAttrib(gdi_display, fmt->fbconfig, GLX_FBCONFIG_ID, &value); + if (gl_test) { + ERR("Failed to retrieve FBCONFIG_ID from GLXFBConfig, expect problems.\n"); + } else { + TRACE(" FBConfig have :\n"); + TRACE(" - FBCONFIG_ID 0x%x\n", value); + pglXGetFBConfigAttrib(gdi_display, fmt->fbconfig, GLX_VISUAL_ID, &value); + TRACE(" - VISUAL_ID 0x%x\n", value); + pglXGetFBConfigAttrib(gdi_display, fmt->fbconfig, GLX_DRAWABLE_TYPE, &value); + TRACE(" - DRAWABLE_TYPE 0x%x\n", value); + } + } + + return set_win_format( hwnd, fmt ); +} + + /*********************************************************************** * sync_gl_drawable */ @@ -1686,57 +1746,7 @@ */ static BOOL glxdrv_wglSetPixelFormat( HDC hdc, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd ) { - const struct wgl_pixel_format *fmt; - int value; - struct gl_drawable *gl; - HWND hwnd = WindowFromDC( hdc ); - - TRACE("(%p,%d,%p)\n", hdc, iPixelFormat, ppfd); - - if (!hwnd || hwnd == GetDesktopWindow()) - { - WARN( "not a proper window DC %p/%p\n", hdc, hwnd ); - return FALSE; - } - - /* Check if iPixelFormat is in our list of supported formats to see if it is supported. */ - fmt = get_pixel_format(gdi_display, iPixelFormat, FALSE /* Offscreen */); - if(!fmt) { - ERR("Invalid iPixelFormat: %d\n", iPixelFormat); - return FALSE; - } - - pglXGetFBConfigAttrib(gdi_display, fmt->fbconfig, GLX_DRAWABLE_TYPE, &value); - if (!(value & GLX_WINDOW_BIT)) - { - WARN("Pixel format %d is not compatible for window rendering\n", iPixelFormat); - return FALSE; - } - - if ((gl = get_gl_drawable( hwnd, hdc ))) - { - int prev = pixel_format_index( gl->format ); - release_gl_drawable( gl ); - return prev == iPixelFormat; /* cannot change it if already set */ - } - - if (TRACE_ON(wgl)) { - int gl_test = 0; - - gl_test = pglXGetFBConfigAttrib(gdi_display, fmt->fbconfig, GLX_FBCONFIG_ID, &value); - if (gl_test) { - ERR("Failed to retrieve FBCONFIG_ID from GLXFBConfig, expect problems.\n"); - } else { - TRACE(" FBConfig have :\n"); - TRACE(" - FBCONFIG_ID 0x%x\n", value); - pglXGetFBConfigAttrib(gdi_display, fmt->fbconfig, GLX_VISUAL_ID, &value); - TRACE(" - VISUAL_ID 0x%x\n", value); - pglXGetFBConfigAttrib(gdi_display, fmt->fbconfig, GLX_DRAWABLE_TYPE, &value); - TRACE(" - DRAWABLE_TYPE 0x%x\n", value); - } - } - - return set_win_format( hwnd, fmt ); + return set_pixel_format(hdc, iPixelFormat, FALSE); } /*********************************************************************** @@ -3019,34 +3029,7 @@ */ static BOOL X11DRV_wglSetPixelFormatWINE(HDC hdc, int format) { - const struct wgl_pixel_format *fmt; - int value; - HWND hwnd; - - TRACE("(%p,%d)\n", hdc, format); - - fmt = get_pixel_format(gdi_display, format, FALSE /* Offscreen */); - if (!fmt) - { - ERR( "Invalid format %d\n", format ); - return FALSE; - } - - hwnd = WindowFromDC( hdc ); - if (!hwnd || hwnd == GetDesktopWindow()) - { - ERR( "not a valid window DC %p\n", hdc ); - return FALSE; - } - - pglXGetFBConfigAttrib(gdi_display, fmt->fbconfig, GLX_DRAWABLE_TYPE, &value); - if (!(value & GLX_WINDOW_BIT)) - { - WARN( "Pixel format %d is not compatible for window rendering\n", format ); - return FALSE; - } - - return set_win_format( hwnd, fmt ); + return set_pixel_format(hdc, format, TRUE); } /** diff -Nru wine1.7-1.7.18/dlls/winex11.drv/xdnd.c wine1.7-1.7.19/dlls/winex11.drv/xdnd.c --- wine1.7-1.7.18/dlls/winex11.drv/xdnd.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winex11.drv/xdnd.c 2014-05-16 19:06:48.000000000 +0000 @@ -727,17 +727,20 @@ if (found) { - DROPFILES *lpDrop = current->data; + HGLOBAL dropHandle = GlobalAlloc(GMEM_FIXED, current->size); - if (lpDrop) + if (dropHandle) { + DROPFILES *lpDrop = GlobalLock(dropHandle); lpDrop->pt.x = XDNDxy.x; lpDrop->pt.y = XDNDxy.y; - + memcpy(lpDrop, current->data, current->size); TRACE("Sending WM_DROPFILES: hWnd(0x%p) %p(%s)\n", hwnd, ((char*)lpDrop) + lpDrop->pFiles, debugstr_w((WCHAR*)(((char*)lpDrop) + lpDrop->pFiles))); + GlobalUnlock(dropHandle); - PostMessageW(hwnd, WM_DROPFILES, (WPARAM)lpDrop, 0L); + if (!PostMessageW(hwnd, WM_DROPFILES, (WPARAM)dropHandle, 0)) + GlobalFree(dropHandle); } } @@ -761,6 +764,7 @@ LIST_FOR_EACH_ENTRY_SAFE(current, next, &xdndData, XDNDDATA, entry) { list_remove(¤t->entry); + HeapFree(GetProcessHeap(), 0, current->data); HeapFree(GetProcessHeap(), 0, current); } diff -Nru wine1.7-1.7.18/dlls/winhttp/Makefile.in wine1.7-1.7.19/dlls/winhttp/Makefile.in --- wine1.7-1.7.18/dlls/winhttp/Makefile.in 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winhttp/Makefile.in 2014-05-16 19:06:48.000000000 +0000 @@ -1,8 +1,8 @@ MODULE = winhttp.dll IMPORTLIB = winhttp -IMPORTS = uuid user32 advapi32 +IMPORTS = uuid jsproxy user32 advapi32 DELAYIMPORTS = oleaut32 ole32 crypt32 secur32 -EXTRALIBS = $(SOCKET_LIBS) +EXTRALIBS = $(CORESERVICES_LIBS) $(SOCKET_LIBS) C_SRCS = \ cookie.c \ diff -Nru wine1.7-1.7.18/dlls/winhttp/net.c wine1.7-1.7.19/dlls/winhttp/net.c --- wine1.7-1.7.18/dlls/winhttp/net.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winhttp/net.c 2014-05-16 19:06:48.000000000 +0000 @@ -488,6 +488,7 @@ } } + heap_free(read_buf); if(status != SEC_E_OK || res != ERROR_SUCCESS) { WARN("Failed to initialize security context failed: %08x\n", status); diff -Nru wine1.7-1.7.18/dlls/winhttp/pac.js wine1.7-1.7.19/dlls/winhttp/pac.js --- wine1.7-1.7.18/dlls/winhttp/pac.js 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winhttp/pac.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,244 +0,0 @@ -/* - * Copyright 2011 Hans Leidekker for CodeWeavers - * - * 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 - * - * Based on nsProxyAutoConfig.js from mozilla.org. - */ - -function myIpAddress() { - try { - return dns_resolve(''); - } catch (e) { - return '127.0.0.1'; - } -} - -function dnsResolve(host) { - try { - return dns_resolve(host); - } catch (e) { - return null; - } -} - -function dnsDomainIs(host, domain) { - return (host.length >= domain.length && - host.substring(host.length - domain.length) == domain); -} - -function dnsDomainLevels(host) { - return host.split('.').length-1; -} - -function convert_addr(ipchars) { - var bytes = ipchars.split('.'); - var result = ((bytes[0] & 0xff) << 24) | - ((bytes[1] & 0xff) << 16) | - ((bytes[2] & 0xff) << 8) | - (bytes[3] & 0xff); - return result; -} - -function isInNet(ipaddr, pattern, maskstr) { - var test = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(ipaddr); - if (test == null) { - ipaddr = dnsResolve(ipaddr); - if (ipaddr == null) - return false; - } else if (test[1] > 255 || test[2] > 255 || - test[3] > 255 || test[4] > 255) { - return false; // not an IP address - } - var host = convert_addr(ipaddr); - var pat = convert_addr(pattern); - var mask = convert_addr(maskstr); - return ((host & mask) == (pat & mask)); -} - -function isPlainHostName(host) { - return (host.search('\\.') == -1); -} - -function isResolvable(host) { - var ip = dnsResolve(host); - return (ip != null); -} - -function localHostOrDomainIs(host, hostdom) { - return (host == hostdom) || - (hostdom.lastIndexOf(host + '.', 0) == 0); -} - -function shExpMatch(url, pattern) { - pattern = pattern.replace(/\./g, '\\.'); - pattern = pattern.replace(/\*/g, '.*'); - pattern = pattern.replace(/\?/g, '.'); - var newRe = new RegExp('^'+pattern+'$'); - return newRe.test(url); -} - -var wdays = {SUN: 0, MON: 1, TUE: 2, WED: 3, THU: 4, FRI: 5, SAT: 6}; -var months = {JAN: 0, FEB: 1, MAR: 2, APR: 3, MAY: 4, JUN: 5, JUL: 6, AUG: 7, SEP: 8, OCT: 9, NOV: 10, DEC: 11}; - -function weekdayRange() { - function getDay(weekday) { - if (weekday in wdays) { - return wdays[weekday]; - } - return -1; - } - var date = new Date(); - var argc = arguments.length; - var wday; - if (argc < 1) - return false; - if (arguments[argc - 1] == 'GMT') { - argc--; - wday = date.getUTCDay(); - } else { - wday = date.getDay(); - } - var wd1 = getDay(arguments[0]); - var wd2 = (argc == 2) ? getDay(arguments[1]) : wd1; - return (wd1 == -1 || wd2 == -1) ? false - : (wd1 <= wday && wday <= wd2); -} - -function dateRange() { - function getMonth(name) { - if (name in months) { - return months[name]; - } - return -1; - } - var date = new Date(); - var argc = arguments.length; - if (argc < 1) { - return false; - } - var isGMT = (arguments[argc - 1] == 'GMT'); - - if (isGMT) { - argc--; - } - // function will work even without explicit handling of this case - if (argc == 1) { - var tmp = parseInt(arguments[0]); - if (isNaN(tmp)) { - return ((isGMT ? date.getUTCMonth() : date.getMonth()) == getMonth(arguments[0])); - } else if (tmp < 32) { - return ((isGMT ? date.getUTCDate() : date.getDate()) == tmp); - } else { - return ((isGMT ? date.getUTCFullYear() : date.getFullYear()) == tmp); - } - } - var year = date.getFullYear(); - var date1, date2; - date1 = new Date(year, 0, 1, 0, 0, 0); - date2 = new Date(year, 11, 31, 23, 59, 59); - var adjustMonth = false; - for (var i = 0; i < (argc >> 1); i++) { - var tmp = parseInt(arguments[i]); - if (isNaN(tmp)) { - var mon = getMonth(arguments[i]); - date1.setMonth(mon); - } else if (tmp < 32) { - adjustMonth = (argc <= 2); - date1.setDate(tmp); - } else { - date1.setFullYear(tmp); - } - } - for (var i = (argc >> 1); i < argc; i++) { - var tmp = parseInt(arguments[i]); - if (isNaN(tmp)) { - var mon = getMonth(arguments[i]); - date2.setMonth(mon); - } else if (tmp < 32) { - date2.setDate(tmp); - } else { - date2.setFullYear(tmp); - } - } - if (adjustMonth) { - date1.setMonth(date.getMonth()); - date2.setMonth(date.getMonth()); - } - if (isGMT) { - var tmp = date; - tmp.setFullYear(date.getUTCFullYear()); - tmp.setMonth(date.getUTCMonth()); - tmp.setDate(date.getUTCDate()); - tmp.setHours(date.getUTCHours()); - tmp.setMinutes(date.getUTCMinutes()); - tmp.setSeconds(date.getUTCSeconds()); - date = tmp; - } - return ((date1 <= date) && (date <= date2)); -} - -function timeRange() { - var argc = arguments.length; - var date = new Date(); - var isGMT= false; - - if (argc < 1) { - return false; - } - if (arguments[argc - 1] == 'GMT') { - isGMT = true; - argc--; - } - - var hour = isGMT ? date.getUTCHours() : date.getHours(); - var date1, date2; - date1 = new Date(); - date2 = new Date(); - - if (argc == 1) { - return (hour == arguments[0]); - } else if (argc == 2) { - return ((arguments[0] <= hour) && (hour <= arguments[1])); - } else { - switch (argc) { - case 6: - date1.setSeconds(arguments[2]); - date2.setSeconds(arguments[5]); - case 4: - var middle = argc >> 1; - date1.setHours(arguments[0]); - date1.setMinutes(arguments[1]); - date2.setHours(arguments[middle]); - date2.setMinutes(arguments[middle + 1]); - if (middle == 2) { - date2.setSeconds(59); - } - break; - default: - throw 'timeRange: bad number of arguments' - } - } - - if (isGMT) { - date.setFullYear(date.getUTCFullYear()); - date.setMonth(date.getUTCMonth()); - date.setDate(date.getUTCDate()); - date.setHours(date.getUTCHours()); - date.setMinutes(date.getUTCMinutes()); - date.setSeconds(date.getUTCSeconds()); - } - return ((date1 <= date) && (date <= date2)); -} diff -Nru wine1.7-1.7.18/dlls/winhttp/request.c wine1.7-1.7.19/dlls/winhttp/request.c --- wine1.7-1.7.18/dlls/winhttp/request.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winhttp/request.c 2014-05-16 19:06:48.000000000 +0000 @@ -2250,6 +2250,8 @@ request->read_chunked = FALSE; request->read_chunked_eof = FALSE; } + else heap_free( hostname ); + if (!(ret = add_host_header( request, WINHTTP_ADDREQ_FLAG_REPLACE ))) goto end; if (!(ret = open_connection( request ))) goto end; @@ -2278,7 +2280,6 @@ ret = TRUE; end: - if (!ret) heap_free( hostname ); heap_free( location ); return ret; } diff -Nru wine1.7-1.7.18/dlls/winhttp/rsrc.rc wine1.7-1.7.19/dlls/winhttp/rsrc.rc --- wine1.7-1.7.18/dlls/winhttp/rsrc.rc 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winhttp/rsrc.rc 2014-05-16 19:06:48.000000000 +0000 @@ -16,9 +16,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -/* @makedep: pac.js */ -pac.js 40 "pac.js" - #define WINE_FILEDESCRIPTION_STR "Wine HTTP Library" #define WINE_FILENAME_STR "winhttp.dll" #define WINE_FILEVERSION_MAJOR 5 diff -Nru wine1.7-1.7.18/dlls/winhttp/session.c wine1.7-1.7.19/dlls/winhttp/session.c --- wine1.7-1.7.18/dlls/winhttp/session.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/winhttp/session.c 2014-05-16 19:06:48.000000000 +0000 @@ -23,6 +23,15 @@ #include #include +#ifdef HAVE_CORESERVICES_CORESERVICES_H +#define GetCurrentThread MacGetCurrentThread +#define LoadResource MacLoadResource +#include +#undef GetCurrentThread +#undef LoadResource +#undef DPRINTF +#endif + #include "windef.h" #include "winbase.h" #ifndef __MINGW32__ @@ -47,9 +56,6 @@ #define DEFAULT_SEND_TIMEOUT 30000 #define DEFAULT_RECEIVE_TIMEOUT 30000 -static const WCHAR global_funcsW[] = {'g','l','o','b','a','l','_','f','u','n','c','s',0}; -static const WCHAR dns_resolveW[] = {'d','n','s','_','r','e','s','o','l','v','e',0}; - void set_last_error( DWORD error ) { /* FIXME */ @@ -1258,15 +1264,6 @@ return FALSE; } -static void printf_addr( const WCHAR *fmt, WCHAR *buf, struct sockaddr_in *addr ) -{ - sprintfW( buf, fmt, - (unsigned int)(ntohl( addr->sin_addr.s_addr ) >> 24 & 0xff), - (unsigned int)(ntohl( addr->sin_addr.s_addr ) >> 16 & 0xff), - (unsigned int)(ntohl( addr->sin_addr.s_addr ) >> 8 & 0xff), - (unsigned int)(ntohl( addr->sin_addr.s_addr ) & 0xff) ); -} - static int reverse_lookup( const struct addrinfo *ai, char *hostname, size_t len ) { int ret = -1; @@ -1298,12 +1295,42 @@ return ret; } +static BOOL get_system_proxy_autoconfig_url( char *buf, DWORD buflen ) +{ +#ifdef HAVE_CORESERVICES_CORESERVICES_H + CFDictionaryRef settings = CFNetworkCopySystemProxySettings(); + const void *ref; + BOOL ret = FALSE; + + if (!settings) return FALSE; + + if (!(ref = CFDictionaryGetValue( settings, kCFNetworkProxiesProxyAutoConfigURLString ))) + { + CFRelease( settings ); + return FALSE; + } + if (CFStringGetCString( ref, buf, buflen, kCFStringEncodingASCII )) + { + TRACE( "returning %s\n", debugstr_a(buf) ); + ret = TRUE; + } + CFRelease( settings ); + return ret; +#else + FIXME( "no support on this platform\n" ); + return FALSE; +#endif +} + +#define INTERNET_MAX_URL_LENGTH 2084 + /*********************************************************************** * WinHttpDetectAutoProxyConfigUrl (winhttp.@) */ BOOL WINAPI WinHttpDetectAutoProxyConfigUrl( DWORD flags, LPWSTR *url ) { BOOL ret = FALSE; + char system_url[INTERNET_MAX_URL_LENGTH + 1]; TRACE("0x%08x, %p\n", flags, url); @@ -1312,6 +1339,14 @@ set_last_error( ERROR_INVALID_PARAMETER ); return FALSE; } + if (get_system_proxy_autoconfig_url( system_url, sizeof(system_url) )) + { + WCHAR *urlW; + + if (!(urlW = strdupAW( system_url ))) return FALSE; + *url = urlW; + return TRUE; + } if (flags & WINHTTP_AUTO_DETECT_TYPE_DHCP) { static int fixme_shown; @@ -1622,281 +1657,9 @@ return ret; } -static HRESULT WINAPI dispex_QueryInterface( - IDispatchEx *iface, REFIID riid, void **ppv ) -{ - *ppv = NULL; - - if (IsEqualGUID( riid, &IID_IUnknown ) || - IsEqualGUID( riid, &IID_IDispatch ) || - IsEqualGUID( riid, &IID_IDispatchEx )) - *ppv = iface; - else - return E_NOINTERFACE; - - return S_OK; -} - -static ULONG WINAPI dispex_AddRef( - IDispatchEx *iface ) -{ - return 2; -} - -static ULONG WINAPI dispex_Release( - IDispatchEx *iface ) -{ - return 1; -} - -static HRESULT WINAPI dispex_GetTypeInfoCount( - IDispatchEx *iface, UINT *info ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI dispex_GetTypeInfo( - IDispatchEx *iface, UINT info, LCID lcid, ITypeInfo **type_info ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI dispex_GetIDsOfNames( - IDispatchEx *iface, REFIID riid, LPOLESTR *names, UINT count, LCID lcid, DISPID *id ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI dispex_Invoke( - IDispatchEx *iface, DISPID member, REFIID riid, LCID lcid, WORD flags, - DISPPARAMS *params, VARIANT *result, EXCEPINFO *excep, UINT *err ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI dispex_DeleteMemberByName( - IDispatchEx *iface, BSTR name, DWORD flags ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI dispex_DeleteMemberByDispID( - IDispatchEx *iface, DISPID id ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI dispex_GetMemberProperties( - IDispatchEx *iface, DISPID id, DWORD flags_fetch, DWORD *flags ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI dispex_GetMemberName( - IDispatchEx *iface, DISPID id, BSTR *name ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI dispex_GetNextDispID( - IDispatchEx *iface, DWORD flags, DISPID id, DISPID *next ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI dispex_GetNameSpaceParent( - IDispatchEx *iface, IUnknown **unk ) -{ - return E_NOTIMPL; -} - -#define DISPID_GLOBAL_DNSRESOLVE 0x1000 - -static HRESULT WINAPI dispex_GetDispID( - IDispatchEx *iface, BSTR name, DWORD flags, DISPID *id ) +static BOOL parse_script_result( const char *result, WINHTTP_PROXY_INFO *info ) { - if (!strcmpW( name, dns_resolveW )) - { - *id = DISPID_GLOBAL_DNSRESOLVE; - return S_OK; - } - return DISP_E_UNKNOWNNAME; -} - -static HRESULT dns_resolve( const WCHAR *hostname, VARIANT *result ) -{ -#ifdef HAVE_GETADDRINFO - static const WCHAR fmtW[] = {'%','u','.','%','u','.','%','u','.','%','u',0}; - WCHAR addr[16]; - struct addrinfo *ai, *elem; - char *hostnameA; - int res; - - if (hostname[0]) - hostnameA = strdupWA( hostname ); - else - hostnameA = get_computer_name( ComputerNamePhysicalDnsFullyQualified ); - - if (!hostnameA) return E_OUTOFMEMORY; - res = getaddrinfo( hostnameA, NULL, NULL, &ai ); - heap_free( hostnameA ); - if (res) return S_FALSE; - - elem = ai; - while (elem && elem->ai_family != AF_INET) elem = elem->ai_next; - if (!elem) - { - freeaddrinfo( ai ); - return S_FALSE; - } - printf_addr( fmtW, addr, (struct sockaddr_in *)elem->ai_addr ); - freeaddrinfo( ai ); - V_VT( result ) = VT_BSTR; - V_BSTR( result ) = SysAllocString( addr ); - return S_OK; -#else - FIXME("getaddrinfo not found at build time\n"); - return S_FALSE; -#endif -} - -static HRESULT WINAPI dispex_InvokeEx( - IDispatchEx *iface, DISPID id, LCID lcid, WORD flags, DISPPARAMS *params, - VARIANT *result, EXCEPINFO *exep, IServiceProvider *caller ) -{ - if (id == DISPID_GLOBAL_DNSRESOLVE) - { - if (params->cArgs != 1) return DISP_E_BADPARAMCOUNT; - if (V_VT(¶ms->rgvarg[0]) != VT_BSTR) return DISP_E_BADVARTYPE; - return dns_resolve( V_BSTR(¶ms->rgvarg[0]), result ); - } - return DISP_E_MEMBERNOTFOUND; -} - -static const IDispatchExVtbl dispex_vtbl = -{ - dispex_QueryInterface, - dispex_AddRef, - dispex_Release, - dispex_GetTypeInfoCount, - dispex_GetTypeInfo, - dispex_GetIDsOfNames, - dispex_Invoke, - dispex_GetDispID, - dispex_InvokeEx, - dispex_DeleteMemberByName, - dispex_DeleteMemberByDispID, - dispex_GetMemberProperties, - dispex_GetMemberName, - dispex_GetNextDispID, - dispex_GetNameSpaceParent -}; - -static IDispatchEx global_dispex = { &dispex_vtbl }; - -static HRESULT WINAPI site_QueryInterface( - IActiveScriptSite *iface, REFIID riid, void **ppv ) -{ - *ppv = NULL; - - if (IsEqualGUID( &IID_IUnknown, riid )) - *ppv = iface; - else if (IsEqualGUID( &IID_IActiveScriptSite, riid )) - *ppv = iface; - else - return E_NOINTERFACE; - - IUnknown_AddRef( (IUnknown *)*ppv ); - return S_OK; -} - -static ULONG WINAPI site_AddRef( - IActiveScriptSite *iface ) -{ - return 2; -} - -static ULONG WINAPI site_Release( - IActiveScriptSite *iface ) -{ - return 1; -} - -static HRESULT WINAPI site_GetLCID( - IActiveScriptSite *iface, LCID *lcid ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI site_GetItemInfo( - IActiveScriptSite *iface, LPCOLESTR name, DWORD mask, - IUnknown **item, ITypeInfo **type_info ) -{ - if (!strcmpW( name, global_funcsW ) && mask == SCRIPTINFO_IUNKNOWN) - { - *item = (IUnknown *)&global_dispex; - return S_OK; - } - return E_NOTIMPL; -} - -static HRESULT WINAPI site_GetDocVersionString( - IActiveScriptSite *iface, BSTR *version ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI site_OnScriptTerminate( - IActiveScriptSite *iface, const VARIANT *result, const EXCEPINFO *info ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI site_OnStateChange( - IActiveScriptSite *iface, SCRIPTSTATE state ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI site_OnScriptError( - IActiveScriptSite *iface, IActiveScriptError *error ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI site_OnEnterScript( - IActiveScriptSite *iface ) -{ - return E_NOTIMPL; -} - -static HRESULT WINAPI site_OnLeaveScript( - IActiveScriptSite *iface ) -{ - return E_NOTIMPL; -} - -static const IActiveScriptSiteVtbl site_vtbl = -{ - site_QueryInterface, - site_AddRef, - site_Release, - site_GetLCID, - site_GetItemInfo, - site_GetDocVersionString, - site_OnScriptTerminate, - site_OnStateChange, - site_OnScriptError, - site_OnEnterScript, - site_OnLeaveScript -}; - -static IActiveScriptSite script_site = { &site_vtbl }; - -static BOOL parse_script_result( VARIANT result, WINHTTP_PROXY_INFO *info ) -{ - static const WCHAR proxyW[] = {'P','R','O','X','Y'}; - const WCHAR *p; + const char *p; WCHAR *q; int len; @@ -1904,18 +1667,17 @@ info->lpszProxy = NULL; info->lpszProxyBypass = NULL; - if (V_VT( &result ) != VT_BSTR) return TRUE; - TRACE("%s\n", debugstr_w( V_BSTR( &result ) )); + TRACE("%s\n", debugstr_a( result )); - p = V_BSTR( &result ); + p = result; while (*p == ' ') p++; - len = strlenW( p ); - if (len >= 5 && !memicmpW( p, proxyW, sizeof(proxyW)/sizeof(WCHAR) )) + len = strlen( p ); + if (len >= 5 && !strncasecmp( p, "PROXY", sizeof("PROXY") - 1 )) { p += 5; while (*p == ' ') p++; if (!*p || *p == ';') return TRUE; - if (!(info->lpszProxy = q = strdupW( p ))) return FALSE; + if (!(info->lpszProxy = q = strdupAW( p ))) return FALSE; info->dwAccessType = WINHTTP_ACCESS_TYPE_NAMED_PROXY; for (; *q; q++) { @@ -1929,128 +1691,7 @@ return TRUE; } -static BSTR include_pac_utils( BSTR script ) -{ - static const WCHAR pacjsW[] = {'p','a','c','.','j','s',0}; - HMODULE hmod = GetModuleHandleA( "winhttp.dll" ); - HRSRC rsrc; - DWORD size; - const char *data; - BSTR ret; - int len; - - if (!(rsrc = FindResourceW( hmod, pacjsW, (LPCWSTR)40 ))) return NULL; - size = SizeofResource( hmod, rsrc ); - data = LoadResource( hmod, rsrc ); - - len = MultiByteToWideChar( CP_ACP, 0, data, size, NULL, 0 ); - if (!(ret = SysAllocStringLen( NULL, len + SysStringLen( script ) + 1 ))) return NULL; - MultiByteToWideChar( CP_ACP, 0, data, size, ret, len ); - ret[len] = 0; - strcatW( ret, script ); - return ret; -} - -#ifdef _WIN64 -#define IActiveScriptParse_Release IActiveScriptParse64_Release -#define IActiveScriptParse_InitNew IActiveScriptParse64_InitNew -#define IActiveScriptParse_ParseScriptText IActiveScriptParse64_ParseScriptText -#else -#define IActiveScriptParse_Release IActiveScriptParse32_Release -#define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew -#define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText -#endif - -static BOOL run_script( const BSTR script, const WCHAR *url, WINHTTP_PROXY_INFO *info ) -{ - static const WCHAR jscriptW[] = {'J','S','c','r','i','p','t',0}; - static const WCHAR findproxyW[] = {'F','i','n','d','P','r','o','x','y','F','o','r','U','R','L',0}; - IActiveScriptParse *parser = NULL; - IActiveScript *engine = NULL; - IDispatch *dispatch = NULL; - BOOL ret = FALSE; - CLSID clsid; - DISPID dispid; - BSTR func = NULL, hostname = NULL, full_script = NULL; - URL_COMPONENTSW uc; - VARIANT args[2], result; - DISPPARAMS params; - HRESULT hr, init; - - memset( &uc, 0, sizeof(uc) ); - uc.dwStructSize = sizeof(uc); - if (!WinHttpCrackUrl( url, 0, 0, &uc )) return FALSE; - if (!(hostname = SysAllocStringLen( NULL, uc.dwHostNameLength + 1 ))) return FALSE; - memcpy( hostname, uc.lpszHostName, uc.dwHostNameLength * sizeof(WCHAR) ); - hostname[uc.dwHostNameLength] = 0; - - init = CoInitialize( NULL ); - hr = CLSIDFromProgID( jscriptW, &clsid ); - if (hr != S_OK) goto done; - - hr = CoCreateInstance( &clsid, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, - &IID_IActiveScript, (void **)&engine ); - if (hr != S_OK) goto done; - - hr = IActiveScript_QueryInterface( engine, &IID_IActiveScriptParse, (void **)&parser ); - if (hr != S_OK) goto done; - - hr = IActiveScriptParse_InitNew( parser ); - if (hr != S_OK) goto done; - - hr = IActiveScript_SetScriptSite( engine, &script_site ); - if (hr != S_OK) goto done; - - hr = IActiveScript_AddNamedItem( engine, global_funcsW, SCRIPTITEM_GLOBALMEMBERS ); - if (hr != S_OK) goto done; - - if (!(full_script = include_pac_utils( script ))) goto done; - - hr = IActiveScriptParse_ParseScriptText( parser, full_script, NULL, NULL, NULL, 0, 0, 0, NULL, NULL ); - if (hr != S_OK) goto done; - - hr = IActiveScript_SetScriptState( engine, SCRIPTSTATE_STARTED ); - if (hr != S_OK) goto done; - - hr = IActiveScript_GetScriptDispatch( engine, NULL, &dispatch ); - if (hr != S_OK) goto done; - - if (!(func = SysAllocString( findproxyW ))) goto done; - hr = IDispatch_GetIDsOfNames( dispatch, &IID_NULL, &func, 1, LOCALE_SYSTEM_DEFAULT, &dispid ); - if (hr != S_OK) goto done; - - V_VT( &args[0] ) = VT_BSTR; - V_BSTR( &args[0] ) = hostname; - V_VT( &args[1] ) = VT_BSTR; - V_BSTR( &args[1] ) = SysAllocString( url ); - - params.rgvarg = args; - params.rgdispidNamedArgs = NULL; - params.cArgs = 2; - params.cNamedArgs = 0; - hr = IDispatch_Invoke( dispatch, dispid, &IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, - ¶ms, &result, NULL, NULL ); - VariantClear( &args[1] ); - if (hr != S_OK) - { - WARN("script failed 0x%08x\n", hr); - goto done; - } - ret = parse_script_result( result, info ); - -done: - SysFreeString( full_script ); - SysFreeString( hostname ); - SysFreeString( func ); - if (dispatch) IDispatch_Release( dispatch ); - if (parser) IActiveScriptParse_Release( parser ); - if (engine) IActiveScript_Release( engine ); - if (SUCCEEDED( init )) CoUninitialize(); - if (!ret) set_last_error( ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT ); - return ret; -} - -static BSTR download_script( const WCHAR *url ) +static char *download_script( const WCHAR *url, DWORD *out_size ) { static const WCHAR typeW[] = {'*','/','*',0}; static const WCHAR *acceptW[] = {typeW, NULL}; @@ -2059,8 +1700,8 @@ URL_COMPONENTSW uc; DWORD status, size = sizeof(status), offset, to_read, bytes_read, flags = 0; char *tmp, *buffer = NULL; - BSTR script = NULL; - int len; + + *out_size = 0; memset( &uc, 0, sizeof(uc) ); uc.dwStructSize = sizeof(uc); @@ -2089,6 +1730,7 @@ if (!bytes_read) break; to_read -= bytes_read; offset += bytes_read; + *out_size += bytes_read; if (!to_read) { to_read = size; @@ -2097,19 +1739,51 @@ buffer = tmp; } } - len = MultiByteToWideChar( CP_ACP, 0, buffer, offset, NULL, 0 ); - if (!(script = SysAllocStringLen( NULL, len ))) goto done; - MultiByteToWideChar( CP_ACP, 0, buffer, offset, script, len ); - script[len] = 0; done: WinHttpCloseHandle( req ); WinHttpCloseHandle( con ); WinHttpCloseHandle( ses ); - heap_free( buffer ); heap_free( hostname ); - if (!script) set_last_error( ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT ); - return script; + if (!buffer) set_last_error( ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT ); + return buffer; +} + +struct AUTO_PROXY_SCRIPT_BUFFER +{ + DWORD dwStructSize; + LPSTR lpszScriptBuffer; + DWORD dwScriptBufferSize; +}; + +BOOL WINAPI InternetDeInitializeAutoProxyDll(LPSTR, DWORD); +BOOL WINAPI InternetGetProxyInfo(LPCSTR, DWORD, LPSTR, DWORD, LPSTR *, LPDWORD); +BOOL WINAPI InternetInitializeAutoProxyDll(DWORD, LPSTR, LPSTR, void *, struct AUTO_PROXY_SCRIPT_BUFFER *); + +static BOOL run_script( char *script, DWORD size, const WCHAR *url, WINHTTP_PROXY_INFO *info ) +{ + BOOL ret; + char *result, *urlA; + DWORD len_result; + struct AUTO_PROXY_SCRIPT_BUFFER buffer; + + buffer.dwStructSize = sizeof(buffer); + buffer.lpszScriptBuffer = script; + buffer.dwScriptBufferSize = size; + + if (!(urlA = strdupWA( url ))) return FALSE; + if (!(ret = InternetInitializeAutoProxyDll( 0, NULL, NULL, NULL, &buffer ))) + { + heap_free( urlA ); + return FALSE; + } + if ((ret = InternetGetProxyInfo( urlA, strlen(urlA), NULL, 0, &result, &len_result ))) + { + ret = parse_script_result( result, info ); + heap_free( result ); + } + heap_free( urlA ); + return InternetDeInitializeAutoProxyDll( NULL, 0 ); } /*********************************************************************** @@ -2121,7 +1795,8 @@ WCHAR *detected_pac_url = NULL; const WCHAR *pac_url; session_t *session; - BSTR script; + char *script; + DWORD size; BOOL ret = FALSE; TRACE("%p, %s, %p, %p\n", hsession, debugstr_w(url), options, info); @@ -2154,9 +1829,11 @@ if (options->dwFlags & WINHTTP_AUTOPROXY_CONFIG_URL) pac_url = options->lpszAutoConfigUrl; else pac_url = detected_pac_url; - if (!(script = download_script( pac_url ))) goto done; - ret = run_script( script, url, info ); - SysFreeString( script ); + if ((script = download_script( pac_url, &size ))) + { + ret = run_script( script, size, url, info ); + heap_free( script ); + } done: GlobalFree( detected_pac_url ); diff -Nru wine1.7-1.7.18/dlls/wininet/http.c wine1.7-1.7.19/dlls/wininet/http.c --- wine1.7-1.7.18/dlls/wininet/http.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wininet/http.c 2014-05-16 19:06:48.000000000 +0000 @@ -4176,43 +4176,6 @@ return str; } -static DWORD HTTP_SecureProxyConnect(http_request_t *request) -{ - server_t *server = request->server; - LPWSTR requestString; - INT len; - INT cnt; - INT responseLen; - char *ascii_req; - DWORD res; - - static const WCHAR connectW[] = {'C','O','N','N','E','C','T',0}; - - TRACE("\n"); - - requestString = build_request_header( request, connectW, server->host_port, g_szHttp1_1, TRUE ); - - len = WideCharToMultiByte( CP_ACP, 0, requestString, -1, - NULL, 0, NULL, NULL ); - len--; /* the nul terminator isn't needed */ - ascii_req = heap_alloc(len); - WideCharToMultiByte( CP_ACP, 0, requestString, -1, ascii_req, len, NULL, NULL ); - heap_free( requestString ); - - TRACE("full request -> %s\n", debugstr_an( ascii_req, len ) ); - - NETCON_set_timeout( request->netconn, TRUE, request->send_timeout ); - res = NETCON_send( request->netconn, ascii_req, len, 0, &cnt ); - heap_free( ascii_req ); - if (res != ERROR_SUCCESS) - return res; - - if (HTTP_GetResponseHeaders( request, &responseLen ) || !responseLen) - return ERROR_HTTP_INVALID_HEADER; - - return ERROR_SUCCESS; -} - static void HTTP_InsertCookies(http_request_t *request) { DWORD cookie_size, size, cnt = 0; @@ -4837,29 +4800,24 @@ INTERNET_STATUS_CONNECTED_TO_SERVER, request->server->addr_str, strlen(request->server->addr_str)+1); - if(is_https) { - /* Note: we differ from Microsoft's WinINet here. they seem to have - * a bug that causes no status callbacks to be sent when starting - * a tunnel to a proxy server using the CONNECT verb. i believe our - * behaviour to be more correct and to not cause any incompatibilities - * because using a secure connection through a proxy server is a rare - * case that would be hard for anyone to depend on */ - if(request->proxy) - res = HTTP_SecureProxyConnect(request); - if(res == ERROR_SUCCESS) - res = NETCON_secure_connect(request->netconn, request->server); - } - - if(res != ERROR_SUCCESS) { - http_release_netconn(request, FALSE); - return res; - } - *reusing = FALSE; TRACE("Created connection to %s: %p\n", debugstr_w(request->server->name), netconn); return ERROR_SUCCESS; } +static char *build_ascii_request( const WCHAR *str, void *data, DWORD data_len, DWORD *out_len ) +{ + int len = WideCharToMultiByte( CP_ACP, 0, str, -1, NULL, 0, NULL, NULL ); + char *ret; + + if (!(ret = heap_alloc( len + data_len ))) return NULL; + WideCharToMultiByte( CP_ACP, 0, str, -1, ret, len, NULL, NULL ); + if (data_len) memcpy( ret + len - 1, data, data_len ); + *out_len = len + data_len - 1; + ret[*out_len] = 0; + return ret; +} + /*********************************************************************** * HTTP_HttpSendRequestW (internal) * @@ -4874,13 +4832,11 @@ DWORD dwHeaderLength, LPVOID lpOptional, DWORD dwOptionalLength, DWORD dwContentLength, BOOL bEndRequest) { - INT cnt; - BOOL redirected = FALSE; - LPWSTR requestString = NULL; - INT responseLen; - BOOL loop_next; static const WCHAR szContentLength[] = { 'C','o','n','t','e','n','t','-','L','e','n','g','t','h',':',' ','%','l','i','\r','\n',0 }; + BOOL redirected = FALSE, secure_proxy_connect = FALSE, loop_next; + LPWSTR requestString = NULL; + INT responseLen, cnt; WCHAR contentLengthStr[sizeof szContentLength/2 /* includes \r\n */ + 20 /* int */ ]; DWORD res; @@ -4929,7 +4885,7 @@ do { - DWORD len; + DWORD len, data_len = dwOptionalLength; BOOL reusing_connection; char *ascii_req; @@ -4957,7 +4913,31 @@ if (!(request->hdr.dwFlags & INTERNET_FLAG_NO_COOKIES)) HTTP_InsertCookies(request); - if (request->proxy) + res = open_http_connection(request, &reusing_connection); + if (res != ERROR_SUCCESS) + break; + + if (!reusing_connection && (request->hdr.dwFlags & INTERNET_FLAG_SECURE)) + { + if (request->proxy) secure_proxy_connect = TRUE; + else + { + res = NETCON_secure_connect(request->netconn, request->server); + if (res != ERROR_SUCCESS) + { + WARN("failed to upgrade to secure connection\n"); + http_release_netconn(request, FALSE); + break; + } + } + } + if (secure_proxy_connect) + { + static const WCHAR connectW[] = {'C','O','N','N','E','C','T',0}; + const WCHAR *target = request->server->host_port; + requestString = build_request_header(request, connectW, target, g_szHttp1_1, TRUE); + } + else if (request->proxy && !(request->hdr.dwFlags & INTERNET_FLAG_SECURE)) { WCHAR *url = build_proxy_path_url(request); requestString = build_request_header(request, request->verb, url, request->version, TRUE); @@ -4966,25 +4946,13 @@ else requestString = build_request_header(request, request->verb, request->path, request->version, TRUE); - TRACE("Request header -> %s\n", debugstr_w(requestString) ); - res = open_http_connection(request, &reusing_connection); - if (res != ERROR_SUCCESS) - break; - /* send the request as ASCII, tack on the optional data */ - if (!lpOptional || redirected) - dwOptionalLength = 0; - len = WideCharToMultiByte( CP_ACP, 0, requestString, -1, - NULL, 0, NULL, NULL ); - ascii_req = heap_alloc(len + dwOptionalLength); - WideCharToMultiByte( CP_ACP, 0, requestString, -1, - ascii_req, len, NULL, NULL ); - if( lpOptional ) - memcpy( &ascii_req[len-1], lpOptional, dwOptionalLength ); - len = (len + dwOptionalLength - 1); - ascii_req[len] = 0; + if (!lpOptional || redirected || secure_proxy_connect) + data_len = 0; + + ascii_req = build_ascii_request( requestString, lpOptional, data_len, &len ); TRACE("full request -> %s\n", debugstr_a(ascii_req) ); INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, @@ -5002,7 +4970,7 @@ continue; } - request->bytesWritten = dwOptionalLength; + request->bytesWritten = data_len; INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, INTERNET_STATUS_REQUEST_SENT, @@ -5139,6 +5107,25 @@ } } } + if (secure_proxy_connect && request->status_code == HTTP_STATUS_OK) + { + int index; + + res = NETCON_secure_connect(request->netconn, request->server); + if (res != ERROR_SUCCESS) + { + WARN("failed to upgrade to secure proxy connection\n"); + http_release_netconn( request, FALSE ); + break; + } + index = HTTP_GetCustomHeaderIndex(request, szProxy_Authorization, 0, TRUE); + if (index != -1) HTTP_DeleteCustomHeader(request, index); + destroy_authinfo(request->proxyAuthInfo); + request->proxyAuthInfo = NULL; + + secure_proxy_connect = FALSE; + loop_next = TRUE; + } } else res = ERROR_SUCCESS; diff -Nru wine1.7-1.7.18/dlls/wininet/internet.c wine1.7-1.7.19/dlls/wininet/internet.c --- wine1.7-1.7.18/dlls/wininet/internet.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wininet/internet.c 2014-05-16 19:06:48.000000000 +0000 @@ -56,6 +56,15 @@ #endif #include +#ifdef HAVE_CORESERVICES_CORESERVICES_H +#define GetCurrentThread MacGetCurrentThread +#define LoadResource MacLoadResource +#include +#undef GetCurrentThread +#undef LoadResource +#undef DPRINTF +#endif + #include "windef.h" #include "winbase.h" #include "winreg.h" @@ -105,6 +114,8 @@ DWORD proxyEnabled; LPWSTR proxy; LPWSTR proxyBypass; + LPWSTR proxyUsername; + LPWSTR proxyPassword; } proxyinfo_t; static ULONG max_conns = 2, max_1_0_conns = 4; @@ -504,6 +515,8 @@ { heap_free(lpwpi->proxy); heap_free(lpwpi->proxyBypass); + heap_free(lpwpi->proxyUsername); + heap_free(lpwpi->proxyPassword); } static proxyinfo_t *global_proxy; @@ -519,6 +532,50 @@ LeaveCriticalSection( &WININET_cs ); } +static BOOL parse_proxy_url( proxyinfo_t *info, const WCHAR *url ) +{ + static const WCHAR fmt[] = {'%','s',':','%','u',0}; + WCHAR hostname[INTERNET_MAX_HOST_NAME_LENGTH] = {}; + WCHAR username[INTERNET_MAX_USER_NAME_LENGTH] = {}; + WCHAR password[INTERNET_MAX_PASSWORD_LENGTH] = {}; + URL_COMPONENTSW uc; + + memset( &uc, 0, sizeof(uc) ); + uc.dwStructSize = sizeof(uc); + uc.lpszHostName = hostname; + uc.dwHostNameLength = INTERNET_MAX_HOST_NAME_LENGTH; + uc.lpszUserName = username; + uc.dwUserNameLength = INTERNET_MAX_USER_NAME_LENGTH; + uc.lpszPassword = password; + uc.dwPasswordLength = INTERNET_MAX_PASSWORD_LENGTH; + + if (!InternetCrackUrlW( url, 0, 0, &uc )) return FALSE; + if (!hostname[0]) + { + if (!(info->proxy = heap_strdupW( url ))) return FALSE; + info->proxyUsername = NULL; + info->proxyPassword = NULL; + return TRUE; + } + if (!(info->proxy = heap_alloc( (strlenW(hostname) + 12) * sizeof(WCHAR) ))) return FALSE; + sprintfW( info->proxy, fmt, hostname, uc.nPort ); + + if (!username[0]) info->proxyUsername = NULL; + else if (!(info->proxyUsername = heap_strdupW( username ))) + { + heap_free( info->proxy ); + return FALSE; + } + if (!password[0]) info->proxyPassword = NULL; + else if (!(info->proxyPassword = heap_strdupW( password ))) + { + heap_free( info->proxyUsername ); + heap_free( info->proxy ); + return FALSE; + } + return TRUE; +} + /*********************************************************************** * INTERNET_LoadProxySettings * @@ -538,6 +595,8 @@ LPCSTR envproxy; LONG ret; + memset( lpwpi, 0, sizeof(*lpwpi) ); + EnterCriticalSection( &WININET_cs ); if (global_proxy) { @@ -548,7 +607,10 @@ LeaveCriticalSection( &WININET_cs ); if ((ret = RegOpenKeyW( HKEY_CURRENT_USER, szInternetSettings, &key ))) + { + FreeProxyInfo( lpwpi ); return ret; + } len = sizeof(DWORD); if (RegQueryValueExW( key, szProxyEnable, NULL, &type, (BYTE *)&lpwpi->proxyEnabled, &len ) || type != REG_DWORD) @@ -556,6 +618,7 @@ lpwpi->proxyEnabled = 0; if((ret = RegSetValueExW( key, szProxyEnable, 0, REG_DWORD, (BYTE *)&lpwpi->proxyEnabled, sizeof(DWORD) ))) { + FreeProxyInfo( lpwpi ); RegCloseKey( key ); return ret; } @@ -563,8 +626,6 @@ if (!(envproxy = getenv( "http_proxy" )) || lpwpi->proxyEnabled) { - TRACE("Proxy is enabled.\n"); - /* figure out how much memory the proxy setting takes */ if (!RegQueryValueExW( key, szProxyServer, NULL, &type, NULL, &len ) && len && (type == REG_SZ)) { @@ -574,6 +635,7 @@ if (!(szProxy = heap_alloc(len))) { RegCloseKey( key ); + FreeProxyInfo( lpwpi ); return ERROR_OUTOFMEMORY; } RegQueryValueExW( key, szProxyServer, NULL, &type, (BYTE*)szProxy, &len ); @@ -585,17 +647,21 @@ p += lstrlenW( szHttp ); lstrcpyW( szProxy, p ); } - p = strchrW( szProxy, ' ' ); + p = strchrW( szProxy, ';' ); if (p) *p = 0; + FreeProxyInfo( lpwpi ); lpwpi->proxy = szProxy; + lpwpi->proxyBypass = NULL; - TRACE("http proxy = %s\n", debugstr_w(lpwpi->proxy)); + TRACE("http proxy (from registry) = %s\n", debugstr_w(lpwpi->proxy)); } else { TRACE("No proxy server settings in registry.\n"); + FreeProxyInfo( lpwpi ); lpwpi->proxy = NULL; + lpwpi->proxyBypass = NULL; } } else if (envproxy) @@ -604,18 +670,33 @@ len = MultiByteToWideChar( CP_UNIXCP, 0, envproxy, -1, NULL, 0 ); if (!(envproxyW = heap_alloc(len * sizeof(WCHAR)))) + { + RegCloseKey( key ); return ERROR_OUTOFMEMORY; + } MultiByteToWideChar( CP_UNIXCP, 0, envproxy, -1, envproxyW, len ); - lpwpi->proxyEnabled = 1; - lpwpi->proxy = envproxyW; - - TRACE("http proxy (from environment) = %s\n", debugstr_w(lpwpi->proxy)); + FreeProxyInfo( lpwpi ); + if (parse_proxy_url( lpwpi, envproxyW )) + { + TRACE("http proxy (from environment) = %s\n", debugstr_w(lpwpi->proxy)); + lpwpi->proxyEnabled = 1; + lpwpi->proxyBypass = NULL; + } + else + { + WARN("failed to parse http_proxy value %s\n", debugstr_w(envproxyW)); + lpwpi->proxyEnabled = 0; + lpwpi->proxy = NULL; + lpwpi->proxyBypass = NULL; + } + heap_free( envproxyW ); } - lpwpi->proxyBypass = NULL; if (lpwpi->proxyEnabled) { + TRACE("Proxy is enabled.\n"); + if (!(envproxy = getenv( "no_proxy" ))) { /* figure out how much memory the proxy setting takes */ @@ -630,32 +711,40 @@ } RegQueryValueExW( key, szProxyOverride, NULL, &type, (BYTE*)szProxy, &len ); + heap_free( lpwpi->proxyBypass ); lpwpi->proxyBypass = szProxy; - TRACE("http proxy bypass = %s\n", debugstr_w(lpwpi->proxyBypass)); + TRACE("http proxy bypass (from registry) = %s\n", debugstr_w(lpwpi->proxyBypass)); } else { + heap_free( lpwpi->proxyBypass ); + lpwpi->proxyBypass = NULL; + TRACE("No proxy bypass server settings in registry.\n"); } } - else if (envproxy) + else { WCHAR *envproxyW; len = MultiByteToWideChar( CP_UNIXCP, 0, envproxy, -1, NULL, 0 ); if (!(envproxyW = heap_alloc(len * sizeof(WCHAR)))) + { + RegCloseKey( key ); return ERROR_OUTOFMEMORY; + } MultiByteToWideChar( CP_UNIXCP, 0, envproxy, -1, envproxyW, len ); + heap_free( lpwpi->proxyBypass ); lpwpi->proxyBypass = envproxyW; TRACE("http proxy bypass (from environment) = %s\n", debugstr_w(lpwpi->proxyBypass)); } } + else TRACE("Proxy is disabled.\n"); RegCloseKey( key ); - return ERROR_SUCCESS; } @@ -664,56 +753,21 @@ */ static BOOL INTERNET_ConfigureProxy( appinfo_t *lpwai ) { - proxyinfo_t wpi = {0}; + proxyinfo_t wpi; if (INTERNET_LoadProxySettings( &wpi )) return FALSE; if (wpi.proxyEnabled) { - WCHAR proxyurl[INTERNET_MAX_URL_LENGTH]; - WCHAR username[INTERNET_MAX_USER_NAME_LENGTH]; - WCHAR password[INTERNET_MAX_PASSWORD_LENGTH]; - WCHAR hostname[INTERNET_MAX_HOST_NAME_LENGTH]; - URL_COMPONENTSW UrlComponents; - - UrlComponents.dwStructSize = sizeof UrlComponents; - UrlComponents.dwSchemeLength = 0; - UrlComponents.lpszHostName = hostname; - UrlComponents.dwHostNameLength = INTERNET_MAX_HOST_NAME_LENGTH; - UrlComponents.lpszUserName = username; - UrlComponents.dwUserNameLength = INTERNET_MAX_USER_NAME_LENGTH; - UrlComponents.lpszPassword = password; - UrlComponents.dwPasswordLength = INTERNET_MAX_PASSWORD_LENGTH; - UrlComponents.dwUrlPathLength = 0; - UrlComponents.dwExtraInfoLength = 0; - - if(InternetCrackUrlW(wpi.proxy, 0, 0, &UrlComponents)) - { - static const WCHAR szFormat[] = { 'h','t','t','p',':','/','/','%','s',':','%','u',0 }; - - if(UrlComponents.nPort == INTERNET_INVALID_PORT_NUMBER) - UrlComponents.nPort = INTERNET_DEFAULT_HTTP_PORT; - sprintfW(proxyurl, szFormat, hostname, UrlComponents.nPort); - - lpwai->accessType = INTERNET_OPEN_TYPE_PROXY; - lpwai->proxy = heap_strdupW(proxyurl); - lpwai->proxyBypass = heap_strdupW(wpi.proxyBypass); - if (UrlComponents.dwUserNameLength) - { - lpwai->proxyUsername = heap_strdupW(UrlComponents.lpszUserName); - lpwai->proxyPassword = heap_strdupW(UrlComponents.lpszPassword); - } - - TRACE("http proxy = %s bypass = %s\n", debugstr_w(lpwai->proxy), debugstr_w(lpwai->proxyBypass)); - FreeProxyInfo(&wpi); - return TRUE; - } - else - { - TRACE("Failed to parse proxy: %s\n", debugstr_w(wpi.proxy)); - lpwai->proxy = NULL; - } + TRACE("http proxy = %s bypass = %s\n", debugstr_w(lpwai->proxy), debugstr_w(lpwai->proxyBypass)); + + lpwai->accessType = INTERNET_OPEN_TYPE_PROXY; + lpwai->proxy = wpi.proxy; + lpwai->proxyBypass = wpi.proxyBypass; + lpwai->proxyUsername = wpi.proxyUsername; + lpwai->proxyPassword = wpi.proxyPassword; + return TRUE; } lpwai->accessType = INTERNET_OPEN_TYPE_DIRECT; @@ -2344,6 +2398,33 @@ return res == ERROR_SUCCESS; } +static BOOL get_proxy_autoconfig_url( char *buf, DWORD buflen ) +{ +#ifdef HAVE_CORESERVICES_CORESERVICES_H + CFDictionaryRef settings = CFNetworkCopySystemProxySettings(); + const void *ref; + BOOL ret = FALSE; + + if (!settings) return FALSE; + + if (!(ref = CFDictionaryGetValue( settings, kCFNetworkProxiesProxyAutoConfigURLString ))) + { + CFRelease( settings ); + return FALSE; + } + if (CFStringGetCString( ref, buf, buflen, kCFStringEncodingASCII )) + { + TRACE( "returning %s\n", debugstr_a(buf) ); + ret = TRUE; + } + CFRelease( settings ); + return ret; +#else + FIXME( "no support on this platform\n" ); + return FALSE; +#endif +} + static DWORD query_global_option(DWORD option, void *buffer, DWORD *size, BOOL unicode) { /* FIXME: This function currently handles more options than it should. Options requiring @@ -2427,16 +2508,20 @@ } case INTERNET_OPTION_PER_CONNECTION_OPTION: { + char url[INTERNET_MAX_URL_LENGTH + 1]; INTERNET_PER_CONN_OPTION_LISTW *con = buffer; INTERNET_PER_CONN_OPTION_LISTA *conA = buffer; DWORD res = ERROR_SUCCESS, i; proxyinfo_t pi; + BOOL have_url; LONG ret; TRACE("Getting global proxy info\n"); if((ret = INTERNET_LoadProxySettings(&pi))) return ret; + have_url = get_proxy_autoconfig_url(url, sizeof(url)); + FIXME("INTERNET_OPTION_PER_CONNECTION_OPTION stub\n"); if (*size < sizeof(INTERNET_PER_CONN_OPTION_LISTW)) { @@ -2454,6 +2539,9 @@ optionW->Value.dwValue = PROXY_TYPE_PROXY; else optionW->Value.dwValue = PROXY_TYPE_DIRECT; + if (have_url) + /* native includes PROXY_TYPE_DIRECT even if PROXY_TYPE_PROXY is set */ + optionW->Value.dwValue |= PROXY_TYPE_DIRECT|PROXY_TYPE_AUTO_PROXY_URL; break; case INTERNET_PER_CONN_PROXY_SERVER: @@ -2471,7 +2559,18 @@ break; case INTERNET_PER_CONN_AUTOCONFIG_URL: + if (!have_url) + optionW->Value.pszValue = NULL; + else if (unicode) + optionW->Value.pszValue = heap_strdupAtoW(url); + else + optionA->Value.pszValue = heap_strdupA(url); + break; + case INTERNET_PER_CONN_AUTODISCOVERY_FLAGS: + optionW->Value.dwValue = AUTO_PROXY_FLAG_ALWAYS_DETECT; + break; + case INTERNET_PER_CONN_AUTOCONFIG_SECONDARY_URL: case INTERNET_PER_CONN_AUTOCONFIG_RELOAD_DELAY_MINS: case INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_TIME: @@ -2890,7 +2989,7 @@ unsigned int i; proxyinfo_t pi; - INTERNET_LoadProxySettings(&pi); + if (INTERNET_LoadProxySettings(&pi)) return FALSE; for (i = 0; i < con->dwOptionCount; i++) { INTERNET_PER_CONN_OPTIONW *option = con->pOptions + i; diff -Nru wine1.7-1.7.18/dlls/wininet/Makefile.in wine1.7-1.7.19/dlls/wininet/Makefile.in --- wine1.7-1.7.18/dlls/wininet/Makefile.in 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wininet/Makefile.in 2014-05-16 19:06:48.000000000 +0000 @@ -3,7 +3,7 @@ IMPORTLIB = wininet IMPORTS = mpr shlwapi shell32 user32 advapi32 DELAYIMPORTS = secur32 crypt32 cryptui -EXTRALIBS = $(SOCKET_LIBS) $(Z_LIBS) +EXTRALIBS = $(CORESERVICES_LIBS) $(SOCKET_LIBS) $(Z_LIBS) C_SRCS = \ cookie.c \ diff -Nru wine1.7-1.7.18/dlls/wininet/netconnection.c wine1.7-1.7.19/dlls/wininet/netconnection.c --- wine1.7-1.7.18/dlls/wininet/netconnection.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wininet/netconnection.c 2014-05-16 19:06:48.000000000 +0000 @@ -636,6 +636,8 @@ } } + heap_free(read_buf); + if(status != SEC_E_OK || res != ERROR_SUCCESS) { WARN("Failed to establish SSL connection: %08x (%u)\n", status, res); heap_free(connection->ssl_buf); diff -Nru wine1.7-1.7.18/dlls/wininet/tests/url.c wine1.7-1.7.19/dlls/wininet/tests/url.c --- wine1.7-1.7.18/dlls/wininet/tests/url.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wininet/tests/url.c 2014-05-16 19:06:48.000000000 +0000 @@ -851,12 +851,9 @@ /* alloc-ed szUrl, NULL lpszScheme * shows that it uses nScheme instead */ - SetLastError(0xdeadbeef); urlComp.lpszScheme = NULL; ret = InternetCreateUrlA(&urlComp, 0, szUrl, &len); ok(ret, "Expected success\n"); - ok(GetLastError() == 0xdeadbeef, - "Expected 0xdeadbeef, got %d\n", GetLastError()); ok(len == 50, "Expected len 50, got %d\n", len); ok(!strcmp(szUrl, CREATE_URL1), "Expected %s, got %s\n", CREATE_URL1, szUrl); @@ -864,48 +861,36 @@ * any nScheme out of range seems ignored */ fill_url_components(&urlComp); - SetLastError(0xdeadbeef); urlComp.nScheme = -3; len++; ret = InternetCreateUrlA(&urlComp, 0, szUrl, &len); ok(ret, "Expected success\n"); - ok(GetLastError() == 0xdeadbeef, - "Expected 0xdeadbeef, got %d\n", GetLastError()); ok(len == 50, "Expected len 50, got %d\n", len); /* test valid lpUrlComponents, alloc-ed szUrl */ fill_url_components(&urlComp); - SetLastError(0xdeadbeef); len = 51; ret = InternetCreateUrlA(&urlComp, 0, szUrl, &len); ok(ret, "Expected success\n"); - ok(GetLastError() == 0xdeadbeef, - "Expected 0xdeadbeef, got %d\n", GetLastError()); ok(len == 50, "Expected len 50, got %d\n", len); ok(strstr(szUrl, "80") == NULL, "Didn't expect to find 80 in szUrl\n"); ok(!strcmp(szUrl, CREATE_URL1), "Expected %s, got %s\n", CREATE_URL1, szUrl); /* valid username, NULL password */ fill_url_components(&urlComp); - SetLastError(0xdeadbeef); urlComp.lpszPassword = NULL; len = 42; ret = InternetCreateUrlA(&urlComp, 0, szUrl, &len); ok(ret, "Expected success\n"); - ok(GetLastError() == 0xdeadbeef, - "Expected 0xdeadbeef, got %d\n", GetLastError()); ok(len == 41, "Expected len 41, got %d\n", len); ok(!strcmp(szUrl, CREATE_URL2), "Expected %s, got %s\n", CREATE_URL2, szUrl); /* valid username, empty password */ fill_url_components(&urlComp); - SetLastError(0xdeadbeef); urlComp.lpszPassword = empty; len = 51; ret = InternetCreateUrlA(&urlComp, 0, szUrl, &len); ok(ret, "Expected success\n"); - ok(GetLastError() == 0xdeadbeef, - "Expected 0xdeadbeef, got %d\n", GetLastError()); ok(len == 50, "Expected len 50, got %d\n", len); ok(!strcmp(szUrl, CREATE_URL3), "Expected %s, got %s\n", CREATE_URL3, szUrl); @@ -927,39 +912,30 @@ * if password is provided, username has to exist */ fill_url_components(&urlComp); - SetLastError(0xdeadbeef); urlComp.lpszUserName = empty; len = 51; ret = InternetCreateUrlA(&urlComp, 0, szUrl, &len); ok(ret, "Expected success\n"); - ok(GetLastError() == 0xdeadbeef, - "Expected 0xdeadbeef, got %d\n", GetLastError()); ok(len == 50, "Expected len 50, got %d\n", len); ok(!strcmp(szUrl, CREATE_URL5), "Expected %s, got %s\n", CREATE_URL5, szUrl); /* NULL username, NULL password */ fill_url_components(&urlComp); - SetLastError(0xdeadbeef); urlComp.lpszUserName = NULL; urlComp.lpszPassword = NULL; len = 42; ret = InternetCreateUrlA(&urlComp, 0, szUrl, &len); ok(ret, "Expected success\n"); - ok(GetLastError() == 0xdeadbeef, - "Expected 0xdeadbeef, got %d\n", GetLastError()); ok(len == 32, "Expected len 32, got %d\n", len); ok(!strcmp(szUrl, CREATE_URL4), "Expected %s, got %s\n", CREATE_URL4, szUrl); /* empty username, empty password */ fill_url_components(&urlComp); - SetLastError(0xdeadbeef); urlComp.lpszUserName = empty; urlComp.lpszPassword = empty; len = 51; ret = InternetCreateUrlA(&urlComp, 0, szUrl, &len); ok(ret, "Expected success\n"); - ok(GetLastError() == 0xdeadbeef, - "Expected 0xdeadbeef, got %d\n", GetLastError()); ok(len == 50, "Expected len 50, got %d\n", len); ok(!strcmp(szUrl, CREATE_URL5), "Expected %s, got %s\n", CREATE_URL5, szUrl); diff -Nru wine1.7-1.7.18/dlls/wintrust/tests/crypt.c wine1.7-1.7.19/dlls/wintrust/tests/crypt.c --- wine1.7-1.7.18/dlls/wintrust/tests/crypt.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wintrust/tests/crypt.c 2014-05-16 19:06:48.000000000 +0000 @@ -551,7 +551,9 @@ hcatinfo = pCryptCATAdminAddCatalog(hcatadmin, tmpfileW, basenameW, 1); error = GetLastError(); ok(hcatinfo == NULL, "CryptCATAdminAddCatalog succeeded\n"); - ok(error == ERROR_INVALID_PARAMETER, "got %u expected ERROR_INVALID_PARAMETER\n", GetLastError()); + ok(error == ERROR_INVALID_PARAMETER || + error == ERROR_BAD_FORMAT, /* win 8 */ + "got %u\n", GetLastError()); SetLastError(0xdeadbeef); hcatinfo = pCryptCATAdminAddCatalog(hcatadmin, tmpfileW, NULL, 0); diff -Nru wine1.7-1.7.18/dlls/wintrust/wintrust_main.c wine1.7-1.7.19/dlls/wintrust/wintrust_main.c --- wine1.7-1.7.18/dlls/wintrust/wintrust_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wintrust/wintrust_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -59,20 +59,6 @@ } /*********************************************************************** - * DllMain (WINTRUST.@) - */ -BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) -{ - switch(reason) - { - case DLL_PROCESS_ATTACH: - DisableThreadLibraryCalls( inst ); - break; - } - return TRUE; -} - -/*********************************************************************** * TrustIsCertificateSelfSigned (WINTRUST.@) */ BOOL WINAPI TrustIsCertificateSelfSigned( PCCERT_CONTEXT cert ) diff -Nru wine1.7-1.7.18/dlls/wmiutils/path.c wine1.7-1.7.19/dlls/wmiutils/path.c --- wine1.7-1.7.18/dlls/wmiutils/path.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wmiutils/path.c 2014-05-16 19:06:48.000000000 +0000 @@ -582,6 +582,7 @@ { p[0] = p[1] = '\\'; p[2] = '.'; + p[3] = 0; } return ret; } diff -Nru wine1.7-1.7.18/dlls/wmvcore/wmvcore_main.c wine1.7-1.7.19/dlls/wmvcore/wmvcore_main.c --- wine1.7-1.7.18/dlls/wmvcore/wmvcore_main.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wmvcore/wmvcore_main.c 2014-05-16 19:06:48.000000000 +0000 @@ -72,12 +72,167 @@ return E_NOTIMPL; } -HRESULT WINAPI WMCreateReader(IUnknown *reserved, DWORD rights, IWMReader **reader) +typedef struct { + IWMReader IWMReader_iface; + LONG ref; +} WMReader; + +static inline WMReader *impl_from_IWMReader(IWMReader *iface) +{ + return CONTAINING_RECORD(iface, WMReader, IWMReader_iface); +} + +static HRESULT WINAPI WMReader_QueryInterface(IWMReader *iface, REFIID riid, void **ppv) +{ + WMReader *This = impl_from_IWMReader(iface); + + if(IsEqualGUID(riid, &IID_IUnknown)) { + TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); + *ppv = &This->IWMReader_iface; + }else if(IsEqualGUID(riid, &IID_IWMReader)) { + TRACE("(%p)->(IID_IWMReader %p)\n", This, ppv); + *ppv = &This->IWMReader_iface; + }else { + *ppv = NULL; + FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); + return E_NOINTERFACE; + } + + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; +} + +static ULONG WINAPI WMReader_AddRef(IWMReader *iface) +{ + WMReader *This = impl_from_IWMReader(iface); + LONG ref = InterlockedIncrement(&This->ref); + + TRACE("(%p) ref=%d\n", This, ref); + + return ref; +} + +static ULONG WINAPI WMReader_Release(IWMReader *iface) +{ + WMReader *This = impl_from_IWMReader(iface); + LONG ref = InterlockedDecrement(&This->ref); + + TRACE("(%p) ref=%d\n", This, ref); + + if(!ref) + heap_free(This); + + return ref; +} + +static HRESULT WINAPI WMReader_Open(IWMReader *iface, const WCHAR *url, IWMReaderCallback *callback, void *context) { - FIXME("(%p, %x, %p): stub\n", reserved, rights, reader); + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)->(%s %p %p)\n", This, debugstr_w(url), callback, context); + return E_NOTIMPL; +} + +static HRESULT WINAPI WMReader_Close(IWMReader *iface) +{ + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI WMReader_GetOutputCount(IWMReader *iface, DWORD *outputs) +{ + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)->(%p)\n", This, outputs); + return E_NOTIMPL; +} + +static HRESULT WINAPI WMReader_GetOutputProps(IWMReader *iface, DWORD output_num, IWMOutputMediaProps **output) +{ + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)->(%u %p)\n", This, output_num, output); + return E_NOTIMPL; +} + +static HRESULT WINAPI WMReader_SetOutputProps(IWMReader *iface, DWORD output_num, IWMOutputMediaProps *output) +{ + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)->(%u %p)\n", This, output_num, output); + return E_NOTIMPL; +} + +static HRESULT WINAPI WMReader_GetOutputFormatCount(IWMReader *iface, DWORD output_num, DWORD *formats) +{ + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)->(%u %p)\n", This, output_num, formats); + return E_NOTIMPL; +} + +static HRESULT WINAPI WMReader_GetOutputFormat(IWMReader *iface, DWORD output_num, DWORD format_num, IWMOutputMediaProps **props) +{ + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)->(%u %u %p)\n", This, output_num, format_num, props); + return E_NOTIMPL; +} + +static HRESULT WINAPI WMReader_Start(IWMReader *iface, QWORD start, QWORD duration, float rate, void *context) +{ + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)->(%s %s %f %p)\n", This, wine_dbgstr_longlong(start), wine_dbgstr_longlong(duration), rate, context); + return E_NOTIMPL; +} + +static HRESULT WINAPI WMReader_Stop(IWMReader *iface) +{ + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI WMReader_Pause(IWMReader *iface) +{ + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI WMReader_Resume(IWMReader *iface) +{ + WMReader *This = impl_from_IWMReader(iface); + FIXME("(%p)\n", This); + return E_NOTIMPL; +} + +static const IWMReaderVtbl WMReaderVtbl = { + WMReader_QueryInterface, + WMReader_AddRef, + WMReader_Release, + WMReader_Open, + WMReader_Close, + WMReader_GetOutputCount, + WMReader_GetOutputProps, + WMReader_SetOutputProps, + WMReader_GetOutputFormatCount, + WMReader_GetOutputFormat, + WMReader_Start, + WMReader_Stop, + WMReader_Pause, + WMReader_Resume +}; + +HRESULT WINAPI WMCreateReader(IUnknown *reserved, DWORD rights, IWMReader **ret_reader) +{ + WMReader *reader; + + TRACE("(%p, %x, %p)\n", reserved, rights, ret_reader); + + reader = heap_alloc(sizeof(*reader)); + if(!reader) + return E_OUTOFMEMORY; - *reader = NULL; + reader->IWMReader_iface.lpVtbl = &WMReaderVtbl; + reader->ref = 1; + *ret_reader = &reader->IWMReader_iface; return E_NOTIMPL; } diff -Nru wine1.7-1.7.18/dlls/wnaspi32/winaspi32.c wine1.7-1.7.19/dlls/wnaspi32/winaspi32.c --- wine1.7-1.7.18/dlls/wnaspi32/winaspi32.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/wnaspi32/winaspi32.c 2014-05-16 19:06:48.000000000 +0000 @@ -63,12 +63,9 @@ }; static CRITICAL_SECTION ASPI_CritSection = { &critsect_debug, -1, 0, 0, 0, 0 }; -#endif /* defined(linux) */ - BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID fImpLoad) { -#ifdef linux switch( fdwReason ) { case DLL_PROCESS_ATTACH: @@ -80,13 +77,10 @@ DeleteCriticalSection( &ASPI_CritSection ); break; } -#endif /* defined(linux) */ return TRUE; } -#ifdef linux - static int ASPI_OpenDevice(SRB_ExecSCSICmd *prb) { diff -Nru wine1.7-1.7.18/dlls/ws2_32/socket.c wine1.7-1.7.19/dlls/ws2_32/socket.c --- wine1.7-1.7.18/dlls/ws2_32/socket.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ws2_32/socket.c 2014-05-16 19:06:48.000000000 +0000 @@ -2559,7 +2559,7 @@ DWORD adap_size; int enable = 1; - if (bind_addr == htonl(WS_INADDR_ANY) || bind_addr == htonl(WS_INADDR_LOOPBACK)) + if (bind_addr == htonl(INADDR_ANY) || bind_addr == htonl(INADDR_LOOPBACK)) return FALSE; /* Not binding to a network adapter, special interface binding unnecessary. */ if (getsockopt(fd, SOL_SOCKET, SO_TYPE, &sock_type, &optlen) == -1 || sock_type != SOCK_DGRAM) return FALSE; /* Special interface binding is only necessary for UDP datagrams. */ @@ -2664,10 +2664,10 @@ * INADDR_ANY instead*/ WARN("Trying to bind to magic IP address, using " "INADDR_ANY instead.\n"); - in4->sin_addr.s_addr = htonl(WS_INADDR_ANY); + in4->sin_addr.s_addr = htonl(INADDR_ANY); } else if (interface_bind(s, fd, &uaddr.addr)) - in4->sin_addr.s_addr = htonl(WS_INADDR_ANY); + in4->sin_addr.s_addr = htonl(INADDR_ANY); } if (bind(fd, &uaddr.addr, uaddrlen) < 0) { @@ -2682,6 +2682,20 @@ case EADDRNOTAVAIL: SetLastError(WSAEINVAL); break; + case EADDRINUSE: + { + int optval = 0; + socklen_t optlen = sizeof(optval); + /* Windows >= 2003 will return different results depending on + * SO_REUSEADDR, WSAEACCES may be returned representing that + * the socket hijacking protection prevented the bind */ + if (!getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&optval, &optlen) && optval) + { + SetLastError(WSAEACCES); + break; + } + /* fall through */ + } default: SetLastError(wsaErrno()); break; @@ -2725,7 +2739,7 @@ * assuming we really want to connect to localhost */ TRACE("Trying to connect to magic IP address, using " "INADDR_LOOPBACK instead.\n"); - in4->sin_addr.s_addr = htonl(WS_INADDR_LOOPBACK); + in4->sin_addr.s_addr = htonl(INADDR_LOOPBACK); } } @@ -5013,13 +5027,13 @@ switch( how ) { - case 0: /* drop receives */ + case SD_RECEIVE: /* drop receives */ clear_flags |= FD_READ; break; - case 1: /* drop sends */ + case SD_SEND: /* drop sends */ clear_flags |= FD_WRITE; break; - case 2: /* drop all */ + case SD_BOTH: /* drop all */ clear_flags |= FD_READ|FD_WRITE; /*fall through */ default: @@ -7361,7 +7375,7 @@ { TRACE( "(0x%04lx %p)\n", s, disconnectdata ); - return WS_shutdown( s, 0 ); + return WS_shutdown( s, SD_RECEIVE ); } /*********************************************************************** diff -Nru wine1.7-1.7.18/dlls/ws2_32/tests/sock.c wine1.7-1.7.19/dlls/ws2_32/tests/sock.c --- wine1.7-1.7.18/dlls/ws2_32/tests/sock.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/ws2_32/tests/sock.c 2014-05-16 19:06:48.000000000 +0000 @@ -1468,6 +1468,7 @@ SOCKET s1,s2; unsigned int rc,reuse; int size; + DWORD err; saddr.sin_family = AF_INET; saddr.sin_port = htons(9375); @@ -1496,9 +1497,44 @@ /* On Win2k3 and above, all SO_REUSEADDR seems to do is to allow binding to * a port immediately after closing another socket on that port, so * basically following the BSD socket semantics here. */ - closesocket(s1); rc = bind(s2, (struct sockaddr*)&saddr, sizeof(saddr)); - ok(rc==0, "bind() failed error: %d\n", WSAGetLastError()); + if(rc==0) + { + int s3=socket(AF_INET, SOCK_STREAM, 0), s4; + trace("<= Win XP behavior of SO_REUSEADDR\n"); + + /* If we could bind again in the same port this is Windows version <= XP. + * Lets test if we can really connect to one of them. */ + set_blocking(s1, FALSE); + set_blocking(s2, FALSE); + rc = listen(s1, 1); + ok(!rc, "listen() failed with error: %d\n", WSAGetLastError()); + rc = listen(s2, 1); + ok(!rc, "listen() failed with error: %d\n", WSAGetLastError()); + rc = connect(s3, (struct sockaddr*)&saddr, sizeof(saddr)); + ok(!rc, "connecting to accepting socket failed %d\n", WSAGetLastError()); + + /* the delivery of the connection is random so we need to try on both sockets */ + size = sizeof(saddr); + s4 = accept(s1, (struct sockaddr*)&saddr, &size); + if(s4 == INVALID_SOCKET) + s4 = accept(s2, (struct sockaddr*)&saddr, &size); + ok(s4 != INVALID_SOCKET, "none of the listening sockets could get the connection\n"); + + closesocket(s1); + closesocket(s3); + closesocket(s4); + } + else + { + trace(">= Win 2003 behavior of SO_REUSEADDR\n"); + err = WSAGetLastError(); + ok(err==WSAEACCES, "expected 10013, got %d\n", err); + + closesocket(s1); + rc = bind(s2, (struct sockaddr*)&saddr, sizeof(saddr)); + ok(rc==0, "bind() failed error: %d\n", WSAGetLastError()); + } closesocket(s2); } diff -Nru wine1.7-1.7.18/dlls/xmllite/reader.c wine1.7-1.7.19/dlls/xmllite/reader.c --- wine1.7-1.7.18/dlls/xmllite/reader.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/xmllite/reader.c 2014-05-16 19:06:48.000000000 +0000 @@ -123,7 +123,7 @@ return type_names[nodetype]; } -static const char *debugstr_prop(XmlReaderProperty prop) +static const char *debugstr_reader_prop(XmlReaderProperty prop) { static const char * const prop_names[] = { @@ -155,6 +155,11 @@ { utf8W, XmlEncoding_UTF8, CP_UTF8 } }; +const WCHAR *get_encoding_name(xml_encoding encoding) +{ + return xml_encoding_map[encoding].name; +} + typedef struct { char *data; @@ -258,14 +263,6 @@ return CONTAINING_RECORD(iface, xmlreaderinput, IXmlReaderInput_iface); } -static inline void *m_realloc(IMalloc *imalloc, void *mem, size_t len) -{ - if (imalloc) - return IMalloc_Realloc(imalloc, mem, len); - else - return heap_realloc(mem, len); -} - /* reader memory allocation functions */ static inline void *reader_alloc(xmlreader *reader, size_t len) { @@ -554,7 +551,7 @@ readerinput_free(input, buffer->data); } -static HRESULT get_code_page(xml_encoding encoding, UINT *cp) +HRESULT get_code_page(xml_encoding encoding, UINT *cp) { if (encoding == XmlEncoding_Unknown) { @@ -642,7 +639,7 @@ /* Queries already stored interface for IStream/ISequentialStream. Interface supplied on creation will be overwritten */ -static HRESULT readerinput_query_for_stream(xmlreaderinput *readerinput) +static inline HRESULT readerinput_query_for_stream(xmlreaderinput *readerinput) { HRESULT hr; @@ -2517,7 +2514,7 @@ { /* create IXmlReaderInput basing on supplied interface */ hr = CreateXmlReaderInputWithEncodingName(input, - NULL, NULL, FALSE, NULL, &readerinput); + This->imalloc, NULL, FALSE, NULL, &readerinput); if (hr != S_OK) return hr; This->input = impl_from_IXmlReaderInput(readerinput); } @@ -2537,7 +2534,7 @@ { xmlreader *This = impl_from_IXmlReader(iface); - TRACE("(%p)->(%s %p)\n", This, debugstr_prop(property), value); + TRACE("(%p)->(%s %p)\n", This, debugstr_reader_prop(property), value); if (!value) return E_INVALIDARG; @@ -2561,7 +2558,7 @@ { xmlreader *This = impl_from_IXmlReader(iface); - TRACE("(%p)->(%s %lu)\n", This, debugstr_prop(property), value); + TRACE("(%p)->(%s %lu)\n", This, debugstr_reader_prop(property), value); switch (property) { diff -Nru wine1.7-1.7.18/dlls/xmllite/tests/writer.c wine1.7-1.7.19/dlls/xmllite/tests/writer.c --- wine1.7-1.7.18/dlls/xmllite/tests/writer.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/xmllite/tests/writer.c 2014-05-16 19:06:48.000000000 +0000 @@ -67,20 +67,90 @@ static IUnknown testoutput = { &testoutputvtbl }; +static HRESULT WINAPI teststream_QueryInterface(ISequentialStream *iface, REFIID riid, void **obj) +{ + if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_ISequentialStream)) + { + *obj = iface; + return S_OK; + } + + *obj = NULL; + return E_NOINTERFACE; +} + +static ULONG WINAPI teststream_AddRef(ISequentialStream *iface) +{ + return 2; +} + +static ULONG WINAPI teststream_Release(ISequentialStream *iface) +{ + return 1; +} + +static HRESULT WINAPI teststream_Read(ISequentialStream *iface, void *pv, ULONG cb, ULONG *pread) +{ + ok(0, "unexpected call\n"); + return E_NOTIMPL; +} + +static ULONG g_write_len; +static HRESULT WINAPI teststream_Write(ISequentialStream *iface, const void *pv, ULONG cb, ULONG *written) +{ + g_write_len = cb; + *written = cb; + return S_OK; +} + +static const ISequentialStreamVtbl teststreamvtbl = +{ + teststream_QueryInterface, + teststream_AddRef, + teststream_Release, + teststream_Read, + teststream_Write +}; + +static ISequentialStream teststream = { &teststreamvtbl }; + static void test_writer_create(void) { HRESULT hr; IXmlWriter *writer; + LONG_PTR value; /* crashes native */ if (0) { pCreateXmlWriter(&IID_IXmlWriter, NULL, NULL); - pCreateXmlWriter(NULL, (LPVOID*)&writer, NULL); + pCreateXmlWriter(NULL, (void**)&writer, NULL); } - hr = pCreateXmlWriter(&IID_IXmlWriter, (LPVOID*)&writer, NULL); + hr = pCreateXmlWriter(&IID_IXmlWriter, (void**)&writer, NULL); + ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); + + /* check default properties values */ + value = 0; + hr = IXmlWriter_GetProperty(writer, XmlWriterProperty_ByteOrderMark, &value); + ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); + ok(value == TRUE, "got %ld\n", value); + + value = TRUE; + hr = IXmlWriter_GetProperty(writer, XmlWriterProperty_Indent, &value); + ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); + ok(value == FALSE, "got %ld\n", value); + + value = TRUE; + hr = IXmlWriter_GetProperty(writer, XmlWriterProperty_OmitXmlDeclaration, &value); + ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); + ok(value == FALSE, "got %ld\n", value); + + value = XmlConformanceLevel_Auto; + hr = IXmlWriter_GetProperty(writer, XmlWriterProperty_ConformanceLevel, &value); ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); + ok(value == XmlConformanceLevel_Document, "got %ld\n", value); + IXmlWriter_Release(writer); } @@ -110,6 +180,11 @@ IUnknown *unk; HRESULT hr; + output = NULL; + hr = pCreateXmlWriterOutputWithEncodingName(&testoutput, NULL, NULL, &output); + ok(hr == S_OK, "got %08x\n", hr); + IUnknown_Release(output); + hr = pCreateXmlWriterOutputWithEncodingName(&testoutput, NULL, utf16W, &output); ok(hr == S_OK, "got %08x\n", hr); unk = NULL; @@ -120,6 +195,123 @@ IUnknown_Release(output); } +static void test_writestartdocument(void) +{ + static const char fullprolog[] = ""; + static const char prologversion[] = ""; + static const WCHAR versionW[] = {'v','e','r','s','i','o','n','=','"','1','.','0','"',0}; + static const WCHAR xmlW[] = {'x','m','l',0}; + IXmlWriter *writer; + HGLOBAL hglobal; + IStream *stream; + HRESULT hr; + char *ptr; + + hr = pCreateXmlWriter(&IID_IXmlWriter, (void**)&writer, NULL); + ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); + + /* output not set */ + hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Yes); + ok(hr == E_UNEXPECTED, "got 0x%08x\n", hr); + + hr = IXmlWriter_WriteProcessingInstruction(writer, xmlW, versionW); + ok(hr == E_UNEXPECTED, "got 0x%08x\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = CreateStreamOnHGlobal(NULL, TRUE, &stream); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IXmlWriter_SetOutput(writer, (IUnknown*)stream); + ok(hr == S_OK, "got 0x%08x\n", hr); + + /* nothing written yet */ + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Yes); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = GetHGlobalFromStream(stream, &hglobal); + ok(hr == S_OK, "got 0x%08x\n", hr); + + ptr = GlobalLock(hglobal); + ok(!strncmp(ptr, fullprolog, strlen(fullprolog)), "got %s, expected %s\n", ptr, fullprolog); + GlobalUnlock(hglobal); + + /* one more time */ + hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Yes); + ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr); + IStream_Release(stream); + + /* now add PI manually, and try to start a document */ + hr = CreateStreamOnHGlobal(NULL, TRUE, &stream); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IXmlWriter_SetOutput(writer, (IUnknown*)stream); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IXmlWriter_WriteProcessingInstruction(writer, xmlW, versionW); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Yes); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Yes); + ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr); + + /* another attempt to add 'xml' PI */ + hr = IXmlWriter_WriteProcessingInstruction(writer, xmlW, versionW); + ok(hr == WR_E_INVALIDACTION, "got 0x%08x\n", hr); + + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = GetHGlobalFromStream(stream, &hglobal); + ok(hr == S_OK, "got 0x%08x\n", hr); + + ptr = GlobalLock(hglobal); + ok(!strncmp(ptr, prologversion, strlen(prologversion)), "got %s\n", ptr); + GlobalUnlock(hglobal); + + IStream_Release(stream); + IXmlWriter_Release(writer); +} + +static void test_flush(void) +{ + IXmlWriter *writer; + HRESULT hr; + + hr = pCreateXmlWriter(&IID_IXmlWriter, (void**)&writer, NULL); + ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); + + hr = IXmlWriter_SetOutput(writer, (IUnknown*)&teststream); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IXmlWriter_WriteStartDocument(writer, XmlStandalone_Yes); + ok(hr == S_OK, "got 0x%08x\n", hr); + + g_write_len = 0; + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(g_write_len > 0, "got %d\n", g_write_len); + + g_write_len = 1; + hr = IXmlWriter_Flush(writer); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(g_write_len == 0, "got %d\n", g_write_len); + + /* Release() flushes too */ + g_write_len = 1; + IXmlWriter_Release(writer); + ok(g_write_len == 0, "got %d\n", g_write_len); +} + START_TEST(writer) { if (!init_pointers()) @@ -127,4 +319,6 @@ test_writer_create(); test_writeroutput(); + test_writestartdocument(); + test_flush(); } diff -Nru wine1.7-1.7.18/dlls/xmllite/writer.c wine1.7-1.7.19/dlls/xmllite/writer.c --- wine1.7-1.7.18/dlls/xmllite/writer.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/xmllite/writer.c 2014-05-16 19:06:48.000000000 +0000 @@ -2,6 +2,7 @@ * IXmlWriter implementation * * Copyright 2011 Alistair Leslie-Hughes + * Copyright 2014 Nikolay Sivov for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -28,25 +29,55 @@ #include "initguid.h" #include "wine/debug.h" +#include "wine/unicode.h" WINE_DEFAULT_DEBUG_CHANNEL(xmllite); /* not defined in public headers */ DEFINE_GUID(IID_IXmlWriterOutput, 0xc1131708, 0x0f59, 0x477f, 0x93, 0x59, 0x7d, 0x33, 0x24, 0x51, 0xbc, 0x1a); +static const WCHAR closepiW[] = {'?','>'}; + +struct output_buffer +{ + char *data; + unsigned int allocated; + unsigned int written; + UINT codepage; +}; + +typedef enum +{ + XmlWriterState_Initial, /* output is not set yet */ + XmlWriterState_Ready, /* SetOutput() was called, ready to start */ + XmlWriterState_PIDocStarted, /* document was started with manually added 'xml' PI */ + XmlWriterState_DocStarted /* document was started with WriteStartDocument() */ +} XmlWriterState; + typedef struct { IXmlWriterOutput IXmlWriterOutput_iface; LONG ref; IUnknown *output; + ISequentialStream *stream; IMalloc *imalloc; xml_encoding encoding; + struct output_buffer buffer; } xmlwriteroutput; +static const struct IUnknownVtbl xmlwriteroutputvtbl; + typedef struct _xmlwriter { IXmlWriter IXmlWriter_iface; LONG ref; + IMalloc *imalloc; + xmlwriteroutput *output; + BOOL indent; + BOOL bom; + BOOL omitxmldecl; + XmlConformanceLevel conformance; + XmlWriterState state; } xmlwriter; static inline xmlwriter *impl_from_IXmlWriter(IXmlWriter *iface) @@ -59,7 +90,24 @@ return CONTAINING_RECORD(iface, xmlwriteroutput, IXmlWriterOutput_iface); } -/* reader input memory allocation functions */ +static const char *debugstr_writer_prop(XmlWriterProperty prop) +{ + static const char * const prop_names[] = + { + "MultiLanguage", + "Indent", + "ByteOrderMark", + "OmitXmlDeclaration", + "ConformanceLevel" + }; + + if (prop > _XmlWriterProperty_Last) + return wine_dbg_sprintf("unknown property=%d", prop); + + return prop_names[prop]; +} + +/* writer output memory allocation functions */ static inline void *writeroutput_alloc(xmlwriteroutput *output, size_t len) { return m_alloc(output->imalloc, len); @@ -70,6 +118,160 @@ m_free(output->imalloc, mem); } +static inline void *writeroutput_realloc(xmlwriteroutput *output, void *mem, size_t len) +{ + return m_realloc(output->imalloc, mem, len); +} + +/* writer memory allocation functions */ +static inline void *writer_alloc(xmlwriter *writer, size_t len) +{ + return m_alloc(writer->imalloc, len); +} + +static inline void writer_free(xmlwriter *writer, void *mem) +{ + m_free(writer->imalloc, mem); +} + +static HRESULT init_output_buffer(xmlwriteroutput *output) +{ + struct output_buffer *buffer = &output->buffer; + const int initial_len = 0x2000; + HRESULT hr; + UINT cp; + + hr = get_code_page(output->encoding, &cp); + if (FAILED(hr)) return hr; + + buffer->data = writeroutput_alloc(output, initial_len); + if (!buffer->data) return E_OUTOFMEMORY; + + memset(buffer->data, 0, 4); + buffer->allocated = initial_len; + buffer->written = 0; + buffer->codepage = cp; + + return S_OK; +} + +static void free_output_buffer(xmlwriteroutput *output) +{ + struct output_buffer *buffer = &output->buffer; + writeroutput_free(output, buffer->data); + buffer->data = NULL; + buffer->allocated = 0; + buffer->written = 0; +} + +static HRESULT grow_output_buffer(xmlwriteroutput *output, int length) +{ + struct output_buffer *buffer = &output->buffer; + /* grow if needed, plus 4 bytes to be sure null terminator will fit in */ + if (buffer->allocated < buffer->written + length + 4) { + int grown_size = max(2*buffer->allocated, buffer->allocated + length); + char *ptr = writeroutput_realloc(output, buffer->data, grown_size); + if (!ptr) return E_OUTOFMEMORY; + buffer->data = ptr; + buffer->allocated = grown_size; + } + + return S_OK; +} + +static HRESULT write_output_buffer(xmlwriteroutput *output, const WCHAR *data, int len) +{ + struct output_buffer *buffer = &output->buffer; + int length; + HRESULT hr; + char *ptr; + + if (buffer->codepage != ~0) { + length = WideCharToMultiByte(buffer->codepage, 0, data, len, NULL, 0, NULL, NULL); + hr = grow_output_buffer(output, length); + if (FAILED(hr)) return hr; + ptr = buffer->data + buffer->written; + length = WideCharToMultiByte(buffer->codepage, 0, data, len, ptr, length, NULL, NULL); + buffer->written += len == -1 ? length-1 : length; + } + else { + /* WCHAR data just copied */ + length = len == -1 ? strlenW(data) : len; + if (length) { + length *= sizeof(WCHAR); + + hr = grow_output_buffer(output, length); + if (FAILED(hr)) return hr; + ptr = buffer->data + buffer->written; + + memcpy(ptr, data, length); + buffer->written += length; + ptr += length; + /* null termination */ + *(WCHAR*)ptr = 0; + } + } + + return S_OK; +} + +static HRESULT write_output_buffer_quoted(xmlwriteroutput *output, const WCHAR *data, int len) +{ + static const WCHAR quotW[] = {'"'}; + write_output_buffer(output, quotW, 1); + write_output_buffer(output, data, len); + write_output_buffer(output, quotW, 1); + return S_OK; +} + +static void writeroutput_release_stream(xmlwriteroutput *writeroutput) +{ + if (writeroutput->stream) { + ISequentialStream_Release(writeroutput->stream); + writeroutput->stream = NULL; + } +} + +static inline HRESULT writeroutput_query_for_stream(xmlwriteroutput *writeroutput) +{ + HRESULT hr; + + writeroutput_release_stream(writeroutput); + hr = IUnknown_QueryInterface(writeroutput->output, &IID_IStream, (void**)&writeroutput->stream); + if (hr != S_OK) + hr = IUnknown_QueryInterface(writeroutput->output, &IID_ISequentialStream, (void**)&writeroutput->stream); + + return hr; +} + +static HRESULT writeroutput_flush_stream(xmlwriteroutput *output) +{ + struct output_buffer *buffer; + ULONG written, offset = 0; + HRESULT hr; + + if (!output || !output->stream) + return S_OK; + + buffer = &output->buffer; + + /* It will loop forever until everything is written or an error occured. */ + do { + written = 0; + hr = ISequentialStream_Write(output->stream, buffer->data + offset, buffer->written, &written); + if (FAILED(hr)) { + WARN("write to stream failed (0x%08x)\n", hr); + buffer->written = 0; + return hr; + } + + offset += written; + buffer->written -= written; + } while (buffer->written > 0); + + return S_OK; +} + static HRESULT WINAPI xmlwriter_QueryInterface(IXmlWriter *iface, REFIID riid, void **ppvObject) { xmlwriter *This = impl_from_IXmlWriter(iface); @@ -102,29 +304,92 @@ TRACE("%p\n", This); ref = InterlockedDecrement(&This->ref); - if (ref == 0) - heap_free(This); + if (ref == 0) { + IMalloc *imalloc = This->imalloc; + + IXmlWriter_Flush(iface); + if (This->output) IUnknown_Release(&This->output->IXmlWriterOutput_iface); + writer_free(This, This); + if (imalloc) IMalloc_Release(imalloc); + } return ref; } /*** IXmlWriter methods ***/ -static HRESULT WINAPI xmlwriter_SetOutput(IXmlWriter *iface, IUnknown *pOutput) +static HRESULT WINAPI xmlwriter_SetOutput(IXmlWriter *iface, IUnknown *output) { xmlwriter *This = impl_from_IXmlWriter(iface); + IXmlWriterOutput *writeroutput; + HRESULT hr; - FIXME("%p %p\n", This, pOutput); + TRACE("(%p)->(%p)\n", This, output); - return E_NOTIMPL; + if (This->output) { + writeroutput_release_stream(This->output); + IUnknown_Release(&This->output->IXmlWriterOutput_iface); + This->output = NULL; + } + + /* just reset current output */ + if (!output) { + This->state = XmlWriterState_Initial; + return S_OK; + } + + /* now try IXmlWriterOutput, ISequentialStream, IStream */ + hr = IUnknown_QueryInterface(output, &IID_IXmlWriterOutput, (void**)&writeroutput); + if (hr == S_OK) { + if (writeroutput->lpVtbl == &xmlwriteroutputvtbl) + This->output = impl_from_IXmlWriterOutput(writeroutput); + else { + ERR("got external IXmlWriterOutput implementation: %p, vtbl=%p\n", + writeroutput, writeroutput->lpVtbl); + IUnknown_Release(writeroutput); + return E_FAIL; + + } + } + + if (hr != S_OK || !writeroutput) { + /* create IXmlWriterOutput basing on supplied interface */ + hr = CreateXmlWriterOutputWithEncodingName(output, This->imalloc, NULL, &writeroutput); + if (hr != S_OK) return hr; + This->output = impl_from_IXmlWriterOutput(writeroutput); + } + + This->state = XmlWriterState_Ready; + return writeroutput_query_for_stream(This->output); } -static HRESULT WINAPI xmlwriter_GetProperty(IXmlWriter *iface, UINT nProperty, LONG_PTR *ppValue) +static HRESULT WINAPI xmlwriter_GetProperty(IXmlWriter *iface, UINT property, LONG_PTR *value) { xmlwriter *This = impl_from_IXmlWriter(iface); - FIXME("%p %u %p\n", This, nProperty, ppValue); + TRACE("(%p)->(%s %p)\n", This, debugstr_writer_prop(property), value); - return E_NOTIMPL; + if (!value) return E_INVALIDARG; + + switch (property) + { + case XmlWriterProperty_Indent: + *value = This->indent; + break; + case XmlWriterProperty_ByteOrderMark: + *value = This->bom; + break; + case XmlWriterProperty_OmitXmlDeclaration: + *value = This->omitxmldecl; + break; + case XmlWriterProperty_ConformanceLevel: + *value = This->conformance; + break; + default: + FIXME("Unimplemented property (%u)\n", property); + return E_NOTIMPL; + } + + return S_OK; } static HRESULT WINAPI xmlwriter_SetProperty(IXmlWriter *iface, UINT nProperty, LONG_PTR pValue) @@ -283,14 +548,32 @@ return E_NOTIMPL; } -static HRESULT WINAPI xmlwriter_WriteProcessingInstruction(IXmlWriter *iface, LPCWSTR pwszName, - LPCWSTR pwszText) +static HRESULT WINAPI xmlwriter_WriteProcessingInstruction(IXmlWriter *iface, LPCWSTR name, + LPCWSTR text) { xmlwriter *This = impl_from_IXmlWriter(iface); + static const WCHAR xmlW[] = {'x','m','l',0}; + static const WCHAR openpiW[] = {'<','?'}; + static const WCHAR spaceW[] = {' '}; - FIXME("%p %s %s\n", This, wine_dbgstr_w(pwszName), wine_dbgstr_w(pwszText)); + TRACE("(%p)->(%s %s)\n", This, wine_dbgstr_w(name), wine_dbgstr_w(text)); - return E_NOTIMPL; + if (This->state == XmlWriterState_Initial) + return E_UNEXPECTED; + + if (This->state == XmlWriterState_DocStarted && !strcmpW(name, xmlW)) + return WR_E_INVALIDACTION; + + write_output_buffer(This->output, openpiW, sizeof(openpiW)/sizeof(WCHAR)); + write_output_buffer(This->output, name, -1); + write_output_buffer(This->output, spaceW, 1); + write_output_buffer(This->output, text, -1); + write_output_buffer(This->output, closepiW, sizeof(closepiW)/sizeof(WCHAR)); + + if (!strcmpW(name, xmlW)) + This->state = XmlWriterState_PIDocStarted; + + return S_OK; } static HRESULT WINAPI xmlwriter_WriteQualifiedName(IXmlWriter *iface, LPCWSTR pwszLocalName, @@ -323,11 +606,49 @@ static HRESULT WINAPI xmlwriter_WriteStartDocument(IXmlWriter *iface, XmlStandalone standalone) { + static const WCHAR versionW[] = {'<','?','x','m','l',' ','v','e','r','s','i','o','n','=','"','1','.','0','"'}; + static const WCHAR encodingW[] = {' ','e','n','c','o','d','i','n','g','='}; xmlwriter *This = impl_from_IXmlWriter(iface); - FIXME("%p\n", This); + TRACE("(%p)->(%d)\n", This, standalone); - return E_NOTIMPL; + switch (This->state) + { + case XmlWriterState_Initial: + return E_UNEXPECTED; + case XmlWriterState_PIDocStarted: + This->state = XmlWriterState_DocStarted; + return S_OK; + case XmlWriterState_DocStarted: + return WR_E_INVALIDACTION; + default: + ; + } + + /* version */ + write_output_buffer(This->output, versionW, sizeof(versionW)/sizeof(WCHAR)); + + /* encoding */ + write_output_buffer(This->output, encodingW, sizeof(encodingW)/sizeof(WCHAR)); + write_output_buffer_quoted(This->output, get_encoding_name(This->output->encoding), -1); + + /* standalone */ + if (standalone == XmlStandalone_Omit) + write_output_buffer(This->output, closepiW, sizeof(closepiW)/sizeof(WCHAR)); + else { + static const WCHAR standaloneW[] = {' ','s','t','a','n','d','a','l','o','n','e','=','\"'}; + static const WCHAR yesW[] = {'y','e','s','\"','?','>'}; + static const WCHAR noW[] = {'n','o','\"','?','>'}; + + write_output_buffer(This->output, standaloneW, sizeof(standaloneW)/sizeof(WCHAR)); + if (standalone == XmlStandalone_Yes) + write_output_buffer(This->output, yesW, sizeof(yesW)/sizeof(WCHAR)); + else + write_output_buffer(This->output, noW, sizeof(noW)/sizeof(WCHAR)); + } + + This->state = XmlWriterState_DocStarted; + return S_OK; } static HRESULT WINAPI xmlwriter_WriteStartElement(IXmlWriter *iface, LPCWSTR pwszPrefix, @@ -372,9 +693,9 @@ { xmlwriter *This = impl_from_IXmlWriter(iface); - FIXME("%p\n", This); + TRACE("%p\n", This); - return E_NOTIMPL; + return writeroutput_flush_stream(This->output); } static const struct IXmlWriterVtbl xmlwriter_vtbl = @@ -456,6 +777,8 @@ { IMalloc *imalloc = This->imalloc; if (This->output) IUnknown_Release(This->output); + if (This->stream) ISequentialStream_Release(This->stream); + free_output_buffer(This); writeroutput_free(This, This); if (imalloc) IMalloc_Release(imalloc); } @@ -470,13 +793,11 @@ xmlwriteroutput_Release }; -HRESULT WINAPI CreateXmlWriter(REFIID riid, void **pObject, IMalloc *pMalloc) +HRESULT WINAPI CreateXmlWriter(REFIID riid, void **obj, IMalloc *imalloc) { xmlwriter *writer; - TRACE("(%s, %p, %p)\n", wine_dbgstr_guid(riid), pObject, pMalloc); - - if (pMalloc) FIXME("custom IMalloc not supported yet\n"); + TRACE("(%s, %p, %p)\n", wine_dbgstr_guid(riid), obj, imalloc); if (!IsEqualGUID(riid, &IID_IXmlWriter)) { @@ -484,15 +805,26 @@ return E_FAIL; } - writer = heap_alloc(sizeof(*writer)); + if (imalloc) + writer = IMalloc_Alloc(imalloc, sizeof(*writer)); + else + writer = heap_alloc(sizeof(*writer)); if(!writer) return E_OUTOFMEMORY; writer->IXmlWriter_iface.lpVtbl = &xmlwriter_vtbl; writer->ref = 1; + writer->imalloc = imalloc; + if (imalloc) IMalloc_AddRef(imalloc); + writer->output = NULL; + writer->indent = FALSE; + writer->bom = TRUE; + writer->omitxmldecl = FALSE; + writer->conformance = XmlConformanceLevel_Document; + writer->state = XmlWriterState_Initial; - *pObject = &writer->IXmlWriter_iface; + *obj = &writer->IXmlWriter_iface; - TRACE("returning iface %p\n", *pObject); + TRACE("returning iface %p\n", *obj); return S_OK; } @@ -502,12 +834,16 @@ LPCWSTR encoding, IXmlWriterOutput **output) { + static const WCHAR utf8W[] = {'U','T','F','-','8',0}; xmlwriteroutput *writeroutput; + HRESULT hr; TRACE("%p %p %s %p\n", stream, imalloc, debugstr_w(encoding), output); if (!stream || !output) return E_INVALIDARG; + *output = NULL; + if (imalloc) writeroutput = IMalloc_Alloc(imalloc, sizeof(*writeroutput)); else @@ -518,7 +854,13 @@ writeroutput->ref = 1; writeroutput->imalloc = imalloc; if (imalloc) IMalloc_AddRef(imalloc); - writeroutput->encoding = parse_encoding_name(encoding, -1); + writeroutput->encoding = parse_encoding_name(encoding ? encoding : utf8W, -1); + writeroutput->stream = NULL; + hr = init_output_buffer(writeroutput); + if (FAILED(hr)) { + IUnknown_Release(&writeroutput->IXmlWriterOutput_iface); + return hr; + } IUnknown_QueryInterface(stream, &IID_IUnknown, (void**)&writeroutput->output); diff -Nru wine1.7-1.7.18/dlls/xmllite/xmllite_private.h wine1.7-1.7.19/dlls/xmllite/xmllite_private.h --- wine1.7-1.7.18/dlls/xmllite/xmllite_private.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/dlls/xmllite/xmllite_private.h 2014-05-16 19:06:48.000000000 +0000 @@ -45,6 +45,14 @@ return heap_alloc(len); } +static inline void *m_realloc(IMalloc *imalloc, void *mem, size_t len) +{ + if (imalloc) + return IMalloc_Realloc(imalloc, mem, len); + else + return heap_realloc(mem, len); +} + static inline void m_free(IMalloc *imalloc, void *mem) { if (imalloc) @@ -60,6 +68,8 @@ XmlEncoding_Unknown } xml_encoding; -xml_encoding parse_encoding_name(const WCHAR *name, int len) DECLSPEC_HIDDEN; +xml_encoding parse_encoding_name(const WCHAR*,int) DECLSPEC_HIDDEN; +HRESULT get_code_page(xml_encoding,UINT*) DECLSPEC_HIDDEN; +const WCHAR *get_encoding_name(xml_encoding) DECLSPEC_HIDDEN; #endif /* __XMLLITE_PRIVATE__ */ diff -Nru wine1.7-1.7.18/include/atlcom.h wine1.7-1.7.19/include/atlcom.h --- wine1.7-1.7.18/include/atlcom.h 1970-01-01 00:00:00.000000000 +0000 +++ wine1.7-1.7.19/include/atlcom.h 2014-05-16 19:06:48.000000000 +0000 @@ -0,0 +1,50 @@ +/* + * Copyright 2014 Qian Hong for CodeWeavers + * + * 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 + */ + +#ifndef __WINE_ATLCOM_H__ +#define __WINE_ATLCOM_H__ + +#ifndef __WINE_ATLBASE_H__ +# error You must include atlbase.h to use this header +#endif + +typedef struct ATL_PROPMAP_ENTRY +{ + LPCOLESTR szDesc; +#if _ATL_VER < _ATL_VER_100 + DISPID dispid; + const CLSID *pclsidPropPage; + const IID *piidDispatch; +#else + const CLSID *pclsidPropPage; + const IID *piidDispatch; + void *rgclsidAllowed; + DWORD cclsidAllowed; + DISPID dispid; +#endif + DWORD dwOffsetData; + DWORD dwSizeData; + VARTYPE vt; +} ATL_PROPMAP_ENTRY; + +HRESULT WINAPI AtlIPersistStreamInit_Load(IStream*, ATL_PROPMAP_ENTRY*, void*, IUnknown*); +HRESULT WINAPI AtlIPersistStreamInit_Save(IStream*, BOOL, ATL_PROPMAP_ENTRY*, void*, IUnknown*); +HRESULT WINAPI AtlIPersistPropertyBag_Load(IPropertyBag*, IErrorLog*, ATL_PROPMAP_ENTRY*, void*, IUnknown*); +HRESULT WINAPI AtlIPersistPropertyBag_Save(IPropertyBag*, BOOL, BOOL, ATL_PROPMAP_ENTRY*, void*, IUnknown*); + +#endif /* __WINE_ATLCOM_H__ */ diff -Nru wine1.7-1.7.18/include/d2d1.idl wine1.7-1.7.19/include/d2d1.idl --- wine1.7-1.7.18/include/d2d1.idl 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/include/d2d1.idl 2014-05-16 19:06:48.000000000 +0000 @@ -17,9 +17,47 @@ */ import "unknwn.idl"; +import "dcommon.h"; import "d2dbasetypes.h"; +import "d3d10_1.idl"; + +cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") +cpp_quote("#undef DrawText") +cpp_quote("#endif") + +interface ID2D1Factory; +interface ID2D1RenderTarget; +interface ID2D1BitmapRenderTarget; +interface ID2D1Geometry; +interface ID2D1Brush; +interface IDWriteRenderingParams; +interface IDWriteTextFormat; +interface IDWriteTextLayout; +interface IWICBitmapSource; + +typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN; typedef D2D_POINT_2F D2D1_POINT_2F; +typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F; +typedef D2D_RECT_F D2D1_RECT_F; +typedef D2D_SIZE_F D2D1_SIZE_F; +typedef UINT64 D2D1_TAG; +typedef D2D_SIZE_U D2D1_SIZE_U; +typedef D2D_POINT_2U D2D1_POINT_2U; +typedef D2D_RECT_U D2D1_RECT_U; +typedef D2D_COLOR_F D2D1_COLOR_F; + +enum +{ + D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR = 0, + D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR = 1, + D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC = 2, + D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR = 3, + D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC = 4, + D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC = 5, + D2D1_INTERPOLATION_MODE_DEFINITION_FANT = 6, + D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR = 7, +}; typedef enum D2D1_DEBUG_LEVEL { @@ -59,13 +97,6 @@ D2D1_FIGURE_BEGIN_FORCE_DWORD = 0xffffffff } D2D1_FIGURE_BEGIN; -typedef struct D2D1_BEZIER_SEGMENT -{ - D2D1_POINT_2F point1; - D2D1_POINT_2F point2; - D2D1_POINT_2F point3; -} D2D1_BEZIER_SEGMENT; - typedef enum D2D1_FIGURE_END { D2D1_FIGURE_END_OPEN = 0, @@ -73,11 +104,318 @@ D2D1_FIGURE_END_FORCE_DWORD = 0xffffffff } D2D1_FIGURE_END; +typedef enum D2D1_CAP_STYLE +{ + D2D1_CAP_STYLE_FLAT = 0, + D2D1_CAP_STYLE_SQUARE = 1, + D2D1_CAP_STYLE_ROUND = 2, + D2D1_CAP_STYLE_TRIANGLE = 3, + D2D1_CAP_STYLE_FORCE_DWORD = 0xffffffff, +} D2D1_CAP_STYLE; + +typedef enum D2D1_LINE_JOIN +{ + D2D1_LINE_JOIN_MITER = 0, + D2D1_LINE_JOIN_BEVEL = 1, + D2D1_LINE_JOIN_ROUND = 2, + D2D1_LINE_JOIN_MITER_OR_BEVEL = 3, + D2D1_LINE_JOIN_FORCE_DWORD = 0xffffffff, +} D2D1_LINE_JOIN; + +typedef enum D2D1_DASH_STYLE +{ + D2D1_DASH_STYLE_SOLID = 0, + D2D1_DASH_STYLE_DASH = 1, + D2D1_DASH_STYLE_DOT = 2, + D2D1_DASH_STYLE_DASH_DOT = 3, + D2D1_DASH_STYLE_DASH_DOT_DOT = 4, + D2D1_DASH_STYLE_CUSTOM = 5, + D2D1_DASH_STYLE_FORCE_DWORD = 0xffffffff, +} D2D1_DASH_STYLE; + +typedef enum D2D1_GEOMETRY_RELATION +{ + D2D1_GEOMETRY_RELATION_UNKNOWN = 0, + D2D1_GEOMETRY_RELATION_DISJOINT = 1, + D2D1_GEOMETRY_RELATION_IS_CONTAINED = 2, + D2D1_GEOMETRY_RELATION_CONTAINS = 3, + D2D1_GEOMETRY_RELATION_OVERLAP = 4, + D2D1_GEOMETRY_RELATION_FORCE_DWORD = 0xffffffff, +} D2D1_GEOMETRY_RELATION; + +typedef enum D2D1_GEOMETRY_SIMPLIFICATION_OPTION +{ + D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES = 0, + D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES = 1, + D2D1_GEOMETRY_SIMPLIFICATION_OPTION_FORCE_DWORD = 0xffffffff, +} D2D1_GEOMETRY_SIMPLIFICATION_OPTION; + +typedef enum D2D1_COMBINE_MODE +{ + D2D1_COMBINE_MODE_UNION = 0, + D2D1_COMBINE_MODE_INTERSECT = 1, + D2D1_COMBINE_MODE_XOR = 2, + D2D1_COMBINE_MODE_EXCLUDE = 3, + D2D1_COMBINE_MODE_FORCE_DWORD = 0xffffffff, +} D2D1_COMBINE_MODE; + +typedef enum D2D1_SWEEP_DIRECTION +{ + D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE = 0, + D2D1_SWEEP_DIRECTION_CLOCKWISE = 1, + D2D1_SWEEP_DIRECTION_FORCE_DWORD = 0xffffffff, +} D2D1_SWEEP_DIRECTION; + +typedef enum D2D1_ARC_SIZE +{ + D2D1_ARC_SIZE_SMALL = 0, + D2D1_ARC_SIZE_LARGE = 1, + D2D1_ARC_SIZE_FORCE_DWORD = 0xffffffff, +} D2D1_ARC_SIZE; + +typedef enum D2D1_ANTIALIAS_MODE +{ + D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0, + D2D1_ANTIALIAS_MODE_ALIASED = 1, + D2D1_ANTIALIAS_MODE_FORCE_DWORD = 0xffffffff, +} D2D1_ANTIALIAS_MODE; + +typedef enum D2D1_TEXT_ANTIALIAS_MODE +{ + D2D1_TEXT_ANTIALIAS_MODE_DEFAULT = 0, + D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE = 1, + D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE = 2, + D2D1_TEXT_ANTIALIAS_MODE_ALIASED = 3, + D2D1_TEXT_ANTIALIAS_MODE_FORCE_DWORD = 0xffffffff, +} D2D1_TEXT_ANTIALIAS_MODE; + +typedef enum D2D1_EXTEND_MODE +{ + D2D1_EXTEND_MODE_CLAMP = 0, + D2D1_EXTEND_MODE_WRAP = 1, + D2D1_EXTEND_MODE_MIRROR = 2, + D2D1_EXTEND_MODE_FORCE_DWORD = 0xffffffff, +} D2D1_EXTEND_MODE; + +typedef enum D2D1_BITMAP_INTERPOLATION_MODE +{ + D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR, + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR, + D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff, +} D2D1_BITMAP_INTERPOLATION_MODE; + +typedef enum D2D1_GAMMA +{ + D2D1_GAMMA_2_2 = 0, + D2D1_GAMMA_1_0 = 1, + D2D1_GAMMA_FORCE_DWORD = 0xffffffff, +} D2D1_GAMMA; + +typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS +{ + D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000, + D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001, + D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD = 0xffffffff, +} D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS; + +typedef enum D2D1_OPACITY_MASK_CONTENT +{ + D2D1_OPACITY_MASK_CONTENT_GRAPHICS = 0, + D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL = 1, + D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE = 2, + D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD = 0xffffffff, +} D2D1_OPACITY_MASK_CONTENT; + +typedef enum D2D1_DRAW_TEXT_OPTIONS +{ + D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001, + D2D1_DRAW_TEXT_OPTIONS_CLIP = 0x00000002, + D2D1_DRAW_TEXT_OPTIONS_NONE = 0x00000000, + D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD = 0xffffffff, +} D2D1_DRAW_TEXT_OPTIONS; + +typedef enum D2D1_LAYER_OPTIONS +{ + D2D1_LAYER_OPTIONS_NONE = 0x00000000, + D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE = 0x00000001, + D2D1_LAYER_OPTIONS_FORCE_DWORD = 0xffffffff, +} D2D1_LAYER_OPTIONS; + +typedef enum D2D1_RENDER_TARGET_TYPE +{ + D2D1_RENDER_TARGET_TYPE_DEFAULT = 0, + D2D1_RENDER_TARGET_TYPE_SOFTWARE = 1, + D2D1_RENDER_TARGET_TYPE_HARDWARE = 2, + D2D1_RENDER_TARGET_TYPE_FORCE_DWORD = 0xffffffff, +} D2D1_RENDER_TARGET_TYPE; + +typedef enum D2D1_RENDER_TARGET_USAGE +{ + D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000, + D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001, + D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002, + D2D1_RENDER_TARGET_USAGE_FORCE_DWORD = 0xffffffff, +} D2D1_RENDER_TARGET_USAGE; + +typedef enum D2D1_FEATURE_LEVEL +{ + D2D1_FEATURE_LEVEL_DEFAULT = 0, + D2D1_FEATURE_LEVEL_9 = D3D_FEATURE_LEVEL_9_1, + D2D1_FEATURE_LEVEL_10 = D3D_FEATURE_LEVEL_10_0, + D2D1_FEATURE_LEVEL_FORCE_DWORD = 0xffffffff, +} D2D1_FEATURE_LEVEL; + +typedef struct D2D1_BEZIER_SEGMENT +{ + D2D1_POINT_2F point1; + D2D1_POINT_2F point2; + D2D1_POINT_2F point3; +} D2D1_BEZIER_SEGMENT; + typedef struct D2D1_FACTORY_OPTIONS { D2D1_DEBUG_LEVEL debugLevel; } D2D1_FACTORY_OPTIONS; +typedef struct D2D1_TRIANGLE +{ + D2D1_POINT_2F point1; + D2D1_POINT_2F point2; + D2D1_POINT_2F point3; +} D2D1_TRIANGLE; + +typedef struct D2D1_ROUNDED_RECT +{ + D2D1_RECT_F rect; + float radiusX; + float radiusY; +} D2D1_ROUNDED_RECT; + +typedef struct D2D1_ELLIPSE +{ + D2D1_POINT_2F point; + float radiusX; + float radiusY; +} D2D1_ELLIPSE; + +typedef struct D2D1_QUADRATIC_BEZIER_SEGMENT +{ + D2D1_POINT_2F point1; + D2D1_POINT_2F point2; +} D2D1_QUADRATIC_BEZIER_SEGMENT; + +typedef struct D2D1_ARC_SEGMENT +{ + D2D1_POINT_2F point; + D2D1_SIZE_F size; + float rotationAngle; + D2D1_SWEEP_DIRECTION sweepDirection; + D2D1_ARC_SIZE arcSize; +} D2D1_ARC_SEGMENT; + +typedef struct D2D1_DRAWING_STATE_DESCRIPTION +{ + D2D1_ANTIALIAS_MODE antialiasMode; + D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode; + D2D1_TAG tag1; + D2D1_TAG tag2; + D2D1_MATRIX_3X2_F transform; +} D2D1_DRAWING_STATE_DESCRIPTION; + +typedef struct D2D1_GRADIENT_STOP +{ + float position; + D2D1_COLOR_F color; +} D2D1_GRADIENT_STOP; + +typedef struct D2D1_BITMAP_PROPERTIES +{ + D2D1_PIXEL_FORMAT pixelFormat; + float dpiX; + float dpiY; +} D2D1_BITMAP_PROPERTIES; + +typedef struct D2D1_BITMAP_BRUSH_PROPERTIES +{ + D2D1_EXTEND_MODE extendModeX; + D2D1_EXTEND_MODE extendModeY; + D2D1_BITMAP_INTERPOLATION_MODE interpolationMode; +} D2D1_BITMAP_BRUSH_PROPERTIES; + +typedef struct D2D1_BRUSH_PROPERTIES +{ + float opacity; + D2D1_MATRIX_3X2_F transform; +} D2D1_BRUSH_PROPERTIES; + +typedef struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES +{ + D2D1_POINT_2F startPoint; + D2D1_POINT_2F endPoint; +} D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES; + +typedef struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES +{ + D2D1_POINT_2F center; + D2D1_POINT_2F gradientOriginOffset; + float radiusX; + float radiusY; +} D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES; + +typedef struct D2D1_LAYER_PARAMETERS +{ + D2D1_RECT_F contentBounds; + ID2D1Geometry *geometricMask; + D2D1_ANTIALIAS_MODE maskAntialiasMode; + D2D1_MATRIX_3X2_F maskTransform; + float opacity; + ID2D1Brush *opacityBrush; + D2D1_LAYER_OPTIONS layerOptions; +} D2D1_LAYER_PARAMETERS; + +typedef struct D2D1_RENDER_TARGET_PROPERTIES +{ + D2D1_RENDER_TARGET_TYPE type; + D2D1_PIXEL_FORMAT pixelFormat; + float dpiX; + float dpiY; + D2D1_RENDER_TARGET_USAGE usage; + D2D1_FEATURE_LEVEL minLevel; +} D2D1_RENDER_TARGET_PROPERTIES; + +[ + local, + object, + uuid(2cd90691-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1Resource : IUnknown +{ + void GetFactory( + [out] ID2D1Factory **factory + ); +} + +[ + local, + object, + uuid(2cd9069d-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1StrokeStyle : ID2D1Resource +{ + D2D1_CAP_STYLE GetStartCap(); + D2D1_CAP_STYLE GetEndCap(); + D2D1_CAP_STYLE GetDashCap(); + float GetMiterLimit(); + D2D1_LINE_JOIN GetLineJoin(); + float GetDashOffset(); + D2D1_DASH_STYLE GetDashStyle(); + UINT32 GetDashesCount(); + void GetDashes( + [out, size_is(count)] float *dashes, + [in] UINT32 count + ); +} + [ local, object, @@ -94,5 +432,665 @@ HRESULT Close(); } +[ + local, + object, + uuid(2cd906c1-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1TessellationSink : IUnknown +{ + void AddTriangles( + [in, size_is(count)] const D2D1_TRIANGLE *triangles, + [in] UINT32 count + ); + HRESULT Close(); +} + +[ + local, + object, + uuid(2cd906a1-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1Geometry : ID2D1Resource +{ + HRESULT GetBounds( + [in] const D2D1_MATRIX_3X2_F *transform, + [out] D2D1_RECT_F *bounds + ); + HRESULT GetWidenedBounds( + [in] float stroke_width, + [in] ID2D1StrokeStyle *stroke_style, + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [out] D2D1_RECT_F *bounds + ); + HRESULT StrokeContainsPoint( + [in] D2D1_POINT_2F point, + [in] float stroke_width, + [in] ID2D1StrokeStyle *stroke_style, + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [out] BOOL *contains + ); + HRESULT FillContainsPoint( + [in] D2D1_POINT_2F point, + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [out] BOOL *contains + ); + HRESULT CompareWithGeometry( + [in] ID2D1Geometry *geometry, + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [out] D2D1_GEOMETRY_RELATION *relation + ); + HRESULT Simplify( + [in] D2D1_GEOMETRY_SIMPLIFICATION_OPTION option, + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [in] ID2D1SimplifiedGeometrySink *sink + ); + HRESULT Tessellate( + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [in] ID2D1TessellationSink *sink + ); + HRESULT CombineWithGeometry( + [in] ID2D1Geometry *geometry, + [in] D2D1_COMBINE_MODE combine_mode, + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [in] ID2D1SimplifiedGeometrySink *sink + ); + HRESULT Outline( + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [in] ID2D1SimplifiedGeometrySink *sink + ); + HRESULT ComputeArea( + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [out] float *area + ); + HRESULT ComputeLength( + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [out] float *length + ); + HRESULT ComputePointAtLength( + [in] float length, + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [out] D2D1_POINT_2F *point, + [out] D2D1_POINT_2F *tangent + ); + HRESULT Widen( + [in] float stroke_width, + [in] ID2D1StrokeStyle *stroke_style, + [in] const D2D1_MATRIX_3X2_F *transform, + [in] float tolerance, + [in] ID2D1SimplifiedGeometrySink *sink + ); +} + +[ + local, + object, + uuid(2cd906a2-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1RectangleGeometry : ID2D1Geometry +{ + void GetRect( + [out] D2D1_RECT_F *rect + ); +} + +[ + local, + object, + uuid(2cd906a3-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1RoundedRectangleGeometry : ID2D1Geometry +{ + void GetRoundedRect( + [out] D2D1_ROUNDED_RECT *rect + ); +} + +[ + local, + object, + uuid(2cd906a4-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1EllipseGeometry : ID2D1Geometry +{ + void GetEllipse( + [out] D2D1_ELLIPSE *ellipse + ); +} + +[ + local, + object, + uuid(2cd906a6-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1GeometryGroup : ID2D1Geometry +{ + D2D1_FILL_MODE GetFillMode(); + UINT32 GetSourceGeometryCount(); + void GetSourceGeometries( + [out, size_is(geometry_count)] ID2D1Geometry **geometry, + [in] UINT32 geometry_count + ); +} + +[ + local, + object, + uuid(2cd906bb-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1TransformedGeometry : ID2D1Geometry +{ + void GetSourceGeometry( + [out] ID2D1Geometry **geometry + ); + void GetTransform( + [out] D2D1_MATRIX_3X2_F *transform + ); +} + +[ + local, + object, + uuid(2cd9069f-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1GeometrySink : ID2D1SimplifiedGeometrySink +{ + void AddLine( + [in] D2D1_POINT_2F point + ); + void AddBezier( + [in] const D2D1_BEZIER_SEGMENT *bezier + ); + void AddQuadraticBezier( + [in] const D2D1_QUADRATIC_BEZIER_SEGMENT *bezier + ); + void AddQuadraticBeziers( + [in, size_is(bezier_count)] const D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, + [in] UINT32 bezier_count + ); + void AddArc( + [in] const D2D1_ARC_SEGMENT *arc + ); +} + +[ + local, + object, + uuid(2cd906a5-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1PathGeometry : ID2D1Geometry +{ + HRESULT Open( + [out] ID2D1GeometrySink **sink + ); + HRESULT Stream( + [in] ID2D1GeometrySink *sink + ); + HRESULT GetSegmentCount( + [out] UINT32 *count + ); + HRESULT GetFigureCount( + [out] UINT32 *count + ); +} + +[ + local, + object, + uuid(28506e39-ebf6-46a1-bb47-fd85565ab957) +] +interface ID2D1DrawingStateBlock : ID2D1Resource +{ + void GetDescription( + [out] D2D1_DRAWING_STATE_DESCRIPTION *desc + ); + void SetDescription( + [in] const D2D1_DRAWING_STATE_DESCRIPTION *desc + ); + void SetTextRenderingParams( + [in] IDWriteRenderingParams *text_rendering_params + ); + void GetTextRenderingParams( + [out] IDWriteRenderingParams **text_rendering_params + ); +} + +[ + local, + object, + uuid(65019f75-8da2-497c-b32c-dfa34e48ede6) +] +interface ID2D1Image : ID2D1Resource +{ +} + +[ + local, + object, + uuid(a2296057-ea42-4099-983b-539fb6505426) +] +interface ID2D1Bitmap : ID2D1Image +{ + D2D1_SIZE_F GetSize(); + D2D1_SIZE_U GetPixelSize(); + D2D1_PIXEL_FORMAT GetPixelFormat(); + void GetDpi( + [out] float *dpi_x, + [out] float *dpi_y + ); + HRESULT CopyFromBitmap( + [in] const D2D1_POINT_2U *dst_point, + [in] ID2D1Bitmap *bitmap, + [in] const D2D1_RECT_U *src_rect + ); + HRESULT CopyFromRenderTarget( + [in] const D2D1_POINT_2U *dst_point, + [in] ID2D1RenderTarget *render_target, + [in] const D2D1_RECT_U *src_rect + ); + HRESULT CopyFromMemory( + [in] const D2D1_RECT_U *dst_rect, + [in] const void *src_data, + [in] UINT32 pitch + ); +} + +[ + local, + object, + uuid(2cd906a8-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1Brush : ID2D1Resource +{ + void SetOpacity( + [in] float opacity + ); + void SetTransform( + [in] const D2D1_MATRIX_3X2_F *transform + ); + float GetOpacity(); + void GetTransform( + [out] D2D1_MATRIX_3X2_F *transform + ); +} + +[ + local, + object, + uuid(2cd906aa-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1BitmapBrush : ID2D1Brush +{ + void SetExtendModeX( + [in] D2D1_EXTEND_MODE mode + ); + void SetExtendModeY( + [in] D2D1_EXTEND_MODE mode + ); + void SetInterpolationMode( + [in] D2D1_BITMAP_INTERPOLATION_MODE mode + ); + void SetBitmap( + [in] ID2D1Bitmap *bitmap + ); + D2D1_EXTEND_MODE GetExtendModeX(); + D2D1_EXTEND_MODE GetExtendModeY(); + D2D1_BITMAP_INTERPOLATION_MODE GetInterpolationMode(); + void GetBitmap( + [out] ID2D1Bitmap **bitmap + ); +} + +[ + local, + object, + uuid(2cd906a9-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1SolidColorBrush : ID2D1Brush +{ + void SetColor( + [in] const D2D1_COLOR_F *color + ); + D2D1_COLOR_F GetColor(); +} + +[ + local, + object, + uuid(2cd906a7-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1GradientStopCollection : ID2D1Resource +{ + UINT32 GetGradientStopCount(); + void GetGradientStops( + [out] D2D1_GRADIENT_STOP *stops, + [in] UINT32 stop_count + ); + D2D1_GAMMA GetColorInterpolationGamma(); + D2D1_EXTEND_MODE GetExtendMode(); +} + +[ + local, + object, + uuid(2cd906ab-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1LinearGradientBrush : ID2D1Brush +{ + void SetStartPoint( + [in] D2D1_POINT_2F start_point + ); + void SetEndPoint( + [in] D2D1_POINT_2F end_point + ); + D2D1_POINT_2F GetStartPoint(); + D2D1_POINT_2F GetEndPoint(); + void GetGradientStopCollection( + [out] ID2D1GradientStopCollection **gradient + ); +} + +[ + local, + object, + uuid(2cd906ac-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1RadialGradientBrush : ID2D1Brush +{ + void SetCenter( + [in] D2D1_POINT_2F center + ); + void SetGradientOriginOffset( + [in] D2D1_POINT_2F offset + ); + void SetRadiusX( + [in] float radius + ); + void SetRadiusY( + [in] float radius + ); + D2D1_POINT_2F GetCenter(); + D2D1_POINT_2F GetGradientOriginOffset(); + float GetRadiusX(); + float GetRadiusY(); + void GetGradientStopCollection( + [out] ID2D1GradientStopCollection **gradient + ); +} + +[ + local, + object, + uuid(2cd9069b-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1Layer : ID2D1Resource +{ + D2D1_SIZE_F GetSize(); +} + +[ + local, + object, + uuid(2cd906c2-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1Mesh : ID2D1Resource +{ + HRESULT Open( + [out] ID2D1TessellationSink **sink + ); +} + +[ + local, + object, + uuid(2cd90694-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1RenderTarget : ID2D1Resource +{ + HRESULT CreateBitmap( + [in] D2D1_SIZE_U size, + [in] const void *src_data, + [in] UINT32 pitch, + [in] const D2D1_BITMAP_PROPERTIES *desc, + [out] ID2D1Bitmap **bitmap + ); + HRESULT CreateBitmapFromWicBitmap( + [in] IWICBitmapSource *bitmap_source, + [in] const D2D1_BITMAP_PROPERTIES *desc, + [out] ID2D1Bitmap **bitmap + ); + HRESULT CreateSharedBitmap( + [in] REFIID iid, + [in, out] void *data, + [in] const D2D1_BITMAP_PROPERTIES *desc, + [out] ID2D1Bitmap **bitmap + ); + HRESULT CreateBitmapBrush( + [in] ID2D1Bitmap *bitmap, + [in] const D2D1_BITMAP_BRUSH_PROPERTIES *bitmap_brush_desc, + [in] const D2D1_BRUSH_PROPERTIES *brush_desc, + [out] ID2D1BitmapBrush **brush + ); + HRESULT CreateSolidColorBrush( + [in] const D2D1_COLOR_F *color, + [in] const D2D1_BRUSH_PROPERTIES *desc, + [out] ID2D1SolidColorBrush **brush + ); + HRESULT CreateGradientStopCollection( + [in, size_is(stop_count)] const D2D1_GRADIENT_STOP *stops, + [in] UINT32 stop_count, + [in] D2D1_GAMMA gamma, + [in] D2D1_EXTEND_MODE extend_mode, + [out] ID2D1GradientStopCollection **gradient + ); + HRESULT CreateLinearGradientBrush( + [in] const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *gradient_brush_desc, + [in] const D2D1_BRUSH_PROPERTIES *brush_desc, + [in] ID2D1GradientStopCollection *gradient, + [out] ID2D1LinearGradientBrush **brush + ); + HRESULT CreateRadialGradientBrush( + [in] const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *gradient_brush_desc, + [in] const D2D1_BRUSH_PROPERTIES *brush_desc, + [in] ID2D1GradientStopCollection *gradient, + [out] ID2D1RadialGradientBrush **brush + ); + HRESULT CreateCompatibleRenderTarget( + [in] const D2D1_SIZE_F *size, + [in] const D2D1_SIZE_U *pixel_size, + [in] const D2D1_PIXEL_FORMAT *format, + [in] D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, + [out] ID2D1BitmapRenderTarget **render_target + ); + HRESULT CreateLayer( + [in] const D2D1_SIZE_F *size, + [out] ID2D1Layer **layer + ); + HRESULT CreateMesh( + [out] ID2D1Mesh **mesh + ); + void DrawLine( + [in] D2D1_POINT_2F p0, + [in] D2D1_POINT_2F p1, + [in] ID2D1Brush *brush, + [in] float stroke_width, + [in] ID2D1StrokeStyle *stroke_style + ); + void DrawRectangle( + [in] const D2D1_RECT_F *rect, + [in] ID2D1Brush *brush, + [in] float stroke_width, + [in] ID2D1StrokeStyle *stroke_style + ); + void FillRectangle( + [in] const D2D1_RECT_F *rect, + [in] ID2D1Brush *brush + ); + void DrawRoundedRectangle( + [in] const D2D1_ROUNDED_RECT *rect, + [in] ID2D1Brush *brush, + [in] float stroke_width, + [in] ID2D1StrokeStyle *stroke_style + ); + void FillRoundedRectangle( + [in] const D2D1_ROUNDED_RECT *rect, + [in] ID2D1Brush *brush + ); + void DrawEllipse( + [in] const D2D1_ELLIPSE *ellipse, + [in] ID2D1Brush *brush, + [in] float stroke_width, + [in] ID2D1StrokeStyle *stroke_style + ); + void FillEllipse( + [in] const D2D1_ELLIPSE *ellipse, + [in] ID2D1Brush *brush + ); + void DrawGeometry( + [in] ID2D1Geometry *geometry, + [in] ID2D1Brush *brush, + [in] float stroke_width, + [in] ID2D1StrokeStyle *stroke_style + ); + void FillGeometry( + [in] ID2D1Geometry *geometry, + [in] ID2D1Brush *brush, + [in] ID2D1Brush *opacity_brush + ); + void FillMesh( + [in] ID2D1Mesh *mesh, + [in] ID2D1Brush *brush + ); + void FillOpacityMask( + [in] ID2D1Bitmap *mask, + [in] ID2D1Brush *brush, + [in] D2D1_OPACITY_MASK_CONTENT content, + [in] const D2D1_RECT_F *dst_rect, + [in] const D2D1_RECT_F *src_rect + ); + void DrawBitmap( + [in] ID2D1Bitmap *bitmap, + [in] const D2D1_RECT_F *dst_rect, + [in] float opacity, + [in] D2D1_BITMAP_INTERPOLATION_MODE interpolation_mode, + [in] const D2D1_RECT_F *src_rect + ); + void DrawText( + [in, size_is(string_len)] const WCHAR *string, + [in] UINT32 string_len, + [in] IDWriteTextFormat *text_format, + [in] const D2D1_RECT_F *layout_rect, + [in] ID2D1Brush *brush, + [in] D2D1_DRAW_TEXT_OPTIONS options, + [in] DWRITE_MEASURING_MODE measuring_mode + ); + void DrawTextLayout( + [in] D2D1_POINT_2F origin, + [in] IDWriteTextLayout *layout, + [in] ID2D1Brush *brush, + [in] D2D1_DRAW_TEXT_OPTIONS options + ); + void DrawGlyphRun( + [in] D2D1_POINT_2F baseline_origin, + [in] const DWRITE_GLYPH_RUN *glyph_run, + [in] ID2D1Brush *brush, + [in] DWRITE_MEASURING_MODE measuring_mode + ); + void SetTransform( + [in] const D2D1_MATRIX_3X2_F *transform + ); + void GetTransform( + [out] D2D1_MATRIX_3X2_F *transform + ); + void SetAntialiasMode( + [in] D2D1_ANTIALIAS_MODE antialias_mode + ); + D2D1_ANTIALIAS_MODE GetAntialiasMode(); + void SetTextAntialiasMode( + [in] D2D1_TEXT_ANTIALIAS_MODE antialias_mode + ); + D2D1_TEXT_ANTIALIAS_MODE GetTextAntialiasMode(); + void SetTextRenderingParams( + [in] IDWriteRenderingParams *text_rendering_params + ); + void GetTextRenderingParams( + [out] IDWriteRenderingParams **text_rendering_params + ); + void SetTags( + [in] D2D1_TAG tag1, + [in] D2D1_TAG tag2 + ); + void GetTags( + [out] D2D1_TAG *tag1, + [out] D2D1_TAG *tag2 + ); + void PushLayer( + [in] const D2D1_LAYER_PARAMETERS *layer_parameters, + [in] ID2D1Layer *layer + ); + void PopLayer(); + HRESULT Flush( + [out] D2D1_TAG *tag1, + [out] D2D1_TAG *tag2 + ); + void SaveDrawingState( + [in, out] ID2D1DrawingStateBlock *state_block + ); + void RestoreDrawingState( + [in] ID2D1DrawingStateBlock *state_block + ); + void PushAxisAlignedClip( + [in] const D2D1_RECT_F *clip_rect, + [in] D2D1_ANTIALIAS_MODE antialias_mode + ); + void PopAxisAlignedClip(); + void Clear( + [in] const D2D1_COLOR_F *color + ); + void BeginDraw(); + HRESULT EndDraw( + [out] D2D1_TAG *tag1, + [out] D2D1_TAG *tag2 + ); + D2D1_PIXEL_FORMAT GetPixelFormat(); + void SetDpi( + [in] float dpi_x, + [in] float dpi_y + ); + void GetDpi( + [out] float *dpi_x, + [out] float *dpi_y + ); + D2D1_SIZE_F GetSize(); + D2D1_SIZE_U GetPixelSize(); + UINT32 GetMaximumBitmapSize(); + BOOL IsSupported( + [in] const D2D1_RENDER_TARGET_PROPERTIES *desc + ); +} + +[ + local, + object, + uuid(2cd90695-12e2-11dc-9fed-001143a055f9) +] +interface ID2D1BitmapRenderTarget : ID2D1RenderTarget +{ + HRESULT GetBitmap( + [out] ID2D1Bitmap **bitmap + ); +} + [local] HRESULT __stdcall D2D1CreateFactory(D2D1_FACTORY_TYPE factory_type, REFIID iid, const D2D1_FACTORY_OPTIONS *factory_options, void **factory); diff -Nru wine1.7-1.7.18/include/d2dbasetypes.h wine1.7-1.7.19/include/d2dbasetypes.h --- wine1.7-1.7.18/include/d2dbasetypes.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/include/d2dbasetypes.h 2014-05-16 19:06:48.000000000 +0000 @@ -16,8 +16,65 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#ifndef D3DCOLORVALUE_DEFINED +typedef struct D3DCOLORVALUE +{ + float r; + float g; + float b; + float a; +} D3DCOLORVALUE; +#define D3DCOLORVALUE_DEFINED +#endif + +typedef D3DCOLORVALUE D2D_COLOR_F; + typedef struct D2D_POINT_2F { FLOAT x; FLOAT y; } D2D_POINT_2F; + +typedef struct D2D_MATRIX_3X2_F +{ + float _11; + float _12; + float _21; + float _22; + float _31; + float _32; +} D2D_MATRIX_3X2_F; + +typedef struct D2D_RECT_F +{ + float left; + float top; + float right; + float bottom; +} D2D_RECT_F; + +typedef struct D2D_SIZE_F +{ + float width; + float height; +} D2D_SIZE_F; + +typedef struct D2D_SIZE_U +{ + UINT32 width; + UINT32 height; +} D2D_SIZE_U; + +typedef struct D2D_POINT_2U +{ + UINT32 x; + UINT32 y; +} D2D_POINT_2U; + +typedef struct D2D_RECT_U +{ + UINT32 left; + UINT32 top; + UINT32 right; + UINT32 bottom; +} D2D_RECT_U; diff -Nru wine1.7-1.7.18/include/dcommon.h wine1.7-1.7.19/include/dcommon.h --- wine1.7-1.7.18/include/dcommon.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/include/dcommon.h 2014-05-16 19:06:48.000000000 +0000 @@ -19,6 +19,8 @@ #ifndef __WINE_DCOMMON_H #define __WINE_DCOMMON_H +#include "dxgiformat.h" + typedef enum DWRITE_MEASURING_MODE { DWRITE_MEASURING_MODE_NATURAL, @@ -26,4 +28,19 @@ DWRITE_MEASURING_MODE_GDI_NATURAL } DWRITE_MEASURING_MODE; +typedef enum D2D1_ALPHA_MODE +{ + D2D1_ALPHA_MODE_UNKNOWN = 0, + D2D1_ALPHA_MODE_PREMULTIPLIED = 1, + D2D1_ALPHA_MODE_STRAIGHT = 2, + D2D1_ALPHA_MODE_IGNORE = 3, + D2D1_ALPHA_MODE_FORCE_DWORD = 0xffffffff, +} D2D1_ALPHA_MODE; + +typedef struct D2D1_PIXEL_FORMAT +{ + DXGI_FORMAT format; + D2D1_ALPHA_MODE alphaMode; +} D2D1_PIXEL_FORMAT; + #endif /* __WINE_DCOMMON_H */ diff -Nru wine1.7-1.7.18/include/ksuuids.h wine1.7-1.7.19/include/ksuuids.h --- wine1.7-1.7.18/include/ksuuids.h 1970-01-01 00:00:00.000000000 +0000 +++ wine1.7-1.7.19/include/ksuuids.h 2014-05-16 19:06:48.000000000 +0000 @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2014 Alexandre Julliard + * + * 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 + */ + +OUR_GUID_ENTRY(AM_INTERFACESETID_Standard, 0x1a8766a0, 0x62ce, 0x11cf, 0xa5, 0xd6, 0x28, 0xdb, 0x04, 0xc1, 0x00, 0x00) +OUR_GUID_ENTRY(AM_KSCATEGORY_AUDIO, 0x6994ad04, 0x93ef, 0x11d0, 0xa3, 0xcc, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96) +OUR_GUID_ENTRY(AM_KSCATEGORY_CAPTURE, 0x65e8773d, 0x8f56, 0x11d0, 0xa3, 0xb9, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96) +OUR_GUID_ENTRY(AM_KSCATEGORY_CROSSBAR, 0xa799a801, 0xa46d, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0x24, 0x01, 0xdc, 0xd4) +OUR_GUID_ENTRY(AM_KSCATEGORY_DATACOMPRESSOR, 0x1e84c900, 0x7e70, 0x11d0, 0xa5, 0xd6, 0x28, 0xdb, 0x04, 0xc1, 0x00, 0x00) +OUR_GUID_ENTRY(AM_KSCATEGORY_RENDER, 0x65e8773e, 0x8f56, 0x11d0, 0xa3, 0xb9, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96) +OUR_GUID_ENTRY(AM_KSCATEGORY_SPLITTER, 0x0a4252a0, 0x7e70, 0x11d0, 0xa5, 0xd6, 0x28, 0xdb, 0x04, 0xc1, 0x00, 0x00) +OUR_GUID_ENTRY(AM_KSCATEGORY_TVAUDIO, 0xa799a802, 0xa46d, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0x24, 0x01, 0xdc, 0xd4) +OUR_GUID_ENTRY(AM_KSCATEGORY_TVTUNER, 0xa799a800, 0xa46d, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0x24, 0x01, 0xdc, 0xd4) +OUR_GUID_ENTRY(AM_KSCATEGORY_VBICODEC, 0x07dad660, 0x22f1, 0x11d1, 0xa9, 0xf4, 0x00, 0xc0, 0x4f, 0xbb, 0xde, 0x8f) +OUR_GUID_ENTRY(AM_KSCATEGORY_VBICODEC_MI, 0x9c24a977, 0x0951, 0x451a, 0x80, 0x06, 0x0e, 0x49, 0xbd, 0x28, 0xcd, 0x5f) +OUR_GUID_ENTRY(AM_KSCATEGORY_VIDEO, 0x6994ad05, 0x93ef, 0x11d0, 0xa3, 0xcc, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96) +OUR_GUID_ENTRY(AM_KSPROPSETID_AC3, 0xbfabe720, 0x6e1f, 0x11d0, 0xbc, 0xf2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00) +OUR_GUID_ENTRY(AM_KSPROPSETID_CopyProt, 0x0e8a0a40, 0x6aef, 0x11d0, 0x9e, 0xd0, 0x00, 0xa0, 0x24, 0xca, 0x19, 0xb3) +OUR_GUID_ENTRY(AM_KSPROPSETID_DVD_RateChange, 0x3577eb09, 0x9582, 0x477f, 0xb2, 0x9c, 0xb0, 0xc4, 0x52, 0xa4, 0xff, 0x9a) +OUR_GUID_ENTRY(AM_KSPROPSETID_DvdKaraoke, 0xae4720ae, 0xaa71, 0x42d8, 0xb8, 0x2a, 0xff, 0xfd, 0xf5, 0x8b, 0x76, 0xfd) +OUR_GUID_ENTRY(AM_KSPROPSETID_DvdSubPic, 0xac390460, 0x43af, 0x11d0, 0xbd, 0x6a, 0x00, 0x35, 0x05, 0xc1, 0x03, 0xa9) +OUR_GUID_ENTRY(AM_KSPROPSETID_FrameStep, 0xc830acbd, 0xab07, 0x492f, 0x88, 0x52, 0x45, 0xb6, 0x98, 0x7c, 0x29, 0x79) +OUR_GUID_ENTRY(AM_KSPROPSETID_MPEG4_MediaType_Attributes, 0xff6c4bfa, 0x07a9, 0x4c7b, 0xa2, 0x37, 0x67, 0x2f, 0x9d, 0x68, 0x06, 0x5f) +OUR_GUID_ENTRY(AM_KSPROPSETID_TSRateChange, 0xa503c5c0, 0x1d1d, 0x11d1, 0xad, 0x80, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00) +OUR_GUID_ENTRY(FORMAT_DVD_LPCMAudio, 0xe06d80e6, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(FORMAT_DolbyAC3, 0xe06d80e4, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(FORMAT_Image, 0x692fa379, 0xd3e8, 0x4651, 0xb5, 0xb4, 0x0b, 0x94, 0xb0, 0x13, 0xee, 0xaf) +OUR_GUID_ENTRY(FORMAT_JPEGImage, 0x692fa379, 0xd3e8, 0x4651, 0xb5, 0xb4, 0x0b, 0x94, 0xb0, 0x13, 0xee, 0xaf) +OUR_GUID_ENTRY(FORMAT_MPEG2Audio, 0xe06d80e5, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(FORMAT_MPEG2Video, 0xe06d80e3, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(FORMAT_MPEG2_VIDEO, 0xe06d80e3, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(FORMAT_UVCH264Video, 0x2017be05, 0x6629, 0x4248, 0xaa, 0xed, 0x7e, 0x1a, 0x47, 0xbc, 0x9b, 0x9c) +OUR_GUID_ENTRY(FORMAT_VIDEOINFO2, 0xf72a76a0, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(IID_IKsDataTypeHandler, 0x5ffbaa02, 0x49a3, 0x11d0, 0x9f, 0x36, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1) +OUR_GUID_ENTRY(IID_IKsInterfaceHandler, 0xd3abc7e0, 0x9a61, 0x11d0, 0xa4, 0x0d, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96) +OUR_GUID_ENTRY(IID_IKsPin, 0xb61178d1, 0xa2d9, 0x11cf, 0x9e, 0x53, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1) +OUR_GUID_ENTRY(IID_IKsPinFactory, 0xcd5ebe6b, 0x8b6e, 0x11d1, 0x8a, 0xe0, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96) +OUR_GUID_ENTRY(MEDIASUBTYPE_ATSC_SI, 0xb3c7397c, 0xd303, 0x414d, 0xb3, 0x3c, 0x4e, 0xd2, 0xc9, 0xd2, 0x97, 0x33) +OUR_GUID_ENTRY(MEDIASUBTYPE_DOLBY_AC3, 0xe06d802c, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_DTS, 0xe06d8033, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_DVB_SI, 0xe9dd31a3, 0x221d, 0x4adb, 0x85, 0x32, 0x9a, 0xf3, 0x09, 0xc1, 0xa4, 0x08) +OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_LPCM_AUDIO, 0xe06d8032, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_DSI, 0xe06d8030, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_PCI, 0xe06d802f, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_PROVIDER, 0xe06d8031, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_SUBPICTURE, 0xe06d802d, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_ISDB_SI, 0xe89ad298, 0x3601, 0x4b06, 0xaa, 0xec, 0x9d, 0xde, 0xed, 0xcc, 0x5b, 0xd0) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2DATA, 0xc892e55b, 0x252d, 0x42b5, 0xa3, 0x16, 0xd9, 0x97, 0xe7, 0xa5, 0xd9, 0x95) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_AUDIO, 0xe06d802b, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_PBDA_TRANSPORT_PROCESSED, 0xaf748dd4, 0x0d80, 0x11db, 0x97, 0x05, 0x00, 0x50, 0x56, 0xc0, 0x00, 0x08) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_PBDA_TRANSPORT_RAW, 0x0d7aed42, 0xcb9a, 0x11db, 0x97, 0x05, 0x00, 0x50, 0x56, 0xc0, 0x00, 0x08) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_PROGRAM, 0xe06d8022, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_TRANSPORT, 0xe06d8023, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_TRANSPORT_STRIDE, 0x138aa9a4, 0x1ee2, 0x4c5b, 0x98, 0x8e, 0x19, 0xab, 0xfd, 0xbc, 0x8a, 0x11) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_UDCR_TRANSPORT, 0x18bec4ea, 0x4676, 0x450e, 0xb4, 0x78, 0x0c, 0xd8, 0x4c, 0x54, 0xb3, 0x27) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_VERSIONED_TABLES, 0x1ed988b0, 0x3ffc, 0x4523, 0x87, 0x25, 0x34, 0x7b, 0xee, 0xc1, 0xa8, 0xa0) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_VIDEO, 0xe06d8026, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_WMDRM_TRANSPORT, 0x18bec4ea, 0x4676, 0x450e, 0xb4, 0x78, 0x0c, 0xd8, 0x4c, 0x54, 0xb3, 0x27) +OUR_GUID_ENTRY(MEDIASUBTYPE_SDDS, 0xe06d8034, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIASUBTYPE_TIF_SI, 0xec232eb2, 0xcb96, 0x4191, 0xb2, 0x26, 0x0e, 0xa1, 0x29, 0xf3, 0x82, 0x50) +OUR_GUID_ENTRY(MEDIATYPE_DVD_ENCRYPTED_PACK, 0xed0b916a, 0x044d, 0x11d1, 0xaa, 0x78, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x60) +OUR_GUID_ENTRY(MEDIATYPE_DVD_NAVIGATION, 0xe06d802e, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIATYPE_MPEG2_PACK, 0x36523b13, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a) +OUR_GUID_ENTRY(MEDIATYPE_MPEG2_PES, 0xe06d8020, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea) +OUR_GUID_ENTRY(MEDIATYPE_MPEG2_SECTIONS, 0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5) +/* FIXME: conflicts with devicetopology.h */ +/* OUR_GUID_ENTRY(IID_IKsControl, 0x28f54685, 0x06fd, 0x11d2, 0xb2, 0x7a, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96) */ diff -Nru wine1.7-1.7.18/include/Makefile.in wine1.7-1.7.19/include/Makefile.in --- wine1.7-1.7.18/include/Makefile.in 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/include/Makefile.in 2014-05-16 19:06:48.000000000 +0000 @@ -160,6 +160,7 @@ asynot.idl \ asysta.idl \ atlbase.h \ + atlcom.h \ atlwin.h \ audevcod.h \ audiosessiontypes.h \ @@ -361,6 +362,7 @@ ks.h \ ksguid.h \ ksmedia.h \ + ksuuids.h \ lm.h \ lmaccess.h \ lmapibuf.h \ diff -Nru wine1.7-1.7.18/include/oleacc.idl wine1.7-1.7.19/include/oleacc.idl --- wine1.7-1.7.18/include/oleacc.idl 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/include/oleacc.idl 2014-05-16 19:06:48.000000000 +0000 @@ -18,6 +18,7 @@ import "oaidl.idl"; +cpp_quote("#define NAVDIR_MIN 0") cpp_quote("#define NAVDIR_UP 1") cpp_quote("#define NAVDIR_DOWN 2") cpp_quote("#define NAVDIR_LEFT 3") @@ -26,6 +27,7 @@ cpp_quote("#define NAVDIR_PREVIOUS 6") cpp_quote("#define NAVDIR_FIRSTCHILD 7") cpp_quote("#define NAVDIR_LASTCHILD 8") +cpp_quote("#define NAVDIR_MAX 9") cpp_quote("#define ROLE_SYSTEM_TITLEBAR 1") cpp_quote("#define ROLE_SYSTEM_MENUBAR 2") @@ -100,6 +102,45 @@ cpp_quote("#define SELFLAG_REMOVESELECTION 0x10") cpp_quote("#define SELFLAG_VALID 0x1f") +cpp_quote("#ifndef STATE_SYSTEM_UNAVAILABLE") +cpp_quote("#define STATE_SYSTEM_NORMAL 0x00000000") +cpp_quote("#define STATE_SYSTEM_UNAVAILABLE 0x00000001") +cpp_quote("#define STATE_SYSTEM_SELECTED 0x00000002") +cpp_quote("#define STATE_SYSTEM_FOCUSED 0x00000004") +cpp_quote("#define STATE_SYSTEM_PRESSED 0x00000008") +cpp_quote("#define STATE_SYSTEM_CHECKED 0x00000010") +cpp_quote("#define STATE_SYSTEM_MIXED 0x00000020") +cpp_quote("#define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED") +cpp_quote("#define STATE_SYSTEM_READONLY 0x00000040") +cpp_quote("#define STATE_SYSTEM_HOTTRACKED 0x00000080") +cpp_quote("#define STATE_SYSTEM_DEFAULT 0x00000100") +cpp_quote("#define STATE_SYSTEM_EXPANDED 0x00000200") +cpp_quote("#define STATE_SYSTEM_COLLAPSED 0x00000400") +cpp_quote("#define STATE_SYSTEM_BUSY 0x00000800") +cpp_quote("#define STATE_SYSTEM_FLOATING 0x00001000") +cpp_quote("#define STATE_SYSTEM_MARQUEED 0x00002000") +cpp_quote("#define STATE_SYSTEM_ANIMATED 0x00004000") +cpp_quote("#define STATE_SYSTEM_INVISIBLE 0x00008000") +cpp_quote("#define STATE_SYSTEM_OFFSCREEN 0x00010000") +cpp_quote("#define STATE_SYSTEM_SIZEABLE 0x00020000") +cpp_quote("#define STATE_SYSTEM_MOVEABLE 0x00040000") +cpp_quote("#define STATE_SYSTEM_SELFVOICING 0x00080000") +cpp_quote("#define STATE_SYSTEM_FOCUSABLE 0x00100000") +cpp_quote("#define STATE_SYSTEM_SELECTABLE 0x00200000") +cpp_quote("#define STATE_SYSTEM_LINKED 0x00400000") +cpp_quote("#define STATE_SYSTEM_TRAVERSED 0x00800000") +cpp_quote("#define STATE_SYSTEM_MULTISELECTABLE 0x01000000") +cpp_quote("#define STATE_SYSTEM_EXTSELECTABLE 0x02000000") +cpp_quote("#define STATE_SYSTEM_ALERT_LOW 0x04000000") +cpp_quote("#define STATE_SYSTEM_ALERT_MEDIUM 0x08000000") +cpp_quote("#define STATE_SYSTEM_ALERT_HIGH 0x10000000") +cpp_quote("#define STATE_SYSTEM_PROTECTED 0x20000000") +cpp_quote("#define STATE_SYSTEM_VALID 0x7FFFFFFF") +cpp_quote("#endif") +cpp_quote("#ifndef STATE_SYSTEM_HASPOPUP") +cpp_quote("#define STATE_SYSTEM_HASPOPUP 0x40000000") +cpp_quote("#endif") + typedef GUID MSAAPROPID; typedef enum AnnoScope diff -Nru wine1.7-1.7.18/include/uuids.h wine1.7-1.7.19/include/uuids.h --- wine1.7-1.7.18/include/uuids.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/include/uuids.h 2014-05-16 19:06:48.000000000 +0000 @@ -24,213 +24,262 @@ #define MEDIATYPE_NULL GUID_NULL #define MEDIASUBTYPE_NULL GUID_NULL -OUR_GUID_ENTRY(MEDIASUBTYPE_None, 0xe436eb8e, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIATYPE_Video, 0x73646976, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIATYPE_Audio, 0x73647561, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIATYPE_Text, 0x73747874, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIATYPE_Midi, 0x7364696d, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIATYPE_Stream, 0xe436eb83, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIATYPE_Interleaved, 0x73766169, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIATYPE_File, 0x656c6966, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIATYPE_ScriptCommand, 0x73636d64, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIATYPE_AUXLine21Data, 0x670aea80, 0x3a82, 0x11d0, 0xb7, 0x9b, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) -OUR_GUID_ENTRY(MEDIATYPE_Timecode, 0x0482dee3, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) -OUR_GUID_ENTRY(MEDIATYPE_LMRT, 0x74726c6d, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIATYPE_URL_STREAM, 0x736c7275, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_YVU9, 0x39555659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_Y411, 0x31313459, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_Y41P, 0x50313459, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_YUY2, 0x32595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_YVYU, 0x55595659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_UYVY, 0x59565955, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_Y211, 0x31313259, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_YV12, 0x32315659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_AYUV, 0x56555941, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_CLJR, 0x524a4c43, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_IF09, 0x39304649, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_CPLA, 0x414c5043, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_MJPG, 0x47504a4d, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_TVMJ, 0x4a4d5654, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_WAKE, 0x454b4157, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_CFCC, 0x43434643, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_IJPG, 0x47504a49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_Plum, 0x6d756c50, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_DVCS, 0x53435644, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_DVSD, 0x44535644, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_MDVF, 0x4656444d, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_RGB1, 0xe436eb78, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_RGB4, 0xe436eb79, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_RGB8, 0xe436eb7a, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_RGB565, 0xe436eb7b, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_RGB555, 0xe436eb7c, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_RGB24, 0xe436eb7d, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_RGB32, 0xe436eb7e, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_Overlay, 0xe436eb7f, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Packet, 0xe436eb80, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Payload, 0xe436eb81, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1AudioPayload, 0x00000050, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIATYPE_MPEG1SystemStream, 0xe436eb82, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1System, 0xe436eb84, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1VideoCD, 0xe436eb85, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Video, 0xe436eb86, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Audio, 0xe436eb87, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_Avi, 0xe436eb88, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_Asf, 0x3db80f90, 0x9412, 0x11d1, 0xad, 0xed, 0x00, 0x00, 0xf8, 0x75, 0x4b, 0x99) -OUR_GUID_ENTRY(MEDIASUBTYPE_QTMovie, 0xe436eb89, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_QTRpza, 0x617a7072, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_QTSmc, 0x20636d73, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_QTRle, 0x20656c72, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_QTJpeg, 0x6765706a, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_PCMAudio_Obsolete, 0xe436eb8a, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_PCM, 0x00000001, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_WAVE, 0xe436eb8b, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_AU, 0xe436eb8c, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_AIFF, 0xe436eb8d, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(MEDIASUBTYPE_dvsd, 0x64737664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_dvhd, 0x64687664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_dvsl, 0x6c737664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) -OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_BytePair, 0x6e8d4a22, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) -OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_GOPPacket, 0x6e8d4a23, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) -OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_VBIRawData, 0x6e8d4a24, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) -OUR_GUID_ENTRY(MEDIASUBTYPE_DssVideo, 0xa0af4f81, 0xe163, 0x11d0, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) -OUR_GUID_ENTRY(MEDIASUBTYPE_DssAudio, 0xa0af4f82, 0xe163, 0x11d0, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) -OUR_GUID_ENTRY(MEDIASUBTYPE_VPVideo, 0x5a9b6a40, 0x1a22, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) -OUR_GUID_ENTRY(MEDIASUBTYPE_VPVBI, 0x5a9b6a41, 0x1a22, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) -OUR_GUID_ENTRY(IID_IAMCutListElement, 0xcde29520, 0x3418, 0x11cf, 0xa5, 0xb0, 0x00, 0x20, 0xaf, 0x05, 0x3d, 0x8f) -OUR_GUID_ENTRY(IID_IAMFileCutListElement, 0xf0947070, 0x276c, 0x11d0, 0x83, 0x16, 0x00, 0x20, 0xaf, 0x11, 0xc0, 0x10) -OUR_GUID_ENTRY(IID_IAMVideoCutListElement, 0xcde29522, 0x3418, 0x11cf, 0xa5, 0xb0, 0x00, 0x20, 0xaf, 0x05, 0x3d, 0x8f) -OUR_GUID_ENTRY(IID_IAMAudioCutListElement, 0xcde29524, 0x3418, 0x11cf, 0xa5, 0xb0, 0x00, 0x20, 0xaf, 0x05, 0x3d, 0x8f) -OUR_GUID_ENTRY(CLSID_CutListSource, 0xa5ea8d20, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(IID_IStandardCutList, 0xa5ea8d29, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(IID_IFileClip, 0xa5ea8d2a, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(IID_ICutListGraphBuilder, 0xa5ea8d2c, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(CLSID_CutListGraphBuilder, 0xa5ea8d2f, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(CLSID_SimpleCutList, 0xa5ea8d30, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(CLSID_VideoFileClip, 0xa5ea8d31, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(CLSID_AudioFileClip, 0xa5ea8d32, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(CLSID_CutListCacheMemory, 0xa5ea8d33, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(CLSID_CaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3, 0xf0, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(CLSID_CaptureGraphBuilder2, 0xbf87b6e1, 0x8c27, 0x11d0, 0xb3, 0xf0, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(CLSID_ProtoFilterGraph, 0xe436ebb0, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(CLSID_SystemClock, 0xe436ebb1, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(CLSID_FilterMapper, 0xe436ebb2, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(CLSID_FilterGraph, 0xe436ebb3, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(CLSID_FilterGraphNoThread, 0xe436ebb8, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(CLSID_MPEG1Doc, 0xe4bbd160, 0x4269, 0x11ce, 0x83, 0x8d, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(CLSID_FileSource, 0x701722e0, 0x8ae3, 0x11ce, 0xa8, 0x5c, 0x00, 0xaa, 0x00, 0x2f, 0xea, 0xb5) -OUR_GUID_ENTRY(CLSID_MPEG1PacketPlayer, 0x26c25940, 0x4ca9, 0x11ce, 0xa8, 0x28, 0x00, 0xaa, 0x00, 0x2f, 0xea, 0xb5) -OUR_GUID_ENTRY(CLSID_MPEG1Splitter, 0x336475d0, 0x942a, 0x11ce, 0xa8, 0x70, 0x00, 0xaa, 0x00, 0x2f, 0xea, 0xb5) -OUR_GUID_ENTRY(CLSID_CMpegVideoCodec, 0xfeb50740, 0x7bef, 0x11ce, 0x9b, 0xd9, 0x00, 0x00, 0xe2, 0x02, 0x59, 0x9c) -OUR_GUID_ENTRY(CLSID_CMpegAudioCodec, 0x4a2286e0, 0x7bef, 0x11ce, 0x9b, 0xd9, 0x00, 0x00, 0xe2, 0x02, 0x59, 0x9c) -OUR_GUID_ENTRY(CLSID_TextRender, 0xe30629d3, 0x27e5, 0x11ce, 0x87, 0x5d, 0x00, 0x60, 0x8c, 0xb7, 0x80, 0x66) -OUR_GUID_ENTRY(CLSID_InfTee, 0xf8388a40, 0xd5bb, 0x11d0, 0xbe, 0x5a, 0x00, 0x80, 0xc7, 0x06, 0x56, 0x8e) -OUR_GUID_ENTRY(CLSID_AviSplitter, 0x1b544c20, 0xfd0b, 0x11ce, 0x8c, 0x63, 0x00, 0xaa, 0x00, 0x44, 0xb5, 0x1e) -OUR_GUID_ENTRY(CLSID_AviReader, 0x1b544c21, 0xfd0b, 0x11ce, 0x8c, 0x63, 0x00, 0xaa, 0x00, 0x44, 0xb5, 0x1e) -OUR_GUID_ENTRY(CLSID_VfwCapture, 0x1b544c22, 0xfd0b, 0x11ce, 0x8c, 0x63, 0x00, 0xaa, 0x00, 0x44, 0xb5, 0x1e) -OUR_GUID_ENTRY(CLSID_CaptureProperties, 0x1b544c22, 0xfd0b, 0x11ce, 0x8c, 0x63, 0x00, 0xaa, 0x00, 0x44, 0xb5, 0x1f) -OUR_GUID_ENTRY(CLSID_FGControl, 0xe436ebb4, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(CLSID_MOVReader, 0x44584800, 0xf8ee, 0x11ce, 0xb2, 0xd4, 0x00, 0xdd, 0x01, 0x10, 0x1b, 0x85) -OUR_GUID_ENTRY(CLSID_QuickTimeParser, 0xd51bd5a0, 0x7548, 0x11cf, 0xa5, 0x20, 0x00, 0x80, 0xc7, 0x7e, 0xf5, 0x8a) -OUR_GUID_ENTRY(CLSID_WAVEParser, 0xd51bd5a1, 0x7548, 0x11cf, 0xa5, 0x20, 0x00, 0x80, 0xc7, 0x7e, 0xf5, 0x8a) -OUR_GUID_ENTRY(CLSID_QTDec, 0xfdfe9681, 0x74a3, 0x11d0, 0xaf, 0xa7, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) +OUR_GUID_ENTRY(AMPROPSETID_Pin, 0x9b00f101, 0x1567, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(CAPTION_FORMAT_ATSC, 0x3ed9cb31, 0xfd10, 0x4ade, 0xbc, 0xcc, 0xfb, 0x91, 0x05, 0xd2, 0xf3, 0xef) +OUR_GUID_ENTRY(CAPTION_FORMAT_DIRECTV, 0xe9ca1ce7, 0x915e, 0x47be, 0x9b, 0xb9, 0xbf, 0x1d, 0x8a, 0x13, 0xa5, 0xec) +OUR_GUID_ENTRY(CAPTION_FORMAT_DVB, 0x12230db4, 0xff2a, 0x447e, 0xbb, 0x88, 0x68, 0x41, 0xc4, 0x16, 0xd0, 0x68) +OUR_GUID_ENTRY(CAPTION_FORMAT_ECHOSTAR, 0xebb1a262, 0x1158, 0x4b99, 0xae, 0x80, 0x92, 0xac, 0x77, 0x69, 0x52, 0xc4) +OUR_GUID_ENTRY(CLSID_ACMWrapper, 0x6a08cf80, 0x0e18, 0x11cf, 0xa2, 0x4d, 0x00, 0x20, 0xaf, 0xd7, 0x97, 0x67) +OUR_GUID_ENTRY(CLSID_AMovie, 0x5f2759c0, 0x7685, 0x11cf, 0x8b, 0x23, 0x00, 0x80, 0x5f, 0x6c, 0xef, 0x60) +OUR_GUID_ENTRY(CLSID_ATSCNetworkPropertyPage, 0xe3444d16, 0x5ac4, 0x4386, 0x88, 0xdf, 0x13, 0xfd, 0x23, 0x0e, 0x1d, 0xda) +OUR_GUID_ENTRY(CLSID_ATSCNetworkProvider, 0x0dad2fdd, 0x5fd7, 0x11d3, 0x8f, 0x50, 0x00, 0xc0, 0x4f, 0x79, 0x71, 0xe2) +OUR_GUID_ENTRY(CLSID_AVICo, 0xd76e2820, 0x1563, 0x11cf, 0xac, 0x98, 0x00, 0xaa, 0x00, 0x4c, 0x0f, 0xa9) +OUR_GUID_ENTRY(CLSID_AVIDec, 0xcf49d4e0, 0x1115, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) OUR_GUID_ENTRY(CLSID_AVIDoc, 0xd3588ab0, 0x0781, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) OUR_GUID_ENTRY(CLSID_AVIDocWriter, 0xd3588ab1, 0x0781, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(CLSID_SampleGrabber, 0xc1f400a0, 0x3f08, 0x11d3, 0x9f, 0x0b, 0x00, 0x60, 0x08, 0x03, 0x9e, 0x37) -OUR_GUID_ENTRY(CLSID_NullRenderer, 0xc1f400a4, 0x3f08, 0x11d3, 0x9f, 0x0b, 0x00, 0x60, 0x08, 0x03, 0x9e, 0x37) -OUR_GUID_ENTRY(CLSID_VideoRenderer, 0x70e102b0, 0x5556, 0x11ce, 0x97, 0xc0, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(CLSID_VideoRendererDefault, 0x6bc1cffa, 0x8fc1, 0x4261, 0xac, 0x22, 0xcf, 0xb4, 0xcc, 0x38, 0xdb, 0x50) -OUR_GUID_ENTRY(CLSID_Colour, 0x1643e180, 0x90f5, 0x11ce, 0x97, 0xd5, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(CLSID_Dither, 0x1da08500, 0x9edc, 0x11cf, 0xbc, 0x10, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) -OUR_GUID_ENTRY(CLSID_ModexRenderer, 0x07167665, 0x5011, 0x11cf, 0xbf, 0x33, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(CLSID_AudioRender, 0xe30629d1, 0x27e5, 0x11ce, 0x87, 0x5d, 0x00, 0x60, 0x8c, 0xb7, 0x80, 0x66) -OUR_GUID_ENTRY(CLSID_AudioProperties, 0x05589faf, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(CLSID_DSoundRender, 0x79376820, 0x07d0, 0x11cf, 0xa2, 0x4d, 0x00, 0x20, 0xaf, 0xd7, 0x97, 0x67) -OUR_GUID_ENTRY(CLSID_AudioRecord, 0xe30629d2, 0x27e5, 0x11ce, 0x87, 0x5d, 0x00, 0x60, 0x8c, 0xb7, 0x80, 0x66) -OUR_GUID_ENTRY(CLSID_AudioInputMixerProperties, 0x2ca8ca52, 0x3c3f, 0x11d2, 0xb7, 0x3d, 0x00, 0xc0, 0x4f, 0xb6, 0xbd, 0x3d) -OUR_GUID_ENTRY(CLSID_AVIDec, 0xcf49d4e0, 0x1115, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) OUR_GUID_ENTRY(CLSID_AVIDraw, 0xa888df60, 0x1e90, 0x11cf, 0xac, 0x98, 0x00, 0xaa, 0x00, 0x4c, 0x0f, 0xa9) -OUR_GUID_ENTRY(CLSID_ACMWrapper, 0x6a08cf80, 0x0e18, 0x11cf, 0xa2, 0x4d, 0x00, 0x20, 0xaf, 0xd7, 0x97, 0x67) +OUR_GUID_ENTRY(CLSID_AVIMIDIRender, 0x07b65360, 0xc445, 0x11ce, 0xaf, 0xde, 0x00, 0xaa, 0x00, 0x6c, 0x14, 0xf4) +OUR_GUID_ENTRY(CLSID_ActiveMovieCategories, 0xda4e3da0, 0xd07d, 0x11d0, 0xbd, 0x50, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_AllocPresenter, 0x99d54f63, 0x1a69, 0x41ae, 0xaa, 0x4d, 0xc9, 0x76, 0xeb, 0x3f, 0x07, 0x13) +OUR_GUID_ENTRY(CLSID_AllocPresenterDDXclMode, 0x4444ac9e, 0x242e, 0x471b, 0xa3, 0xc7, 0x45, 0xdc, 0xd4, 0x63, 0x52, 0xbc) +OUR_GUID_ENTRY(CLSID_AnalogVideoDecoderPropertyPage, 0x71f96466, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) +OUR_GUID_ENTRY(CLSID_AsfMux, 0xf560ae42, 0x6cdd, 0x11d1, 0xad, 0xe2, 0x00, 0x00, 0xf8, 0x75, 0x4b, 0x99) OUR_GUID_ENTRY(CLSID_AsyncReader, 0xe436ebb5, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(CLSID_URLReader, 0xe436ebb6, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(CLSID_PersistMonikerPID, 0xe436ebb7, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(CLSID_AMovie, 0x5f2759c0, 0x7685, 0x11cf, 0x8b, 0x23, 0x00, 0x80, 0x5f, 0x6c, 0xef, 0x60) -OUR_GUID_ENTRY(CLSID_AVICo, 0xd76e2820, 0x1563, 0x11cf, 0xac, 0x98, 0x00, 0xaa, 0x00, 0x4c, 0x0f, 0xa9) -OUR_GUID_ENTRY(CLSID_FileWriter, 0x8596e5f0, 0x0da5, 0x11d0, 0xbd, 0x21, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_AudioCompressorCategory, 0x33d9a761, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_AudioFileClip, 0xa5ea8d32, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(CLSID_AudioInputDeviceCategory, 0x33d9a762, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_AudioInputMixerProperties, 0x2ca8ca52, 0x3c3f, 0x11d2, 0xb7, 0x3d, 0x00, 0xc0, 0x4f, 0xb6, 0xbd, 0x3d) +OUR_GUID_ENTRY(CLSID_AudioProperties, 0x05589faf, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(CLSID_AudioRecord, 0xe30629d2, 0x27e5, 0x11ce, 0x87, 0x5d, 0x00, 0x60, 0x8c, 0xb7, 0x80, 0x66) +OUR_GUID_ENTRY(CLSID_AudioRender, 0xe30629d1, 0x27e5, 0x11ce, 0x87, 0x5d, 0x00, 0x60, 0x8c, 0xb7, 0x80, 0x66) +OUR_GUID_ENTRY(CLSID_AudioRendererAdvancedProperties,0x37e92a92, 0xd9aa, 0x11d2, 0xbf, 0x84, 0x8e, 0xf2, 0xb1, 0x55, 0x5a, 0xed) +OUR_GUID_ENTRY(CLSID_AudioRendererCategory, 0xe0f158e1, 0xcb04, 0x11d0, 0xbd, 0x4e, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) OUR_GUID_ENTRY(CLSID_AviDest, 0xe2510970, 0xf137, 0x11ce, 0x8b, 0x67, 0x00, 0xaa, 0x00, 0xa3, 0xf1, 0xa6) -OUR_GUID_ENTRY(CLSID_AsfMux, 0xf560ae42, 0x6cdd, 0x11d1, 0xad, 0xe2, 0x00, 0x00, 0xf8, 0x75, 0x4b, 0x99) OUR_GUID_ENTRY(CLSID_AviMuxProptyPage, 0xc647b5c0, 0x157c, 0x11d0, 0xbd, 0x23, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) OUR_GUID_ENTRY(CLSID_AviMuxProptyPage1, 0x0a9ae910, 0x85c0, 0x11d0, 0xbd, 0x42, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_AVIMIDIRender, 0x07b65360, 0xc445, 0x11ce, 0xaf, 0xde, 0x00, 0xaa, 0x00, 0x6c, 0x14, 0xf4) -OUR_GUID_ENTRY(CLSID_DVVideoCodec, 0xb1b77c00, 0xc3e4, 0x11cf, 0xaf, 0x79, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) -OUR_GUID_ENTRY(CLSID_DVVideoEnc, 0x13aa3650, 0xbb6f, 0x11d0, 0xaf, 0xb9, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) -OUR_GUID_ENTRY(CLSID_DVSplitter, 0x4eb31670, 0x9fc6, 0x11cf, 0xaf, 0x6e, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) -OUR_GUID_ENTRY(CLSID_DVMux, 0x129d7e40, 0xc10d, 0x11d0, 0xaf, 0xb9, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) -OUR_GUID_ENTRY(CLSID_SeekingPassThru, 0x060af76c, 0x68dd, 0x11d0, 0x8f, 0xc1, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d) -OUR_GUID_ENTRY(CLSID_Line21Decoder, 0x6e8d4a20, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) -OUR_GUID_ENTRY(CLSID_OverlayMixer, 0xcd8743a1, 0x3736, 0x11d0, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) -OUR_GUID_ENTRY(CLSID_VBISurfaces, 0x814b9800, 0x1c88, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) -OUR_GUID_ENTRY(CLSID_SystemDeviceEnum, 0x62be5d10, 0x60eb, 0x11d0, 0xbd, 0x3b, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_AviReader, 0x1b544c21, 0xfd0b, 0x11ce, 0x8c, 0x63, 0x00, 0xaa, 0x00, 0x44, 0xb5, 0x1e) +OUR_GUID_ENTRY(CLSID_AviSplitter, 0x1b544c20, 0xfd0b, 0x11ce, 0x8c, 0x63, 0x00, 0xaa, 0x00, 0x44, 0xb5, 0x1e) +OUR_GUID_ENTRY(CLSID_CAcmCoClassManager, 0x33d9a761, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_CCAFilter, 0x3d07a539, 0x35ca, 0x447c, 0x9b, 0x05, 0x8d, 0x85, 0xce, 0x92, 0x4f, 0x9e) OUR_GUID_ENTRY(CLSID_CDeviceMoniker, 0x4315d437, 0x5b8c, 0x11d0, 0xbd, 0x3b, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_VideoInputDeviceCategory, 0x860bb310, 0x5d01, 0x11d0, 0xbd, 0x3b, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_CVidCapClassManager, 0x860bb310, 0x5d01, 0x11d0, 0xbd, 0x3b, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_LegacyAmFilterCategory, 0x083863f1, 0x70de, 0x11d0, 0xbd, 0x40, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_CQzFilterClassManager, 0x083863f1, 0x70de, 0x11d0, 0xbd, 0x40, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_VideoCompressorCategory, 0x33d9a760, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) OUR_GUID_ENTRY(CLSID_CIcmCoClassManager, 0x33d9a760, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_AudioCompressorCategory, 0x33d9a761, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_CAcmCoClassManager, 0x33d9a761, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_AudioInputDeviceCategory, 0x33d9a762, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_CWaveinClassManager, 0x33d9a762, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_AudioRendererCategory, 0xe0f158e1, 0xcb04, 0x11d0, 0xbd, 0x4e, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_CWaveOutClassManager, 0xe0f158e1, 0xcb04, 0x11d0, 0xbd, 0x4e, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_MidiRendererCategory, 0x4efe2452, 0x168a, 0x11d1, 0xbc, 0x76, 0x00, 0xc0, 0x4f, 0xb9, 0x45, 0x3b) OUR_GUID_ENTRY(CLSID_CMidiOutClassManager, 0x4efe2452, 0x168a, 0x11d1, 0xbc, 0x76, 0x00, 0xc0, 0x4f, 0xb9, 0x45, 0x3b) -OUR_GUID_ENTRY(CLSID_TransmitCategory, 0xcc7bfb41, 0xf175, 0x11d1, 0xa3, 0x92, 0x00, 0xe0, 0x29, 0x1f, 0x39, 0x59) -OUR_GUID_ENTRY(CLSID_DeviceControlCategory, 0xcc7bfb46, 0xf175, 0x11d1, 0xa3, 0x92, 0x00, 0xe0, 0x29, 0x1f, 0x39, 0x59) -OUR_GUID_ENTRY(CLSID_ActiveMovieCategories, 0xda4e3da0, 0xd07d, 0x11d0, 0xbd, 0x50, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_CMpegAudioCodec, 0x4a2286e0, 0x7bef, 0x11ce, 0x9b, 0xd9, 0x00, 0x00, 0xe2, 0x02, 0x59, 0x9c) +OUR_GUID_ENTRY(CLSID_CMpegVideoCodec, 0xfeb50740, 0x7bef, 0x11ce, 0x9b, 0xd9, 0x00, 0x00, 0xe2, 0x02, 0x59, 0x9c) +OUR_GUID_ENTRY(CLSID_CQzFilterClassManager, 0x083863f1, 0x70de, 0x11d0, 0xbd, 0x40, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_CVidCapClassManager, 0x860bb310, 0x5d01, 0x11d0, 0xbd, 0x3b, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_CWaveOutClassManager, 0xe0f158e1, 0xcb04, 0x11d0, 0xbd, 0x4e, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_CWaveinClassManager, 0x33d9a762, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_CameraControlPropertyPage, 0x71f96465, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) +OUR_GUID_ENTRY(CLSID_CaptionsFilter, 0x2f7ee4b6, 0x6ff5, 0x4eb4, 0xb2, 0x4a, 0x2b, 0xfc, 0x41, 0x11, 0x71, 0x71) +OUR_GUID_ENTRY(CLSID_CaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3, 0xf0, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(CLSID_CaptureGraphBuilder2, 0xbf87b6e1, 0x8c27, 0x11d0, 0xb3, 0xf0, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(CLSID_CaptureProperties, 0x1b544c22, 0xfd0b, 0x11ce, 0x8c, 0x63, 0x00, 0xaa, 0x00, 0x44, 0xb5, 0x1f) +OUR_GUID_ENTRY(CLSID_Colour, 0x1643e180, 0x90f5, 0x11ce, 0x97, 0xd5, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(CLSID_CrossbarFilterPropertyPage, 0x71f96461, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) +OUR_GUID_ENTRY(CLSID_CutListCacheMemory, 0xa5ea8d33, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(CLSID_CutListGraphBuilder, 0xa5ea8d2f, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(CLSID_CutListSource, 0xa5ea8d20, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(CLSID_DShowTVEFilter, 0x05500280, 0xfaa5, 0x4df9, 0x82, 0x46, 0xbf, 0xc2, 0x3a, 0xc5, 0xce, 0xa8) +OUR_GUID_ENTRY(CLSID_DSoundRender, 0x79376820, 0x07d0, 0x11cf, 0xa2, 0x4d, 0x00, 0x20, 0xaf, 0xd7, 0x97, 0x67) +OUR_GUID_ENTRY(CLSID_DVBCNetworkProvider, 0xdc0c0fe7, 0x0485, 0x4266, 0xb9, 0x3f, 0x68, 0xfb, 0xf8, 0x0e, 0xd8, 0x34) +OUR_GUID_ENTRY(CLSID_DVBSNetworkProvider, 0xfa4b375a, 0x45b4, 0x4d45, 0x84, 0x40, 0x26, 0x39, 0x57, 0xb1, 0x16, 0x23) +OUR_GUID_ENTRY(CLSID_DVBTNetworkProvider, 0x216c62df, 0x6d7f, 0x4e9a, 0x85, 0x71, 0x05, 0xf1, 0x4e, 0xdb, 0x76, 0x6a) OUR_GUID_ENTRY(CLSID_DVDHWDecodersCategory, 0x2721ae20, 0x7e70, 0x11d0, 0xa5, 0xd6, 0x28, 0xdb, 0x04, 0xc1, 0x00, 0x00) +OUR_GUID_ENTRY(CLSID_DVDNavigator, 0x9b8c4620, 0x2c1a, 0x11d0, 0x84, 0x93, 0x00, 0xa0, 0x24, 0x38, 0xad, 0x48) +OUR_GUID_ENTRY(CLSID_DVDState, 0xf963c5cf, 0xa659, 0x4a93, 0x96, 0x38, 0xca, 0xf3, 0xcd, 0x27, 0x7d, 0x13) +OUR_GUID_ENTRY(CLSID_DVDecPropertiesPage, 0x101193c0, 0x0bfe, 0x11d0, 0xaf, 0x91, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) +OUR_GUID_ENTRY(CLSID_DVEncPropertiesPage, 0x4150f050, 0xbb6f, 0x11d0, 0xaf, 0xb9, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) +OUR_GUID_ENTRY(CLSID_DVMux, 0x129d7e40, 0xc10d, 0x11d0, 0xaf, 0xb9, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) +OUR_GUID_ENTRY(CLSID_DVMuxPropertyPage, 0x4db880e0, 0xc10d, 0x11d0, 0xaf, 0xb9, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) +OUR_GUID_ENTRY(CLSID_DVSplitter, 0x4eb31670, 0x9fc6, 0x11cf, 0xaf, 0x6e, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) +OUR_GUID_ENTRY(CLSID_DVVideoCodec, 0xb1b77c00, 0xc3e4, 0x11cf, 0xaf, 0x79, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) +OUR_GUID_ENTRY(CLSID_DVVideoEnc, 0x13aa3650, 0xbb6f, 0x11d0, 0xaf, 0xb9, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) +OUR_GUID_ENTRY(CLSID_DeviceControlCategory, 0xcc7bfb46, 0xf175, 0x11d1, 0xa3, 0x92, 0x00, 0xe0, 0x29, 0x1f, 0x39, 0x59) +OUR_GUID_ENTRY(CLSID_DirectDrawProperties, 0x944d4c00, 0xdd52, 0x11ce, 0xbf, 0x0e, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(CLSID_DirectShowPluginControl, 0x8670c736, 0xf614, 0x427b, 0x8a, 0xda, 0xbb, 0xad, 0xc5, 0x87, 0x19, 0x4b) +OUR_GUID_ENTRY(CLSID_Dither, 0x1da08500, 0x9edc, 0x11cf, 0xbc, 0x10, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) +OUR_GUID_ENTRY(CLSID_DtvCcFilter, 0xfb056ba0, 0x2502, 0x45b9, 0x8e, 0x86, 0x2b, 0x40, 0xde, 0x84, 0xad, 0x29) +OUR_GUID_ENTRY(CLSID_DvdGraphBuilder, 0xfcc152b7, 0xf372, 0x11d0, 0x8e, 0x00, 0x00, 0xc0, 0x4f, 0xd7, 0xc0, 0x8b) +OUR_GUID_ENTRY(CLSID_EVRPlaybackPipelineOptimizer, 0x62079164, 0x233b, 0x41f8, 0xa8, 0x0f, 0xf0, 0x17, 0x05, 0xf5, 0x14, 0xa8) +OUR_GUID_ENTRY(CLSID_EVRTearlessWindowPresenter9, 0xa0a7a57b, 0x59b2, 0x4919, 0xa6, 0x94, 0xad, 0xd0, 0xa5, 0x26, 0xc3, 0x73) +OUR_GUID_ENTRY(CLSID_EnhancedVideoRenderer, 0xfa10746c, 0x9b63, 0x4b6c, 0xbc, 0x49, 0xfc, 0x30, 0x0e, 0xa5, 0xf2, 0x56) +OUR_GUID_ENTRY(CLSID_FGControl, 0xe436ebb4, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(CLSID_FileSource, 0x701722e0, 0x8ae3, 0x11ce, 0xa8, 0x5c, 0x00, 0xaa, 0x00, 0x2f, 0xea, 0xb5) +OUR_GUID_ENTRY(CLSID_FileWriter, 0x8596e5f0, 0x0da5, 0x11d0, 0xbd, 0x21, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_FilterGraph, 0xe436ebb3, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(CLSID_FilterGraphNoThread, 0xe436ebb8, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(CLSID_FilterGraphPrivateThread, 0xa3ecbc41, 0x581a, 0x4476, 0xb6, 0x93, 0xa6, 0x33, 0x40, 0x46, 0x2d, 0x8b) +OUR_GUID_ENTRY(CLSID_FilterMapper, 0xe436ebb2, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) OUR_GUID_ENTRY(CLSID_FilterMapper2, 0xcda42200, 0xbd88, 0x11d0, 0xbd, 0x4e, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_MemoryAllocator, 0x1e651cc0, 0xb199, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45) +OUR_GUID_ENTRY(CLSID_ICodecAPIProxy, 0x7ff0997a, 0x1999, 0x4286, 0xa7, 0x3c, 0x62, 0x2b, 0x88, 0x14, 0xe7, 0xeb) +OUR_GUID_ENTRY(CLSID_IVideoEncoderCodecAPIProxy, 0xb05dabd9, 0x56e5, 0x4fdc, 0xaf, 0xa4, 0x8a, 0x47, 0xe9, 0x1f, 0x1c, 0x9c) +OUR_GUID_ENTRY(CLSID_IVideoEncoderProxy, 0xb43c4eec, 0x8c32, 0x4791, 0x91, 0x02, 0x50, 0x8a, 0xda, 0x5e, 0xe8, 0xe7) +OUR_GUID_ENTRY(CLSID_InfTee, 0xf8388a40, 0xd5bb, 0x11d0, 0xbe, 0x5a, 0x00, 0x80, 0xc7, 0x06, 0x56, 0x8e) +OUR_GUID_ENTRY(CLSID_LegacyAmFilterCategory, 0x083863f1, 0x70de, 0x11d0, 0xbd, 0x40, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_Line21Decoder, 0x6e8d4a20, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) +OUR_GUID_ENTRY(CLSID_Line21Decoder2, 0xe4206432, 0x01a1, 0x4bee, 0xb3, 0xe1, 0x37, 0x02, 0xc8, 0xed, 0xc5, 0x74) +OUR_GUID_ENTRY(CLSID_MFVideoMixer9, 0xe474e05a, 0xab65, 0x4f6a, 0x82, 0x7c, 0x21, 0x8b, 0x1b, 0xaa, 0xf3, 0x1f) +OUR_GUID_ENTRY(CLSID_MFVideoPresenter9, 0x98455561, 0x5136, 0x4d28, 0xab, 0x08, 0x4c, 0xee, 0x40, 0xea, 0x27, 0x81) +OUR_GUID_ENTRY(CLSID_MJPGEnc, 0xb80ab0a0, 0x7416, 0x11d2, 0x9e, 0xeb, 0x00, 0x60, 0x08, 0x03, 0x9e, 0x37) +OUR_GUID_ENTRY(CLSID_MMSPLITTER, 0x3ae86b20, 0x7be8, 0x11d1, 0xab, 0xe6, 0x00, 0xa0, 0xc9, 0x05, 0xf3, 0x75) +OUR_GUID_ENTRY(CLSID_MOVReader, 0x44584800, 0xf8ee, 0x11ce, 0xb2, 0xd4, 0x00, 0xdd, 0x01, 0x10, 0x1b, 0x85) +OUR_GUID_ENTRY(CLSID_MPEG1Doc, 0xe4bbd160, 0x4269, 0x11ce, 0x83, 0x8d, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(CLSID_MPEG1PacketPlayer, 0x26c25940, 0x4ca9, 0x11ce, 0xa8, 0x28, 0x00, 0xaa, 0x00, 0x2f, 0xea, 0xb5) +OUR_GUID_ENTRY(CLSID_MPEG1Splitter, 0x336475d0, 0x942a, 0x11ce, 0xa8, 0x70, 0x00, 0xaa, 0x00, 0x2f, 0xea, 0xb5) +OUR_GUID_ENTRY(CLSID_MPEG2Demultiplexer, 0xafb6c280, 0x2c41, 0x11d3, 0x8a, 0x60, 0x00, 0x00, 0xf8, 0x1e, 0x0e, 0x4a) +OUR_GUID_ENTRY(CLSID_MPEG2Demultiplexer_NoClock, 0x687d3367, 0x3644, 0x467a, 0xad, 0xfe, 0x6c, 0xd7, 0xa8, 0x5c, 0x4a, 0x2c) +OUR_GUID_ENTRY(CLSID_MediaEncoderCategory, 0x7d22e920, 0x5ca9, 0x4787, 0x8c, 0x2b, 0xa6, 0x77, 0x9b, 0xd1, 0x17, 0x81) +OUR_GUID_ENTRY(CLSID_MediaMultiplexerCategory, 0x236c9559, 0xadce, 0x4736, 0xbf, 0x72, 0xba, 0xb3, 0x4e, 0x39, 0x21, 0x96) OUR_GUID_ENTRY(CLSID_MediaPropertyBag, 0xcdbd8d00, 0xc193, 0x11d0, 0xbd, 0x4e, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) -OUR_GUID_ENTRY(CLSID_DvdGraphBuilder, 0xfcc152b7, 0xf372, 0x11d0, 0x8e, 0x00, 0x00, 0xc0, 0x4f, 0xd7, 0xc0, 0x8b) -OUR_GUID_ENTRY(CLSID_DVDNavigator, 0x9b8c4620, 0x2c1a, 0x11d0, 0x84, 0x93, 0x00, 0xa0, 0x24, 0x38, 0xad, 0x48) +OUR_GUID_ENTRY(CLSID_MemoryAllocator, 0x1e651cc0, 0xb199, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45) +OUR_GUID_ENTRY(CLSID_MidiRendererCategory, 0x4efe2452, 0x168a, 0x11d1, 0xbc, 0x76, 0x00, 0xc0, 0x4f, 0xb9, 0x45, 0x3b) +OUR_GUID_ENTRY(CLSID_MjpegDec, 0x301056d0, 0x6dff, 0x11d2, 0x9e, 0xeb, 0x00, 0x60, 0x08, 0x03, 0x9e, 0x37) +OUR_GUID_ENTRY(CLSID_ModexProperties, 0x0618aa30, 0x6bc4, 0x11cf, 0xbf, 0x36, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(CLSID_ModexRenderer, 0x07167665, 0x5011, 0x11cf, 0xbf, 0x33, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(CLSID_Mpeg2VideoStreamAnalyzer, 0x6cfad761, 0x735d, 0x4aa5, 0x8a, 0xfc, 0xaf, 0x91, 0xa7, 0xd6, 0x1e, 0xba) +OUR_GUID_ENTRY(CLSID_NetworkProvider, 0xb2f3a67c, 0x29da, 0x4c78, 0x88, 0x31, 0x09, 0x1e, 0xd5, 0x09, 0xa4, 0x75) +OUR_GUID_ENTRY(CLSID_NullRenderer, 0xc1f400a4, 0x3f08, 0x11d3, 0x9f, 0x0b, 0x00, 0x60, 0x08, 0x03, 0x9e, 0x37) +OUR_GUID_ENTRY(CLSID_OverlayMixer, 0xcd8743a1, 0x3736, 0x11d0, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) +OUR_GUID_ENTRY(CLSID_PerformanceProperties, 0x59ce6880, 0xacf8, 0x11cf, 0xb5, 0x6e, 0x00, 0x80, 0xc7, 0xc4, 0xb6, 0x8a) +OUR_GUID_ENTRY(CLSID_PersistMonikerPID, 0xe436ebb7, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(CLSID_ProtoFilterGraph, 0xe436ebb0, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(CLSID_QTDec, 0xfdfe9681, 0x74a3, 0x11d0, 0xaf, 0xa7, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) +OUR_GUID_ENTRY(CLSID_QualityProperties, 0x418afb70, 0xf8b8, 0x11ce, 0xaa, 0xc6, 0x00, 0x20, 0xaf, 0x0b, 0x99, 0xa3) +OUR_GUID_ENTRY(CLSID_QuickTimeParser, 0xd51bd5a0, 0x7548, 0x11cf, 0xa5, 0x20, 0x00, 0x80, 0xc7, 0x7e, 0xf5, 0x8a) +OUR_GUID_ENTRY(CLSID_SBE2File, 0x93a094d7, 0x51e8, 0x485b, 0x90, 0x4a, 0x8d, 0x6b, 0x97, 0xdc, 0x6b, 0x39) +OUR_GUID_ENTRY(CLSID_SBE2FileScan, 0x3e458037, 0x0ca6, 0x41aa, 0xa5, 0x94, 0x2a, 0xa6, 0xc0, 0x2d, 0x70, 0x9b) +OUR_GUID_ENTRY(CLSID_SBE2MediaTypeProfile, 0x1f26a602, 0x2b5c, 0x4b63, 0xb8, 0xe8, 0x9e, 0xa5, 0xc1, 0xa7, 0xdc, 0x2e) +OUR_GUID_ENTRY(CLSID_SBE2Sink, 0xe2448508, 0x95da, 0x4205, 0x9a, 0x27, 0x7e, 0xc8, 0x1e, 0x72, 0x3b, 0x1a) +OUR_GUID_ENTRY(CLSID_SampleGrabber, 0xc1f400a0, 0x3f08, 0x11d3, 0x9f, 0x0b, 0x00, 0x60, 0x08, 0x03, 0x9e, 0x37) +OUR_GUID_ENTRY(CLSID_SeekingPassThru, 0x060af76c, 0x68dd, 0x11d0, 0x8f, 0xc1, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d) +OUR_GUID_ENTRY(CLSID_SimpleCutList, 0xa5ea8d30, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) OUR_GUID_ENTRY(CLSID_SmartTee, 0xcc58e280, 0x8aa1, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(CLSID_StreamBufferComposeRecording, 0xd682c4ba, 0xa90a, 0x42fe, 0xb9, 0xe1, 0x03, 0x10, 0x98, 0x49, 0xc4, 0x23) +OUR_GUID_ENTRY(CLSID_StreamBufferConfig, 0xfa8a68b2, 0xc864, 0x4ba2, 0xad, 0x53, 0xd3, 0x87, 0x6a, 0x87, 0x49, 0x4b) +OUR_GUID_ENTRY(CLSID_StreamBufferPropertyHandler, 0xe37a73f8, 0xfb01, 0x43dc, 0x91, 0x4e, 0xaa, 0xee, 0x76, 0x09, 0x5a, 0xb9) +OUR_GUID_ENTRY(CLSID_StreamBufferRecordingAttributes,0xccaa63ac, 0x1057, 0x4778, 0xae, 0x92, 0x12, 0x06, 0xab, 0x9a, 0xce, 0xe6) +OUR_GUID_ENTRY(CLSID_StreamBufferSink, 0x2db47ae5, 0xcf39, 0x43c2, 0xb4, 0xd6, 0x0c, 0xd8, 0xd9, 0x09, 0x46, 0xf4) +OUR_GUID_ENTRY(CLSID_StreamBufferSource, 0xc9f5fe02, 0xf851, 0x4eb5, 0x99, 0xee, 0xad, 0x60, 0x2a, 0xf1, 0xe6, 0x19) +OUR_GUID_ENTRY(CLSID_StreamBufferThumbnailHandler, 0x713790ee, 0x5ee1, 0x45ba, 0x80, 0x70, 0xa1, 0x33, 0x7d, 0x27, 0x62, 0xfa) +OUR_GUID_ENTRY(CLSID_SubtitlesFilter, 0x9f22cfea, 0xce07, 0x41ab, 0x8b, 0xa0, 0xc7, 0x36, 0x4a, 0xf9, 0x0a, 0xf9) +OUR_GUID_ENTRY(CLSID_SystemClock, 0xe436ebb1, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(CLSID_SystemDeviceEnum, 0x62be5d10, 0x60eb, 0x11d0, 0xbd, 0x3b, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_TVAudioFilterPropertyPage, 0x71f96463, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) +OUR_GUID_ENTRY(CLSID_TVEFilterCCProperties, 0x05500282, 0xfaa5, 0x4df9, 0x82, 0x46, 0xbf, 0xc2, 0x3a, 0xc5, 0xce, 0xa8) +OUR_GUID_ENTRY(CLSID_TVEFilterStatsProperties, 0x05500283, 0xfaa5, 0x4df9, 0x82, 0x46, 0xbf, 0xc2, 0x3a, 0xc5, 0xce, 0xa8) +OUR_GUID_ENTRY(CLSID_TVEFilterTuneProperties, 0x05500281, 0xfaa5, 0x4df9, 0x82, 0x46, 0xbf, 0xc2, 0x3a, 0xc5, 0xce, 0xa8) +OUR_GUID_ENTRY(CLSID_TVTunerFilterPropertyPage, 0x266eee41, 0x6c63, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) +OUR_GUID_ENTRY(CLSID_TextRender, 0xe30629d3, 0x27e5, 0x11ce, 0x87, 0x5d, 0x00, 0x60, 0x8c, 0xb7, 0x80, 0x66) +OUR_GUID_ENTRY(CLSID_TransmitCategory, 0xcc7bfb41, 0xf175, 0x11d1, 0xa3, 0x92, 0x00, 0xe0, 0x29, 0x1f, 0x39, 0x59) +OUR_GUID_ENTRY(CLSID_URLReader, 0xe436ebb6, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(CLSID_VBISurfaces, 0x814b9800, 0x1c88, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) +OUR_GUID_ENTRY(CLSID_VPObject, 0xce292861, 0xfc88, 0x11d0, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) +OUR_GUID_ENTRY(CLSID_VPVBIObject, 0x814b9801, 0x1c88, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) +OUR_GUID_ENTRY(CLSID_VfwCapture, 0x1b544c22, 0xfd0b, 0x11ce, 0x8c, 0x63, 0x00, 0xaa, 0x00, 0x44, 0xb5, 0x1e) +OUR_GUID_ENTRY(CLSID_VideoCompressorCategory, 0x33d9a760, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_VideoFileClip, 0xa5ea8d31, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(CLSID_VideoInputDeviceCategory, 0x860bb310, 0x5d01, 0x11d0, 0xbd, 0x3b, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86) +OUR_GUID_ENTRY(CLSID_VideoMixingRenderer, 0xb87beb7b, 0x8d29, 0x423f, 0xae, 0x4d, 0x65, 0x82, 0xc1, 0x01, 0x75, 0xac) +OUR_GUID_ENTRY(CLSID_VideoMixingRenderer9, 0x51b4abf3, 0x748f, 0x4e3b, 0xa2, 0x76, 0xc8, 0x28, 0x33, 0x0e, 0x92, 0x6a) +OUR_GUID_ENTRY(CLSID_VideoPortManager, 0x6f26a6cd, 0x967b, 0x47fd, 0x87, 0x4a, 0x7a, 0xed, 0x2c, 0x9d, 0x25, 0xa2) +OUR_GUID_ENTRY(CLSID_VideoProcAmpPropertyPage, 0x71f96464, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) +OUR_GUID_ENTRY(CLSID_VideoRenderer, 0x70e102b0, 0x5556, 0x11ce, 0x97, 0xc0, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(CLSID_VideoRendererDefault, 0x6bc1cffa, 0x8fc1, 0x4261, 0xac, 0x22, 0xcf, 0xb4, 0xcc, 0x38, 0xdb, 0x50) +OUR_GUID_ENTRY(CLSID_VideoStreamConfigPropertyPage, 0x71f96467, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) +OUR_GUID_ENTRY(CLSID_WAVEParser, 0xd51bd5a1, 0x7548, 0x11cf, 0xa5, 0x20, 0x00, 0x80, 0xc7, 0x7e, 0xf5, 0x8a) +OUR_GUID_ENTRY(CLSID_WMAsfReader, 0x187463a0, 0x5bb7, 0x11d3, 0xac, 0xbe, 0x00, 0x80, 0xc7, 0x5e, 0x24, 0x6e) +OUR_GUID_ENTRY(CLSID_WMAsfWriter, 0x7c23220e, 0x55bb, 0x11d3, 0x8b, 0x16, 0x00, 0xc0, 0x4f, 0xb6, 0xbd, 0x3d) +OUR_GUID_ENTRY(CLSID_WSTDecoder, 0x70bc06e0, 0x5666, 0x11d3, 0xa1, 0x84, 0x00, 0x10, 0x5a, 0xef, 0x9f, 0x33) +OUR_GUID_ENTRY(CLSID_WstDecoderPropertyPage, 0x04e27f80, 0x91e4, 0x11d3, 0xa1, 0x84, 0x00, 0x10, 0x5a, 0xef, 0x9f, 0x33) +OUR_GUID_ENTRY(CODECAPI_ALLSETTINGS, 0x6a577e92, 0x83e1, 0x4113, 0xad, 0xc2, 0x4f, 0xce, 0xc3, 0x2f, 0x83, 0xa1) +OUR_GUID_ENTRY(CODECAPI_AUDIO_ENCODER, 0xb9d19a3e, 0xf897, 0x429c, 0xbc, 0x46, 0x81, 0x38, 0xb7, 0x27, 0x2b, 0x2d) +OUR_GUID_ENTRY(CODECAPI_AVDecMmcssClass, 0xe0ad4828, 0xdf66, 0x4893, 0x9f, 0x33, 0x78, 0x8a, 0xa4, 0xec, 0x40, 0x82) +OUR_GUID_ENTRY(CODECAPI_CHANGELISTS, 0x62b12acf, 0xf6b0, 0x47d9, 0x94, 0x56, 0x96, 0xf2, 0x2c, 0x4e, 0x0b, 0x9d) +OUR_GUID_ENTRY(CODECAPI_CURRENTCHANGELIST, 0x1cb14e83, 0x7d72, 0x4657, 0x83, 0xfd, 0x47, 0xa2, 0xc5, 0xb9, 0xd1, 0x3d) +OUR_GUID_ENTRY(CODECAPI_SETALLDEFAULTS, 0x6c5e6a7c, 0xacf8, 0x4f55, 0xa9, 0x99, 0x1a, 0x62, 0x81, 0x09, 0x05, 0x1b) +OUR_GUID_ENTRY(CODECAPI_SUPPORTSEVENTS, 0x0581af97, 0x7693, 0x4dbd, 0x9d, 0xca, 0x3f, 0x9e, 0xbd, 0x65, 0x85, 0xa1) +OUR_GUID_ENTRY(CODECAPI_VIDEO_ENCODER, 0x7112e8e1, 0x3d03, 0x47ef, 0x8e, 0x60, 0x03, 0xf1, 0xcf, 0x53, 0x73, 0x01) +OUR_GUID_ENTRY(DSATTRIB_CAPTURE_STREAMTIME, 0x0c1a5614, 0x30cd, 0x4f40, 0xbc, 0xbf, 0xd0, 0x3e, 0x52, 0x30, 0x62, 0x07) +OUR_GUID_ENTRY(DSATTRIB_CC_CONTAINER_INFO, 0xe7e050fb, 0xdd5d, 0x40dd, 0x99, 0x15, 0x35, 0xdc, 0xb8, 0x1b, 0xdc, 0x8a) +OUR_GUID_ENTRY(DSATTRIB_DSHOW_STREAM_DESC, 0x5fb5673b, 0x0a2a, 0x4565, 0x82, 0x7b, 0x68, 0x53, 0xfd, 0x75, 0xe6, 0x11) +OUR_GUID_ENTRY(DSATTRIB_OptionalVideoAttributes, 0x5a5f08ca, 0x55c2, 0x4033, 0x92, 0xab, 0x55, 0xdb, 0x8f, 0x78, 0x12, 0x26) +OUR_GUID_ENTRY(DSATTRIB_PBDATAG_ATTRIBUTE, 0xe0b56679, 0x12b9, 0x43cc, 0xb7, 0xdf, 0x57, 0x8c, 0xaa, 0x5a, 0x7b, 0x63) +OUR_GUID_ENTRY(DSATTRIB_PicSampleSeq, 0x2f5bae02, 0x7b8f, 0x4f60, 0x82, 0xd6, 0xe4, 0xea, 0x2f, 0x1f, 0x4c, 0x99) +OUR_GUID_ENTRY(DSATTRIB_SAMPLE_LIVE_STREAM_TIME, 0x892cd111, 0x72f3, 0x411d, 0x8b, 0x91, 0xa9, 0xe9, 0x12, 0x3a, 0xc2, 0x9a) +OUR_GUID_ENTRY(DSATTRIB_TRANSPORT_PROPERTIES, 0xb622f612, 0x47ad, 0x4671, 0xad, 0x6c, 0x05, 0xa9, 0x8e, 0x65, 0xde, 0x3a) +OUR_GUID_ENTRY(DSATTRIB_UDCRTag, 0xeb7836ca, 0x14ff, 0x4919, 0xbc, 0xe7, 0x3a, 0xf1, 0x23, 0x19, 0xe5, 0x0c) +OUR_GUID_ENTRY(ENCAPIPARAM_BITRATE, 0x49cc4c43, 0xca83, 0x4ad4, 0xa9, 0xaf, 0xf3, 0x69, 0x6a, 0xf6, 0x66, 0xdf) +OUR_GUID_ENTRY(ENCAPIPARAM_BITRATE_MODE, 0xee5fb25c, 0xc713, 0x40d1, 0x9d, 0x58, 0xc0, 0xd7, 0x24, 0x1e, 0x25, 0x0f) +OUR_GUID_ENTRY(ENCAPIPARAM_PEAK_BITRATE, 0x703f16a9, 0x3d48, 0x44a1, 0xb0, 0x77, 0x01, 0x8d, 0xff, 0x91, 0x5d, 0x19) +OUR_GUID_ENTRY(ENCAPIPARAM_SAP_MODE, 0x0c0171db, 0xfefc, 0x4af7, 0x99, 0x91, 0xa5, 0x65, 0x7c, 0x19, 0x1c, 0xd1) +OUR_GUID_ENTRY(EVRConfig_AllowBatching, 0xe447df0a, 0x10ca, 0x4d17, 0xb1, 0x7e, 0x6a, 0x84, 0x0f, 0x8a, 0x3a, 0x4c) +OUR_GUID_ENTRY(EVRConfig_AllowDropToBob, 0xe447df02, 0x10ca, 0x4d17, 0xb1, 0x7e, 0x6a, 0x84, 0x0f, 0x8a, 0x3a, 0x4c) +OUR_GUID_ENTRY(EVRConfig_AllowDropToHalfInterlace, 0xe447df06, 0x10ca, 0x4d17, 0xb1, 0x7e, 0x6a, 0x84, 0x0f, 0x8a, 0x3a, 0x4c) +OUR_GUID_ENTRY(EVRConfig_AllowDropToThrottle, 0xe447df04, 0x10ca, 0x4d17, 0xb1, 0x7e, 0x6a, 0x84, 0x0f, 0x8a, 0x3a, 0x4c) +OUR_GUID_ENTRY(EVRConfig_AllowScaling, 0xe447df08, 0x10ca, 0x4d17, 0xb1, 0x7e, 0x6a, 0x84, 0x0f, 0x8a, 0x3a, 0x4c) +OUR_GUID_ENTRY(EVRConfig_ForceBatching, 0xe447df09, 0x10ca, 0x4d17, 0xb1, 0x7e, 0x6a, 0x84, 0x0f, 0x8a, 0x3a, 0x4c) +OUR_GUID_ENTRY(EVRConfig_ForceBob, 0xe447df01, 0x10ca, 0x4d17, 0xb1, 0x7e, 0x6a, 0x84, 0x0f, 0x8a, 0x3a, 0x4c) +OUR_GUID_ENTRY(EVRConfig_ForceHalfInterlace, 0xe447df05, 0x10ca, 0x4d17, 0xb1, 0x7e, 0x6a, 0x84, 0x0f, 0x8a, 0x3a, 0x4c) +OUR_GUID_ENTRY(EVRConfig_ForceScaling, 0xe447df07, 0x10ca, 0x4d17, 0xb1, 0x7e, 0x6a, 0x84, 0x0f, 0x8a, 0x3a, 0x4c) +OUR_GUID_ENTRY(EVRConfig_ForceThrottle, 0xe447df03, 0x10ca, 0x4d17, 0xb1, 0x7e, 0x6a, 0x84, 0x0f, 0x8a, 0x3a, 0x4c) +OUR_GUID_ENTRY(FORMAT_525WSS, 0xc7ecf04d, 0x4582, 0x4869, 0x9a, 0xbb, 0xbf, 0xb5, 0x23, 0xb6, 0x2e, 0xdf) +OUR_GUID_ENTRY(FORMAT_AnalogVideo, 0x0482dde0, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) +OUR_GUID_ENTRY(FORMAT_CAPTIONED_H264VIDEO, 0xa4efc024, 0x873e, 0x4da3, 0x89, 0x8b, 0x47, 0x4d, 0xdb, 0xd7, 0x9f, 0xd0) +OUR_GUID_ENTRY(FORMAT_CAPTIONED_MPEG2VIDEO, 0x7ab2ada2, 0x81b6, 0x4f14, 0xb3, 0xc8, 0xd0, 0xc4, 0x86, 0x39, 0x3b, 0x67) +OUR_GUID_ENTRY(FORMAT_CC_CONTAINER, 0x50997a4a, 0xe508, 0x4054, 0xa2, 0xb2, 0x10, 0xff, 0x0a, 0xc1, 0xa6, 0x9a) +OUR_GUID_ENTRY(FORMAT_DvInfo, 0x05589f84, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(FORMAT_MPEGStreams, 0x05589f83, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(FORMAT_MPEGVideo, 0x05589f82, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) OUR_GUID_ENTRY(FORMAT_None, 0x0f6417d6, 0xc318, 0x11d0, 0xa4, 0x3f, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96) OUR_GUID_ENTRY(FORMAT_VideoInfo, 0x05589f80, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) OUR_GUID_ENTRY(FORMAT_VideoInfo2, 0xf72a76a0, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) OUR_GUID_ENTRY(FORMAT_WaveFormatEx, 0x05589f81, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(FORMAT_MPEGVideo, 0x05589f82, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(FORMAT_MPEGStreams, 0x05589f83, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(FORMAT_DvInfo, 0x05589f84, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(CLSID_DirectDrawProperties, 0x944d4c00, 0xdd52, 0x11ce, 0xbf, 0x0e, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(CLSID_PerformanceProperties, 0x59ce6880, 0xacf8, 0x11cf, 0xb5, 0x6e, 0x00, 0x80, 0xc7, 0xc4, 0xb6, 0x8a) -OUR_GUID_ENTRY(CLSID_QualityProperties, 0x418afb70, 0xf8b8, 0x11ce, 0xaa, 0xc6, 0x00, 0x20, 0xaf, 0x0b, 0x99, 0xa3) +OUR_GUID_ENTRY(IID_IAMAudioCutListElement, 0xcde29524, 0x3418, 0x11cf, 0xa5, 0xb0, 0x00, 0x20, 0xaf, 0x05, 0x3d, 0x8f) +OUR_GUID_ENTRY(IID_IAMCutListElement, 0xcde29520, 0x3418, 0x11cf, 0xa5, 0xb0, 0x00, 0x20, 0xaf, 0x05, 0x3d, 0x8f) +OUR_GUID_ENTRY(IID_IAMDirectSound, 0x546f4260, 0xd53e, 0x11cf, 0xb3, 0xf0, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(IID_IAMFileCutListElement, 0xf0947070, 0x276c, 0x11d0, 0x83, 0x16, 0x00, 0x20, 0xaf, 0x11, 0xc0, 0x10) +OUR_GUID_ENTRY(IID_IAMLine21Decoder, 0x6e8d4a21, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) +OUR_GUID_ENTRY(IID_IAMVideoCutListElement, 0xcde29522, 0x3418, 0x11cf, 0xa5, 0xb0, 0x00, 0x20, 0xaf, 0x05, 0x3d, 0x8f) +OUR_GUID_ENTRY(IID_IAMWstDecoder, 0xc056de21, 0x75c2, 0x11d3, 0xa1, 0x84, 0x00, 0x10, 0x5a, 0xef, 0x9f, 0x33) OUR_GUID_ENTRY(IID_IBaseVideoMixer, 0x61ded640, 0xe912, 0x11ce, 0xa0, 0x99, 0x00, 0xaa, 0x00, 0x47, 0x9a, 0x58) +OUR_GUID_ENTRY(IID_ICutListGraphBuilder, 0xa5ea8d2c, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) OUR_GUID_ENTRY(IID_IDirectDrawVideo, 0x36d39eb0, 0xdd75, 0x11ce, 0xbf, 0x0e, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(IID_IFileClip, 0xa5ea8d2a, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(IID_IFullScreenVideo, 0xdd1d7110, 0x7836, 0x11cf, 0xbf, 0x47, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) +OUR_GUID_ENTRY(IID_IFullScreenVideoEx, 0x53479470, 0xf1dd, 0x11cf, 0xbc, 0x42, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) +OUR_GUID_ENTRY(IID_IMixerPinConfig, 0x593cdde1, 0x0759, 0x11d1, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) +OUR_GUID_ENTRY(IID_IMixerPinConfig2, 0xebf47182, 0x8764, 0x11d1, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) +OUR_GUID_ENTRY(IID_IMpegAudioDecoder, 0xb45dd570, 0x3c77, 0x11d1, 0xab, 0xe1, 0x00, 0xa0, 0xc9, 0x05, 0xf3, 0x75) OUR_GUID_ENTRY(IID_IQualProp, 0x1bd0ecb0, 0xf8e2, 0x11ce, 0xaa, 0xc6, 0x00, 0x20, 0xaf, 0x0b, 0x99, 0xa3) -OUR_GUID_ENTRY(CLSID_VPObject, 0xce292861, 0xfc88, 0x11d0, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) -OUR_GUID_ENTRY(IID_IVPObject, 0xce292862, 0xfc88, 0x11d0, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) -OUR_GUID_ENTRY(IID_IVPControl, 0x25df12c1, 0x3de0, 0x11d1, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) -OUR_GUID_ENTRY(CLSID_VPVBIObject, 0x814b9801, 0x1c88, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) -OUR_GUID_ENTRY(IID_IVPVBIObject, 0x814b9802, 0x1c88, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) +OUR_GUID_ENTRY(IID_IStandardCutList, 0xa5ea8d29, 0x253d, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) OUR_GUID_ENTRY(IID_IVPConfig, 0xbc29a660, 0x30e3, 0x11d0, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) +OUR_GUID_ENTRY(IID_IVPControl, 0x25df12c1, 0x3de0, 0x11d1, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) OUR_GUID_ENTRY(IID_IVPNotify, 0xc76794a1, 0xd6c5, 0x11d0, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) OUR_GUID_ENTRY(IID_IVPNotify2, 0xebf47183, 0x8764, 0x11d1, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) +OUR_GUID_ENTRY(IID_IVPObject, 0xce292862, 0xfc88, 0x11d0, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) OUR_GUID_ENTRY(IID_IVPVBIConfig, 0xec529b00, 0x1a1f, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) OUR_GUID_ENTRY(IID_IVPVBINotify, 0xec529b01, 0x1a1f, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) -OUR_GUID_ENTRY(IID_IMixerPinConfig, 0x593cdde1, 0x0759, 0x11d1, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) -OUR_GUID_ENTRY(IID_IMixerPinConfig2, 0xebf47182, 0x8764, 0x11d1, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b) -OUR_GUID_ENTRY(CLSID_ModexProperties, 0x0618aa30, 0x6bc4, 0x11cf, 0xbf, 0x36, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(IID_IFullScreenVideo, 0xdd1d7110, 0x7836, 0x11cf, 0xbf, 0x47, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a) -OUR_GUID_ENTRY(IID_IFullScreenVideoEx, 0x53479470, 0xf1dd, 0x11cf, 0xbc, 0x42, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) -OUR_GUID_ENTRY(CLSID_DVDecPropertiesPage, 0x101193c0, 0x0bfe, 0x11d0, 0xaf, 0x91, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) -OUR_GUID_ENTRY(CLSID_DVEncPropertiesPage, 0x4150f050, 0xbb6f, 0x11d0, 0xaf, 0xb9, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) -OUR_GUID_ENTRY(CLSID_DVMuxPropertyPage, 0x4db880e0, 0xc10d, 0x11d0, 0xaf, 0xb9, 0x00, 0xaa, 0x00, 0xb6, 0x7a, 0x42) -OUR_GUID_ENTRY(IID_IAMDirectSound, 0x546f4260, 0xd53e, 0x11cf, 0xb3, 0xf0, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(IID_IMpegAudioDecoder, 0xb45dd570, 0x3c77, 0x11d1, 0xab, 0xe1, 0x00, 0xa0, 0xc9, 0x05, 0xf3, 0x75) -OUR_GUID_ENTRY(IID_IAMLine21Decoder, 0x6e8d4a21, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) -OUR_GUID_ENTRY(FORMAT_AnalogVideo, 0x0482dde0, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) -OUR_GUID_ENTRY(MEDIATYPE_AnalogVideo, 0x0482dde1, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) +OUR_GUID_ENTRY(IID_IVPVBIObject, 0x814b9802, 0x1c88, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) +OUR_GUID_ENTRY(LOOK_DOWNSTREAM_ONLY, 0xac798be1, 0x98e3, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(LOOK_UPSTREAM_ONLY, 0xac798be0, 0x98e3, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) +OUR_GUID_ENTRY(MEDIASUBTYPE_420O, 0x4f303234, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_708_608Data, 0x0af414bc, 0x4ed2, 0x445e, 0x98, 0x39, 0x8f, 0x09, 0x55, 0x68, 0xab, 0x3c) +OUR_GUID_ENTRY(MEDIASUBTYPE_A2B10G10R10, 0x576f7893, 0xbdf6, 0x48c4, 0x87, 0x5f, 0xae, 0x7b, 0x81, 0x83, 0x45, 0x67) +OUR_GUID_ENTRY(MEDIASUBTYPE_A2R10G10B10, 0x2f8bb76d, 0xb644, 0x4550, 0xac, 0xf3, 0xd3, 0x0c, 0xaa, 0x65, 0xd5, 0xc5) +OUR_GUID_ENTRY(MEDIASUBTYPE_AI44, 0x34344941, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_AIFF, 0xe436eb8d, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB1555, 0x297c55af, 0xe209, 0x4cb3, 0xb7, 0x57, 0xc7, 0x6d, 0x6b, 0x9c, 0x88, 0xa8) +OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB1555_D3D_DX7_RT, 0x35314137, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB1555_D3D_DX9_RT, 0x35314139, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB32, 0x773c9ac0, 0x3274, 0x11d0, 0xb7, 0x24, 0x00, 0xaa, 0x00, 0x6c, 0x1a, 0x01) +OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB32_D3D_DX7_RT, 0x38384137, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB32_D3D_DX9_RT, 0x38384139, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB4444, 0x6e6415e6, 0x5c24, 0x425f, 0x93, 0xcd, 0x80, 0x10, 0x2b, 0x3d, 0x1c, 0xca) +OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB4444_D3D_DX7_RT, 0x34344137, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB4444_D3D_DX9_RT, 0x34344139, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_AU, 0xe436eb8c, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_AYUV, 0x56555941, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_NTSC_M, 0x0482dde2, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_B, 0x0482dde5, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_D, 0x0482dde6, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) @@ -239,6 +288,7 @@ OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_I, 0x0482dde9, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_M, 0x0482ddea, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_N, 0x0482ddeb, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) +OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_N_COMBO, 0x0482ddec, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_B, 0x0482ddf0, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_D, 0x0482ddf1, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_G, 0x0482ddf2, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) @@ -246,36 +296,147 @@ OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_K, 0x0482ddf4, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_K1, 0x0482ddf5, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_L, 0x0482ddf6, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) +OUR_GUID_ENTRY(MEDIASUBTYPE_Asf, 0x3db80f90, 0x9412, 0x11d1, 0xad, 0xed, 0x00, 0x00, 0xf8, 0x75, 0x4b, 0x99) +OUR_GUID_ENTRY(MEDIASUBTYPE_Avi, 0xe436eb88, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_CC_CONTAINER, 0x7ea626db, 0x54da, 0x437b, 0xbe, 0x9f, 0xf7, 0x30, 0x73, 0xad, 0xfa, 0x3c) +OUR_GUID_ENTRY(MEDIASUBTYPE_CFCC, 0x43434643, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_CLJR, 0x524a4c43, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_CLPL, 0x4c504c43, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_CPLA, 0x414c5043, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_DOLBY_AC3_SPDIF, 0x00000092, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_DRM_Audio, 0x00000009, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_DVB_SUBTITLES, 0x34ffcbc3, 0xd5b3, 0x4171, 0x90, 0x02, 0xd4, 0xc6, 0x03, 0x01, 0x69, 0x7f) +OUR_GUID_ENTRY(MEDIASUBTYPE_DVCS, 0x53435644, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_DVSD, 0x44535644, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_DssAudio, 0xa0af4f82, 0xe163, 0x11d0, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) +OUR_GUID_ENTRY(MEDIASUBTYPE_DssVideo, 0xa0af4f81, 0xe163, 0x11d0, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) +OUR_GUID_ENTRY(MEDIASUBTYPE_DtvCcData, 0xf52addaa, 0x36f0, 0x43f5, 0x95, 0xea, 0x6d, 0x86, 0x64, 0x84, 0x26, 0x2a) +OUR_GUID_ENTRY(MEDIASUBTYPE_H264, 0x34363248, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_IA44, 0x34344149, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_IEEE_FLOAT, 0x00000003, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_IF09, 0x39304649, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_IJPG, 0x47504a49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_IMC1, 0x31434d49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_IMC2, 0x32434d49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_IMC3, 0x33434d49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_IMC4, 0x34434d49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_ISDB_CAPTIONS, 0x059dd67d, 0x2e55, 0x4d41, 0x8d, 0x1b, 0x01, 0xf5, 0xe4, 0xf5, 0x06, 0x07) +OUR_GUID_ENTRY(MEDIASUBTYPE_ISDB_SUPERIMPOSE, 0x36dc6d28, 0xf1a6, 0x4216, 0x90, 0x48, 0x9c, 0xfc, 0xef, 0xeb, 0x5e, 0xba) +OUR_GUID_ENTRY(MEDIASUBTYPE_IYUV, 0x56555949, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_BytePair, 0x6e8d4a22, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) +OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_GOPPacket, 0x6e8d4a23, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) +OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_VBIRawData, 0x6e8d4a24, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) +OUR_GUID_ENTRY(MEDIASUBTYPE_MDVF, 0x4656444d, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_MJPG, 0x47504a4d, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Audio, 0xe436eb87, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1AudioPayload, 0x00000050, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Packet, 0xe436eb80, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Payload, 0xe436eb81, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1System, 0xe436eb84, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Video, 0xe436eb86, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1VideoCD, 0xe436eb85, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_NV11, 0x3131564e, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_NV12, 0x3231564e, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_NV24, 0x3432564e, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_None, 0xe436eb8e, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_Overlay, 0xe436eb7f, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_P010, 0x30313050, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_P016, 0x36313050, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_P208, 0x38303250, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_P210, 0x30313250, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_P216, 0x36313250, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_P408, 0x38304250, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_PCM, 0x00000001, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_PCMAudio_Obsolete, 0xe436eb8a, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_Plum, 0x6d756c50, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_QTJpeg, 0x6765706a, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_QTMovie, 0xe436eb89, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_QTRle, 0x20656c72, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_QTRpza, 0x617a7072, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_QTSmc, 0x20636d73, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_RAW_SPORT, 0x00000240, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB1, 0xe436eb78, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB16_D3D_DX7_RT, 0x36315237, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB16_D3D_DX9_RT, 0x36315239, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB24, 0xe436eb7d, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB32, 0xe436eb7e, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB32_D3D_DX7_RT, 0x32335237, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB32_D3D_DX9_RT, 0x32335239, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB4, 0xe436eb79, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB555, 0xe436eb7c, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB565, 0xe436eb7b, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_RGB8, 0xe436eb7a, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_S340, 0x30343353, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_S342, 0x32343353, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_SPDIF_TAG_241h, 0x00000241, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_TELETEXT, 0xf72a76e3, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(MEDIASUBTYPE_TVMJ, 0x4a4d5654, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_UYVY, 0x59565955, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_VBI, 0x663da43c, 0x03e8, 0x4e9a, 0x9c, 0xd5, 0xbf, 0x11, 0xed, 0x0d, 0xef, 0x76) +OUR_GUID_ENTRY(MEDIASUBTYPE_VPS, 0xa1b3f620, 0x9792, 0x4d8d, 0x81, 0xa4, 0x86, 0xaf, 0x25, 0x77, 0x20, 0x90) +OUR_GUID_ENTRY(MEDIASUBTYPE_VPVBI, 0x5a9b6a41, 0x1a22, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) +OUR_GUID_ENTRY(MEDIASUBTYPE_VPVideo, 0x5a9b6a40, 0x1a22, 0x11d1, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a) +OUR_GUID_ENTRY(MEDIASUBTYPE_WAKE, 0x454b4157, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_WAVE, 0xe436eb8b, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIASUBTYPE_WSS, 0x2791d576, 0x8e7a, 0x466f, 0x9e, 0x90, 0x5d, 0x3f, 0x30, 0x83, 0x73, 0x8b) +OUR_GUID_ENTRY(MEDIASUBTYPE_XDS, 0x01ca73e3, 0xdce6, 0x4575, 0xaf, 0xe1, 0x2b, 0xf1, 0xc9, 0x02, 0xca, 0xf3) +OUR_GUID_ENTRY(MEDIASUBTYPE_Y210, 0x30313259, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_Y211, 0x31313259, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_Y216, 0x36313259, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_Y411, 0x31313459, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_Y41P, 0x50313459, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_YUY2, 0x32595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_YUYV, 0x56595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_YV12, 0x32315659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_YVU9, 0x39555659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_YVYU, 0x55595659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_dv25, 0x35327664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_dv50, 0x30357664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_dvh1, 0x31687664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_dvhd, 0x64687664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_dvsd, 0x64737664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIASUBTYPE_dvsl, 0x6c737664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIATYPE_AUXLine21Data, 0x670aea80, 0x3a82, 0x11d0, 0xb7, 0x9b, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7) +OUR_GUID_ENTRY(MEDIATYPE_AUXTeletextPage, 0x11264acb, 0x37de, 0x4eba, 0x8c, 0x35, 0x7f, 0x04, 0xa1, 0xa6, 0x83, 0x32) OUR_GUID_ENTRY(MEDIATYPE_AnalogAudio, 0x0482dee1, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) -OUR_GUID_ENTRY(TIME_FORMAT_NONE, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00) -OUR_GUID_ENTRY(TIME_FORMAT_FRAME, 0x7b785570, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) -OUR_GUID_ENTRY(TIME_FORMAT_BYTE, 0x7b785571, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) -OUR_GUID_ENTRY(TIME_FORMAT_SAMPLE, 0x7b785572, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) -OUR_GUID_ENTRY(TIME_FORMAT_FIELD, 0x7b785573, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) -OUR_GUID_ENTRY(TIME_FORMAT_MEDIA_TIME, 0x7b785574, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) -OUR_GUID_ENTRY(AMPROPSETID_Pin, 0x9b00f101, 0x1567, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(PIN_CATEGORY_CAPTURE, 0xfb6c4281, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) -OUR_GUID_ENTRY(PIN_CATEGORY_PREVIEW, 0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(MEDIATYPE_AnalogVideo, 0x0482dde1, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) +OUR_GUID_ENTRY(MEDIATYPE_Audio, 0x73647561, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIATYPE_CC_CONTAINER, 0xaeb312e9, 0x3357, 0x43ca, 0xb7, 0x01, 0x97, 0xec, 0x19, 0x8e, 0x2b, 0x62) +OUR_GUID_ENTRY(MEDIATYPE_DTVCCData, 0xfb77e152, 0x53b2, 0x499c, 0xb4, 0x6b, 0x50, 0x9f, 0xc3, 0x3e, 0xdf, 0xd7) +OUR_GUID_ENTRY(MEDIATYPE_File, 0x656c6966, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIATYPE_Interleaved, 0x73766169, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIATYPE_LMRT, 0x74726c6d, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIATYPE_MPEG1SystemStream, 0xe436eb82, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIATYPE_MSTVCaption, 0xb88b8a89, 0xb049, 0x4c80, 0xad, 0xcf, 0x58, 0x98, 0x98, 0x5e, 0x22, 0xc1) +OUR_GUID_ENTRY(MEDIATYPE_Midi, 0x7364696d, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIATYPE_ScriptCommand, 0x73636d64, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIATYPE_Stream, 0xe436eb83, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) +OUR_GUID_ENTRY(MEDIATYPE_Text, 0x73747874, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIATYPE_Timecode, 0x0482dee3, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) +OUR_GUID_ENTRY(MEDIATYPE_URL_STREAM, 0x736c7275, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) +OUR_GUID_ENTRY(MEDIATYPE_VBI, 0xf72a76e1, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(MEDIATYPE_Video, 0x73646976, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71) OUR_GUID_ENTRY(PIN_CATEGORY_ANALOGVIDEOIN, 0xfb6c4283, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) -OUR_GUID_ENTRY(PIN_CATEGORY_VBI, 0xfb6c4284, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) -OUR_GUID_ENTRY(PIN_CATEGORY_VIDEOPORT, 0xfb6c4285, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) -OUR_GUID_ENTRY(PIN_CATEGORY_NABTS, 0xfb6c4286, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) -OUR_GUID_ENTRY(PIN_CATEGORY_EDS, 0xfb6c4287, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) -OUR_GUID_ENTRY(PIN_CATEGORY_TELETEXT, 0xfb6c4288, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(PIN_CATEGORY_CAPTURE, 0xfb6c4281, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) OUR_GUID_ENTRY(PIN_CATEGORY_CC, 0xfb6c4289, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(PIN_CATEGORY_EDS, 0xfb6c4287, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(PIN_CATEGORY_NABTS, 0xfb6c4286, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(PIN_CATEGORY_PREVIEW, 0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) OUR_GUID_ENTRY(PIN_CATEGORY_STILL, 0xfb6c428a, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(PIN_CATEGORY_TELETEXT, 0xfb6c4288, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) OUR_GUID_ENTRY(PIN_CATEGORY_TIMECODE, 0xfb6c428b, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(PIN_CATEGORY_VBI, 0xfb6c4284, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) +OUR_GUID_ENTRY(PIN_CATEGORY_VIDEOPORT, 0xfb6c4285, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) OUR_GUID_ENTRY(PIN_CATEGORY_VIDEOPORT_VBI, 0xfb6c428c, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba) -OUR_GUID_ENTRY(LOOK_UPSTREAM_ONLY, 0xac798be0, 0x98e3, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(LOOK_DOWNSTREAM_ONLY, 0xac798be1, 0x98e3, 0x11d1, 0xb3, 0xf1, 0x00, 0xaa, 0x00, 0x37, 0x61, 0xc5) -OUR_GUID_ENTRY(CLSID_TVTunerFilterPropertyPage, 0x266eee41, 0x6c63, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65) -OUR_GUID_ENTRY(CLSID_CrossbarFilterPropertyPage, 0x71f96461, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) -OUR_GUID_ENTRY(CLSID_TVAudioFilterPropertyPage, 0x71f96463, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) -OUR_GUID_ENTRY(CLSID_VideoProcAmpPropertyPage, 0x71f96464, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) -OUR_GUID_ENTRY(CLSID_CameraControlPropertyPage, 0x71f96465, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) -OUR_GUID_ENTRY(CLSID_AnalogVideoDecoderPropertyPage, 0x71f96466, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) -OUR_GUID_ENTRY(CLSID_VideoStreamConfigPropertyPage, 0x71f96467, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) -OUR_GUID_ENTRY(CLSID_VideoMixingRenderer, 0xb87beb7b, 0x8d29, 0x423f, 0xae, 0x4d, 0x65, 0x82, 0xc1, 0x01, 0x75, 0xac) -OUR_GUID_ENTRY(CLSID_VideoMixingRenderer9, 0x51b4abf3, 0x748f, 0x4e3b, 0xa2, 0x76, 0xc8, 0x28, 0x33, 0x0e, 0x92, 0x6a) +OUR_GUID_ENTRY(TIME_FORMAT_BYTE, 0x7b785571, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) +OUR_GUID_ENTRY(TIME_FORMAT_FIELD, 0x7b785573, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) +OUR_GUID_ENTRY(TIME_FORMAT_FRAME, 0x7b785570, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) +OUR_GUID_ENTRY(TIME_FORMAT_MEDIA_TIME, 0x7b785574, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) +OUR_GUID_ENTRY(TIME_FORMAT_NONE, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00) +OUR_GUID_ENTRY(TIME_FORMAT_SAMPLE, 0x7b785572, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6) +OUR_GUID_ENTRY(UUID_UdriTagTables, 0xe1b98d74, 0x9778, 0x4878, 0xb6, 0x64, 0xeb, 0x20, 0x20, 0x36, 0x4d, 0x88) +OUR_GUID_ENTRY(UUID_WMDRMTagTables, 0x5dcd1101, 0x9263, 0x45bb, 0xa4, 0xd5, 0xc4, 0x15, 0xab, 0x8c, 0x58, 0x9c) + +#include #undef OUR_GUID_ENTRY diff -Nru wine1.7-1.7.18/include/wine/wined3d.h wine1.7-1.7.19/include/wine/wined3d.h --- wine1.7-1.7.18/include/wine/wined3d.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/include/wine/wined3d.h 2014-05-16 19:06:48.000000000 +0000 @@ -2261,6 +2261,7 @@ ULONG __cdecl wined3d_palette_decref(struct wined3d_palette *palette); HRESULT __cdecl wined3d_palette_get_entries(const struct wined3d_palette *palette, DWORD flags, DWORD start, DWORD count, PALETTEENTRY *entries); +void __cdecl wined3d_palette_apply_to_dc(const struct wined3d_palette *palette, HDC dc); ULONG __cdecl wined3d_palette_incref(struct wined3d_palette *palette); HRESULT __cdecl wined3d_palette_set_entries(struct wined3d_palette *palette, DWORD flags, DWORD start, DWORD count, const PALETTEENTRY *entries); @@ -2397,7 +2398,6 @@ HRESULT __cdecl wined3d_surface_get_blt_status(const struct wined3d_surface *surface, DWORD flags); HRESULT __cdecl wined3d_surface_get_flip_status(const struct wined3d_surface *surface, DWORD flags); HRESULT __cdecl wined3d_surface_get_overlay_position(const struct wined3d_surface *surface, LONG *x, LONG *y); -struct wined3d_palette * __cdecl wined3d_surface_get_palette(const struct wined3d_surface *surface); void * __cdecl wined3d_surface_get_parent(const struct wined3d_surface *surface); DWORD __cdecl wined3d_surface_get_pitch(const struct wined3d_surface *surface); DWORD __cdecl wined3d_surface_get_priority(const struct wined3d_surface *surface); diff -Nru wine1.7-1.7.18/include/wininet.h wine1.7-1.7.19/include/wininet.h --- wine1.7-1.7.18/include/wininet.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/include/wininet.h 2014-05-16 19:06:48.000000000 +0000 @@ -1720,6 +1720,36 @@ BOOL WINAPI InternetGetConnectedStateExW(LPDWORD, LPWSTR, DWORD, DWORD); #define InternetGetConnectedStateEx WINELIB_NAME_AW(InternetGetConnectedStateEx) +typedef struct AutoProxyHelperVtbl +{ + BOOL (WINAPI *IsResolvable)(LPSTR); + DWORD (WINAPI *GetIPAddress)(LPSTR, LPDWORD); + DWORD (WINAPI *ResolveHostName)(LPSTR, LPSTR, LPDWORD); + BOOL (WINAPI *IsInNet)(LPSTR, LPSTR, LPSTR); + BOOL (WINAPI *IsResolvableEx)(LPSTR); + DWORD (WINAPI *GetIPAddressEx)(LPSTR, LPDWORD); + DWORD (WINAPI *ResolveHostNameEx)(LPSTR, LPSTR, LPDWORD); + BOOL (WINAPI *IsInNetEx)(LPSTR, LPSTR); + DWORD (WINAPI *SortIpList)(LPSTR, LPSTR, LPDWORD); +} AutoProxyHelperVtbl; + +typedef struct AutoProxyHelperFunctions +{ + const struct AutoProxyHelperVtbl *lpVtbl; +} AutoProxyHelperFunctions; + +typedef struct +{ + DWORD dwStructSize; + LPSTR lpszScriptBuffer; + DWORD dwScriptBufferSize; +} AUTO_PROXY_SCRIPT_BUFFER, *LPAUTO_PROXY_SCRIPT_BUFFER; + +typedef BOOL (CALLBACK *pfnInternetDeInitializeAutoProxyDll)(LPSTR, DWORD); +typedef BOOL (CALLBACK *pfnInternetGetProxyInfo)(LPCSTR, DWORD, LPSTR, DWORD, LPSTR *, LPDWORD); +typedef BOOL (CALLBACK *pfnInternetInitializeAutoProxyDll)(DWORD, LPSTR, LPSTR, AutoProxyHelperFunctions *, + LPAUTO_PROXY_SCRIPT_BUFFER); + BOOL WINAPI InternetInitializeAutoProxyDll(DWORD); BOOL WINAPI DetectAutoProxyUrl(LPSTR, DWORD, DWORD); diff -Nru wine1.7-1.7.18/include/winnt.h wine1.7-1.7.19/include/winnt.h --- wine1.7-1.7.18/include/winnt.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/include/winnt.h 2014-05-16 19:06:48.000000000 +0000 @@ -4533,31 +4533,33 @@ #define TIMER_MODIFY_STATE 0x0002 #define TIMER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) -#define PROCESS_TERMINATE 0x0001 -#define PROCESS_CREATE_THREAD 0x0002 -#define PROCESS_VM_OPERATION 0x0008 -#define PROCESS_VM_READ 0x0010 -#define PROCESS_VM_WRITE 0x0020 -#define PROCESS_DUP_HANDLE 0x0040 -#define PROCESS_CREATE_PROCESS 0x0080 -#define PROCESS_SET_QUOTA 0x0100 -#define PROCESS_SET_INFORMATION 0x0200 -#define PROCESS_QUERY_INFORMATION 0x0400 -#define PROCESS_SUSPEND_RESUME 0x0800 +#define PROCESS_TERMINATE 0x0001 +#define PROCESS_CREATE_THREAD 0x0002 +#define PROCESS_VM_OPERATION 0x0008 +#define PROCESS_VM_READ 0x0010 +#define PROCESS_VM_WRITE 0x0020 +#define PROCESS_DUP_HANDLE 0x0040 +#define PROCESS_CREATE_PROCESS 0x0080 +#define PROCESS_SET_QUOTA 0x0100 +#define PROCESS_SET_INFORMATION 0x0200 +#define PROCESS_QUERY_INFORMATION 0x0400 +#define PROCESS_SUSPEND_RESUME 0x0800 #define PROCESS_QUERY_LIMITED_INFORMATION 0x1000 +#define PROCESS_SET_LIMITED_INFORMATION 0x2000 #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xffff) -#define THREAD_TERMINATE 0x0001 -#define THREAD_SUSPEND_RESUME 0x0002 -#define THREAD_GET_CONTEXT 0x0008 -#define THREAD_SET_CONTEXT 0x0010 -#define THREAD_SET_INFORMATION 0x0020 -#define THREAD_QUERY_INFORMATION 0x0040 -#define THREAD_SET_THREAD_TOKEN 0x0080 -#define THREAD_IMPERSONATE 0x0100 -#define THREAD_DIRECT_IMPERSONATION 0x0200 -#define THREAD_SET_LIMITED_INFORMATION 0x0400 -#define THREAD_QUERY_LIMITED_INFORMATION 0x0800 +#define THREAD_TERMINATE 0x0001 +#define THREAD_SUSPEND_RESUME 0x0002 +#define THREAD_GET_CONTEXT 0x0008 +#define THREAD_SET_CONTEXT 0x0010 +#define THREAD_SET_INFORMATION 0x0020 +#define THREAD_QUERY_INFORMATION 0x0040 +#define THREAD_SET_THREAD_TOKEN 0x0080 +#define THREAD_IMPERSONATE 0x0100 +#define THREAD_DIRECT_IMPERSONATION 0x0200 +#define THREAD_SET_LIMITED_INFORMATION 0x0400 +#define THREAD_QUERY_LIMITED_INFORMATION 0x0800 +#define THREAD_RESUME 0x1000 #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xffff) #define THREAD_BASE_PRIORITY_LOWRT 15 diff -Nru wine1.7-1.7.18/po/ar.po wine1.7-1.7.19/po/ar.po --- wine1.7-1.7.18/po/ar.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/ar.po 2014-05-16 19:06:48.000000000 +0000 @@ -6841,266 +6841,468 @@ msgid "Wine Video 1 video codec" msgstr "ترميز واين المرئي الأول" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "عنصر غير معروف" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "شريط العنوان" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "شريط القوائم" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "شريط التمرير" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "مقبض" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "صوت" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "المؤشر" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "إنشاء" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "تنبيه" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "نافذة" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "عميل" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "قائمة منبثقة" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "عنصر قائمة" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "أداة النصيحة" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "تطبيق" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "مستند" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "جزء" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "تخطيط" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "حوار" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "حد" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "تجميع" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "فاصل" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "شريط الأدوات" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "شريط الحالة" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "جدول" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "ترويسة العمود" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "ترويسة السطر" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "عمود" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "سطر" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "خلية" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "رابط" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "نافذة مساعدة" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "محرف" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "قائمة" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "عنصر القائمة" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "خط خارجي" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "عنصر خط خارجي" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "لسان الصفحة" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "صفحة الملكية" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "دليل" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "رسومي" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "نص ساكن" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "نص" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "زر ضغط" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "زر فحص" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "زر اختيار" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "صندوق اختيار" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "منزلق" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "شريط التقدم" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "طلب" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "حقل مفتاح ساخن" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "سحاب" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "صندوق مد" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "بياني" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "حركي" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "معادلة" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "زر منزلق" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "زر قائمة" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "زر شبكة منزلقة" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "مساحة بيضاء" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "قائمة لسان الصفحة" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "ساعة" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "زر تقسيم" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "عنوان IP" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "زر خط خارجي" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "عادي" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "غير متوفر" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "اختر" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "متوقف" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "م&ضغوط" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "مختلط" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "القراءة ف&قط" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "عنصر ساخن" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "الافتراضيات" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "حركي" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "م&فعل" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "م&فعل" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "متوقف" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "جدول" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "رابط" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "جدول" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "اختر ملفًا من فضلك." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "تنبيه" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "تنبيه" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "تنبيه" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "محمي ضد الكتابة.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "صحيح" diff -Nru wine1.7-1.7.18/po/bg.po wine1.7-1.7.19/po/bg.po --- wine1.7-1.7.18/po/bg.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/bg.po 2014-05-16 19:06:48.000000000 +0000 @@ -6957,274 +6957,455 @@ msgid "Wine Video 1 video codec" msgstr "Wine MS-RLE видео кодек" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 #, fuzzy msgid "scroll bar" msgstr "Превърти тук" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 #, fuzzy msgid "window" msgstr "Отвори в &нов прозорец" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 #, fuzzy msgid "application" msgstr "Wine Application Uninstaller" -#: oleacc.rc:45 +#: oleacc.rc:46 #, fuzzy msgid "document" msgstr "HTML документ" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 #, fuzzy msgid "separator" msgstr "Разделител" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 #, fuzzy msgid "table" msgstr "Table" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 #, fuzzy msgid "column" msgstr "&Колона" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 #, fuzzy msgid "animation" msgstr "Информация" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +#, fuzzy +msgctxt "object state" +msgid "normal" +msgstr "На&пред" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Size available" +msgctxt "object state" +msgid "unavailable" +msgstr "Оставащ размер" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Избери" + +#: oleacc.rc:100 +#, fuzzy +msgctxt "object state" +msgid "focused" +msgstr "Преустановено; " + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Само за &четене" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +msgctxt "object state" +msgid "default" +msgstr "Системен път" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +msgctxt "object state" +msgid "animated" +msgstr "Информация" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +msgctxt "object state" +msgid "sizeable" +msgstr "&Таблица" + +#: oleacc.rc:116 +#, fuzzy +msgctxt "object state" +msgid "moveable" +msgstr "&Таблица" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +msgctxt "object state" +msgid "focusable" +msgstr "Преустановено; " + +#: oleacc.rc:119 +#, fuzzy +msgctxt "object state" +msgid "selectable" +msgstr "Table" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +msgctxt "object state" +msgid "multi selectable" +msgstr "Table" + +#: oleacc.rc:123 +#, fuzzy +msgctxt "object state" +msgid "extended selectable" +msgstr "Table" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert low" +msgstr "Тонера на привършване; " + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert high" +msgstr "Тонера на привършване; " + +#: oleacc.rc:127 +#, fuzzy +msgctxt "object state" +msgid "protected" +msgstr "Файлът не е намерен" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Истина" diff -Nru wine1.7-1.7.18/po/ca.po wine1.7-1.7.19/po/ca.po --- wine1.7-1.7.18/po/ca.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/ca.po 2014-05-16 19:06:48.000000000 +0000 @@ -6950,266 +6950,468 @@ msgid "Wine Video 1 video codec" msgstr "Còdec de vídeo Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "objecte desconegut" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "barra de títol" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "barra de menú" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "barra de desplaçament" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "agafada" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "so" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "cursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "signe d'intercalació" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "alerta" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "finestra" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "client" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "menú emergent" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "element de menú" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "indicador de funció" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "aplicació" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "document" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "panell" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "gràfic" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "diàleg" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "vora" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "agrupament" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "separador" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "barra d'eines" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "barra d'estat" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "taula" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "capçalera de columna" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "capçalera de fila" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "columna" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "fila" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "cèl·lula" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "enllaç" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "bafarada d'ajuda" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "caràcter" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "llista" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "element de llista" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "esquema" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "element d'esquema" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "tabulador de pàgina" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "pàgina de propietats" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indicador" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "gràfic" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "text estàtic" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "text" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "botó" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "casella de verificació" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "botó de ràdio" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "quadre combinat" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "llista desplegable" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "barra de progrés" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "disc de marcar" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "camp amb tecla d'accés directe" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "control lliscant" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "spinner" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagrama" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animació" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "equació" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "botó desplegable" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "botó de menú" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "botó desplegable de graella" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "espai en blanc" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "llista de tabuladors de pàgina" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "rellotge" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "botó dividit" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "adreça IP" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "botó d'esquema" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normal" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "No Disponible" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Selecciona" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Pausat" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "&Comprimit" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Mixt" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Només Lectura" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Element Ressaltat" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Predeterminats" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animació" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&habilita" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&habilita" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Pausat" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "taula" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "enllaç" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "taula" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Si us plau, seleccioneu un fitxer." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "alerta" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "alerta" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "alerta" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Protegit contra escriptura.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Veritable" diff -Nru wine1.7-1.7.18/po/cs.po wine1.7-1.7.19/po/cs.po --- wine1.7-1.7.18/po/cs.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/cs.po 2014-05-16 19:06:48.000000000 +0000 @@ -6777,266 +6777,468 @@ msgid "Wine Video 1 video codec" msgstr "Videokodek Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "neznámý objekt" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "Titulní lišta" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "lišta nabídek" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "lišta posuvníků" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "zvuk" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "kurzor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "stříška" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "výstraha" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "okno" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "klient" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "vyskakovací nabídka" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "položka nabídky" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "aplikace" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "dokument" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "panel" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "graf" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "okraj" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "seskupování" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "oddělovač" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "lišta nástrojů" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "stavový řádek" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabulka" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "hlavička sloupce" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "hlavička řádku" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "sloupec" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "řádek" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "buňka" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "odkaz" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "znak" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "seznam" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "položka seznamu" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "Obrys" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "záložka stránky" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indikátor" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafika" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "Něměnný text" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "zaškrtávátko" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "ukazatel průběhu" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "posuvník" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animace" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "rovnice" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "tlačítko nabídky" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "hodiny" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP adresa" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normální" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Nedostupné" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Vybrat" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Pozastaveno" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "Komprimovaný" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Smíšené" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Pouze pro čtení" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Prvek pod ukazatelem" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Výchozí nastavení" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animace" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "P&ovolit" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "P&ovolit" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Pozastaveno" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabulka" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "odkaz" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabulka" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Vyberte prosím soubor." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "výstraha" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "výstraha" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "výstraha" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Chráněno proti zápisu.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Pravda" diff -Nru wine1.7-1.7.18/po/da.po wine1.7-1.7.19/po/da.po --- wine1.7-1.7.18/po/da.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/da.po 2014-05-16 19:06:48.000000000 +0000 @@ -6917,266 +6917,468 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 videokodeks" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "Ukendt objekt" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "Titel &linje" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "Menu bar" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "Rullebar" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "Greb" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "Lyd" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "Markør" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "Karet" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "Alarm" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "Vind&ue" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "Klient" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "Popup menu" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "Menupunkt" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "Tooltip" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "Applikation" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "Dokument" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "Rude" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "diagram" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "Dialog" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "Kant" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "Gruppering" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "Separator" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "Toolbar" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "&Statuslinje" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "Tabel" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "Kolonnehoved" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "Rækkehoved" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "&Kolonne" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "Række" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "Celle" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "Link" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "Hjælpe ballon" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "Tegn" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "Liste" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "Listepunkt" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "Skitse" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "Skitsepunkt" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "Sidefane" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "Egenskab side" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "Indikator" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "Grafik" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "Statisk tekst" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "&Hent tekst" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "Tryk knap" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "Tjek knap" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "Radio knap" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "Kombi boks" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "Dropdown" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "Fremgangsbar" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "Ring" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "Hotkey felt" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "Slider" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "Spin boks" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "Diagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "Animation" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "Ligning" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "Dropdown knap" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "Menu knap" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "Gitter dropdown knap" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "Mellemrum" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "Sidefane liste" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "Ur" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "Opdel knap" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP adresse" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "Skitse knap" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normal" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Utilgængelig" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Vælg" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "&Pauset" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "Kompr&imeret" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Blandet" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Sk&rivebeskyttet" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Markeret element" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Standarder" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "Animation" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&Aktiver" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&Aktiver" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "&Pauset" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "Tabel" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "Link" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "Tabel" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Vælg venligst en fil." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "Alarm" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "Alarm" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "Alarm" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Skrive beskyttet.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Sand" diff -Nru wine1.7-1.7.18/po/de.po wine1.7-1.7.19/po/de.po --- wine1.7-1.7.18/po/de.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/de.po 2014-05-16 19:06:48.000000000 +0000 @@ -6868,266 +6868,468 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 Video Codec" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "unbekanntes Objekt" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "Titelleiste" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "Menüleiste" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "Bildlaufleiste" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "Fangpunkt" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "Klang" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "Cursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "Caret-Zeichen" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "Warnung" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "Fenster" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "Client" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "Kontextmenü" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "Menüelement" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "Tooltip" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "Anwendung" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "Dokument" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "Ausschnitt" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "Diagramm" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "Dialog" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "Rahmen" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "Gruppierung" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "Trennlinie" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "Symbolleiste" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "Statusleiste" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "Tabelle" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "Spaltenkopf" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "Zeilenkopf" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "Spalte" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "Zeile" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "Zelle" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "Link" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "Hilfesprechblase" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "Assistent" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "Liste" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "Listenelement" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "Gliederung" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "Gliederungselement" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "Registerkarte" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "Eigenschaftenseite" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "Anzeige" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "Grafik" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "Statischer Text" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "Text" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "Schaltfläche" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "Kontrollkästchen" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "Optionskästchen" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "Kombinationsfeld" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "Dropdown" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "Fortschrittsanzeige" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "wählen" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "Schnellzugriffsfeld" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "Schieberegler" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "Drehfeld" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "Diagramm" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "Animation" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "Gleichung" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "Dropdown Schaltfläche" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "Menü Schaltfläche" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "Raster Dropdown Schaltfläche" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "Leerzeichen" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "Register" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "Uhr" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "Split-Knopf" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP-Adresse" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "Gliederung Schaltfläche" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Mittel" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Nicht verfügbar" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Auswählen" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Angehalten" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "&Komprimiert" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Mixed" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Schreibgeschützt" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Heiß verfolgtes Element" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Standards" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "Animation" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&aktiv" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&aktiv" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Angehalten" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "Tabelle" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "Link" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "Tabelle" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Bitte wählen Sie eine Datei." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "Warnung" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "Warnung" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "Warnung" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Schreibgeschützt.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Wahr" diff -Nru wine1.7-1.7.18/po/el.po wine1.7-1.7.19/po/el.po --- wine1.7-1.7.18/po/el.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/el.po 2014-05-16 19:06:48.000000000 +0000 @@ -6848,269 +6848,444 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 #, fuzzy msgid "application" msgstr "Επιλογές" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 #, fuzzy msgid "separator" msgstr "Διαχωριστής" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 #, fuzzy msgid "animation" msgstr "Επιλογές" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Not available; " +msgctxt "object state" +msgid "unavailable" +msgstr "ΜΗ διαθέσιμος, " + +#: oleacc.rc:99 +#, fuzzy +msgctxt "object state" +msgid "selected" +msgstr "Το αρχείο δε βρέθηκε" + +#: oleacc.rc:100 +#, fuzzy +msgctxt "object state" +msgid "focused" +msgstr "Σταματημένος; " + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Μόνο για Ανάγνωση" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +msgctxt "object state" +msgid "default" +msgstr "Προεπιλεγμένος εκτυπωτής; " + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +msgctxt "object state" +msgid "animated" +msgstr "Επιλογές" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +msgctxt "object state" +msgid "focusable" +msgstr "Σταματημένος; " + +#: oleacc.rc:119 +#, fuzzy +msgctxt "object state" +msgid "selectable" +msgstr "Το αρχείο δε βρέθηκε" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert low" +msgstr "Τόνερ χαμηλό, " + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert high" +msgstr "Τόνερ χαμηλό, " + +#: oleacc.rc:127 +#, fuzzy +msgctxt "object state" +msgid "protected" +msgstr "Το αρχείο δε βρέθηκε" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Αληθές" diff -Nru wine1.7-1.7.18/po/en.po wine1.7-1.7.19/po/en.po --- wine1.7-1.7.18/po/en.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/en.po 2014-05-16 19:06:48.000000000 +0000 @@ -6856,266 +6856,426 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 video codec" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "unknown object" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "title bar" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "menu bar" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "scroll bar" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "grip" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "sound" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "cursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "caret" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "alert" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "window" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "client" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "popup menu" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "menu item" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "tool tip" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "application" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "document" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "pane" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "chart" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "dialog" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "border" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "grouping" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "separator" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "tool bar" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "status bar" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "table" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "column header" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "row header" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "column" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "row" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "cell" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "link" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "help balloon" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "character" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "list" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "list item" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "outline" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "outline item" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "page tab" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "property page" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indicator" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "graphic" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "static text" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "text" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "push button" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "check button" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "radio button" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "combo box" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "drop down" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "progress bar" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "dial" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "hot key field" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "slider" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "spin box" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animation" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "equation" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "drop down button" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "menu button" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "grid drop down button" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "white space" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "page tab list" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "clock" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "split button" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP address" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "outline button" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "normal" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "unavailable" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "selected" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "focused" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "pressed" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "checked" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "mixed" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "read only" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "hot tracked" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "default" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "expanded" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "collapsed" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "busy" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "floating" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "marqueed" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "animated" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "invisible" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "offscreen" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "sizeable" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "moveable" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "self voicing" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "focusable" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "selectable" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "linked" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "traversed" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "multi selectable" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "extended selectable" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "alert low" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "alert medium" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "alert high" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "protected" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "has popup" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "True" diff -Nru wine1.7-1.7.18/po/en_US.po wine1.7-1.7.19/po/en_US.po --- wine1.7-1.7.18/po/en_US.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/en_US.po 2014-05-16 19:06:48.000000000 +0000 @@ -6856,266 +6856,426 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 video codec" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "unknown object" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "title bar" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "menu bar" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "scroll bar" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "grip" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "sound" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "cursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "caret" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "alert" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "window" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "client" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "popup menu" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "menu item" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "tool tip" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "application" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "document" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "pane" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "chart" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "dialog" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "border" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "grouping" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "separator" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "tool bar" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "status bar" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "table" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "column header" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "row header" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "column" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "row" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "cell" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "link" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "help balloon" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "character" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "list" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "list item" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "outline" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "outline item" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "page tab" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "property page" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indicator" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "graphic" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "static text" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "text" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "push button" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "check button" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "radio button" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "combo box" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "drop down" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "progress bar" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "dial" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "hot key field" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "slider" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "spin box" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animation" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "equation" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "drop down button" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "menu button" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "grid drop down button" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "white space" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "page tab list" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "clock" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "split button" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP address" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "outline button" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "normal" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "unavailable" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "selected" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "focused" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "pressed" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "checked" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "mixed" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "read only" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "hot tracked" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "default" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "expanded" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "collapsed" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "busy" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "floating" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "marqueed" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "animated" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "invisible" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "offscreen" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "sizeable" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "moveable" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "self voicing" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "focusable" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "selectable" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "linked" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "traversed" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "multi selectable" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "extended selectable" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "alert low" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "alert medium" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "alert high" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "protected" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "has popup" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "True" diff -Nru wine1.7-1.7.18/po/eo.po wine1.7-1.7.19/po/eo.po --- wine1.7-1.7.18/po/eo.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/eo.po 2014-05-16 19:06:48.000000000 +0000 @@ -6748,266 +6748,458 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "Titolzono" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "fenestro" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "programo" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "apartigilo" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animaciaĵo" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "horloĝo" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Ordinara" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Size available" +msgctxt "object state" +msgid "unavailable" +msgstr "Disponebla Spaco" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Elekti" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Paŭzinta" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Nur &legebla" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Defaŭltojn" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animaciaĵo" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&aktivigi" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&aktivigi" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Paŭzinta" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "&Select all" +msgctxt "object state" +msgid "selectable" +msgstr "&Elekton ĉion" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "&Select all" +msgctxt "object state" +msgid "multi selectable" +msgstr "&Elekton ĉion" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "&Select all" +msgctxt "object state" +msgid "extended selectable" +msgstr "&Elekton ĉion" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert low" +msgstr "Farbopulvora nivelo estas nesufiĉa; " + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert high" +msgstr "Farbopulvora nivelo estas nesufiĉa; " + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Import Selected" +msgctxt "object state" +msgid "protected" +msgstr "Importaĵo elektita" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Vere" diff -Nru wine1.7-1.7.18/po/es.po wine1.7-1.7.19/po/es.po --- wine1.7-1.7.18/po/es.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/es.po 2014-05-16 19:06:48.000000000 +0000 @@ -6932,266 +6932,468 @@ msgid "Wine Video 1 video codec" msgstr "Códec de vídeo Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "objeto desconocido" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "barra de título" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "barra de menú" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "barra de desplazamiento" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "agarre" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "sonido" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "cursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "cursor de texto" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "alerta" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "ventana" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "cliente" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "menú emergente" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "elemento de menú" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "leyenda informativa" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "aplicación" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "documento" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "panel" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "gráfico" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "diálogo" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "borde" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "agrupamiento" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "separador" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "barra de herramientas" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "barra de estado" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabla" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "encabezado de la columna" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "encabezado de la fila" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "columna" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "fila" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "celda" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "enlace" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "globo de ayuda" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "carácter" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "lista" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "elemento de lista" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "esquema" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "elemento de esquema" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "pestaña" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "página de propiedades" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indicador" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "gráfico" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "texto estático" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "texto" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "botón presionable" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "botón marcable" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "botón de radio" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "lista desplegable" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "desplegable" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "barra de progreso" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "marcador" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "campo de tecla rápida" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "deslizador" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "control numérico" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagrama" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animación" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "ecuación" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "botón con desplegable" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "botón de menú" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "botón desplegable en parrilla" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "espacio en blanco" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "lista de pestañas" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "reloj" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "botón dividido" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "dirección IP" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "botón con contorno" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normal" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "No disponible" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Seleccionar" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Pausado" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "&Comprimido" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Mezclado" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Sólo &lectura" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Elemento resaltado" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Configuraciones por defecto" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animación" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&habilitar" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&habilitar" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Pausado" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabla" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "enlace" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabla" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Seleccione un fichero por favor." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "alerta" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "alerta" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "alerta" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Protegido contra escritura.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Verdadero" diff -Nru wine1.7-1.7.18/po/fa.po wine1.7-1.7.19/po/fa.po --- wine1.7-1.7.18/po/fa.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/fa.po 2014-05-16 19:06:48.000000000 +0000 @@ -6837,267 +6837,435 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 #, fuzzy msgid "animation" msgstr "اطلاعات" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +#, fuzzy +msgctxt "object state" +msgid "unavailable" +msgstr "اطلاعات" + +#: oleacc.rc:99 +#, fuzzy +msgctxt "object state" +msgid "selected" +msgstr "انتخاب &همه\tCtrl+A" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +msgctxt "object state" +msgid "default" +msgstr "صفحه &p" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +msgctxt "object state" +msgid "animated" +msgstr "اطلاعات" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +msgctxt "object state" +msgid "sizeable" +msgstr "انتخاب &همه\tCtrl+A" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "" + +#: oleacc.rc:119 +#, fuzzy +msgctxt "object state" +msgid "selectable" +msgstr "انتخاب &همه\tCtrl+A" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +msgctxt "object state" +msgid "multi selectable" +msgstr "انتخاب &همه\tCtrl+A" + +#: oleacc.rc:123 +#, fuzzy +msgctxt "object state" +msgid "extended selectable" +msgstr "انتخاب &همه\tCtrl+A" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "" diff -Nru wine1.7-1.7.18/po/fi.po wine1.7-1.7.19/po/fi.po --- wine1.7-1.7.18/po/fi.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/fi.po 2014-05-16 19:06:48.000000000 +0000 @@ -6852,266 +6852,426 @@ msgid "Wine Video 1 video codec" msgstr "Winen Video 1 -videokoodekki" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "tuntematon objekti" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "otsikkopalkki" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "valikko" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "vierityspalkki" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "kahva" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "ääni" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "kursori" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "kohdistin" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "hälytys" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "ikkuna" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "asiakas" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "ponnahdusvalikko" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "valikon kohta" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "työkaluvihje" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "sovellus" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "dokumentti" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "ruutu" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "kuvaaja" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "dialogi" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "reunus" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "ryhmittely" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "erotin" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "työkalupalkki" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "tilapalkki" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "taulukko" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "sarakkeen otsikko" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "rivin otsikko" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "sarake" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "rivi" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "solu" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "linkki" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "ohjekupla" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "merkki" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "lista" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "listan jäsen" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "runko" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "rungon kohta" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "välilehti" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "ominaisuussivu" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "osoitin" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "kuva" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "staattinen teksti" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "teksti" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "painike" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "valintapainike" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "radiopainike" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "yhdistelmälaatikko" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "pudotusvalikko" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "etenemispalkki" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "säädin" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "pikanäppäinkenttä" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "liukusäädin" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "askelluskenttä" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "kuvaaja" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animaatio" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "yhtälö" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "pudotusvalikon painike" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "valikkopainike" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "ruudukon avaava painike" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "tyhjä tila" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "välilehtilista" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "kello" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "jaettu painike" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP-osoite" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "rungon painike" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "normaali" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "ei käytettävissä" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "valittu" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "kohdistettu" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "painettu" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "valittu" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "osittainen" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "vain luku" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "osoitettu" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "oletus" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "laajennettu" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "kutistettu" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "varattu" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "kelluva" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "vierivä" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "animoitu" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "näkymätön" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "poissa ruudulta" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "koko muutettava" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "siirrettävä" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "itse puhuva" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "kohdistettava" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "valittava" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "linkitetty" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "käyty" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "monivalittava" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "laajentaen valittava" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "vähäinen hälytys" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "keskitason hälytys" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "tärkeä hälytys" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "suojattu" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "sisältää ponnahdusvalikon tai -ikkunan" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Tosi" diff -Nru wine1.7-1.7.18/po/fr.po wine1.7-1.7.19/po/fr.po --- wine1.7-1.7.18/po/fr.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/fr.po 2014-05-16 19:06:48.000000000 +0000 @@ -6890,266 +6890,468 @@ msgid "Wine Video 1 video codec" msgstr "Codec vidéo Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "objet inconnu" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "barre de titre" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "barre de menus" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "barre de défilement" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "poignée" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "son" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "curseur" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "curseur texte" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "alerte" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "fenêtre" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "client" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "menu contextuel" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "élément de menu" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "infobulle" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "application" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "document" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "panneau" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "diagramme" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "boîte de dialogue" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "bordure" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "groupement" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "séparateur" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "barre d'outils" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "barre d'état" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "table" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "en-tête de colonne" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "en-tête de ligne" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "colonne" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "ligne" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "cellule" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "lien" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "bulle d'aide" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "caractère" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "liste" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "élément de liste" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "plan" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "élément du plan" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "onglet de page" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "page de propriétés" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indicateur" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "image" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "texte statique" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "texte" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "bouton pressoir" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "case à cocher" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "bouton radio" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "boîte combinée" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "liste déroulante" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "barre de progression" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "cadran" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "champ avec raccourci clavier" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "glissière" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "bouton fléché" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagramme" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animation" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "équation" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "bouton avec liste déroulante" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "bouton de menu" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "bouton avec grille déroulante" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "blanc" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "liste d'onglets de pages" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "horloge" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "bouton avec menu" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "Adresse IP" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "bouton de résumé" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normale" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Indisponible" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Sélectionner" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "En pause" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "&Compressé" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Mixte" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Lectu&re seule" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Élément actif" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Valeurs par défaut" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animation" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&activer" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&activer" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "En pause" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "table" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "lien" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "table" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Sélectionnez un fichier." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "alerte" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "alerte" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "alerte" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Protégé contre l'écriture.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Vrai" diff -Nru wine1.7-1.7.18/po/he.po wine1.7-1.7.19/po/he.po --- wine1.7-1.7.18/po/he.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/he.po 2014-05-16 19:06:48.000000000 +0000 @@ -7094,266 +7094,461 @@ msgid "Wine Video 1 video codec" msgstr "מקודד הווידאו Video 1 של Wine" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "שורת כותרת" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "סרגל גלילה" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "חלון" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "יישום" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "מסמך" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "מפריד" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "שורת מצב" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "טבלה" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "עמודה" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "תו" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "עמוד מאפיין" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "טקסט סטטי" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "טקסט" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "סרגל התקדמות" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "פס גלילה" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "הנפשה" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "משוואה" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "לחצן רשימה נגללת" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "לחצן תפריט" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "שעון" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "רגילים" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Available" +msgctxt "object state" +msgid "unavailable" +msgstr "זמין" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "בחירה" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Paused" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "&דחוס" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Mixed" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&קריאה בלבד" + +#: oleacc.rc:105 +#, fuzzy +msgctxt "object state" +msgid "hot tracked" +msgstr "פריט במעקב חם" + +#: oleacc.rc:106 +#, fuzzy +msgctxt "object state" +msgid "default" +msgstr "הגדרת &בררות מחדל" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "הנפשה" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "ה&פעלה" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "ה&פעלה" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Paused" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "טבלה" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "טבלה" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "extended selectable" +msgstr "טבלה" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert low" +msgstr "כרית הדיו עומדת להיגמר; " + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert high" +msgstr "כרית הדיו עומדת להיגמר; " + +#: oleacc.rc:127 +#, fuzzy +msgctxt "object state" +msgid "protected" +msgstr "הגנה בפני כתיבה.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "אמת" diff -Nru wine1.7-1.7.18/po/hi.po wine1.7-1.7.19/po/hi.po --- wine1.7-1.7.18/po/hi.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/hi.po 2014-05-16 19:06:48.000000000 +0000 @@ -6735,268 +6735,428 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 #, fuzzy msgid "title bar" msgstr "बिना शीर्षकपट्टी के (&W)" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 #, fuzzy msgid "clock" msgstr "क्लॉक" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "" diff -Nru wine1.7-1.7.18/po/hr.po wine1.7-1.7.19/po/hr.po --- wine1.7-1.7.18/po/hr.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/hr.po 2014-05-16 19:06:48.000000000 +0000 @@ -6848,266 +6848,466 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 video codec" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "nepoznat objekt" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "naslovna linija" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "linija izbornika" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "traka za pomicanje" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "ručka" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "zvuk" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "pokazivač" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "znak za umetanje" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "upozorenje" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "prozor" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "klijent" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "iskočni meni" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "stavka izbornika" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "oblačić" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "program" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "dokument" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "okno" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "grafikon" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "dijalog" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "granica" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "grupiranje" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "razdvajač" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "alatna traka" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "statusna linija" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tablica" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "zaglavlje stupca" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "zaglavlje reda" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "stupac" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "red" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "ćelija" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "veza" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "pomoćni oblačić" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "znak" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "popis" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "popis stavki" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "boris" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "stavka obrisa" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "kartica za jezik" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "svojstva strane" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "pokazivač" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafika" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "statičan tekst" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "tekst" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "gumb prekidača" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "gumb za označavanje" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "isključiv gumb" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "padajući meni" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "linija toka" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "polje za prečice" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "klizač" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "vrteći gumb" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "dijagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animacija" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "jednadžba" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "padajući gumb" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "gumb izbornika" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "razmak" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "popis kartica" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "sat" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "gumb za dijeljenje" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP adresa" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "gumb obrisa" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normalan" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Nedostupno" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Izaberi" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Pauzirano" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "Sažeto" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Izmješano" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Samo za č&itanje" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Podrazumijevano" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animacija" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "uklju&či" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "uklju&či" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Pauzirano" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tablica" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "veza" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tablica" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Molimo odaberite datoteku." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "upozorenje" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "upozorenje" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "upozorenje" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Zaštićeno od pisanja.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Točno" diff -Nru wine1.7-1.7.18/po/hu.po wine1.7-1.7.19/po/hu.po --- wine1.7-1.7.18/po/hu.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/hu.po 2014-05-16 19:06:48.000000000 +0000 @@ -6875,266 +6875,468 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 video kodek" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "ismeretlen objektum" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "címsor" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "menüsor" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "görgetősáv" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "markolat" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "hang" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "kurzor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "kurzor (caret)" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "figyelmeztetés" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "ablak" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "kliens" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "felugró menü" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "menüelem" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "eszköztipp" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "alkalmazás" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "dokumentum" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "tábla" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "diagram" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "dialógus" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "keret" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "csoportosító" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "elválasztó" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "eszköztár" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "állapotsor" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "táblázat" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "oszlop fejléc" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "sor fejléc" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "oszlop" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "sor" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "cella" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "kapcsolat" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "súgó buborék" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "karakter" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "lista" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "listaelem" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "körvonal" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "körvonalas elem" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "táblafül" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "tulajdonságlap" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "jelző" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafika" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "statikus szöveg" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "szöveg" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "nyomógomb" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "jelölőnégyzet" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "rádiógomb" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "kombinált lista" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "legördülő lista" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "folyamatjelző" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "hívás" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "gyorsbillentyű mező" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "csúszka" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "görgethető mező" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagramm" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animáció" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "egyenlet" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "legördülő gomb" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "menügomb" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "rácsos legördülő gomb" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "üres terület" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "oldal fül lista" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "óra" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "felosztott gomb" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP cím" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "körvonalazott gomb" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normál" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Nem elérhető" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Kiválasztás" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Felfüggesztve" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "&Tömörített" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Kevert" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Csak olvasható" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Kiemeltsáv elem" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Alapértékek" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animáció" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&engedélyez" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&engedélyez" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Felfüggesztve" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "táblázat" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "kapcsolat" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "táblázat" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Kérlek válassz ki egy fájlt." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "figyelmeztetés" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "figyelmeztetés" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "figyelmeztetés" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Írásvédett.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Igaz" diff -Nru wine1.7-1.7.18/po/it.po wine1.7-1.7.19/po/it.po --- wine1.7-1.7.18/po/it.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/it.po 2014-05-16 19:06:48.000000000 +0000 @@ -6949,266 +6949,468 @@ msgid "Wine Video 1 video codec" msgstr "Codec Video Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "oggetto sconosciuto" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "barra del titolo" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "barra dei menù" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "barra dello scorrimento" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "maniglia" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "suono" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "cursore" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "cursore di testo" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "allarme" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "finestra" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "client" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "menù a comparsa" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "elemento del menù" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "tooltip" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "applicazione" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "documento" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "pannello" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "diagramma" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "dialogo" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "bordo" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "raggruppamento" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "separatore" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "barra degli strumenti" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "barra dello stato" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabella" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "intestazione di colonna" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "intestazione di riga" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "colonna" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "riga" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "cella" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "collegamento" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "fumetto d'aiuto" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "carattere" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "lista" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "elemento della lista" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "schema" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "elemento dello schema" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "linguetta di pagina" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "pagina delle proprietà" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indicatore" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "immagine" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "testo statico" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "testo" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "pulsante" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "pulsante di controllo" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "pulsante radio" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "casella combinata" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "lista a discesa" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "barra del progresso" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "quadrante" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "campo con scorciatoia da tastiera" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "diapositiva" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "casella di selezione" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagramma" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animazione" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "equazione" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "pulsante a discesa" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "bottone menù" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "griglia con pulsante a discesa" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "spazio bianco" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "lista delle linguette di pagina" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "orologio" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "pulsante di menù combinato" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "Indirizzo IP" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "pulsante dello schema" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normali" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Non disponibile" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Selezione" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "In pausa" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "Co&mpresso" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Misto" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Sola lettura" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Oggetto Hot Tracked" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Valori predefiniti" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animazione" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&abilita" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&abilita" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "In pausa" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabella" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "collegamento" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabella" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Seleziona un file." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "allarme" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "allarme" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "allarme" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Protetto da scrittura.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Vero" diff -Nru wine1.7-1.7.18/po/ja.po wine1.7-1.7.19/po/ja.po --- wine1.7-1.7.18/po/ja.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/ja.po 2014-05-16 19:06:48.000000000 +0000 @@ -6854,266 +6854,468 @@ msgid "Wine Video 1 video codec" msgstr "Wine ビデオ 1 ビデオコーデック" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "未知のオブジェクト" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "タイトル バー" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "メニュー バー" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "スクロール バー" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "グリップ" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "サウンド" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "カーソル" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "キャレット" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "警告" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "ウィンドウ" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "クライアント" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "ポップアップ メニュー" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "メニューの項目" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "ツール チップ" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "アプリケーション" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "ドキュメント" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "ペイン" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "グラフ" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "ダイアログ" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "境界線" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "グループ化" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "区切り" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "ツール バー" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "ステータス バー" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "テーブル" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "列見出し" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "行見出し" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "列" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "行" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "セル" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "リンク" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "ヘルプ バルーン" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "キャラクター" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "リスト" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "リスト項目" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "アウトライン" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "アウトライン項目" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "ページ タブ" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "プロパティ ページ" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "インジケータ" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "画像" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "静的テキスト" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "テキスト" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "プッシュ ボタン" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "チェック ボタン" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "ラジオ ボタン" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "コンボ ボックス" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "ドロップダウン" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "プログレス バー" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "ダイアル" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "ホット キー領域" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "スライダ" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "スピン ボックス" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "図表" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "アニメーション" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "数式" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "ドロップダウン ボタン" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "メニュー ボタン" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "グリッド ドロップダウン ボタン" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "余白" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "ページ タブ リスト" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "時計" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "スプリット ボタン" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP アドレス" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "アウトライン ボタン" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "標準" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "利用不可" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "選択" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "中断" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "圧縮済み(&C)" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "混合" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "読み取り専用(&R)" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "選択中のアイテム" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "デフォルト" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "アニメーション" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "有効(&E)" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "有効(&E)" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "中断" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "テーブル" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "リンク" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "テーブル" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "ファイルを選択してください。" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "警告" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "警告" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "警告" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "書き込み禁止です。\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "真" diff -Nru wine1.7-1.7.18/po/ko.po wine1.7-1.7.19/po/ko.po --- wine1.7-1.7.18/po/ko.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/ko.po 2014-05-16 19:06:48.000000000 +0000 @@ -6849,266 +6849,468 @@ msgid "Wine Video 1 video codec" msgstr "Wine 비디오 1 비디오 코덱" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "알 수 없는 객체" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "제목바" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "메뉴바" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "스크롤바" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "그립" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "사운드" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "커서" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "삽입기호" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "경고" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "창" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "클라이언트" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "팝업 메뉴" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "메뉴 아이템" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "도구 팁" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "프로그램" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "문서" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "틀" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "차트" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "대화상자" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "가장자리" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "집단화" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "분리자" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "도구바" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "상태바" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "테이블" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "세로줄 헤더" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "가로줄 헤더" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "열" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "가로줄" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "셀" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "링크" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "풍선 도움말" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "문자" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "목록" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "목록 아이템" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "외곽선" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "외곽선 아이템" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "페이지 탭" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "속성 페이지" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "지시자" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "그림" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "정적 문자" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "문자" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "누르기 버튼" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "체크 버튼" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "라디오 버튼" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "콤보 상자" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "드룹 다운" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "진행바" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "다이얼" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "단축키 모음" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "슬라이더" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "스핀 상자" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "도형" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "애니매이션" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "수식" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "드룹 다운 버튼" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "메뉴 버튼" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "그립 드룹 다운 단추" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "빈 공간" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "페이지 탭 목록" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "시계" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "나누기 단추" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP 주소" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "외곽선 단추" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "보통" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "불가능" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "선택" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "정지됨" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "압축(&C)" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "혼합" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "읽기 전용(&R)" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "핫 트랙된 아이템" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "기본" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "애니매이션" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "가능(&E)" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "가능(&E)" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "정지됨" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "테이블" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "링크" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "테이블" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "파일을 선택하십시오." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "경고" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "경고" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "경고" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "쓰기 보호됨.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "참" diff -Nru wine1.7-1.7.18/po/lt.po wine1.7-1.7.19/po/lt.po --- wine1.7-1.7.18/po/lt.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/lt.po 2014-05-16 19:06:48.000000000 +0000 @@ -5,7 +5,7 @@ "Project-Id-Version: Wine\n" "Report-Msgid-Bugs-To: http://bugs.winehq.org\n" "POT-Creation-Date: N/A\n" -"PO-Revision-Date: 2014-04-03 21:16+0300\n" +"PO-Revision-Date: 2014-05-16 08:19+0300\n" "Last-Translator: Aurimas Fišeras \n" "Language-Team: komp_lt@konf.lt\n" "Language: Lithuanian\n" @@ -6863,266 +6863,426 @@ msgid "Wine Video 1 video codec" msgstr "„Wine“ Video 1 vaizdo kodekas" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "nežinomas objektas" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "lango antraštės juosta" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "meniu juosta" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "slankjuostė" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "rankenėlė" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "garsas" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "pelės žymeklis" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "žymeklis" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "įspėjimas" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "langas" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "klientas" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "iškylantis meniu" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "meniu elementas" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "paaiškinimas" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "programa" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "dokumentas" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "polangis" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "diagrama" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "dialogo langas" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "rėmelis" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "grupavimas" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "skirtukas" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "įrankių juosta" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "būsenos juosta" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "lentelė" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "stulpelio antraštė" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "eilutės antraštė" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "stulpelis" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "eilutė" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "langelis" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "nuoroda" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "pagalbos balionas" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "personažas" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "sąrašas" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "sąrašo elementas" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "planas" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "plano elementas" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "kortelė" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "savybių lapas" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indikatorius" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafika" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "statinis tekstas" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "tekstas" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "mygtukas" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "žymimasis langelis" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "akutė" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "jungtinis langelis" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "išskleidžiamasis sąrašas" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "eigos juosta" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "sukiojama rankenėlė" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "sparčiojo klavišo laukas" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "šliaužiklis" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "suktukas" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "schema" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animacija" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "lygtis" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "išskleidžiamasis mygtukas" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "meniu mygtukas" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "tinklelio išskleidžiamasis mygtukas" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "matomas tarpas" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "kortelių sąrašas" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "laikrodis" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "išskleidimo mygtukas" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP adresas" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "plano mygtukas" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "normalus" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "nepasiekiamas" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "pasirinktas" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "židinyje" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "paspaustas" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "pažymėtas" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "mišrus" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "tik skaitymui" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "sekamas" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "numatytasis" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "išplėstas" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "sutrauktas" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "užimtas" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "slankus" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "grupėje" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "animuotas" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "nematomas" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "ne ekrane" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "didinamas" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "perkeliamas" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "save įgarsina" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "fokusuojamas" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "pasirenkamas" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "susietas" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "pereitas" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "pasirenkama daug" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "pasirenkama išplėstai" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "žemas įspėjimas" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "vidutinis įspėjimas" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "aukštas įspėjimas" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "apsaugotas" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "turi iškylantį langą" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Tiesa" @@ -13233,7 +13393,7 @@ #: winecfg.rc:120 msgid "Hot Tracked Item" -msgstr "Pažymėtas elementas" +msgstr "Sekamas elementas" #: winecfg.rc:121 msgid "Active Title Bar Gradient" diff -Nru wine1.7-1.7.18/po/ml.po wine1.7-1.7.19/po/ml.po --- wine1.7-1.7.18/po/ml.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/ml.po 2014-05-16 19:06:48.000000000 +0000 @@ -6735,268 +6735,428 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 #, fuzzy msgid "title bar" msgstr "റ്റൈറ്റില്‍ബാര്‍ _ഇല്ലാതെ" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 #, fuzzy msgid "clock" msgstr "ക്ലോക്ക്" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "" diff -Nru wine1.7-1.7.18/po/nb_NO.po wine1.7-1.7.19/po/nb_NO.po --- wine1.7-1.7.18/po/nb_NO.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/nb_NO.po 2014-05-16 19:06:48.000000000 +0000 @@ -6865,266 +6865,468 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1-videokodek" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "ukjent objekt" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "tittellinje" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "menylinje" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "rullefelt" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "grip" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "lyd" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "peker" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "markør" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "varsel" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "vindu" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "klient" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "sprettoppmeny" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "menyelement" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "verktøytips" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "program" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "dokument" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "panel" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "diagram" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "meldingsvindu" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "kant" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "gruppering" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "skille" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "verktøylinje" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "statuslinje" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabell" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "kolonneoverskrift" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "radoverskrift" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "kolonne" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "rad" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "celle" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "kobling" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "hjelpetekst" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "tegn" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "liste" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "listeelement" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "utheving" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "uthevet element" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "sidefane" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "fane" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indikator" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafikk" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "statisk tekst" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "tekst" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "knapp" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "avkrysningsboks" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "radioknapp" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "komboboks" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "rullemeny" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "framgangsindikator" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "hjul" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "felt for hurtigtaster" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "rullefelt" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "rullemeny" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animasjon" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "likning" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "knapp for rullemeny" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "menyknapp" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "felt for rullemeny-knapp" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "mellomrom" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "faneliste" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "klokke" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "oppdelt knapp" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP-adresse" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "utheving for knapp" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normal" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Utilgjengelig" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Velg" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Satt på pause" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "Kompr&imert" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Blandet" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Sk&rivebeskyttet" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Merket element" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Standardverdier" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animasjon" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "aktiv&er" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "aktiv&er" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Satt på pause" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabell" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "kobling" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabell" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Velg en fil." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "varsel" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "varsel" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "varsel" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Skrivebeskyttet.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Sann" diff -Nru wine1.7-1.7.18/po/nl.po wine1.7-1.7.19/po/nl.po --- wine1.7-1.7.18/po/nl.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/nl.po 2014-05-16 19:06:48.000000000 +0000 @@ -6922,266 +6922,468 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 video codec" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "onbekend object" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "titelbalk" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "menubalk" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "scrollbalk" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "handvat" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "geluid" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "cursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "tekstcursor" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "waarschuwing" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "venster" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "client" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "popupmenu" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "menu-item" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "tooltip" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "programma" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "document" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "sectie" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "diagram" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "dialoog" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "rand" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "groepering" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "scheidingsteken" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "gereedschapsbalk" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "statusbalk" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabel" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "kolomtitel" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "rij-titel" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "kolom" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "rij" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "cel" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "link" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "help-ballon" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "karakter" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "lijst" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "lijstonderdeel" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "omtrek" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "omtrekonderdeel" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "paginatab" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "eigenschap-pagina" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indicator" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafisch" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "vaste tekst" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "tekst" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "drukknop" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "aankruisvakje" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "radioknop" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "combinatievak" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "selectievak" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "voortgangsbalk" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "bellen" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "sneltoetsveld" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "schuifknop" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "draaischijf" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animatie" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "formule" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "dropdownknop" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "menuknop" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "grid dropdownknop" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "lege ruimte" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "paginatablijst" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "klok" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "splitsknop" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP-adres" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "omtrekknop" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Standaard" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Niet beschikbaar" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Selecteren" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Onderbroken" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "Ge&comprimeerd" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Gemixt" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "A&lleen-lezen" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Hot-Tracked Onderdeel" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Standaardinstellingen" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animatie" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&aan" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&aan" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Onderbroken" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabel" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "link" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabel" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Selecteer een bestand." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "waarschuwing" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "waarschuwing" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "waarschuwing" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Schrijf-beveiligd.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Waar" diff -Nru wine1.7-1.7.18/po/or.po wine1.7-1.7.19/po/or.po --- wine1.7-1.7.18/po/or.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/or.po 2014-05-16 19:06:48.000000000 +0000 @@ -6735,268 +6735,428 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 #, fuzzy msgid "title bar" msgstr "ଶୀର୍ଷକ ପଟି ବିନା (&W)" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 #, fuzzy msgid "clock" msgstr "ଘଡ଼ି" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "" diff -Nru wine1.7-1.7.18/po/pa.po wine1.7-1.7.19/po/pa.po --- wine1.7-1.7.18/po/pa.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/pa.po 2014-05-16 19:06:48.000000000 +0000 @@ -6735,268 +6735,428 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 #, fuzzy msgid "title bar" msgstr "ਟਾਈਟਲਬਾਰ ਤੋਂ ਬਿਨਾਂ(&W)" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 #, fuzzy msgid "clock" msgstr "ਘੜੀ" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "" diff -Nru wine1.7-1.7.18/po/pl.po wine1.7-1.7.19/po/pl.po --- wine1.7-1.7.18/po/pl.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/pl.po 2014-05-16 19:06:48.000000000 +0000 @@ -6882,266 +6882,468 @@ msgid "Wine Video 1 video codec" msgstr "Kodek Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "nieznany obiekt" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "pasek tytułu" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "pasek menu" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "pasek przewijania" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "uchwyt" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "dźwięk" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "kursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "daszek" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "ostrzeżenie" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "okno" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "klient" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "menu podręczne" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "element menu" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "podpowiedź" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "aplikacja" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "dokument" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "okienko" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "wykres" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "okno dialogowe" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "obramowanie" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "grupowanie" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "separator" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "pasek narzędzi" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "pasek stanu" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabela" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "nagłówek kolumny" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "nagłówek wiersza" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "kolumna" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "wiersz" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "komórka" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "dowiązanie" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "dymek pomocy" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "znak" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "lista" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "element listy" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "zarys" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "element zarysu" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "karta strony" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "strona właściwości" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "wskaźnik" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafika" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "tekst statyczny" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "tekst" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "przycisk" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "przycisk zaznaczany" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "przycisk radiowy" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "pole kombi" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "lista rozwijana" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "pasek postępu" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "wybieranie" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "pole klawisza skrótu" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "suwak" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "pole pokrętła" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animacja" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "równanie" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "przycisk listy rozwijanej" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "przycisk menu" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "przycisk siatki rozwijanej" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "światło" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "lista kart stron" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "zegar" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "przycisk podziału" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "adres IP" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "przycisk zarysu" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normalne" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Niedostępny" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Zaznacz" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Wstrzymano" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "S&kompresowany" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Mieszane" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Tylko do &odczytu" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Śledzony element" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Domyślne" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animacja" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&Udostępnij" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&Udostępnij" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Wstrzymano" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabela" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "dowiązanie" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabela" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Proszę wybrać plik." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "ostrzeżenie" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "ostrzeżenie" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "ostrzeżenie" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Zapis chroniony.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Prawda" diff -Nru wine1.7-1.7.18/po/pt_BR.po wine1.7-1.7.19/po/pt_BR.po --- wine1.7-1.7.18/po/pt_BR.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/pt_BR.po 2014-05-16 19:06:48.000000000 +0000 @@ -6872,266 +6872,468 @@ msgid "Wine Video 1 video codec" msgstr "Codec de vídeo Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "objeto desconhecido" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "barra de título" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "barra de menu" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "barra de rolagem" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "alça" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "som" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "cursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "circunflexo" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "alerta" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "janela" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "cliente" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "menu popup" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "item do menu" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "dica" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "aplicativo" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "documento" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "painel" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "gráfico" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "diálogo" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "margem" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "agrupamento" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "separador" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "barra de ferramentas" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "barra de estado" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabela" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "cabeçalho da coluna" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "cabeçalho da linha" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "coluna" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "linha" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "célula" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "atalho" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "balão de ajuda" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "caractere" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "lista" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "item da lista" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "contorno" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "item de contorno" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "aba de página" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "página de propriedades" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indicador" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "gráfico" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "texto estático" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "texto" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "botão" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "botão de seleção" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "botão de opção" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "caixa de combinação" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "lista suspensa" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "barra de progresso" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "discar" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "campo com atalho de teclado" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "controle deslizante" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "botão de seta" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagrama" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animação" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "equação" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "botão de lista suspensa" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "botão de menu" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "botão de grade suspensa" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "espaço em branco" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "lista de guias de página" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "relógio" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "botão de divisão" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "endereço IP" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "botão de contorno" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normal" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Indisponível" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Selecionar" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Pausado" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "&Comprimido" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Misturado" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Apenas leitura" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Elemento Ativo" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Dispositivos Padrões" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animação" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&habilitar" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&habilitar" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Pausado" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabela" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "atalho" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabela" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Por favor, selecione um arquivo." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "alerta" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "alerta" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "alerta" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Protegido contra escrita.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Verdadeiro" diff -Nru wine1.7-1.7.18/po/pt_PT.po wine1.7-1.7.19/po/pt_PT.po --- wine1.7-1.7.18/po/pt_PT.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/pt_PT.po 2014-05-16 19:06:48.000000000 +0000 @@ -6841,266 +6841,466 @@ msgid "Wine Video 1 video codec" msgstr "codec video Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "objecto desconhecido" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "barra de título" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "barra de menu" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "barra de scroll" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "pega" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "som" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "cursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "barra" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "alerta" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "janela" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "cliente" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "menu popup" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "item do menu" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "dica" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "aplicação" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "documento" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "painel" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "gráfico" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "diálogo" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "margem" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "agrupamento" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "separador" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "barra de ferramentas" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "barra de estado" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabela" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "cabeçalho da coluna" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "cabeçalho da linha" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "coluna" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "linha" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "célula" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "ligação" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "balão de ajuda" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "caracter" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "lista" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "item da lista" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "esboço" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "item de esboço" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "separador de página" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "página de propriedades" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indicador" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "gráfico" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "texto estático" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "texto" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "botão de pressão" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "botão de verificação" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "botão de rádio" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "caixa de combinação" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "suspenso" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "barra de progresso" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "discar" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "campo de acelerador de tecla" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "deslizador" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "caixa de rotação" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagrama" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animação" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "equação" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "menu suspenso" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "botão do menu" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "botão de grelha suspensa" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "espaço em branco" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "lista de separadores de página" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "relógio" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "botão de divisão" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "endereço IP" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "botão de esboço" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normal" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Indisponível" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Seleccionar" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Pausado" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "&Comprimido" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Misto" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Apenas de leitura" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Padrões" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animação" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&activar" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&activar" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Pausado" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabela" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "ligação" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabela" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Por favor seleccione um ficheiro." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "alerta" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "alerta" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "alerta" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Protegido contra escrita.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Verdadeiro" diff -Nru wine1.7-1.7.18/po/rm.po wine1.7-1.7.19/po/rm.po --- wine1.7-1.7.18/po/rm.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/rm.po 2014-05-16 19:06:48.000000000 +0000 @@ -6783,267 +6783,431 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 #, fuzzy msgid "animation" msgstr "INFUORMAZIUN" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +#, fuzzy +msgctxt "object state" +msgid "unavailable" +msgstr "INFUORMAZIUN" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +msgctxt "object state" +msgid "animated" +msgstr "INFUORMAZIUN" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +msgctxt "object state" +msgid "sizeable" +msgstr "&Annotaziun..." + +#: oleacc.rc:116 +#, fuzzy +msgctxt "object state" +msgid "moveable" +msgstr "&Annotaziun..." + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "" diff -Nru wine1.7-1.7.18/po/ro.po wine1.7-1.7.19/po/ro.po --- wine1.7-1.7.18/po/ro.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/ro.po 2014-05-16 19:06:48.000000000 +0000 @@ -7045,266 +7045,466 @@ msgid "Wine Video 1 video codec" msgstr "Codecul video Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "obiect necunoscut" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "bară de titlu" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "bară de meniu" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "bară de defilare" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "ghidaj" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "sunet" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "cursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "circumflex" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "atenționare" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "fereastră" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "client" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "meniu contextual" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "element de meniu" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "indiciu" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "aplicație" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "document" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "panou" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "diagramă" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "dialog" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "margine" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "grupare" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "separator" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "bară de unelte" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "bară de stare" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabel" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "antet de coloană" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "antet de rând" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "coloană" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "rând" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "celulă" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "legătură" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "balon de ajutor" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "caracter" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "listă" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "element din listă" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "contur" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "conturare element" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "filă" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "pagină de proprietăți" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indicator" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafică" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "text static" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "text" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "buton de comandă" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "buton de bifare" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "buton radio" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "căsuță combinată" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "listă verticală" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "bară de progres" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "apelator" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "câmp de tastă rapidă" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "glisor" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "căsuță incrementală" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagramă" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animație" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "ecuație" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "buton listă verticală" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "buton meniu" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "buton listă verticală de grilă" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "spațiu gol" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "listă de file" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "ceas" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "buton separare" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "adresă IP" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "buton contur" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normal" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Indisponibil" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Selectează" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Pauzat" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "&Comprimat" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Doar citi&re" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Element cu urmărire fierbinte" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "(Default)" +msgctxt "object state" +msgid "default" +msgstr "(Implicit)" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animație" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "activ&ează" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "activ&ează" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Pauzat" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabel" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "legătură" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabel" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Selectați un fișier." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "atenționare" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "atenționare" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "atenționare" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Scris protejat.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Adevărat" diff -Nru wine1.7-1.7.18/po/ru.po wine1.7-1.7.19/po/ru.po --- wine1.7-1.7.18/po/ru.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/ru.po 2014-05-16 19:06:48.000000000 +0000 @@ -6864,266 +6864,426 @@ msgid "Wine Video 1 video codec" msgstr "Видео кодек Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "неизвестный объект" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "строка заголовка" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "строка меню" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "полоса прокрутки" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "захват" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "звук" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "указатель" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "курсор" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "оповещение" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "окно" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "клиент" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "всплывающее меню" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "пункт меню" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "подсказка" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "приложение" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "документ" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "панель" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "график" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "диалоговое окно" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "граница" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "группировка" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "разделитель" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "панель инструментов" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "строка состояния" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "таблица" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "заголовок столбца" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "заголовок строки" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "столбец" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "строка" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "ячейка" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "ссылка" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "всплывающая справка" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "символ" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "список" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "элемент списка" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "структура" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "элемент структуры" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "вкладка страницы" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "страница свойств" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "индикатор" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "изображение" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "статический текст" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "текст" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "кнопка" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "флажок" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "радиокнопка" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "поле со списком" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "раскрывающийся список" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "индикатор прогресса" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "циферблат" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "поле горячей клавиши" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "ползунок" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "поле-счётчик" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "диаграмма" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "анимация" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "уравнение" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "раскрывающаяся кнопка" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "кнопка меню" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "кнопка раскрытия таблицы" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "пробел" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "список вкладок страницы" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "часы" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "кнопка разделения" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP-адрес" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "кнопка структуры" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "обычный" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "сведения отсутствуют" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "выделенный" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "с фокусом ввода" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "нажато" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "отмечено" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "оба типа" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "только чтение" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "отслеженное" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "по умолчанию" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "развернуто" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "свернуто" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "занято" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "перемещаемый" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "бегущая строка" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "анимировано" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "невидимо" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "за экраном" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "изменяемого размера" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "перемещаемое" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "говорящее" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "фокусируемое" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "выделяемое" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "связанное" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "пройденное" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "со множественным выделением" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "с расширенным выделением" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "низкий уровень оповещений" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "средний уровень оповещений" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "высокий уровень оповещений" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "защищенный режим" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "есть всплывающая подсказка" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Правда" diff -Nru wine1.7-1.7.18/po/sk.po wine1.7-1.7.19/po/sk.po --- wine1.7-1.7.18/po/sk.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/sk.po 2014-05-16 19:06:48.000000000 +0000 @@ -6831,270 +6831,457 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 #, fuzzy msgid "title bar" msgstr "&Bez titulkového pruhu" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 #, fuzzy msgid "separator" msgstr "Oddeľovač" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 #, fuzzy msgid "animation" msgstr "Informácie" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 #, fuzzy msgid "clock" msgstr "Hodiny" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normálne" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Size available" +msgctxt "object state" +msgid "unavailable" +msgstr "Veľkosť k dispozícii" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Import Selected" +msgctxt "object state" +msgid "selected" +msgstr "Importuj zvolené" + +#: oleacc.rc:100 +#, fuzzy +msgctxt "object state" +msgid "focused" +msgstr "Pozastavená; " + +#: oleacc.rc:101 +#, fuzzy +#| msgid "uncompressed" +msgctxt "object state" +msgid "pressed" +msgstr "nekomprimované" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Len na čítanie" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Predvolené" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +msgctxt "object state" +msgid "animated" +msgstr "Informácie" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "Size available" +msgctxt "object state" +msgid "sizeable" +msgstr "Veľkosť k dispozícii" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "Remove al&l" +msgctxt "object state" +msgid "moveable" +msgstr "Odstrániť &všetko" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +msgctxt "object state" +msgid "focusable" +msgstr "Pozastavená; " + +#: oleacc.rc:119 +#, fuzzy +#| msgid "Import Selected" +msgctxt "object state" +msgid "selectable" +msgstr "Importuj zvolené" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert low" +msgstr "Primálo toneru; " + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert high" +msgstr "Primálo toneru; " + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Ochrana proti zápisu.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "" diff -Nru wine1.7-1.7.18/po/sl.po wine1.7-1.7.19/po/sl.po --- wine1.7-1.7.18/po/sl.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/sl.po 2014-05-16 19:06:48.000000000 +0000 @@ -6936,266 +6936,468 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 video kodek" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "nepoznan predmet" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "nazivna vrstica" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "menijska vrstica" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "drsna vrstica" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "prijemalo" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "zvok" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "vrivnik" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "kazalka" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "opozorilo" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "okno" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "odjemalec" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "pojavni meni" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "predmet menija" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "orodni namig" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "program" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "dokument" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "pladenj" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "graf" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "pogovorno okno" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "obroba" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "združevanje v skupine" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "ločnica" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "orodna vrstica" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "vrstica stanja" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "razpredelnica" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "glava stolpca" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "glava vrstice" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "stolpec" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "vrstica" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "celica" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "povezava" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "balon pomoči" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "znak" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "seznam" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "predmet seznama" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "oris" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "orisani predmet" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "zavihek strani" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "stran lastnosti" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "kazalnik" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafika" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "statično besedilo" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "besedilo" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "potisni gumb" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "izbirni gumb" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "izbirni gumb" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "izbirno polje" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "spustni seznam" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "vrstica napredka" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "številčnica" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "polje bližnjic" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "drsnik" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "vrtilno polje" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animacija" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "enačba" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "spustni gumb" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "gumb menija" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "mreža spustnih gumbov" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "prazen prostor" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "seznam zavihkov strani" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "ura" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "deljeni gumb" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "Naslov IP" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "orisani gumb" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Običajna" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Ni na voljo" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Izberi" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "V premoru" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "S&tisnjeno" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Mešano" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Samo za &branje" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Predmet s hitrim sledenjem" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Privzeto" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animacija" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&omogoči" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&omogoči" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "V premoru" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "razpredelnica" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "povezava" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "razpredelnica" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Izberite datoteko." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "opozorilo" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "opozorilo" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "opozorilo" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Zaščiteno pred pisanjem.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Prav" diff -Nru wine1.7-1.7.18/po/sr_RS@cyrillic.po wine1.7-1.7.19/po/sr_RS@cyrillic.po --- wine1.7-1.7.18/po/sr_RS@cyrillic.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/sr_RS@cyrillic.po 2014-05-16 19:06:48.000000000 +0000 @@ -7137,266 +7137,459 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 видео кодек" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "насловна линија" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "линија менија" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "трака за померање" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "ручка" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "звук" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "курсор" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "курсор" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "упозорење" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "прозор" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "клијент" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "искачући мени" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "ставка менија" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "облачић" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "програм" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "документ" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "оквир" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "графикон" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "прозорче" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "граница" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "груписање" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "раздвајач" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "алатница" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "линија стања" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "табела" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "заглавље колоне" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "заглавље реда" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "колона" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "ред" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "ћелија" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "веза" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "помоћни облачић" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "знак" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "списак" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "списак ставки" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "контура" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "ставка контуре" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "језичак стране" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "својства стране" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "показивач" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "графика" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "статичан текст" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "текст" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "прекидач дугме" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "дугме за означавање" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "искључиво дугме" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "комбиновани списак" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "падајући мени" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "линија тока" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "позови" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "поље за пречице" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "клизач" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "вртеће дугме" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "дијаграм" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "анимација" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "једначина" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "падајуће дугме" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "дугме менија" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "умрежи падајуће дугме" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "размак" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "списак листова" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "часовник" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "дугме за дељење" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP адреса" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "контура дугме" +#: oleacc.rc:97 +#, fuzzy +msgctxt "object state" +msgid "normal" +msgstr "Н&апред" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Недоступно" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Изабери" + +#: oleacc.rc:100 +#, fuzzy +msgctxt "object state" +msgid "focused" +msgstr "Паузирано; " + +#: oleacc.rc:101 +#, fuzzy +msgctxt "object state" +msgid "pressed" +msgstr "несажето" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Измешано" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Само за читање" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +msgctxt "object state" +msgid "default" +msgstr "Подразумевано" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "анимација" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +msgctxt "object state" +msgid "sizeable" +msgstr "&Табела" + +#: oleacc.rc:116 +#, fuzzy +msgctxt "object state" +msgid "moveable" +msgstr "&Табела" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +msgctxt "object state" +msgid "focusable" +msgstr "Паузирано; " + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "табела" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "веза" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "табела" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "extended selectable" +msgstr "табела" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "упозорење" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "упозорење" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "упозорење" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Import Selected" +msgctxt "object state" +msgid "protected" +msgstr "Увези изабрано" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Тачно" diff -Nru wine1.7-1.7.18/po/sr_RS@latin.po wine1.7-1.7.19/po/sr_RS@latin.po --- wine1.7-1.7.18/po/sr_RS@latin.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/sr_RS@latin.po 2014-05-16 19:06:48.000000000 +0000 @@ -7231,266 +7231,463 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 video kodek" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "naslovna linija" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "linija menija" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "traka za pomeranje" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "ručka" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "zvuk" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "kursor" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "kursor" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "upozorenje" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "prozor" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "klijent" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "iskačući meni" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "stavka menija" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "oblačić" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "program" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "dokument" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "okvir" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "grafikon" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "prozorče" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "granica" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "grupisanje" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "razdvajač" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "alatnica" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "linija stanja" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabela" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "zaglavlje kolone" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "zaglavlje reda" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "kolona" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "red" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "ćelija" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "veza" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "pomoćni oblačić" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "znak" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "spisak" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "spisak stavki" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "kontura" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "stavka konture" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "jezičak strane" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "svojstva strane" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "pokazivač" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafika" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "statičan tekst" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "tekst" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "prekidač dugme" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "dugme za označavanje" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "isključivo dugme" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "kombinovani spisak" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "padajući meni" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "linija toka" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "pozovi" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "polje za prečice" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "klizač" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "vrteće dugme" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "dijagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animacija" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "jednačina" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "padajuće dugme" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "dugme menija" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "umreži padajuće dugme" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "razmak" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "spisak listova" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "časovnik" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "dugme za deljenje" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP adresa" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "kontura dugme" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normalan" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Nedostupno" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Izaberi" + +#: oleacc.rc:100 +#, fuzzy +msgctxt "object state" +msgid "focused" +msgstr "Pauzirano; " + +#: oleacc.rc:101 +#, fuzzy +msgctxt "object state" +msgid "pressed" +msgstr "nesažeto" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Izmešano" + +#: oleacc.rc:104 +#, fuzzy +msgctxt "object state" +msgid "read only" +msgstr "Spremno" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +msgctxt "object state" +msgid "default" +msgstr "" +"#-#-#-#-# sr_RS@latin.po (Wine) #-#-#-#-#\n" +"Podrazumevano\n" +"#-#-#-#-# sr_RS@latin.po (Wine) #-#-#-#-#\n" +"Osnovno" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animacija" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +msgctxt "object state" +msgid "sizeable" +msgstr "&Tabela" + +#: oleacc.rc:116 +#, fuzzy +msgctxt "object state" +msgid "moveable" +msgstr "&Tabela" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +msgctxt "object state" +msgid "focusable" +msgstr "Pauzirano; " + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabela" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "veza" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabela" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "extended selectable" +msgstr "tabela" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "upozorenje" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "upozorenje" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "upozorenje" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Import Selected" +msgctxt "object state" +msgid "protected" +msgstr "Uvezi izabrano" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Tačno" diff -Nru wine1.7-1.7.18/po/sv.po wine1.7-1.7.19/po/sv.po --- wine1.7-1.7.18/po/sv.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/sv.po 2014-05-16 19:06:48.000000000 +0000 @@ -6846,266 +6846,468 @@ msgid "Wine Video 1 video codec" msgstr "Wine Video 1 videokodek" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "okänt objekt" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "titelrad" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "menyrad" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "rullningslist" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "grepp" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "ljud" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "muspekare" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "markör" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "varning" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "fönster" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "klient" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "popupmeny" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "menypost" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "tooltip" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "program" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "dokument" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "ruta" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "diagram" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "dialog" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "kant" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "gruppering" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "avskiljare" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "verktygsrad" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "statusrad" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tabell" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "kolumnhuvud" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "radhuvud" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "kolumn" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "rad" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "cell" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "länk" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "hjälpballong" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "tecken" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "lista" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "listelement" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "disposition" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "dispositionspost" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "bladflik" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "egenskapssida" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "indikator" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafik" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "statisk text" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "text" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "tryckknapp" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "markeringsknapp" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "envalsknapp" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "kombinationsruta" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "listruta" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "förloppsmätare" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "mätare" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "snabbknappsfält" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "glidreglage" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "snurrknapp" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animation" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "ekvation" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "listruteknapp" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "menyknapp" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "listruteknapp (rutnät)" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "blanktecken" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "bladflikslista" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "klocka" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "delad knapp" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP-adress" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "dispositionsknapp" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normalt" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Otillgänglig" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Välj" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Pausad" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "&Komprimerad" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Mixad" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Sk&rivskyddad" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Hovrat föremål" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "(Default)" +msgctxt "object state" +msgid "default" +msgstr "(Standard)" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animation" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "Size available" +msgctxt "object state" +msgid "sizeable" +msgstr "Ledigt utrymme" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "Remove al&l" +msgctxt "object state" +msgid "moveable" +msgstr "Ta bort a&lla" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Pausad" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tabell" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "länk" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tabell" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Var god välj en fil." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "varning" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "varning" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "varning" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Skrivskyddad.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Sant" diff -Nru wine1.7-1.7.18/po/te.po wine1.7-1.7.19/po/te.po --- wine1.7-1.7.18/po/te.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/te.po 2014-05-16 19:06:48.000000000 +0000 @@ -6735,268 +6735,428 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 #, fuzzy msgid "title bar" msgstr "శీర్షికపట్టీ లేకుండా (&W)" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 #, fuzzy msgid "clock" msgstr "గడియారం" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "" diff -Nru wine1.7-1.7.18/po/th.po wine1.7-1.7.19/po/th.po --- wine1.7-1.7.18/po/th.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/th.po 2014-05-16 19:06:48.000000000 +0000 @@ -6864,269 +6864,447 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 #, fuzzy msgid "title bar" msgstr "แสดงแทบเมนู" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 #, fuzzy msgid "animation" msgstr "รายละเอียด" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 #, fuzzy msgid "clock" msgstr "นาฬิกา" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Not available; " +msgctxt "object state" +msgid "unavailable" +msgstr "ใช้ไม่ได้ตอนนี้; " + +#: oleacc.rc:99 +#, fuzzy +msgctxt "object state" +msgid "selected" +msgstr "เลือกทั้งหมด\tCtrl+A" + +#: oleacc.rc:100 +#, fuzzy +msgctxt "object state" +msgid "focused" +msgstr "ชะลอ; " + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "อ่านอย่างเดียว" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +msgctxt "object state" +msgid "default" +msgstr "เครื่องพิมพ์ปกติ; " + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +msgctxt "object state" +msgid "animated" +msgstr "รายละเอียด" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +msgctxt "object state" +msgid "sizeable" +msgstr "เลือกทั้งหมด\tCtrl+A" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +msgctxt "object state" +msgid "focusable" +msgstr "ชะลอ; " + +#: oleacc.rc:119 +#, fuzzy +msgctxt "object state" +msgid "selectable" +msgstr "เลือกทั้งหมด\tCtrl+A" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +msgctxt "object state" +msgid "multi selectable" +msgstr "เลือกทั้งหมด\tCtrl+A" + +#: oleacc.rc:123 +#, fuzzy +msgctxt "object state" +msgid "extended selectable" +msgstr "เลือกทั้งหมด\tCtrl+A" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert low" +msgstr "หมึกจะหมด; " + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert high" +msgstr "หมึกจะหมด; " + +#: oleacc.rc:127 +#, fuzzy +msgctxt "object state" +msgid "protected" +msgstr "ไม่พบแฟ้ม" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "จริง" diff -Nru wine1.7-1.7.18/po/tr.po wine1.7-1.7.19/po/tr.po --- wine1.7-1.7.18/po/tr.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/tr.po 2014-05-16 19:06:48.000000000 +0000 @@ -6861,266 +6861,466 @@ msgid "Wine Video 1 video codec" msgstr "Wine Vidyo 1 vidyo çözücü" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "bilinmeyen nesne" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "başlık çubuğu" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "menü çubuğu" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "kaydırma çubuğu" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "tutamaç" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "ses" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "imleç" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "inceltme işareti" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "uyarı" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "Pencere" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "istemci" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "açılır menü" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "menü öğesi" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "araç ipucu" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "uygulamalar" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "belge" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "pano" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "grafik" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "ileti" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "kenar" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "gruplama" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "ayraç" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "araç çubuğu" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "durum çubuğu" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "tablo" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "sütun başlığı" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "satır başlığı" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "sütun" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "satır" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "hücre" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "bağlantı" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "yardım balonu" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "karakter" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "liste" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "liste öğesi" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "anahat" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "anahat öğesi" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "sayfa sekmesi" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "özellik sayfası" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "belirteç" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "grafik" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "sabit yazı" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "metin" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "basma düğmesi" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "işaret kutusu" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "seçme düğmesi" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "açılır kutu" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "açılır kutu" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "ilerleme çubuğu" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "ara" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "kısayol alanı" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "kaydırıcı" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "dönme kutusu" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "diyagram" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "animasyon" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "eşitlik" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "açılır düğme" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "menü düğmesi" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "ızgara açılır düğmesi" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "alfabe dışı" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "sayfa sekme listesi" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "saat" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "ayır düğmesi" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "İP adresi" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "anahat düğmesi" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Normal" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Kullanılabilir Değil" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Seç" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Duraklatıldı" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "S&ıkıştırılmış" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Karışık" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Salt Okunur" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Varsayılanlar" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "animasyon" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "&etkinleştir" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "&etkinleştir" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Duraklatıldı" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "tablo" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "bağlantı" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "tablo" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Lütfen bir dosya seçin." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "uyarı" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "uyarı" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "uyarı" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Yazma korumalı.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Doğru" diff -Nru wine1.7-1.7.18/po/uk.po wine1.7-1.7.19/po/uk.po --- wine1.7-1.7.18/po/uk.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/uk.po 2014-05-16 19:06:48.000000000 +0000 @@ -6888,266 +6888,468 @@ msgid "Wine Video 1 video codec" msgstr "Відео кодек Wine Video 1" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "невідомий об'єкт" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "смуга назви" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "смуга меню" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "смуга прокручування" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "ручка" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "звук" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "курсор" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "знак вставки" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "тривога" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "вікно" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "клієнт" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "контекстне меню" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "елемент меню" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "підказка" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "додаток" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "документ" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "сектор" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "графік" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "діалог" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "межа" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "групування" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "розділювач" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "панель інструментів" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "рядок стану" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "таблиця" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "заголовок стовпчика" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "заголовок рядка" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "стовпчик" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "рядок" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "комірка" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "посилання" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "помічна повітряна куля" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "знак" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "список" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "елемент списку" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "план" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "елемент плану" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "закладка сторінки" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "сторінка властивостей" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "показник" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "графіка" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "статичний текст" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "текст" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "кнопка" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "кнопка-позначка" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "перемикач" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "комбіноване поле" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "випадаючий" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "смужка прогресу" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "вибір" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "поле гарячих клавіш" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "повзунок" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "поле скролінгу" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "діаграма" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "анімація" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "рівняння" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "випадаюча кнопка" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "кнопка меню" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "випадаюча кнопка сітки" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "білий простір" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "список закладок сторінки" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "годинник" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "кнопка поділу" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP-адреса" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "кнопка плану" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "Нормальний" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "Недоступно" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "Ви&брати" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "Призупинено" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "С&тиснутий" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "Змішаний" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "&Лише для читання" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "Посилання, Підсвічування" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "Типове" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "анімація" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "вв&імкнути" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "вв&імкнути" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "Призупинено" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "таблиця" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "посилання" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "таблиця" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "Виберіть файл." + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "тривога" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "тривога" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "тривога" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "Захищено від запису.\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "Істина" diff -Nru wine1.7-1.7.18/po/wa.po wine1.7-1.7.19/po/wa.po --- wine1.7-1.7.18/po/wa.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/wa.po 2014-05-16 19:06:48.000000000 +0000 @@ -6809,268 +6809,437 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 #, fuzzy msgid "title bar" msgstr "Sin bår di &Tite" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 #, fuzzy msgid "clock" msgstr "Ôrlodje" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "" + +#: oleacc.rc:99 +#, fuzzy +msgctxt "object state" +msgid "selected" +msgstr "&Tchwezi totafwait" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "Rén ki &lere" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +#, fuzzy +msgctxt "object state" +msgid "default" +msgstr "Pådje &p" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +msgctxt "object state" +msgid "sizeable" +msgstr "&Tchwezi totafwait" + +#: oleacc.rc:116 +#, fuzzy +msgctxt "object state" +msgid "moveable" +msgstr "&Sicrîre..." + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "" + +#: oleacc.rc:119 +#, fuzzy +msgctxt "object state" +msgid "selectable" +msgstr "&Tchwezi totafwait" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +msgctxt "object state" +msgid "multi selectable" +msgstr "&Tchwezi totafwait" + +#: oleacc.rc:123 +#, fuzzy +msgctxt "object state" +msgid "extended selectable" +msgstr "&Tchwezi totafwait" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "" diff -Nru wine1.7-1.7.18/po/wine.pot wine1.7-1.7.19/po/wine.pot --- wine1.7-1.7.18/po/wine.pot 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/wine.pot 2014-05-16 19:06:48.000000000 +0000 @@ -6693,266 +6693,426 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +msgctxt "object state" +msgid "normal" +msgstr "" + +#: oleacc.rc:98 +msgctxt "object state" +msgid "unavailable" +msgstr "" + +#: oleacc.rc:99 +msgctxt "object state" +msgid "selected" +msgstr "" + +#: oleacc.rc:100 +msgctxt "object state" +msgid "focused" +msgstr "" + +#: oleacc.rc:101 +msgctxt "object state" +msgid "pressed" +msgstr "" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +msgctxt "object state" +msgid "read only" +msgstr "" + +#: oleacc.rc:105 +msgctxt "object state" +msgid "hot tracked" +msgstr "" + +#: oleacc.rc:106 +msgctxt "object state" +msgid "default" +msgstr "" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +msgctxt "object state" +msgid "animated" +msgstr "" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +msgctxt "object state" +msgid "sizeable" +msgstr "" + +#: oleacc.rc:116 +msgctxt "object state" +msgid "moveable" +msgstr "" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +msgctxt "object state" +msgid "focusable" +msgstr "" + +#: oleacc.rc:119 +msgctxt "object state" +msgid "selectable" +msgstr "" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +msgctxt "object state" +msgid "multi selectable" +msgstr "" + +#: oleacc.rc:123 +msgctxt "object state" +msgid "extended selectable" +msgstr "" + +#: oleacc.rc:124 +msgctxt "object state" +msgid "alert low" +msgstr "" + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +msgctxt "object state" +msgid "alert high" +msgstr "" + +#: oleacc.rc:127 +msgctxt "object state" +msgid "protected" +msgstr "" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "" diff -Nru wine1.7-1.7.18/po/zh_CN.po wine1.7-1.7.19/po/zh_CN.po --- wine1.7-1.7.18/po/zh_CN.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/zh_CN.po 2014-05-16 19:06:48.000000000 +0000 @@ -6743,267 +6743,463 @@ msgid "Wine Video 1 video codec" msgstr "" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "标题栏" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "滚动条" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "窗口" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "应用程序" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "文档" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "分隔符" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "状态栏" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "表格" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "列" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "字符" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "" -#: oleacc.rc:68 +#: oleacc.rc:69 #, fuzzy msgid "property page" msgstr "下一页" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "静态文本" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "文本" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "动画" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "时钟" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "中号" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Available" +msgctxt "object state" +msgid "unavailable" +msgstr "可用" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "选择" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "已暂停" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "已压缩(&C)" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +msgctxt "object state" +msgid "mixed" +msgstr "" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "只读(&R)" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "鼠标拖选框" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "默认值" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "动画" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "启用(&E)" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "启用(&E)" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "已暂停" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "表格" + +#: oleacc.rc:120 +msgctxt "object state" +msgid "linked" +msgstr "" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "表格" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "extended selectable" +msgstr "表格" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert low" +msgstr "墨量低; " + +#: oleacc.rc:125 +msgctxt "object state" +msgid "alert medium" +msgstr "" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "Toner low; " +msgctxt "object state" +msgid "alert high" +msgstr "墨量低; " + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Import Selected" +msgctxt "object state" +msgid "protected" +msgstr "导入选定文件" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "真" diff -Nru wine1.7-1.7.18/po/zh_TW.po wine1.7-1.7.19/po/zh_TW.po --- wine1.7-1.7.18/po/zh_TW.po 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/po/zh_TW.po 2014-05-16 19:06:48.000000000 +0000 @@ -6811,266 +6811,468 @@ msgid "Wine Video 1 video codec" msgstr "Wine 視訊 1 視訊編碼解碼器" -#: oleacc.rc:30 +#: oleacc.rc:31 msgid "unknown object" msgstr "不明物件" -#: oleacc.rc:31 +#: oleacc.rc:32 msgid "title bar" msgstr "標題列" -#: oleacc.rc:32 +#: oleacc.rc:33 msgid "menu bar" msgstr "選單列" -#: oleacc.rc:33 +#: oleacc.rc:34 msgid "scroll bar" msgstr "捲軸" -#: oleacc.rc:34 +#: oleacc.rc:35 msgid "grip" msgstr "握把" -#: oleacc.rc:35 +#: oleacc.rc:36 msgid "sound" msgstr "聲音" -#: oleacc.rc:36 +#: oleacc.rc:37 msgid "cursor" msgstr "游標" -#: oleacc.rc:37 +#: oleacc.rc:38 msgid "caret" msgstr "插字符號" -#: oleacc.rc:38 +#: oleacc.rc:39 msgid "alert" msgstr "警示" -#: oleacc.rc:39 +#: oleacc.rc:40 msgid "window" msgstr "視窗" -#: oleacc.rc:40 +#: oleacc.rc:41 msgid "client" msgstr "客戶端" -#: oleacc.rc:41 +#: oleacc.rc:42 msgid "popup menu" msgstr "彈出式選單" -#: oleacc.rc:42 +#: oleacc.rc:43 msgid "menu item" msgstr "功能表項目" -#: oleacc.rc:43 +#: oleacc.rc:44 msgid "tool tip" msgstr "工具提示" -#: oleacc.rc:44 +#: oleacc.rc:45 msgid "application" msgstr "應用程式" -#: oleacc.rc:45 +#: oleacc.rc:46 msgid "document" msgstr "文件" -#: oleacc.rc:46 +#: oleacc.rc:47 msgid "pane" msgstr "窗格" -#: oleacc.rc:47 +#: oleacc.rc:48 msgid "chart" msgstr "圖表" -#: oleacc.rc:48 +#: oleacc.rc:49 msgid "dialog" msgstr "對話框" -#: oleacc.rc:49 +#: oleacc.rc:50 msgid "border" msgstr "邊框" -#: oleacc.rc:50 +#: oleacc.rc:51 msgid "grouping" msgstr "分組" -#: oleacc.rc:51 +#: oleacc.rc:52 msgid "separator" msgstr "分隔線" -#: oleacc.rc:52 +#: oleacc.rc:53 msgid "tool bar" msgstr "工具列" -#: oleacc.rc:53 +#: oleacc.rc:54 msgid "status bar" msgstr "狀態列" -#: oleacc.rc:54 +#: oleacc.rc:55 msgid "table" msgstr "表格" -#: oleacc.rc:55 +#: oleacc.rc:56 msgid "column header" msgstr "行首" -#: oleacc.rc:56 +#: oleacc.rc:57 msgid "row header" msgstr "列首" -#: oleacc.rc:57 +#: oleacc.rc:58 msgid "column" msgstr "行" -#: oleacc.rc:58 +#: oleacc.rc:59 msgid "row" msgstr "列" -#: oleacc.rc:59 +#: oleacc.rc:60 msgid "cell" msgstr "儲存格" -#: oleacc.rc:60 +#: oleacc.rc:61 msgid "link" msgstr "鏈結" -#: oleacc.rc:61 +#: oleacc.rc:62 msgid "help balloon" msgstr "說明泡泡" -#: oleacc.rc:62 +#: oleacc.rc:63 msgid "character" msgstr "字元" -#: oleacc.rc:63 +#: oleacc.rc:64 msgid "list" msgstr "清單" -#: oleacc.rc:64 +#: oleacc.rc:65 msgid "list item" msgstr "清單項目" -#: oleacc.rc:65 +#: oleacc.rc:66 msgid "outline" msgstr "描邊" -#: oleacc.rc:66 +#: oleacc.rc:67 msgid "outline item" msgstr "描邊項目" -#: oleacc.rc:67 +#: oleacc.rc:68 msgid "page tab" msgstr "頁面頁標" -#: oleacc.rc:68 +#: oleacc.rc:69 msgid "property page" msgstr "內容頁面" -#: oleacc.rc:69 +#: oleacc.rc:70 msgid "indicator" msgstr "指示器" -#: oleacc.rc:70 +#: oleacc.rc:71 msgid "graphic" msgstr "圖形" -#: oleacc.rc:71 +#: oleacc.rc:72 msgid "static text" msgstr "靜態文字" -#: oleacc.rc:72 +#: oleacc.rc:73 msgid "text" msgstr "文字" -#: oleacc.rc:73 +#: oleacc.rc:74 msgid "push button" msgstr "按鈕" -#: oleacc.rc:74 +#: oleacc.rc:75 msgid "check button" msgstr "檢查按鈕" -#: oleacc.rc:75 +#: oleacc.rc:76 msgid "radio button" msgstr "單選按鈕" -#: oleacc.rc:76 +#: oleacc.rc:77 msgid "combo box" msgstr "複合方塊" -#: oleacc.rc:77 +#: oleacc.rc:78 msgid "drop down" msgstr "下拉選單" -#: oleacc.rc:78 +#: oleacc.rc:79 msgid "progress bar" msgstr "進度條" -#: oleacc.rc:79 +#: oleacc.rc:80 msgid "dial" msgstr "撥號" -#: oleacc.rc:80 +#: oleacc.rc:81 msgid "hot key field" msgstr "快速鍵欄位" -#: oleacc.rc:81 +#: oleacc.rc:82 msgid "slider" msgstr "滑動軸" -#: oleacc.rc:82 +#: oleacc.rc:83 msgid "spin box" msgstr "數值調整框" -#: oleacc.rc:83 +#: oleacc.rc:84 msgid "diagram" msgstr "圖表" -#: oleacc.rc:84 +#: oleacc.rc:85 msgid "animation" msgstr "動畫" -#: oleacc.rc:85 +#: oleacc.rc:86 msgid "equation" msgstr "方程式" -#: oleacc.rc:86 +#: oleacc.rc:87 msgid "drop down button" msgstr "下拉按鈕" -#: oleacc.rc:87 +#: oleacc.rc:88 msgid "menu button" msgstr "選單按鈕" -#: oleacc.rc:88 +#: oleacc.rc:89 msgid "grid drop down button" msgstr "格線下拉按鈕" -#: oleacc.rc:89 +#: oleacc.rc:90 msgid "white space" msgstr "空白" -#: oleacc.rc:90 +#: oleacc.rc:91 msgid "page tab list" msgstr "頁面頁標清單" -#: oleacc.rc:91 +#: oleacc.rc:92 msgid "clock" msgstr "時鐘" -#: oleacc.rc:92 +#: oleacc.rc:93 msgid "split button" msgstr "分割按鈕" -#: oleacc.rc:93 +#: oleacc.rc:94 msgid "IP address" msgstr "IP 位址" -#: oleacc.rc:94 +#: oleacc.rc:95 msgid "outline button" msgstr "描邊按鈕" +#: oleacc.rc:97 +#, fuzzy +#| msgid "Normal" +msgctxt "object state" +msgid "normal" +msgstr "中" + +#: oleacc.rc:98 +#, fuzzy +#| msgid "Unavailable" +msgctxt "object state" +msgid "unavailable" +msgstr "不得使用" + +#: oleacc.rc:99 +#, fuzzy +#| msgid "Select" +msgctxt "object state" +msgid "selected" +msgstr "選擇" + +#: oleacc.rc:100 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focused" +msgstr "已暫停" + +#: oleacc.rc:101 +#, fuzzy +#| msgid "&Compressed" +msgctxt "object state" +msgid "pressed" +msgstr "壓縮(&C)" + +#: oleacc.rc:102 +msgctxt "object state" +msgid "checked" +msgstr "" + +#: oleacc.rc:103 +#, fuzzy +#| msgid "Mixed" +msgctxt "object state" +msgid "mixed" +msgstr "混雜" + +#: oleacc.rc:104 +#, fuzzy +#| msgid "&Read Only" +msgctxt "object state" +msgid "read only" +msgstr "唯讀(&R)" + +#: oleacc.rc:105 +#, fuzzy +#| msgid "Hot Tracked Item" +msgctxt "object state" +msgid "hot tracked" +msgstr "熱門軌段的項目" + +#: oleacc.rc:106 +#, fuzzy +#| msgid "Defaults" +msgctxt "object state" +msgid "default" +msgstr "預設" + +#: oleacc.rc:107 +msgctxt "object state" +msgid "expanded" +msgstr "" + +#: oleacc.rc:108 +msgctxt "object state" +msgid "collapsed" +msgstr "" + +#: oleacc.rc:109 +msgctxt "object state" +msgid "busy" +msgstr "" + +#: oleacc.rc:110 +msgctxt "object state" +msgid "floating" +msgstr "" + +#: oleacc.rc:111 +msgctxt "object state" +msgid "marqueed" +msgstr "" + +#: oleacc.rc:112 +#, fuzzy +#| msgid "animation" +msgctxt "object state" +msgid "animated" +msgstr "動畫" + +#: oleacc.rc:113 +msgctxt "object state" +msgid "invisible" +msgstr "" + +#: oleacc.rc:114 +msgctxt "object state" +msgid "offscreen" +msgstr "" + +#: oleacc.rc:115 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "sizeable" +msgstr "啟用(&E)" + +#: oleacc.rc:116 +#, fuzzy +#| msgid "&enable" +msgctxt "object state" +msgid "moveable" +msgstr "啟用(&E)" + +#: oleacc.rc:117 +msgctxt "object state" +msgid "self voicing" +msgstr "" + +#: oleacc.rc:118 +#, fuzzy +#| msgid "Paused" +msgctxt "object state" +msgid "focusable" +msgstr "已暫停" + +#: oleacc.rc:119 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "selectable" +msgstr "表格" + +#: oleacc.rc:120 +#, fuzzy +#| msgid "link" +msgctxt "object state" +msgid "linked" +msgstr "鏈結" + +#: oleacc.rc:121 +msgctxt "object state" +msgid "traversed" +msgstr "" + +#: oleacc.rc:122 +#, fuzzy +#| msgid "table" +msgctxt "object state" +msgid "multi selectable" +msgstr "表格" + +#: oleacc.rc:123 +#, fuzzy +#| msgid "Please select a file." +msgctxt "object state" +msgid "extended selectable" +msgstr "請選取檔案。" + +#: oleacc.rc:124 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert low" +msgstr "警示" + +#: oleacc.rc:125 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert medium" +msgstr "警示" + +#: oleacc.rc:126 +#, fuzzy +#| msgid "alert" +msgctxt "object state" +msgid "alert high" +msgstr "警示" + +#: oleacc.rc:127 +#, fuzzy +#| msgid "Write protected.\n" +msgctxt "object state" +msgid "protected" +msgstr "防止寫入的。\n" + +#: oleacc.rc:128 +msgctxt "object state" +msgid "has popup" +msgstr "" + #: oleaut32.rc:30 oleview.rc:147 msgid "True" msgstr "真" diff -Nru wine1.7-1.7.18/programs/taskmgr/perfdata.c wine1.7-1.7.19/programs/taskmgr/perfdata.c --- wine1.7-1.7.18/programs/taskmgr/perfdata.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/programs/taskmgr/perfdata.c 2014-05-16 19:06:48.000000000 +0000 @@ -33,6 +33,7 @@ static PROCNTQSI pNtQuerySystemInformation = NULL; static PROCGGR pGetGuiResources = NULL; static PROCGPIC pGetProcessIoCounters = NULL; +static PROCISW64 pIsWow64Process = NULL; static CRITICAL_SECTION PerfDataCriticalSection; static PPERFDATA pPerfDataOld = NULL; /* Older perf data (saved to establish delta values) */ static PPERFDATA pPerfData = NULL; /* Most recent copy of perf data */ @@ -60,6 +61,7 @@ pNtQuerySystemInformation = (PROCNTQSI)GetProcAddress(GetModuleHandleW(wszNtdll), "NtQuerySystemInformation"); pGetGuiResources = (PROCGGR)GetProcAddress(GetModuleHandleW(wszUser32), "GetGuiResources"); pGetProcessIoCounters = (PROCGPIC)GetProcAddress(GetModuleHandleW(wszKernel32), "GetProcessIoCounters"); + pIsWow64Process = (PROCISW64)GetProcAddress(GetModuleHandleW(wszKernel32), "IsWow64Process"); InitializeCriticalSection(&PerfDataCriticalSection); @@ -296,6 +298,8 @@ } if (pGetProcessIoCounters) pGetProcessIoCounters(hProcess, &pPerfData[Idx].IOCounters); + if (pIsWow64Process) + pIsWow64Process(hProcess, &pPerfData[Idx].Wow64Process); CloseHandle(hProcess); } pPerfData[Idx].UserTime.QuadPart = pSPI->UserTime.QuadPart; @@ -331,12 +335,16 @@ BOOL PerfDataGetImageName(ULONG Index, LPWSTR lpImageName, int nMaxCount) { + static const WCHAR proc32W[] = {' ','*','3','2',0}; BOOL bSuccessful; EnterCriticalSection(&PerfDataCriticalSection); if (Index < ProcessCount) { wcsncpy(lpImageName, pPerfData[Index].ImageName, nMaxCount); + if (pPerfData[Index].Wow64Process && + nMaxCount - lstrlenW(lpImageName) > 4 /* =lstrlenW(proc32W) */) + lstrcatW(lpImageName, proc32W); bSuccessful = TRUE; } else { bSuccessful = FALSE; diff -Nru wine1.7-1.7.18/programs/taskmgr/perfdata.h wine1.7-1.7.19/programs/taskmgr/perfdata.h --- wine1.7-1.7.18/programs/taskmgr/perfdata.h 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/programs/taskmgr/perfdata.h 2014-05-16 19:06:48.000000000 +0000 @@ -47,6 +47,7 @@ TIME UserTime; TIME KernelTime; + BOOL Wow64Process; } PERFDATA, *PPERFDATA; /* SystemPageFileInformation (18) */ @@ -68,6 +69,7 @@ typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG); typedef DWORD (WINAPI *PROCGGR)(HANDLE,DWORD); typedef BOOL (WINAPI *PROCGPIC)(HANDLE,PIO_COUNTERS); +typedef BOOL (WINAPI *PROCISW64)(HANDLE,PBOOL); BOOL PerfDataInitialize(void); void PerfDataRefresh(void); diff -Nru wine1.7-1.7.18/server/fd.c wine1.7-1.7.19/server/fd.c --- wine1.7-1.7.18/server/fd.c 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/server/fd.c 2014-05-16 19:06:48.000000000 +0000 @@ -1175,8 +1175,12 @@ return 0; case EBADF: /* this can happen if we try to set a write lock on a read-only file */ - /* we just ignore that error */ - if (fl.l_type == F_WRLCK) return 1; + /* try to at least grab a read lock */ + if (fl.l_type == F_WRLCK) + { + type = F_RDLCK; + break; /* retry */ + } set_error( STATUS_ACCESS_DENIED ); return 0; #ifdef EOVERFLOW diff -Nru wine1.7-1.7.18/VERSION wine1.7-1.7.19/VERSION --- wine1.7-1.7.18/VERSION 2014-05-02 18:15:48.000000000 +0000 +++ wine1.7-1.7.19/VERSION 2014-05-16 19:06:48.000000000 +0000 @@ -1 +1 @@ -Wine version 1.7.18 +Wine version 1.7.19