Mono Update
Hi, wine-mono hasn't been updated in nearly a year.Should it be time to consider a new release? Thoughts. Best Regards Alistair Leslie-Hughes
oledb32: Implement IDataSourceLocator get/put hWnd (try 4)
Hi, Corrected warnings. Changelog: Implement IDataSourceLocator get/put hWnd Best Regards Alistair Leslie-Hughes From 13b8466033f24db028bfed6de609c4cd5f84b14a Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Mon, 30 Sep 2013 14:05:01 +1000 Subject: [PATCH 1/2] Implement IDataSourceLocator get/put hWnd --- dlls/oledb32/dslocator.c | 13 dlls/oledb32/tests/database.c | 48 +++ 2 files changed, 57 insertions(+), 4 deletions(-) diff --git a/dlls/oledb32/dslocator.c b/dlls/oledb32/dslocator.c index f8a98f5..cf9512c 100644 --- a/dlls/oledb32/dslocator.c +++ b/dlls/oledb32/dslocator.c @@ -42,6 +42,7 @@ typedef struct DSLocatorImpl IDataSourceLocator IDataSourceLocator_iface; LONG ref; +HWND hwnd; } DSLocatorImpl; static inline DSLocatorImpl *impl_from_IDataSourceLocator( IDataSourceLocator *iface ) @@ -139,18 +140,22 @@ static HRESULT WINAPI dslocator_get_hWnd(IDataSourceLocator *iface, COMPATIBLE_L { DSLocatorImpl *This = impl_from_IDataSourceLocator(iface); -FIXME((%p)-(%p)\n,This, phwndParent); +TRACE((%p)-(%p)\n,This, phwndParent); -return E_NOTIMPL; +*phwndParent = (COMPATIBLE_LONG)This-hwnd; + +return S_OK; } static HRESULT WINAPI dslocator_put_hWnd(IDataSourceLocator *iface, COMPATIBLE_LONG hwndParent) { DSLocatorImpl *This = impl_from_IDataSourceLocator(iface); -FIXME((%p)-(%p)\n,This, (HWND)hwndParent); +TRACE((%p)-(%p)\n,This, (HWND)hwndParent); -return E_NOTIMPL; +This-hwnd = (HWND)hwndParent; + +return S_OK; } static HRESULT WINAPI dslocator_PromptNew(IDataSourceLocator *iface, IDispatch **ppADOConnection) diff --git a/dlls/oledb32/tests/database.c b/dlls/oledb32/tests/database.c index d0eb9ff..13637c1 100644 --- a/dlls/oledb32/tests/database.c +++ b/dlls/oledb32/tests/database.c @@ -547,6 +547,53 @@ static void test_rowpos_setrowposition(void) IRowPosition_Release(rowpos); } +static void test_dslocator(void) +{ +IDataSourceLocator *dslocator = NULL; +HRESULT hr; + +hr = CoCreateInstance(CLSID_DataLinks, NULL, CLSCTX_INPROC_SERVER, IID_IDataSourceLocator,(void**)dslocator); +ok(hr == S_OK, got %08x\n, hr); +if(SUCCEEDED(hr)) +{ +COMPATIBLE_LONG hwnd = 0; + +/* Crashes under Window 7 +hr = IDataSourceLocator_get_hWnd(dslocator, NULL); +ok(hr == E_INVALIDARG, got %08x\n, hr); +*/ + +hr = IDataSourceLocator_get_hWnd(dslocator, hwnd); +ok(hr == S_OK, got %08x\n, hr); +ok(hwnd == 0, got %p\n, (HWND)hwnd); + +hwnd = 0xDEADBEEF; +hr = IDataSourceLocator_get_hWnd(dslocator, hwnd); +ok(hr == S_OK, got %08x\n, hr); +ok(hwnd == 0, got %p\n, (HWND)hwnd); + +hwnd = 0xDEADBEEF; +hr = IDataSourceLocator_put_hWnd(dslocator, hwnd); +ok(hr == S_OK, got %08x\n, hr); + +hwnd = 0xDEADBEEF; +hr = IDataSourceLocator_get_hWnd(dslocator, hwnd); +ok(hr == S_OK, got %08x\n, hr); +ok(hwnd == 0xDEADBEEF, got %p\n, (HWND)hwnd); + +hwnd = 0; +hr = IDataSourceLocator_put_hWnd(dslocator, hwnd); +ok(hr == S_OK, got %08x\n, hr); + +hwnd = 0xDEADBEEF; +hr = IDataSourceLocator_get_hWnd(dslocator, hwnd); +ok(hr == S_OK, got %08x\n, hr); +ok(hwnd == 0, got %p\n, (HWND)hwnd); + +IDataSourceLocator_Release(dslocator); +} +} + START_TEST(database) { OleInitialize(NULL); @@ -554,6 +601,7 @@ START_TEST(database) test_database(); test_errorinfo(); test_initializationstring(); +test_dslocator(); /* row position */ test_rowposition(); -- 1.8.4.rc3
mscoree: Implement CreateInterface
Hi, Changelog: mscoree: Implement CreateInterface Best Regards Alistair Leslie-Hughes From 6e4b9aff1f2a8776be0ad3cf6e9d0404dd5bec29 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Tue, 1 Oct 2013 10:17:50 +1000 Subject: [PATCH 2/2] Implement CreateInterface --- dlls/mscoree/mscoree.spec| 1 + dlls/mscoree/mscoree_main.c | 12 dlls/mscoree/tests/mscoree.c | 29 - 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/dlls/mscoree/mscoree.spec b/dlls/mscoree/mscoree.spec index ad883c6..93248e2 100644 --- a/dlls/mscoree/mscoree.spec +++ b/dlls/mscoree/mscoree.spec @@ -30,6 +30,7 @@ @ stub CorTickleSvc @ stdcall CreateConfigStream(wstr ptr) @ stdcall CreateDebuggingInterfaceFromVersion(long wstr ptr) +@ stdcall CreateInterface(ptr ptr ptr) @ stdcall -private DllCanUnloadNow() @ stdcall -private DllGetClassObject(ptr ptr ptr) @ stdcall -private DllRegisterServer() diff --git a/dlls/mscoree/mscoree_main.c b/dlls/mscoree/mscoree_main.c index de37706..f4c6c7d 100644 --- a/dlls/mscoree/mscoree_main.c +++ b/dlls/mscoree/mscoree_main.c @@ -594,6 +594,18 @@ HRESULT WINAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, LPVOID *ppInterfac return CLASS_E_CLASSNOTAVAILABLE; } +HRESULT WINAPI CreateInterface(REFCLSID clsid, REFIID riid, LPVOID *ppInterface) +{ +TRACE((%s,%s,%p)\n, debugstr_guid(clsid), debugstr_guid(riid), ppInterface); + +if (IsEqualGUID(clsid, CLSID_CLRMetaHost)) +return CLRMetaHost_CreateInstance(riid, ppInterface); + +FIXME(not implemented for class %s\n, debugstr_guid(clsid)); + +return CLASS_E_CLASSNOTAVAILABLE; +} + HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { mscorecf *This; diff --git a/dlls/mscoree/tests/mscoree.c b/dlls/mscoree/tests/mscoree.c index f8de6fa..41844ef 100644 --- a/dlls/mscoree/tests/mscoree.c +++ b/dlls/mscoree/tests/mscoree.c @@ -21,6 +21,7 @@ #include corerror.h #include mscoree.h +#include metahost.h #include shlwapi.h #include wine/test.h @@ -31,6 +32,7 @@ static HRESULT (WINAPI *pGetCORSystemDirectory)(LPWSTR, DWORD, DWORD*); static HRESULT (WINAPI *pGetRequestedRuntimeInfo)(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, DWORD, LPWSTR, DWORD, DWORD*, LPWSTR, DWORD, DWORD*); static HRESULT (WINAPI *pLoadLibraryShim)(LPCWSTR, LPCWSTR, LPVOID, HMODULE*); static HRESULT (WINAPI *pCreateConfigStream)(LPCWSTR, IStream**); +static HRESULT (WINAPI *pCreateInterface)(REFCLSID, REFIID, VOID**); static BOOL init_functionpointers(void) { @@ -47,8 +49,10 @@ static BOOL init_functionpointers(void) pGetRequestedRuntimeInfo = (void *)GetProcAddress(hmscoree, GetRequestedRuntimeInfo); pLoadLibraryShim = (void *)GetProcAddress(hmscoree, LoadLibraryShim); pCreateConfigStream = (void *)GetProcAddress(hmscoree, CreateConfigStream); +pCreateInterface = (void *)GetProcAddress(hmscoree, CreateInterface); -if (!pGetCORVersion || !pGetCORSystemDirectory || !pGetRequestedRuntimeInfo || !pLoadLibraryShim) +if (!pGetCORVersion || !pGetCORSystemDirectory || !pGetRequestedRuntimeInfo || !pLoadLibraryShim || +!pCreateInterface) { win_skip(functions not available\n); FreeLibrary(hmscoree); @@ -386,6 +390,28 @@ static void test_createconfigstream(void) DeleteFileW(file); } +void test_createinstance(void) +{ +HRESULT hr; +ICLRMetaHost *host; + +if(!pCreateInterface) +{ +win_skip(Function CreateInterface not found.\n); +return; +} + +hr = pCreateInterface(CLSID_CLRMetaHost, IID_ICLRMetaHost, (void**)host); +if(SUCCEEDED(hr)) +{ +ICLRMetaHost_Release(host); +} +else +{ +win_skip(.NET 4 not installed.\n); +} +} + START_TEST(mscoree) { if (!init_functionpointers()) @@ -394,6 +420,7 @@ START_TEST(mscoree) test_versioninfo(); test_loadlibraryshim(); test_createconfigstream(); +test_createinstance(); FreeLibrary(hmscoree); } -- 1.8.4.rc3
Re: oledb32: Implement IErrorRecord AddErrorRecord
On 20/08/2013 7:29 PM, Nikolay Sivov wrote: On 8/20/2013 13:21, Alistair Leslie-Hughes wrote: Hi, Yes we do just take the pointer (pErrorInfo) passed in. MSDN states that the caller responsible for this memory. It means caller could free it at any time (or it could be a stack variable), so you have to make a deep copy. I'll update it to be a deep copy. Alistair
Re: mscoree: Attempt to load the assembly from the application directory
On 15/08/2013 2:41 AM, Vincent Povirk wrote: This seems suspicious to me. You appear to be taking the namespace of the class and assuming it's an assembly name. Is there really no other information in the registry that could be used to identify the assembly? I'll have another look to see if it can be done a better way. Alistair.
Re: oledb32: Add IDataSourceLocator support
Ignore this patch On 1/08/2013 6:36 PM, Alistair Leslie-Hughes wrote: Hi, Changelog: oledb32: Add IDataSourceLocator support Best Regards Alistair Leslie-Hughes
Re: [PATCH] ieframe: Add a IServiceProvider stub to IBindStatusCallback
On 18/05/2013 11:11 PM, Detlef Riekenberg wrote: -- By by ... Detlef --- dlls/ieframe/navigate.c | 51 +++ 1 files changed, 51 insertions(+), 0 deletions(-) Tests to prove the interface exists. Best Regards Alistair Leslie-Hughes
Re: ole32/tests: Add test for IDispatch interface in IOleObject_QueryInterface.
On 9/02/2013 2:08 AM, Roman Dadkov wrote: This test is necessary to show that the function IOleObject_QueryInterface does not have enough processing IID_IDispatch, but it works for Windose. Therefore, the creation of some objects in a variety of applications leads to crash. +hr = IOleObject_QueryInterface(ole_obj, IID_IDispatch, (void**)dispatch); +todo_wine +ok(hr == S_OK, got %08x\n, hr); The IDispatch Interface should be released. Best Regards Alistair Leslie-Hughes
Re: user32: Initialize string buffer
Hi Nikolay, On 12/11/2012 8:39 PM, Nikolay Sivov wrote: On 11/12/2012 11:33, Alistair Leslie-Hughes wrote: Hi, Should fix http://bugs.winehq.org/show_bug.cgi?id=28797 Changelog: user32: Initialize string buffer I think it could be GetWindowText problem actually, if it succeeded and left buffer uninitialized that could be a real bug here, so needs tests. Yes, GetWindowText doesn't return a a NULL terminated string, so that it the cause of the uninitialized read. Another solution is to use the return value from GetWindowText and pass that value through to DrawText, instead of the -1. Best Regards Alistair Leslie-Hughes
Re: [PATCH 2/3] dmloader: Display new ref in AddRef and Release.
Hi, On 6/11/2012 7:05 PM, Christian Costa wrote: static HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_GetObject(LPDIRECTMUSICLOADER8 iface, LPDMUS_OBJECTDESC pDesc, REFIID riid, LPVOID* ppv) @@ -880,7 +884,7 @@ HRESULT WINAPI DMUSIC_CreateDirectMusicLoaderImpl (LPCGUID lpcGUID, LPVOID *ppob return E_OUTOFMEMORY; } obj-IDirectMusicLoader8_iface.lpVtbl = DirectMusicLoader_Loader_Vtbl; - obj-dwRef = 0; /* will be inited with QueryInterface */ + obj-ref = 0; /* Will be inited with QueryInterface */ Shouldn't obj-ref start at 1 or else it will never be freed. Best Regards Alistair Leslie-Hughes
Re: [1/3] scrrun: Implement IDictionary_Add and Count (try 2)
On 9/10/2012 8:54 PM, Henri Verbeet wrote: On 9 October 2012 11:26, Alistair Leslie-Hughes leslie_alist...@hotmail.com wrote: Changelog: scrrun: Implement IDictionary_Add and Count Actually, does it ever make sense to use a linked list at all to implement a dictionary? It seems to me that if you only ever have a handful of entries a simple array would be better suited, while if you have more than that you'd want some kind of search tree or a hash table. I will have a look at some sort of hash table. Best Regards Alistair Leslie-Hughes
Re: oledb32: Add support for IDBInitialize interface in IDataInitialize
On 25/09/2012 8:44 PM, Marvin wrote: Hi, While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at http://testbot.winehq.org/JobDetails.pl?Key=21782 Your paranoid android. === WNT4WSSP6 (32 bit marshal) === marshal.c:66: Test failed: CoMarshalInterface failed with error 0x80040155 marshal.c:239: Test failed: CoUnmarshalInterface failed with error 0x8003001e marshal: unhandled exception c005 at 004165D0 This test was already failing for some boxes. See http://test.winehq.org/data/6ebf13960be6105243536113625b5ca50883c8c9/index_NT4.html#oledb32:marshal Best Regards Alistair Leslie-Hughes
Wine Mono update
Hi, Mono 2.11.4 has been released which contains a few patches which removes most of the exceptions from the AxHost class. This class has been the cause of a few applications from starting (DDO and LOTRO launchers to name a few) I purpose a new wine-mono to be built. What sort of milestones should we look for to trigger a new wine-mono release? Best Regards Alistair Leslie-Hughes
Re: Wine bot results
Hi Jacek, -- From: Jacek Caban ja...@codeweavers.com Sent: Wednesday, August 29, 2012 1:16 AM To: Alistair Leslie-Hughes leslie_alist...@hotmail.com Cc: wine-devel@winehq.org Subject: Re: Wine bot results This VariantClear call attempts to free uninitialized VARIANT instance. You probably meant VariantInit(). Thanks, it works on all systems now. Best Regards Alistair Leslie-Hughes
Wine bot results
Hi, I have a patch that when run on on the testbot, it fails on all but two machines. However when I build the exe myself and run it, it pass on all but two machines. http://testbot.winehq.org/JobDetails.pl?Key=21257 http://testbot.winehq.org/JobDetails.pl?Key=21256 Ubuntu 12.04. Any Ideas on the different results? Best Regards Alistair Leslie-Hughes
Re: Wine bot results
Hi Qian, $ i686-w64-mingw32-gcc -v Using built-in specs. COLLECT_GCC=i686-w64-mingw32-gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-w64-mingw32/4.6.1/lto-wrapper Target: i686-w64-mingw32 Configured with: ../../src/configure --build=i686-linux-gnu --prefix=/usr --includedir='/usr/include' --mandir='/usr/share/man' --infodir='/usr/share/info' --sysconfdir=/etc --localstatedir=/var --libexecdir='/usr/lib/gcc-mingw-w64' --disable-maintainer-mode --disable-dependency-tracking --prefix=/usr --disable-shared --disable-multilib --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --libdir=/usr/lib --enable-libstdcxx-time=yes --with-tune=generic --enable-version-specific-runtime-libs --enable-languages=c,c++,fortran --enable-lto --with-plugin-ld --enable-fully-dynamic-string --target=i686-w64-mingw32 --with-gxx-include-dir=/usr/include/c++/4.6 --with-as=/usr/bin/i686-w64-mingw32-as --with-ld=/usr/bin/i686-w64-mingw32-ld Thread model: win32 gcc version 4.6.1 (GCC) $ i586-mingw32msvc-gcc -v Using built-in specs. Target: i586-mingw32msvc Configured with: /build/buildd/mingw32-4.2.1.dfsg/build_dir/src/gcc-4.2.1-2-dfsg/configure -v --prefix=/usr --target=i586-mingw32msvc --enable-languages=c,c++ --enable-threads --enable-sjlj-exceptions --disable-multilib --enable-version-specific-runtime-libs Thread model: win32 gcc version 4.2.1-sjlj (mingw32-2) Here is what install on my system, Ill try to update it to a later version. Best Regards Alistair Leslie-Hughes
Re: [2/2] scrrun: Added IDispatch support for IFileSystem3
On 12/07/2012 5:02 PM, Nikolay Sivov wrote: For http://bugs.winehq.org/show_bug.cgi?id=9638 and similar cases I have already submitted a patch for this http://source.winehq.org/patches/data/87925 Best Regards Alistair Leslie-Hughes
Re: [2/2] scrrun: Added IDispatch support for IFileSystem3
On 13/07/2012 7:38 AM, Nikolay Sivov wrote: On 7/12/2012 23:35, Alistair Leslie-Hughes wrote: On 12/07/2012 5:02 PM, Nikolay Sivov wrote: For http://bugs.winehq.org/show_bug.cgi?id=9638 and similar cases I have already submitted a patch for this http://source.winehq.org/patches/data/87925 I see, and what happened then? I'm still waiting for it be accepted. Best Regards Alistair Leslie-Hughes
Re: msxml3: Implement IXMLParser Get/Set Flags
On 8/06/2012 7:15 PM, Marvin wrote: Hi, While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at http://testbot.winehq.org/JobDetails.pl?Key=18891 Your paranoid android. === WINEBUILD (build) === Make failed This appears to be caused by the bot not building xmlparser.idl - xmlparser.h. Best Regards Alistair Leslie-Hughes
Re: [scrrun] Add initial support for Dictionary patch - 1/3
Hi Vijay, On 4/06/2012 8:06 PM, Vijay Kiran Kamuju wrote: Sending patch series for initial support for Scripting.Dictionary in scrrun.dll +static HRESULT WINAPI dictionary_put_Item(IDictionary *iface, VARIANT *key, VARIANT *item) +{ +FIXME(%p %p\n, iface, key); Please include all parameters in FIXME, they all seem to be missing the last one. Best Regards Alistair Leslie-Hughes
Re: [3/8] scrrun: Add IFileSystem3 support
Hi Jacek, Is there any reason for this to be heap-based object? It looks to me like it would better be a static object (AFAICS you don't even need FileSystem struct since you're not going to store anything in it). No, Just habit to create them like this. Best Regards Alistair Leslie-Hughes
Re: mscoree: Better support RUNTIME_INFO_UPGRADE_VERSION in, GetRequestedRuntimeInfo (try 3)
Hi Vincent, On 13/03/2012 3:35 AM, Vincent Povirk wrote: -FIXME(Unrecognized version %s\n, debugstr_w(pwzVersion)); +WARN(Unrecognized version %s\n, debugstr_w(pwzVersion)); I'll put it back and add another test. I'm not so sure about this. I think GetRuntime is still incomplete, so I'd still like to know when it fails. You will get a useless FIXME in the case where RUNTIME_INFO_UPGRADE_VERSION is specified, but I think a program that makes that specifies a version number and that flag is doing it wrong. Anyway, we shouldn't be spammed with fixme's, right? No, its perfectly valid to specify a minimum version like 2.0.50727, and then use the flag RUNTIME_INFO_UPGRADE_VERSION to get any .NET version. This allows native applications to interact with .NET without caring about the .NET version installed. Best Regards Alistair Leslie-Hughes
Re: [2/2] scrrun: Register Scripting interfaces
Hi, On 25/01/2012 9:59 PM, Nikolay Sivov wrote: On 1/25/2012 12:35, Alistair Leslie-Hughes wrote: Hi, Changelog: scrrun: Register Scripting interfaces Some of this are already used in wshom.ocx, I'm not sure which one should take precedence and implement that. Probably it changed in recent Windows versions? Both sccrun.dll and wshom.ocx appear to have some overlap. On XP and Windows 7 at least, the interfaces are defined in scrrun for me. Best Regards Alistair Leslie-Hughes
Re: [2/2] scrrun: Register Scripting interfaces
Hi, On 25/01/2012 9:59 PM, Nikolay Sivov wrote: On 1/25/2012 12:35, Alistair Leslie-Hughes wrote: Hi, Changelog: scrrun: Register Scripting interfaces Some of this are already used in wshom.ocx, I'm not sure which one should take precedence and implement that. Probably it changed in recent Windows versions? On second thoughts, does it really mater since these interfaces aren't public anyway. As long as they are defined the same it shouldn't mater. Best Regards Alistair Leslie-Hughes
Re: [2/2] scrrun: Register Scripting interfaces
On 26/01/2012 1:03 AM, Nikolay Sivov wrote: On 1/25/2012 15:21, Jacek Caban wrote: That's what I meant, it should be implemented in one place, after that you probably won't need duplicated *.idls. Where would such a file live? Best Regards Alistair Leslie-Hughes
Re: mmcndmgr: Implement IMMCVersionInfo
Ignore this. On 20/01/2012 9:32 PM, Alistair Leslie-Hughes wrote: Hi, Changelog: mmcndmgr: Implement IMMCVersionInfo Best Regards Alistair Leslie-Hughes
Re: mscoree: Implement DllGetClassObject
Hi Vincent, On 11/01/2012 5:13 PM, Vincent Povirk wrote: You can't just use a static class factory for all the classes. There's no need for GetIDispatchForObject when we already have GetIUnknownForObject (and all you use is QueryInterface). I found if you used GetIUnknownForObject and then queried for the IDispatch interface, mono returned E_NOINTERFACE. Maybe this is a bug with mono. +res = RegGetValueA( key, NULL, Class, RRF_RT_REG_SZ, NULL, classname,dwBufLen); We should probably use a W function here and convert to utf8, rather than assume that's the default encoding. I'll give it a go. Best Regards Alistair Leslie-Hughes
Re: winspool.drv: Correct test for Device Capabilities (resend)
Hi, On 9/11/2011 9:46 PM, Marvin wrote: Hi, While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at http://testbot.winehq.org/JobDetails.pl?Key=15332 Your paranoid android. === WINEBUILD (build) === Can't determine base name Can someone have a look at this patch please? and can some fix testbot to accept patches for winspool.drv? Best Regards Alistair Leslie-Hughes
Re: [2/2] mscoree: Implement ICorDebug CreateProcess
Hi Vincent, On 5/11/2011 2:06 AM, Vincent Povirk wrote: I'm curious why you've chosen to work on this. Is there a program relying on this, or do you have some .NET debugging tools you'd like to use? Or are you thinking we'd implement our own debugging tool as well (perhaps extending winedbg)? I'm working with Enterprise Architect, and currently it possible to debug Windows application without problem. Since it also support debugging .NET application I thought I would go down this path. Better debugging tools for wine/mono would definitely be nice, but there are a lot of things we need, and this is not the first one I'd pick. The current state of the art in Mono debugging is the soft debugger. From what I've heard, all other debugger technologies in Mono have been deprecated. http://www.mono-project.com/Mono:Runtime:Documentation:SoftDebugger They have documentation on the wire protocol, which is probably what we'd end up using because .NET libraries are inconvenient to use. From what I can tell, the soft debugger needs to be configured to listen for TCP connections on a particular port. Ideally, we would want to modify it by adding a new transport using something like a named pipe server named based on the process id (it looks straightforward to do so, but we'd have to modify the mono runtime). Otherwise, I'm not sure how we'd identify the socket server for the process we want, and having mono run a TCP server all the time seems like a bad idea. It may also be possible to configure mono to use the soft debugger in the normal way and attach to it with a Linux MonoDevelop, if you want a quicker solution. It seems like it's designed to remotely debug any mono process on any platform. If you figure out how to do this, wiki documentation would be appreciated. Thanks for the link and the information. I'll investigate and see what I can achieve. Best Regards Alistair Leslie-Hughes
Re: mscoree: Implement ICorDebug SetManagedHandler (try 3)
On 11/10/2011 2:07 AM, Vincent Povirk wrote: Should SetManagedHandler really fail if the given object doesn't support ICorDebugManagedCallback2 ? Yes, this is a requirement for debugging .NET 2 applications. Best Regards Alistair Leslie-Hughes
DLLCanUnloadNow Question
Hi, The Following sample code causes a crash under WINE, but not in windows. IUnknown *p LoadLibrary(mscoree.dll) GetProcAddress(CreateDebuggingInterfaceFromVersion) CreateDebuggingInterfaceFromVersion(..., (void**)p) -- Com Reference FreeLibrary(mscoree.dll) p-QueryInterface();-- Cause Crash under WINE. The DLL shouldn't be unloaded since mscoree.DLLCanUnloadNow() return S_FALSE; Is this a bug with the unloading of DLL's? Is there way to stop the unloading of a DLL? I know the logic isn't the best, but I'm seeing this type of behavior in an application. Best Regards Alistair Leslie-Hughes
Creating register Resource.
Hi, I'm attempting to create a RES file from the xmlparser.idl file. After I modify the Makefile with IDL_R_SRCS = xmlparser.idl The .res file is created, but no register information is generated. Have I missed something? Best Regards Alistair Leslie-Hughes
Re: [1/3] msxml3: Add xmlparser interfaces
Hi Francois, I think that's the problem. Wine reimplements the Windows' Platform SDK Win32 and Win64 APIs, not Windows Mobile which is what the PowerPC SDK is. Apparently there are some differences so it would be best not to mix the two. Note that this is not to say that Wine should not also implement the Windows Mobile API, just that adding support for it would require larger adjustments. It shouldn't be a problem, this is the only place you can get a reference to these interfaces. It appears that once these interfaces were Deprecated they where removed from the SDK for msxml. See MSDN to show that they now deprecated, and they aren't just for Mobile Devices. http://msdn.microsoft.com/en-us/library/ms757816%28VS.85%29.aspx It was part of the msxml3 at some point on windows, see bug http://bugs.winehq.org/show_bug.cgi?id=5841 Best Regards Alistair Leslie-Hughes
Re: [1/3] msxml3: Add xmlparser interfaces
Hi Francois, This patch defines an XML_ERROR_CODE enumeration type in xmlparser.idl which is a bit strange because I cannot find this type in the Windows SDK. But in the Windows 7 SDK there is an XmlError enumeration type in xmllite.h that looks similar but subtly different. These two enumaration types share some error codes, in particular XML_E_INVALID_HEXIDECIMAL (Microsoft can't spell apparently) but with different values. In this case 0xc00ce51e in Wine vs. 0xc00ce01e in the Windows 7 SDK. So what's going on? I have taken my values from xmlparser.idl found in the the PocketPC SDK that is included with VS 2008. I've double check the values, and they are correct. From the windows xmlparser.idl typedef enum { XML_E_PARSEERRORBASE = 0xC00CE500L, XML_E_ENDOFINPUT= XML_E_PARSEERRORBASE, ... XML_E_INVALID_HEXIDECIMAL, // 1E - WINE = 0xC00CE51E } XML_ERROR_CODE; Hope this clears things up. Best Regards Alistair Leslie-Hughes
Re: winspool.drv: Correct test for Device Capabilities
On 8/09/2011 8:35 PM, Marvin wrote: Hi, While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at http://testbot.winehq.org/JobDetails.pl?Key=14060 Your paranoid android. === WINEBUILD (build) === Can't determine base name Can someone explain what this error is and how to rectify it? Best Regards Alistair Leslie-Hughes
Re: [3/3] msxml3: Support creating IXMLParser Interface (try 2)
On 7/09/2011 9:43 PM, Nikolay Sivov wrote: (not related to patch contents) First time I saw this on a list I thought - god dammit, another parser interface. But looking at methods list it's probably a first candidate to be independent from libxml2 without any loss in functionality or big overhead like XPath or XSL things. We'll see. Is it mentioned as obsolete by any chance? Seems to be a kind of low level parser. Yes, these are marked as obsolete but are still valid interfaces for embedded windows. They are defined in xmlparser.idl but since there are marked as local, I believe they wont be registered as per normal. Best Regards Alistair Leslie-Hughes
Re: [2/3] msxml3: Register XML Parser interfaces (try 2)
On 7/09/2011 9:39 PM, Nikolay Sivov wrote: On Wed, Sep 7, 2011 at 2:04 PM, Alistair Leslie-Hughes leslie_alist...@hotmail.com wrote: Hi, Changelog: msxml3: Register XML Parser interfaces Do you really need this? I think existing coclasses are registered with .idl in /msxml3. Maybe just add new .idl in it? Since these interfaces aren't part of the msxml3 typelib, we properly want to keep them separated. Best Regards Alistair Leslie-Hughes
Re: shdocvw: Add ITaskbarList2 Interface
Hi André, On 19/06/2011 1:52 AM, André Hentschel wrote: --- dlls/shdocvw/taskbarlist.c | 74 --- include/shobjidl.idl | 15 + 2 files changed, 63 insertions(+), 26 deletions(-) Can you please provide a test case to show that this interface exists? Best Regards Alistair Leslie-Hughes
Re: [1/4] mshtml: Ignore IActiveScript interface for IXMLHTTPRequest (resend)
Hi Jacek, -- From: Jacek Caban ja...@codeweavers.com Sent: Wednesday, February 16, 2011 8:44 PM To: Alistair Leslie-Hughes leslie_alist...@hotmail.com Cc: Wine Devel wine-devel@winehq.org Subject: Re: [1/4] mshtml: Ignore IActiveScript interface for IXMLHTTPRequest (resend) We need to just ignore two know interfaces IActiveScript and IDispatchEx. Not really. For example, you will find need for silencing IID_IDispatchJS pseudo-interface and its native jscript equivalent once it will be actually usefull for scripts. These are not interfaces apps query for and they are trivial to find once you know you're dealing with scripting. And please don't tell me that expecting enabling tracing for debugged DLL is something making debugging hard. No debugging isn't that hard. I was testing with a web page and these interfaces are repeated in the trace a lot, and it's easier to deal with a name instead of a GUID. If we are going to stop silencing interfaces, Should be just remove the ones already in webbrowser(shdocvw)? No, We do this so other developers can see that these interfaces are not supported and so they don't need to waste there time researching them. We silence interfaces like the above in other places, so why no here? Each case is different and you need to consider what having this FIXME is gaining us. XMLHTTPRequest object has one interfaces interesting for apps and some more needed by stuff like scripting or security manager that are easy to find missing and obvious to expect. Objects like WebBrowser control have tons of interfaces that app may query for and in its case, the FIXME has proven to be useful. I've sent a patch that lists the known noisy interfaces, and changes the FIXME to a WARN. Best Regards Alistair Leslie-Hughes
Re: [1/4] mshtml: Ignore IActiveScript interface for IXMLHTTPRequest (resend)
Hi Jacek, On 14/02/2011 9:48 PM, Jacek Caban wrote: On 2/14/11 10:03 AM, Alistair Leslie-Hughes wrote: Changelog: mshtml: Ignore IActiveScript interface for IXMLHTTPRequest mshtml? + else if ( IsEqualGUID( riid,IID_IActiveScript)) + { + TRACE((%p)-(IID_IActiveScript %p) returning NULL\n, This, ppvObject); + *ppvObject = NULL; + return E_NOINTERFACE; + } else { FIXME(Unsupported interface %s\n, debugstr_guid(riid)); As discussed on wine-devel, please just change the later FIXME to TRACE instead. By just changing the FIXME to a TRACE would hide this fact that IObjectWithSite and IObjectSafety need to be implemented at some point. Only with msxml tracing would be see this fact, which would lead to hard to pin point errors. We need to just ignore two know interfaces IActiveScript and IDispatchEx. If we are going to stop silencing interfaces, Should be just remove the ones already in webbrowser(shdocvw)? No, We do this so other developers can see that these interfaces are not supported and so they don't need to waste there time researching them. We silence interfaces like the above in other places, so why no here? Best Regards Alistair Leslie-Hughes
Re: msxml3: Ignore IActiveScript interface for IXMLHTTPRequest
Hi, On 11/02/2011 8:12 PM, Nikolay Sivov wrote: On 2/11/2011 10:51, Alistair Leslie-Hughes wrote: Hi, Changelog: msxml3: Ignore IActiveScript interface for IXMLHTTPRequest What's a purpose of this? To remove the FIXME from appearing in the logs. Best Regards Alistair Leslie-Hughes
Re: msxml3: Ignore IActiveScript interface for IXMLHTTPRequest
Hi, -- From: Nikolay Sivov bungleh...@gmail.com Sent: Friday, February 11, 2011 9:27 PM To: Alistair Leslie-Hughes leslie_alist...@hotmail.com Cc: wine-devel@winehq.org Subject: Re: msxml3: Ignore IActiveScript interface for IXMLHTTPRequest On 2/11/2011 12:25, Alistair Leslie-Hughes wrote: Hi, On 11/02/2011 8:12 PM, Nikolay Sivov wrote: On 2/11/2011 10:51, Alistair Leslie-Hughes wrote: Hi, Changelog: msxml3: Ignore IActiveScript interface for IXMLHTTPRequest What's a purpose of this? To remove the FIXME from appearing in the logs. What application is that? Does it appear running in browser scripting by any chance? Yes, it was a website that uses XMLHTTPRequest to load files off the local filesystem. Best Regards Alistair Leslie-Hughes
Re: mshtml: Implement IHTMLStyle put_borderTopColor
Hi Michael, -- From: Michael Stefaniuc mstef...@redhat.com Sent: Thursday, January 27, 2011 9:01 PM To: Alistair Leslie-Hughes leslie_alist...@hotmail.com Cc: wine-devel@winehq.org Subject: Re: mshtml: Implement IHTMLStyle put_borderTopColor Hello Alistair, On 01/27/2011 10:47 AM, Alistair Leslie-Hughes wrote: Changelog: mshtml: Implement IHTMLStyle put_borderTopColor instead of using the switch and handling each variant type separately wouldn't it be easier to just VariantChangeType() to a VT_BSTR? No, it wouldn't. VT_I4 needs to be in the format #FF00FF, and this is the easiest way to format the string. Best Regards Alistair
mshtml: Correct test for unknown dispID
Changelog: mshtml: Correct test for unknown dispID Best Regards Alistair Leslie-Hughes From 1d422d3162a048f354671301e9a58e41d7641d94 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Wed, 8 Sep 2010 14:39:53 +1000 Subject: [PATCH] Correct test for unknown dispID To: wine-patches wine-patc...@winehq.org --- dlls/mshtml/tests/htmldoc.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c index 65451b1..d1d02f0 100644 --- a/dlls/mshtml/tests/htmldoc.c +++ b/dlls/mshtml/tests/htmldoc.c @@ -834,6 +834,7 @@ static HRESULT WINAPI PropertyNotifySink_OnChanged(IPropertyNotifySink *iface, D CHECK_EXPECT(OnChanged_1012); return S_OK; case 1030: +case 328: case 329: case 330: /* TODO */ -- 1.7.0.4
Porting Applications
Hi, Check out this ability to debug your windows in WINE. Sparx Systems Enterprise Architect allows you to debug Windows applications under WINE. http://www.sparxsystems.com/support/faq/enterprise-architect-WINE.html#nine The limitations are you need to use the native dbghelp.dll. You need the PDB's of the application you want to debug, and the source if want to set breakpoints. Features 1. Allows debugging of a windows application. 2. Allows sampling (profiling) of you application. What it doesn't do 1. Allow Debugging of application you have the PDB's. 2. Assembly level debugging, all breakpoints are at the source level only. This feature has been extremely useful in working out issues with running Enterprise Architect in the WINE environment. Best Regards Alistair Leslie-Hughes
Re: rpcrt4: Added stub function CreateStubFromTypeInfo
On 22/03/2010 11:06 PM, Nikolay Sivov wrote: Hi Nikolay, + return E_NOTIMPL; Displaying messagebox is a bit questionable, ExitProcess is even worse. If you mean here that native oleaut32 uses this call, a general FIXME is enough. If you really don't want to survive from such call you don't need this stub at all. Its better to warn the user that the oleaut32,rpcrt4 pair isn't right, so they can possible fix the problem. The program *will* crash after this call unless valid data is passed back, so termination allows the application to possible clean up. In my case it allowed a sub process to die without crashing the main program. Best Regards Alistair Leslie-Hughes
Re: oleaut32: Use FADF_HAVEVARTYPE before FADF_RECORD for safearrays
A test case would be a good idea. After spending a consider amount of time trying to writing a test case, It always failed on an XP box. This patch would just hide the issue instead of truly fixing it. Best Regards Alistair Leslie-Hughes
Re: msxml4: Prefer to use the native version
On 9/02/2010 9:21 PM, Nikolay Sivov wrote: On 2/9/2010 11:50, Alistair Leslie-Hughes wrote: Hi, Changelog: msxml4: Prefer to use the native version Best Regards Alistair Leslie-Hughes Why do you need this? If a program install msxml4 as part of it install process, it should use the native one, since the current implementation doesn't support any interfaces of msxml4. This way users dont have to override msxml4 via winecfg. Best Regards Alistair Leslie-Hughes
Re: msxml4: Prefer to use the native version
What specific features are your referring? msxml3 isn't complete and has a lot of problems, but it's considered as ready, it's enough for msxml4 to just forward to it. If there's a real problem let's add another forward (as DOMDocument40 already does). After some more investigate the crash is caused by fixme:msxml:domdoc_setProperty Unknown property LSelectionNamespaces XPath error : Undefined namespace prefix xmlXPathEval: evaluation failed Which is already covered by a bug already. Best Regards Alistair Leslie-Hughes
Re: [PATCH 3/4] msxml3/xmldoc: IPersistStreamInit::InitNew() seems to do nothing for IXMLDocument
On 13/01/2010 1:41 AM, Nikolay Sivov wrote: IPersistStreamInit::InitNew() seems to do nothing for IXMLDocument +hr = IPersistStreamInit_IsDirty(psi); +todo_wine ok(hr == S_FALSE, Expected S_OK, got %08x\n, hr); The message doesn't match the condition. Best Regards Alistair Leslie-Hughes
Re: shdocvw: Added support for non-english IE MUI
Hi Paul, Although I can agree on adding this language support to the implementation, I'm not sure we want this in the tests. Someone has to keep the translations up-to-date in the tests. Next to that the new tests assume that our translation is exactly the same as Windows, not sure if we even want that. I wasn't sure on what the best approach was, so I added resources to both. Currently I see two options 1. Use the current patch and add resources as the test fail for each language. 2. Change the test to str, and hres == S_OK, and wait for an app to rely on the translated string to work before adding resources to either. (patch will be available shortly). Either way, the control string will be exactly what we get from get_Name, so translators properly wouldn't need to directly translate it. (copy paste from error log :) ) Best Regards Alistair Leslie-Hughes
Re: shdocvw: Fix test for non-english IE MUI
Hi Jacek, You don't need to delete the whole test. You can check for the system language and do the compare only if it's English. Is there an example that already does this? Just use function GetUILanguageInfo or similar? Best Regards Alistair Leslie-Hughes
Re: [1/2] mshtml: Implement IHTMLDocument2_put/get_bgColor
Hi Vladimir, On 08/23/2009 05:17 PM, Vladimir Pankratov wrote: +hres = IHTMLDocument2_get_body(iface, elem); You need to Release elem when you have finished with it. Best Regards Alistair Leslie-Hughes
Help with test
Hi, I been trying to fix this bug, and have patch that works. http://bugs.winehq.org/show_bug.cgi?id=11325 The only thing is that the test case I've written fails under wine but work under Windows XP. The issue is, when using a stylesheet we can do something like xsl:apply-templates select='document(C:\temp\ss.xsl/bottle/etc)' /. which attempts to load a document and extracts information from it. In windows this works fine, but the linux libxsl library doesn't know about 'c:\' syntax. To get around this issue we overload the input for libxml, and handle windows file paths. (patch attached) The problem is I've attempted to reproduce this scenario as a test, but have missed something. Can someone have a look to see what I might of overlooked? Best Regards Alistair Leslie-Hughes From 3277b7192ec3edeb5718e449a82c5bb239df84fd Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Mon, 10 Aug 2009 22:30:51 +1000 Subject: [PATCH 2/2] Support loading windows file path under wine To: wine-patches wine-patc...@winehq.org --- dlls/msxml3/main.c | 90 ++ dlls/msxml3/tests/domdoc.c | 116 2 files changed, 206 insertions(+), 0 deletions(-) diff --git a/dlls/msxml3/main.c b/dlls/msxml3/main.c index 358a5cb..c38cb37 100644 --- a/dlls/msxml3/main.c +++ b/dlls/msxml3/main.c @@ -32,6 +32,7 @@ #include msxml.h #include msxml2.h +#include wine/unicode.h #include wine/debug.h #include wine/library.h @@ -39,6 +40,84 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml); +/* Support for loading xml files from a Wine Windows drive */ +static int wineXmlMatchCallback (char const * filename) +{ +BSTR sFilename = bstr_from_xmlChar( (xmlChar*)filename); +BSTR sColon = bstr_from_xmlChar( (xmlChar*):); +int nRet = 0; + +TRACE(%s\n, debugstr_w(sFilename)); + +/* + * We will deal with loading XML files from the file system + * We only care about files that linux cannot find. + *e.g. C:,D: etc + */ +if(isalphaW(sFilename[0]) sFilename[1] == sColon[0]) +nRet = 1; + +SysFreeString(sFilename); +SysFreeString(sColon); + +return nRet; +} + +static void *wineXmlOpenCallback (char const * filename) +{ +BSTR sFilename = bstr_from_xmlChar( (xmlChar*)filename); +HANDLE hFile; + +TRACE(%s\n, debugstr_w(sFilename)); + +hFile = CreateFileW(sFilename, GENERIC_READ,FILE_SHARE_READ, NULL, + OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL); +if(hFile == INVALID_HANDLE_VALUE) +{ +ERR(failed to open file %s\n, debugstr_w(sFilename)); +SysFreeString(sFilename); +return NULL; +} +SysFreeString(sFilename); + +return ((void *) hFile); +} + +static int wineXmlReadCallback(void * context, char * buffer, int len) +{ +DWORD dwBytesRead; + +TRACE(%p %s %d\n, context, buffer, len); + +if ((context == NULL) || (buffer == NULL)) +return(-1); + +if(!ReadFile( (HANDLE )context, buffer,len, dwBytesRead, NULL)) +{ +ERR(Failed to read file\n); +return -1; +} + +TRACE(Read %d\n, dwBytesRead); + +return dwBytesRead; +} + +static int wineXmlFileCloseCallback (void * context) +{ +int ret; + +TRACE(%p\n, context); + +if (context == NULL) +return -1; + +ret = CloseHandle((HANDLE)context) ? 0 : -1; + +return ret; +} + + HRESULT WINAPI DllCanUnloadNow(void) { FIXME(\n); @@ -96,8 +175,15 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv) for this thread and as default for new threads */ xmlTreeIndentString = \t; xmlThrDefTreeIndentString(\t); + + /* Register callbacks for loading XML files */ +if(xmlRegisterInputCallbacks(wineXmlMatchCallback, wineXmlOpenCallback, +wineXmlReadCallback, wineXmlFileCloseCallback) == -1) +WARN(Failed to register callbacks\n); + #endif init_libxslt(); + DisableThreadLibraryCalls(hInstDLL); break; case DLL_PROCESS_DETACH: @@ -110,6 +196,10 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv) } #endif #ifdef HAVE_LIBXML2 +/* Restore default Callbacks */ +xmlCleanupInputCallbacks(); +xmlRegisterDefaultInputCallbacks(); + xmlCleanupParser(); #endif release_typelib(); diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 18b9576..2c84fba 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -150,6 +150,37 @@ static const CHAR szTypeValueXML[] = ?xml version=\1.0\ encoding=\utf-8\? stringWine/string; +static const CHAR szBasicTransformSSXMLPart1[] = +?xml version=\1.0\? +xsl:stylesheet version=\1.0\ xmlns:xsl=\http://www.w3.org/1999/XSL/Transform\; +xsl:output method=\html\/\n +xsl:template match=\/\ +HTMLBODYTABLE +xsl:apply
Re: mshtml: Implement IHTMLStyle4 get/put textOverflow
Forget this patch, missed the todo_wine Alistair Leslie-Hughes leslie_alist...@hotmail.com wrote in message news:4a7aa9a2.9060...@hotmail.com... Hi, Changelog: mshtml: Implement IHTMLStyle4 get/put textOverflow Best Regards Alistair Leslie-Hughes From 4f121dd9918252af3f1a46eeb1c1826a4830d0a8 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Wed, 18 Feb 2009 22:43:39 +1100 Subject: [PATCH] Implement IHTMLStyle4 get/put textOverflow To: wine-patches wine-patc...@winehq.org --- dlls/mshtml/htmlstyle.c |3 +++ dlls/mshtml/htmlstyle.h |1 + dlls/mshtml/htmlstyle3.c | 18 ++ dlls/mshtml/tests/dom.c | 30 ++ 4 files changed, 48 insertions(+), 4 deletions(-) diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c index f036077..82ddf58 100644 --- a/dlls/mshtml/htmlstyle.c +++ b/dlls/mshtml/htmlstyle.c @@ -111,6 +111,8 @@ static const WCHAR attrTextAlign[] = {'t','e','x','t','-','a','l','i','g','n',0}; static const WCHAR attrTextDecoration[] = {'t','e','x','t','-','d','e','c','o','r','a','t','i','o','n',0}; +static const WCHAR attrTextOverflow[] = +{'t','e','x','t','-','o','v','e','r','f','l','o','w',0}; static const WCHAR attrTop[] = {'t','o','p',0}; static const WCHAR attrVerticalAlign[] = @@ -166,6 +168,7 @@ static const struct{ {attrPosition, DISPID_IHTMLSTYLE2_POSITION}, {attrTextAlign,DISPID_IHTMLSTYLE_TEXTALIGN}, {attrTextDecoration, DISPID_IHTMLSTYLE_TEXTDECORATION}, +{attrTextOverflow, DISPID_IHTMLSTYLE4_TEXTOVERFLOW}, {attrTop, DISPID_IHTMLSTYLE_TOP}, {attrVerticalAlign,DISPID_IHTMLSTYLE_VERTICALALIGN}, {attrVisibility, DISPID_IHTMLSTYLE_VISIBILITY}, diff --git a/dlls/mshtml/htmlstyle.h b/dlls/mshtml/htmlstyle.h index 307824e..b6bdcab 100644 --- a/dlls/mshtml/htmlstyle.h +++ b/dlls/mshtml/htmlstyle.h @@ -73,6 +73,7 @@ typedef enum { STYLEID_POSITION, STYLEID_TEXT_ALIGN, STYLEID_TEXT_DECORATION, +STYLEID_TEXT_OVERFLOW, STYLEID_TOP, STYLEID_VERTICAL_ALIGN, STYLEID_VISIBILITY, diff --git a/dlls/mshtml/htmlstyle3.c b/dlls/mshtml/htmlstyle3.c index 505e91e..84b914b 100644 --- a/dlls/mshtml/htmlstyle3.c +++ b/dlls/mshtml/htmlstyle3.c @@ -399,15 +399,25 @@ static HRESULT WINAPI HTMLStyle4_Invoke(IHTMLStyle4 *iface, DISPID dispIdMember, static HRESULT WINAPI HTMLStyle4_put_textOverflow(IHTMLStyle4 *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE4_THIS(iface); -FIXME((%p)-(%s)\n, This, debugstr_w(v)); -return E_NOTIMPL; +static const WCHAR styleEllipsis[] = {'e','l','l','i','p','s','i','s',0}; +static const WCHAR styleClip[] = {'c','l','i','p',0}; + +TRACE((%p)-(%s)\n, This, debugstr_w(v)); + +/* textOverflow can only be one of the following */ +if(!v || strcmpiW(styleEllipsis, v) == 0|| strcmpiW(styleClip, v) == 0) +{ +return set_nsstyle_attr(This-nsstyle, STYLEID_TEXT_OVERFLOW, v, 0); +} + +return E_INVALIDARG; } static HRESULT WINAPI HTMLStyle4_get_textOverflow(IHTMLStyle4 *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE4_THIS(iface); -FIXME((%p)-(%p)\n, This, p); -return E_NOTIMPL; +TRACE((%p)-(%p)\n, This, p); +return get_nsstyle_attr(This-nsstyle, STYLEID_TEXT_OVERFLOW, p); } static HRESULT WINAPI HTMLStyle4_put_minHeight(IHTMLStyle4 *iface, VARIANT v) diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index 4846848..1d283e4 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -2654,6 +2654,8 @@ static void test_style4(IHTMLStyle4 *style4) HRESULT hres; VARIANT v; VARIANT vdefault; +BSTR sdefault; +BSTR str; hres = IHTMLStyle4_get_minHeight(style4, vdefault); ok(hres == S_OK, get_minHeight failed: %08x\n, hres); @@ -2672,6 +2674,34 @@ static void test_style4(IHTMLStyle4 *style4) hres = IHTMLStyle4_put_minHeight(style4, vdefault); ok(hres == S_OK, put_minHeight failed: %08x\n, hres); VariantClear(vdefault); + +/* textOverflow */ +hres = IHTMLStyle4_get_textOverflow(style4, sdefault); +ok(hres == S_OK, get_minHeight failed: %08x\n, hres); + +str = a2bstr(invalid); +hres = IHTMLStyle4_put_textOverflow(style4, str); +ok(hres == E_INVALIDARG, put_textOverflow passed: %08x\n, hres); +SysFreeString(str); + +str = a2bstr(ellipsis); +hres = IHTMLStyle4_put_textOverflow(style4, str); +ok(hres == S_OK, put_textOverflow failed: %08x\n, hres); +SysFreeString(str); + +str = a2bstr(clip); +hres = IHTMLStyle4_put_textOverflow(style4, str); +ok(hres == S_OK, put_textOverflow failed: %08x\n, hres); +SysFreeString(str); + +hres = IHTMLStyle4_get_textOverflow(style4, str); +ok(hres == S_OK, get_textOverflow failed: %08x\n, hres); +todo_wine ok( !strcmp_wa(str, clip
Re: [1/2] shdocvw: Added support for IAdviseSink (resend)
Hi, Could I get some feedback on this patch please? Best Regards Alistair Leslie-Hughes Alistair Leslie-Hughes wrote: Hi, Changelog: shdocvw: Added support for IAdviseSink Best Regards Alistair Leslie-Hughes From 9925900c771af32a1dfb2567d8354e888949c352 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Fri, 31 Jul 2009 20:40:10 +1000 Subject: [PATCH] Partial support for IAdviseSink To: wine-patches wine-patc...@winehq.org --- dlls/shdocvw/oleobject.c| 30 +++-- dlls/shdocvw/shdocvw.h |1 + dlls/shdocvw/tests/webbrowser.c | 92 +++ dlls/shdocvw/webbrowser.c |4 ++ 4 files changed, 123 insertions(+), 4 deletions(-) diff --git a/dlls/shdocvw/oleobject.c b/dlls/shdocvw/oleobject.c index 017e738..bdffc86 100644 --- a/dlls/shdocvw/oleobject.c +++ b/dlls/shdocvw/oleobject.c @@ -501,15 +501,37 @@ static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink, DWORD* pdwConnection) { WebBrowser *This = OLEOBJ_THIS(iface); -FIXME((%p)-(%p, %p)\n, This, pAdvSink, pdwConnection); -return E_NOTIMPL; +HRESULT hr = E_INVALIDARG; + +TRACE((%p)-(%p, %p)\n, This, pAdvSink, pdwConnection); + +if(!pdwConnection || !pAdvSink) +return hr; + +if(!This-holder) +{ +hr = CreateOleAdviseHolder(This-holder); +if(FAILED(hr)) +ERR(CreateOleAdviseHolder failed\n); +} + +if(hr == S_OK This-holder) +{ +hr = IOleAdviseHolder_Advise(This-holder, pAdvSink, pdwConnection); +} + +return hr; } static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection) { WebBrowser *This = OLEOBJ_THIS(iface); -FIXME((%p)-(%d)\n, This, dwConnection); -return E_NOTIMPL; +TRACE((%p)-(%d)\n, This, dwConnection); + +if(!This-holder) +return OLE_E_NOCONNECTION; + +return IOleAdviseHolder_Unadvise(This-holder, dwConnection); } static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **ppenumAdvise) diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h index b148611..ed96882 100644 --- a/dlls/shdocvw/shdocvw.h +++ b/dlls/shdocvw/shdocvw.h @@ -128,6 +128,7 @@ struct WebBrowser { IOleClientSite *client; IOleContainer *container; IOleInPlaceSite *inplace; +IOleAdviseHolder *holder; /* window context */ diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c index 131b29c..3485e50 100644 --- a/dlls/shdocvw/tests/webbrowser.c +++ b/dlls/shdocvw/tests/webbrowser.c @@ -468,6 +468,68 @@ static HRESULT WINAPI WebBrowserEvents2_QueryInterface(IDispatch *iface, REFIID return E_NOINTERFACE; } +/* IAdviseSink */ +static HRESULT WINAPI WebBrowserAdviseSink_QueryInterface(IAdviseSink *iface, REFIID riid, void **ppv) +{ +*ppv = NULL; + +if(IsEqualGUID(IID_IAdviseSink, riid)) { +*ppv = iface; +return S_OK; +} + +ok(0, unexpected riid %s\n, debugstr_guid(riid)); +return E_NOINTERFACE; +} + +static ULONG WINAPI WebBrowserAdviseSink_AddRef(IAdviseSink *iface) +{ +return 2; +} + +static ULONG WINAPI WebBrowserAdviseSink_Release(IAdviseSink *iface) +{ +return 1; +} + +static void WINAPI WebBrowserAdviseSink_OnDataChange(IAdviseSink *iface, FORMATETC *pFormatetc, STGMEDIUM *pStgmed) +{ +ok(0, unexpected OnDataChange\n); +} + +static void WINAPI WebBrowserAdviseSink_OnViewChange(IAdviseSink *iface, DWORD dwAspect, LONG lindex) +{ +ok(0, unexpected OnViewChange\n); +} + +static void WINAPI WebBrowserAdviseSink_OnRename(IAdviseSink *iface, IMoniker *pmk) +{ +ok(0, unexpected OnRename\n); +} + +static void WINAPI WebBrowserAdviseSink_OnSave(IAdviseSink *iface) +{ +ok(0, unexpected OnSave\n); +} + +static void WINAPI WebBrowserAdviseSink_OnClose(IAdviseSink *iface) +{ +ok(0, unexpected OnClose\n); +} + +static IAdviseSinkVtbl AdviseSinkVtbl = { +WebBrowserAdviseSink_QueryInterface, +WebBrowserAdviseSink_AddRef, +WebBrowserAdviseSink_Release, +WebBrowserAdviseSink_OnDataChange, +WebBrowserAdviseSink_OnViewChange, +WebBrowserAdviseSink_OnRename, +WebBrowserAdviseSink_OnSave, +WebBrowserAdviseSink_OnClose +}; + +static IAdviseSink AdviseSink = { AdviseSinkVtbl }; + #define test_invoke_bool(p,s) _test_invoke_bool(__LINE__,p,s) static void _test_invoke_bool(unsigned line, const DISPPARAMS *params, BOOL strict) { @@ -1451,6 +1513,35 @@ static void test_DoVerb(IUnknown *unk) IOleObject_Release(oleobj); } +static void test_IOleObject_Sink(IUnknown *unk) +{ +IOleObject *oleobj; +HRESULT hres; +DWORD sink; + +hres = IUnknown_QueryInterface(unk, IID_IOleObject, (void**)oleobj); +ok(hres == S_OK, QueryInterface(IID_OleObject) failed: %08x\n, hres); +if(FAILED(hres)) +return; + +hres = IOleObject_Advise(oleobj, AdviseSink, NULL); +ok(hres == E_INVALIDARG
Re: [1/7] mshtml: Implement IHTMLStyle get/put borderLeftWidth (resend)
Could I get some feedback on this patch please? Best Regards Alistair Leslie-Hughes From 60473b955b3b35feb089ad1cbf1320ce9f971020 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Thu, 5 Mar 2009 20:44:38 +1100 Subject: [PATCH] Implement IHTMLStyle get/put borderLeftWidth To: wine-patches wine-patc...@winehq.org --- dlls/mshtml/htmlstyle.c | 11 +++ dlls/mshtml/htmlstyle.h |1 + dlls/mshtml/tests/dom.c | 19 +++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c index 7641701..10f90e1 100644 --- a/dlls/mshtml/htmlstyle.c +++ b/dlls/mshtml/htmlstyle.c @@ -59,6 +59,8 @@ static const WCHAR attrBorderLeft[] = {'b','o','r','d','e','r','-','l','e','f','t',0}; static const WCHAR attrBorderLeftStyle[] = {'b','o','r','d','e','r','-','l','e','f','t','-','s','t','y','l','e',0}; +static const WCHAR attrBorderLeftWidth[] = + {'b','o','r','d','e','r','-','l','e','f','t','-','w','i','d','t','h',0}; static const WCHAR attrBorderRightStyle[] = {'b','o','r','d','e','r','-','r','i','g','h','t','-','s','t','y','l','e',0}; static const WCHAR attrBorderRightWidth[] = @@ -138,6 +140,7 @@ static const struct{ {attrBorderColor, DISPID_IHTMLSTYLE_BORDERCOLOR}, {attrBorderLeft, DISPID_IHTMLSTYLE_BORDERLEFT}, {attrBorderLeftStyle, DISPID_IHTMLSTYLE_BORDERLEFTSTYLE}, +{attrBorderLeftWidth, DISPID_IHTMLSTYLE_BORDERLEFTWIDTH}, {attrBorderRightStyle, DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE}, {attrBorderRightWidth, DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH}, {attrBorderStyle, DISPID_IHTMLSTYLE_BORDERSTYLE}, @@ -1571,15 +1574,15 @@ static HRESULT WINAPI HTMLStyle_get_borderBottomWidth(IHTMLStyle *iface, VARIANT static HRESULT WINAPI HTMLStyle_put_borderLeftWidth(IHTMLStyle *iface, VARIANT v) { HTMLStyle *This = HTMLSTYLE_THIS(iface); -FIXME((%p)-(v%d)\n, This, V_VT(v)); -return E_NOTIMPL; +TRACE((%p)-(v%d)\n, This, V_VT(v)); +return set_nsstyle_attr_var(This-nsstyle, STYLEID_BORDER_LEFT_WIDTH, v, 0); } static HRESULT WINAPI HTMLStyle_get_borderLeftWidth(IHTMLStyle *iface, VARIANT *p) { HTMLStyle *This = HTMLSTYLE_THIS(iface); -FIXME((%p)-(%p)\n, This, p); -return E_NOTIMPL; +TRACE((%p)-(%p)\n, This, p); +return get_nsstyle_attr_var(This-nsstyle, STYLEID_BORDER_LEFT_WIDTH, p, 0); } static HRESULT WINAPI HTMLStyle_put_borderStyle(IHTMLStyle *iface, BSTR v) diff --git a/dlls/mshtml/htmlstyle.h b/dlls/mshtml/htmlstyle.h index 596f579..b900e67 100644 --- a/dlls/mshtml/htmlstyle.h +++ b/dlls/mshtml/htmlstyle.h @@ -47,6 +47,7 @@ typedef enum { STYLEID_BORDER_COLOR, STYLEID_BORDER_LEFT, STYLEID_BORDER_LEFT_STYLE, +STYLEID_BORDER_LEFT_WIDTH, STYLEID_BORDER_RIGHT_STYLE, STYLEID_BORDER_RIGHT_WIDTH, STYLEID_BORDER_STYLE, diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index f95b753..be877b2 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -3587,6 +3587,25 @@ static void test_default_style(IHTMLStyle *style) ok(hres == S_OK, put_borderBottomWidth: %08x\n, hres); VariantClear(vDefault); +/* borderLeftWidth */ +hres = IHTMLStyle_get_borderLeftWidth(style, vDefault); +ok(hres == S_OK, get_borderLeftWidth: %08x\n, hres); + +V_VT(v) = VT_BSTR; +V_BSTR(v) = a2bstr(10); +hres = IHTMLStyle_put_borderLeftWidth(style, v); +ok(hres == S_OK, put_borderLeftWidth: %08x\n, hres); +VariantClear(v); + +hres = IHTMLStyle_get_borderLeftWidth(style, v); +ok(hres == S_OK, get_borderLeftWidth: %08x\n, hres); +ok(!strcmp_wa(V_BSTR(v), 10px), expected 10px = %s\n, dbgstr_w(V_BSTR(v))); +VariantClear(v); + +hres = IHTMLStyle_put_borderLeftWidth(style, vDefault); +ok(hres == S_OK, put_borderLeftWidth: %08x\n, hres); +VariantClear(vDefault); + hres = IHTMLStyle_QueryInterface(style, IID_IHTMLStyle2, (void**)style2); ok(hres == S_OK, Could not get IHTMLStyle2 iface: %08x\n, hres); if(SUCCEEDED(hres)) { -- 1.5.4.3
Re: mshtml: Implement IHTMLStyle4 get/put textOverflow
Ignore this patch, we'll have to wait until Firefox 3.1 before CSS3 is supported. I forgot there was wine_todo. Alistair Leslie-Hughes leslie_alist...@hotmail.com wrote in message news:49b726bb.4000...@hotmail.com... Hi, Changelog: mshtml: Implement IHTMLStyle4 get/put textOverflow Best Regards Alistair Leslie-Hughes
Re: [PATCH 1/4] mshtml: Added IHTMLElement::put_innerHTML implementation.
Hi Jacek, Jacek Caban wrote: --- dlls/mshtml/htmlelem.c | 33 +++-- dlls/mshtml/tests/dom.c | 42 ++ 2 files changed, 73 insertions(+), 2 deletions(-) static const WCHAR xW[] = {'x',0}; +static const WCHAR yW[] = {'x',0}; Should this be = {'y', 0}? Best Regards Alistair Leslie-Hughes
Re: [2/2] mshtml: Implement IHTMLElement2_insertAdjecentElement (try 2)
Hi, Can I get some feedback on please? Best Regards Alistair Leslie-Hughes Alistair Leslie-Hughes leslie_alist...@hotmail.com wrote in message news:49a7af90.8000...@hotmail.com... Hi, Moved forward declare to private header. Changelog: mshtml: Implement IHTMLElement2_insertAdjecentElement Best Regards Alistair Leslie-Hughes From afef95a87e49096a1fb26cb85a73463fcf5e5560 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Thu, 19 Feb 2009 20:30:21 +1100 Subject: [PATCH] Implement IHTMLElement2_insertAdjecentElement To: wine-patches wine-patc...@winehq.org --- dlls/mshtml/htmlelem.c |2 +- dlls/mshtml/htmlelem2.c | 13 +++-- dlls/mshtml/htmlnode.c |3 +-- dlls/mshtml/mshtml_private.h |3 +++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c index 7d9a244..0b5cff7 100644 --- a/dlls/mshtml/htmlelem.c +++ b/dlls/mshtml/htmlelem.c @@ -920,7 +920,7 @@ static HRESULT WINAPI HTMLElement_get_outerText(IHTMLElement *iface, BSTR *p) return E_NOTIMPL; } -static HRESULT HTMLElement_InsertAdjacentNode(HTMLElement *This, BSTR where, nsIDOMNode *nsnode, +HRESULT HTMLElement_InsertAdjacentNode(HTMLElement *This, BSTR where, nsIDOMNode *nsnode, IHTMLElement **inserted) { static const WCHAR wszBeforeBegin[] = {'b','e','f','o','r','e','B','e','g','i','n',0}; diff --git a/dlls/mshtml/htmlelem2.c b/dlls/mshtml/htmlelem2.c index 3e22155..8007dc0 100644 --- a/dlls/mshtml/htmlelem2.c +++ b/dlls/mshtml/htmlelem2.c @@ -912,8 +912,17 @@ static HRESULT WINAPI HTMLElement2_insertAdjecentElement(IHTMLElement2 *iface, B IHTMLElement *insertedElement, IHTMLElement **inserted) { HTMLElement *This = HTMLELEM2_THIS(iface); -FIXME((%p)-(%s %p %p)\n, This, debugstr_w(where), insertedElement, inserted); -return E_NOTIMPL; +HTMLDOMNode *node_ins; + +TRACE((%p)-(%s %p %p)\n, This, debugstr_w(where), insertedElement, inserted); + +node_ins = get_node_obj(This-node.doc, (IUnknown*)insertedElement); +if(!node_ins) { +ERR(invalid insertedElement\n); +return E_INVALIDARG; +} + +return HTMLElement_InsertAdjacentNode(This, where, node_ins-nsnode, inserted); } static HRESULT WINAPI HTMLElement2_applyElement(IHTMLElement2 *iface, IHTMLElement *apply, diff --git a/dlls/mshtml/htmlnode.c b/dlls/mshtml/htmlnode.c index bee0376..7d5ccb7 100644 --- a/dlls/mshtml/htmlnode.c +++ b/dlls/mshtml/htmlnode.c @@ -32,7 +32,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); -static HTMLDOMNode *get_node_obj(HTMLDocument*,IUnknown*); typedef struct { DispatchEx dispex; @@ -937,7 +936,7 @@ HTMLDOMNode *get_node(HTMLDocument *This, nsIDOMNode *nsnode, BOOL create) * We should use better way for getting node object (like private interface) * or avoid it at all. */ -static HTMLDOMNode *get_node_obj(HTMLDocument *This, IUnknown *iface) +HTMLDOMNode *get_node_obj(HTMLDocument *This, IUnknown *iface) { HTMLDOMNode *iter = This-nodes; IHTMLDOMNode *node; diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index b67c485..37c3fcc 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -777,3 +777,6 @@ static inline char *heap_strdupWtoA(LPCWSTR str) HINSTANCE get_shdoclc(void); extern HINSTANCE hInst; +HTMLDOMNode *get_node_obj(HTMLDocument*,IUnknown*); +HRESULT HTMLElement_InsertAdjacentNode(HTMLElement *This, BSTR where, nsIDOMNode *nsnode, +IHTMLElement **inserted); -- 1.5.4.3
Re: urlmon: Correctly test to see if PutProperty_CLASSIDPROP is called
Hi Pual, Paul Vriens paul.vriens.w...@gmail.com wrote in message news:4999d04b.3010...@gmail.com... This patch introduced some test failures on Win98 up to W2K. Could you have a look? Looks like we need some broken or optional logic. Sure, I'll have a look tonight. Best Regards Alistair Leslie-Hughes
Re: mshtml: Correctly test to see if PutProperty_CLASSIDPROP is called
Ignore this, the subject is wrong. Alistair Leslie-Hughes leslie_alist...@hotmail.com wrote in message news:4997db01.1000...@hotmail.com... Hi, Changelog: mshtml: Correctly test to see if PutProperty_CLASSIDPROP is called. Best Regards Alistair Leslie-Hughes From 14267df8f532c7acc7cc184c3c1e020639ca8702 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Fri, 6 Feb 2009 20:03:47 +1100 Subject: [PATCH] Corrected tests To: wine-patches wine-patc...@winehq.org --- dlls/urlmon/tests/url.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/urlmon/tests/url.c b/dlls/urlmon/tests/url.c index c062cf8..e5895c4 100644 --- a/dlls/urlmon/tests/url.c +++ b/dlls/urlmon/tests/url.c @@ -313,7 +313,7 @@ static DWORD WINAPI thread_proc(PVOID arg) CHECK_CALLED(Obj_OnProgress_BEGINSYNCOPERATION); CHECK_CALLED(CreateInstance); CHECK_CALLED(PutProperty_MIMETYPEPROP); -CLEAR_CALLED(PutProperty_CLASSIDPROP); +CHECK_CALLED(PutProperty_CLASSIDPROP); CHECK_CALLED(Load); CHECK_CALLED(Obj_OnProgress_ENDSYNCOPERATION); CHECK_CALLED(OnObjectAvailable); @@ -612,7 +612,7 @@ static HRESULT WINAPI Protocol_Start(IInternetProtocol *iface, LPCWSTR szUrl, CHECK_CALLED(Obj_OnProgress_BEGINSYNCOPERATION); CHECK_CALLED(CreateInstance); CHECK_CALLED(PutProperty_MIMETYPEPROP); -CLEAR_CALLED(PutProperty_CLASSIDPROP); +CHECK_CALLED(PutProperty_CLASSIDPROP); CHECK_CALLED(Load); CHECK_CALLED(Obj_OnProgress_ENDSYNCOPERATION); CHECK_CALLED(OnObjectAvailable); -- 1.5.4.3
Re: New coverity run Feb 7, 14 new warnings
Hi Dan, 873 FORWARD_NULLHTMLStyle_put_fontWeight dlls/mshtml/htmlstyle.c NULL is a valid value to be passed though to gecko. Best Regards Alistair Leslie-Hughes
Re: New Wine Gecko package
Hi Jacek, Jacek Caban ja...@codeweavers.com wrote in message news:498a2a37.6070...@codeweavers.com... Hi all, Also the last debug version was accidentally stripped. It will be fixed in this release. I'm planning to do the release tomorrow, so it will be in Git on Friday. I've test a few apps (TopStyle, Web Page maker), they appear to not crash any more than before ;). The patch attached didn't cleanly apply to todays git. (but did to a 1.1.14 tree) Best Regards Alistair Leslie-Hughes
Re: mshtml: Implement IHTMLStyle_put_backgroundColor
Hi Ricardo, hi alistair, you say it implements the put method but the patch has only the get method... typo? Thanks for picking this up. It's a typo, Ill resend shortly. Best Regards Alistair Leslie-Hughes
Re: shdocvw: Correct OnAmbientPropertyChange regession
Jacek Caban ja...@codeweavers.com wrote in message news:4988d589.9080...@codeweavers.com... Alistair Leslie-Hughes wrote: Hi, After testing on XP, it appears that OnAmbientPropertyChange when passwed DISP_UNKNOWN doesnt check all properties. Changelog: shdocvw: Correct OnAmbientPropertyChange regession +CHECK_NOT_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED); +CHECK_NOT_CALLED(Invoke_AMBIENT_SILENT); +CHECK_NOT_CALLED(Invoke_AMBIENT_USERMODE); +CHECK_NOT_CALLED(Invoke_AMBIENT_DLCONTROL); +CHECK_NOT_CALLED(Invoke_AMBIENT_USERAGENT); +CHECK_NOT_CALLED(Invoke_AMBIENT_PALETTE); These checks don't make sense here. If you don't set these calls as expected, CHECK_EXPECT will fail when they are called. Hi Jacek. I was unsure about the SET_EXPECT. Thanks Best Regards Alistair Leslie-Hughes
Re: mshtml: Implement IHTMLDocument5 createComment (resend)
Hi, Can I get some feedback on this please? Best Regards Alistair Leslie-Hughes Alistair Leslie-Hughes leslie_alist...@hotmail.com wrote in message news:496d1ebf.2000...@hotmail.com... Hi, Changelog: mshtml: Implement IHTMLDocument5 createComment Best Regards Alistair Leslie-Hughes From 98f08b3836336d2f129413beada591fb8f2f1094 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Tue, 16 Dec 2008 21:49:25 +1100 Subject: [PATCH] Implement IHTMLDocument5 createComment To: wine-patches wine-patc...@winehq.org --- dlls/mshtml/htmldoc5.c | 28 ++-- dlls/mshtml/tests/dom.c | 11 +++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/dlls/mshtml/htmldoc5.c b/dlls/mshtml/htmldoc5.c index 34dc4e0..8fdfb68 100644 --- a/dlls/mshtml/htmldoc5.c +++ b/dlls/mshtml/htmldoc5.c @@ -124,8 +124,32 @@ static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bs IHTMLDOMNode **ppRetNode) { HTMLDocument *This = HTMLDOC5_THIS(iface); -FIXME((%p)-(%s %p)\n, This, debugstr_w(bstrdata), ppRetNode); -return E_NOTIMPL; +nsIDOMComment *nsComment; +HTMLDOMNode *node; +nsAString str; +nsresult nsres; + +TRACE((%p)-(%s %p)\n, This, debugstr_w(bstrdata), ppRetNode); + +if(!This-nsdoc) { +WARN(NULL nsdoc\n); +return E_UNEXPECTED; +} + +nsAString_Init(str, bstrdata); +nsres = nsIDOMHTMLDocument_CreateComment(This-nsdoc, str, nsComment); +nsAString_Finish(str); +if(NS_FAILED(nsres)) { +ERR(CreateTextNode failed: %08x\n, nsres); +return E_FAIL; +} + +node = HTMLCommentElement_Create(This, (nsIDOMNode*)nsComment)-node; +nsIDOMElement_Release(nsComment); + +*ppRetNode = HTMLDOMNODE(node); +IHTMLDOMNode_AddRef(HTMLDOMNODE(node)); +return S_OK; } static HRESULT WINAPI HTMLDocument5_put_onfocusin(IHTMLDocument5 *iface, VARIANT v) diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index 3decd4b..400f83b 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -410,7 +410,9 @@ static IHTMLDocument2 *create_document(void) { IHTMLDocument2 *doc; IHTMLDocument5 *doc5; +IHTMLDOMNode *comment; HRESULT hres; +BSTR str; hres = CoCreateInstance(CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, IID_IHTMLDocument2, (void**)doc); @@ -423,6 +425,15 @@ static IHTMLDocument2 *create_document(void) return NULL; } +str = a2bstr(testing); +hres = IHTMLDocument5_createComment(doc5, str, comment); +SysFreeString(str); +ok(hres == S_OK, createComment failed: %08x\n, hres); +if(hres == S_OK) +{ +IHTMLDOMNode_Release(comment); +} + IHTMLDocument5_Release(doc5); return doc; } -- 1.5.4.3
Re: user32: Check for bad scroll value and fix return values inEDIT_EM_Scroll
Hi, Can I get some feedback on this please? Best Regards Alistair Leslie-Hughes Alistair Leslie-Hughes leslie_alist...@hotmail.com wrote in message news:496db2f4.2020...@hotmail.com... Hi, Based on a patch by David Hedberg and later Austin English. Fixes bug 1517. Corrected test and corrected tab/space issues. Changelog: user32: Check for bad scroll value and fix return values in EDIT_EM_Scroll Best Regards Alistair Leslie-Hughes From 398cc9b765070ee10dd429b55f6c3b0cdb5bcc46 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Wed, 14 Jan 2009 20:33:08 +1100 Subject: [PATCH] Check for bad scroll value and fix return values in EDIT_EM_Scroll To: wine-patches wine-patc...@winehq.org --- dlls/user32/edit.c | 18 +++--- dlls/user32/tests/edit.c | 55 ++ 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c index 6914906..4cd1497 100644 --- a/dlls/user32/edit.c +++ b/dlls/user32/edit.c @@ -3430,13 +3430,23 @@ static LRESULT EDIT_EM_Scroll(EDITSTATE *es, INT action) INT vlc = get_vertical_line_count(es); /* check if we are going to move too far */ if(es-y_offset + dy es-line_count - vlc) - dy = es-line_count - vlc - es-y_offset; + { + dy = es-line_count - vlc - es-y_offset; + + /* Make sure we're not trying to scroll backwards here */ + if(es-y_offset + dy 0) + dy = 0; + } - /* Notification is done in EDIT_EM_LineScroll */ - if(dy) + /* Notification is done in EDIT_EM_LineScroll */ + if(dy) EDIT_EM_LineScroll(es, 0, dy); } - return MAKELONG((INT16)dy, (BOOL16)TRUE); + + if(dy) + return MAKELONG((INT16)dy, (BOOL16)TRUE); + else + return (LRESULT)FALSE; } diff --git a/dlls/user32/tests/edit.c b/dlls/user32/tests/edit.c index b1a9820..ec4759e 100644 --- a/dlls/user32/tests/edit.c +++ b/dlls/user32/tests/edit.c @@ -1205,6 +1205,60 @@ static void test_edit_control_5(void) DestroyWindow(hWnd); } +static void test_edit_control_6(void) +{ +HWND hwEdit; +LONG r; + +static const char *single_line_str = a; +static const char *multiline_str = Test\nText; + +/* Check the return value when EM_SCROLL doesn't actually scroll anything. */ + +hwEdit = CreateWindow( + EDIT, + single_line_str, + WS_VSCROLL | ES_MULTILINE, + 1, 1, 35, 35, + NULL, NULL, hinst, NULL); + +assert(hwEdit); + +trace(EDIT: Scrolling down one page \n); +r = SendMessage(hwEdit, EM_SCROLL, SB_PAGEDOWN, 0); +ok(!r, Returned %x\n, r); + +trace(EDIT: Scrolling up one page \n); +r = SendMessage(hwEdit, EM_SCROLL, SB_PAGEUP, 0); +ok(!r, Returned %x\n, r); + +trace(EDIT: Scrolling up one line\n); +r = SendMessage(hwEdit, EM_SCROLL, SB_LINEUP, 0); +ok(!r, Returned %x\n, r); + +trace(EDIT: Scrolling down one line\n); +r = SendMessage(hwEdit, EM_SCROLL, SB_LINEDOWN, 0); +ok(!r, Returned %x\n, r); + +DestroyWindow (hwEdit); + +/* Check for bug in wine where sending SB_PAGEDOWN causes + EDIT_EM_Scroll to return a negative amount of scrolled lines. */ + +hwEdit = CreateWindow( +EDIT, +multiline_str, +ES_MULTILINE, +0, 0, 50, 1000, +NULL, NULL, hinst, NULL); +assert(hwEdit); + +r = SendMessage(hwEdit, EM_SCROLL, SB_PAGEDOWN, 0); +ok(!r, Returned %x\n, r); + +DestroyWindow (hwEdit); +} + static void test_edit_control_limittext(void) { HWND hwEdit; @@ -2058,6 +2112,7 @@ START_TEST(edit) test_edit_control_3(); test_edit_control_4(); test_edit_control_5(); +test_edit_control_6(); test_edit_control_limittext(); test_margins(); test_margins_font_change(); -- 1.5.4.3
Re: [1/4] mshtml: Implement IHTMLStyle get/put borderRightStyle
Hi Jakek, Jacek Caban ja...@codeweavers.com wrote in message news:496a47af.50...@codeweavers.com... Hi Alistair, Alistair Leslie-Hughes wrote: Hi, Changelog: mshtml: Implement IHTMLStyle get/put borderRightStyle +static BOOL IsValidBorderStyle(BSTR v) - Please use the same name convention as other functions in this file - There is no test proving that the style is validated - You didn't include get_borderRightStyle, which makes put_borderRightStyle almost useless static HRESULT WINAPI HTMLStyle_get_borderLeftStyle(IHTMLStyle *iface, BSTR *p) That's not what changelog says. Thanks for the catch. I added a test case V_VT(arg) = VT_BSTR; V_BSTR(arg) = a2bstr(invalid); hres = IHTMLStyle_Invoke(pStyle, dispid, IID_NULL, LOCALE_SYSTEM_DEFAUT, DISPATCH_PROPERTYPUT, params, ret, NULL, NULL); ok_(__FILE__,line) (hres == S_OK, invalid. ret: %08x\n, hres); VariantClear(arg); The problem is hres is DISP_E_EXCEPTION, whereas I'm expecting E_INVALIDARG (Tested on windows). It appears in ITypeInfo_fnInvoke, if an error is returned from the function call, the result is changed to return DISP_E_EXCEPTION (~ line 6320). Should ITypeInfo_fnInvoke propergate the returned HRESULT instead of changing it? Best Regards Alistair Leslie-Hughes
Re: mshtml: Implement IHTMLStyle get/set Attribute
Hi, Is there anything wrong with this patch? Best Regards Alistair Leslie-Hughes From dca7b396838e3367ad78144ccb07aed24cd5917f Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes leslie_alist...@hotmail.com Date: Mon, 5 Jan 2009 21:22:35 +1100 Subject: [PATCH] Implement IHTMLStyle get/set Attribute To: wine-patches wine-patc...@winehq.org --- dlls/mshtml/htmlstyle.c | 69 ++ dlls/mshtml/tests/dom.c | 36 2 files changed, 99 insertions(+), 6 deletions(-) diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c index fa4ad51..3453f7b 100644 --- a/dlls/mshtml/htmlstyle.c +++ b/dlls/mshtml/htmlstyle.c @@ -2048,18 +2048,75 @@ static HRESULT WINAPI HTMLStyle_setAttribute(IHTMLStyle *iface, BSTR strAttribut VARIANT AttributeValue, LONG lFlags) { HTMLStyle *This = HTMLSTYLE_THIS(iface); -FIXME((%p)-(%s v%d %08x)\n, This, debugstr_w(strAttributeName), - V_VT(AttributeValue), lFlags); -return E_NOTIMPL; +HRESULT hres; +DISPID dispid; + +TRACE((%p)-(%s v%d %08x)\n, This, debugstr_w(strAttributeName), + V_VT(AttributeValue), lFlags); + +if(!strAttributeName) +return E_INVALIDARG; + +if(lFlags == 1) +FIXME(Parameter lFlags ignored\n); + +hres = HTMLStyle_GetIDsOfNames(iface, IID_NULL, (LPOLESTR*)strAttributeName, 1, +LOCALE_USER_DEFAULT, dispid); +if(hres == S_OK) +{ +VARIANT ret; +DISPID dispidNamed = DISPID_PROPERTYPUT; +DISPPARAMS params; + +params.cArgs = 1; +params.rgvarg = AttributeValue; +params.cNamedArgs = 1; +params.rgdispidNamedArgs = dispidNamed; + +hres = HTMLStyle_Invoke(iface, dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, +DISPATCH_PROPERTYPUT, params, ret, NULL, NULL); +} +else +{ +FIXME(Custom attributes not supported.\n); +} + +TRACE(ret: %08x\n, hres); + +return hres; } static HRESULT WINAPI HTMLStyle_getAttribute(IHTMLStyle *iface, BSTR strAttributeName, LONG lFlags, VARIANT *AttributeValue) { HTMLStyle *This = HTMLSTYLE_THIS(iface); -FIXME((%p)-(%s %08x %p)\n, This, debugstr_w(strAttributeName), - lFlags, AttributeValue); -return E_NOTIMPL; +HRESULT hres; +DISPID dispid; + +TRACE((%p)-(%s v%p %08x)\n, This, debugstr_w(strAttributeName), + AttributeValue, lFlags); + +if(!AttributeValue || !strAttributeName) +return E_INVALIDARG; + +if(lFlags == 1) +FIXME(Parameter lFlags ignored\n); + +hres = HTMLStyle_GetIDsOfNames(iface, IID_NULL, (LPOLESTR*)strAttributeName, 1, +LOCALE_USER_DEFAULT, dispid); +if(hres == S_OK) +{ +DISPPARAMS params = {NULL, NULL, 0, 0 }; + +hres = HTMLStyle_Invoke(iface, dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, +DISPATCH_PROPERTYGET, params, AttributeValue, NULL, NULL); +} +else +{ +FIXME(Custom attributes not supported.\n); +} + +return hres; } static HRESULT WINAPI HTMLStyle_removeAttribute(IHTMLStyle *iface, BSTR strAttributeName, diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index de363bb..516aa3e 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -2745,6 +2745,42 @@ static void test_default_style(IHTMLStyle *style) ok(hres == S_OK, put_overflow failed: %08x\n, hres); SysFreeString(sOverflowDefault); +/* Attribute Tests*/ +hres = IHTMLStyle_getAttribute(style, NULL, 1, v); +ok(hres == E_INVALIDARG, getAttribute failed: %08x\n, hres); + +str = a2bstr(position); +hres = IHTMLStyle_getAttribute(style, str, 1, NULL); +ok(hres == E_INVALIDARG, getAttribute failed: %08x\n, hres); + +hres = IHTMLStyle_getAttribute(style, str, 1, v); +ok(hres == S_OK, getAttribute failed: %08x\n, hres); +ok(V_VT(v) == VT_BSTR, type failed: %d\n, V_VT(v)); +VariantClear(v); + +hres = IHTMLStyle_setAttribute(style, NULL, v, 1); +ok(hres == E_INVALIDARG, getAttribute failed: %08x\n, hres); + +V_VT(v) = VT_BSTR; +V_BSTR(v) = a2bstr(absolute); +hres = IHTMLStyle_setAttribute(style, str, v, 1); +ok(hres == S_OK, setAttribute failed: %08x\n, hres); +VariantClear(v); + +hres = IHTMLStyle_getAttribute(style, str, 1, v); +ok(hres == S_OK, getAttribute failed: %08x\n, hres); +ok(V_VT(v) == VT_BSTR, type failed: %d\n, V_VT(v)); +ok(!strcmp_wa(V_BSTR(v), absolute), str=%s\n, dbgstr_w(V_BSTR(v))); +VariantClear(v); + +V_VT(v) = VT_BSTR; +V_BSTR(v) = NULL; +hres = IHTMLStyle_setAttribute(style, str, v, 1); +ok(hres == S_OK, setAttribute failed: %08x\n, hres); +VariantClear(v); + +SysFreeString(str); + hres = IHTMLStyle_QueryInterface(style
Re: wow32: add -noname property to WOWGetDescriptor spec
Hi, diff --git a/dlls/wow32/wow32.spec b/dlls/wow32/wow32.spec index 227120b..4d2d6d1 100644 --- a/dlls/wow32/wow32.spec +++ b/dlls/wow32/wow32.spec @@ -1,5 +1,5 @@ # ordinal exports -1 stdcall WOWGetDescriptor(long long) +1 stdcall -nonanme WOWGetDescriptor(long long) spelling mistake. Best Regards Alistair Leslie-Hughes _ Net yourself a bargain. Find great deals on eBay. http://a.ninemsn.com.au/b.aspx?URL=http%3A%2F%2Frover%2Eebay%2Ecom%2Frover%2F1%2F705%2D10129%2D5668%2D323%2F4%3Fid%3D10_t=763807330_r=hotmailTAGLINES_m=EXT
Re: kernel32: Add GetProductInfo() stub defines.
Hi Andrew, Andrew Riedi wrote in message news:689de9370812301624l74fc94f9xc200587f8f07c...@mail.gmail.com... This patch helps bug #15638. ( http://bugs.winehq.org/show_bug.cgi?id=15638 ) Changelog: kernel32: Add GetProductInfo() stub defines. Based on a patch by Alexander Nicolaysen Sørnes. @ stdcall lstrlenA(str) @ stdcall lstrlenW(wstr) +@ stdcall GetProductInfo(long long long long ptr) We try to keep the spec file in alphabetical order. Its in the right section, just needs to be moved up. Best Regards Alistair Leslie-Hughes _ Time for change? Find your ideal job with SEEK. http://a.ninemsn.com.au/b.aspx?URL=http%3A%2F%2Fninemsn%2Eseek%2Ecom%2Eau%2F%3Ftracking%3Dsk%3Atl%3Ask%3Anine%3A0%3Ahottag%3Achange_t=757263783_r=SEEK_tagline_m=EXT
Re: mshtml: Add some interfaces in mshtml.idl (try 3) (resend)
Hi Konstantin, Konstantin Kondratyuk kondrat...@etersoft.ru wrote in message news:200812181251.50439.kondrat...@etersoft.ru... Add: ILineInfo IDisplayPointer IDisplayPointer IHTMLComputedStyle IDisplayServices IMarkupServices -- You have converted some OLECHAR* to unsigned short* in functions InsertText, CreateElement to name a few. Best Regards Alistair Leslie-Hughes
Patch Feedback
Hi, Is there anything wrong with patches? [1/2] mshtml: Implement IHTMLScriptElement get/put event [2/2] mshtml: Implement IHTMLScriptElement get/put htmlFor Best Regards Alistair Leslie-Hughes
Re: mshtml: Do a case-insensitive compare of type (resend 1)
Any thing wrong with this patch? Best Regards Alistair Leslie-Hughes Alistair Leslie-Hughes [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi, Changelog: mshtml: Do a case-insensitive compare of type From ab3346563682349645f07147c5adbcfc3ce90ebf Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes [EMAIL PROTECTED] Date: Thu, 13 Nov 2008 21:38:13 +1100 Subject: [PATCH] Do a case-insensitive compare of type To: wine-patches [EMAIL PROTECTED] --- dlls/mshtml/script.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/mshtml/script.c b/dlls/mshtml/script.c index 4d10853..90bfef9 100644 --- a/dlls/mshtml/script.c +++ b/dlls/mshtml/script.c @@ -640,7 +640,7 @@ static BOOL get_guid_from_type(LPCWSTR type, GUID *guid) {'t','e','x','t','/','j','a','v','a','s','c','r','i','p','t',0}; /* FIXME: Handle more types */ -if(!strcmpW(type, text_javascriptW)) { +if(!strcmpiW(type, text_javascriptW)) { *guid = CLSID_JScript; }else { FIXME(Unknown type %s\n, debugstr_w(type)); -- 1.5.4.3
Re: mshtml: Add new interfaces into mshtml.idl
Hi Konstantin, IElementSegment interface too? I have changed it in try2 Also, one question about retval attributes. There can be only one attribute in one method? For example, in IMarkupPointer interface: HRESULT Right( [in] BOOL fMove, [out] MARKUP_CONTEXT_TYPE *pContext, [out] IHTMLElement **ppElement, [out] long *pcch, [retval, out] OLECHAR *pchText); It is correct now? Try 1 contained four attributes retval in this method... I function can only have one [retval] per function, and the rest should be out. In this case there isn't a retval. Here is for prototype for Right, note the pcch is an [in, out] HRESULT Right([in] BOOL fMove,[out] MARKUP_CONTEXT_TYPE* pContext,[out] IHTMLElement** ppElement,[in, out] long* pcch,[out, size_is(*pcch)] OLECHAR* pchText) Have a look at http://msdn.microsoft.com/en-us/library/aa703614(VS.85).aspx for the IMarkupPointer interface. Best Regards Alistair Leslie-Hughes
Re: mshtml: Add new interfaces into mshtml.idl (try 2)
Hi Konstantin, Kondratyuk wrote: Hello! Try 2 changes: - add missed POINTER_GRAVITY_Max, MARKUP_CONTEXT_TYPE_Max, SELECTION_TYPE_Max constants - correct attributes of interfaces: object, pointer_default(unique), uuid(...) - correct attributes Right and Left methods in IMarkupPointer interface Non of the Functions in IMarkupPointer should be marked as retval, likewise for IMarkupContainer. IElementSegment functions are in the wrong order, likewise for ISelectionServicesListener, ISelectionServices and IHTMLEditServices. Also you will need to double check the [] values, since you have retval where they are not needed. If you have a copy of the mshtml.tlb you can verify the interfaces by using wine's oleview program. Best Regards Alistair Leslie-Hughes
RE: mshtml: Add new interfaces into mshtml.idl (try 2)
Hi Konstantin, does not prove to be true (from oleview's results).It appears the oleview doesnt report the [size_is] property. I have checked up and have corrected an order of methods in all interfaces. But oleview has shown a method in IHTMLEditServices which is not described in MSDN (http://msdn.microsoft.com/en-us/library/aa704048(VS.85).aspx): HRESULT _stdcall SelectRange( [in] IMarkupPointer* pStart, [in] IMarkupPointer* pEnd, [in] _SELECTION_TYPE eType); What oleview reports is correct. Best Regards Alistair Leslie-Hughes _ Take a summer road trip with Windows Live Hotmail. Multiple prizes and the ultimate dream beach house! http://www.ninemsn.com.au/hotmailroadtrip
Re: msxml3: Implement IXMLDOMAttribute get/put value
Ignore this patch. Alistair Leslie-Hughes [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi, Changelog: msxml3: Implement IXMLDOMAttribute get/put value Best Regards Alistair Leslie-Hughes From 485959eb359d1efdf66c4be1aa110ba47877847c Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes [EMAIL PROTECTED] Date: Fri, 21 Nov 2008 21:36:30 +1100 Subject: [PATCH] Implement IXMLDOMAttribute get/put value To: wine-patches [EMAIL PROTECTED] --- dlls/msxml3/attribute.c|8 dlls/msxml3/node.c | 21 +++-- dlls/msxml3/tests/domdoc.c | 30 ++ 3 files changed, 49 insertions(+), 10 deletions(-) diff --git a/dlls/msxml3/attribute.c b/dlls/msxml3/attribute.c index 2681a76..92cafad 100644 --- a/dlls/msxml3/attribute.c +++ b/dlls/msxml3/attribute.c @@ -482,16 +482,16 @@ static HRESULT WINAPI domattr_get_value( IXMLDOMAttribute *iface, VARIANT *var1) { -FIXME(\n); -return E_NOTIMPL; +domattr *This = impl_from_IXMLDOMAttribute( iface ); +return IXMLDOMNode_get_nodeValue( This-node, var1 ); } static HRESULT WINAPI domattr_put_value( IXMLDOMAttribute *iface, VARIANT var1) { -FIXME(\n); -return E_NOTIMPL; +domattr *This = impl_from_IXMLDOMAttribute( iface ); +return IXMLDOMNode_put_nodeValue( This-node, var1 ); } static const struct IXMLDOMAttributeVtbl domattr_vtbl = diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 19cee8f..6693803 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -339,13 +339,22 @@ static HRESULT WINAPI xmlnode_put_nodeValue( TRACE(%p type(%d)\n, This, This-node-type); -VariantInit(string_value); -hr = VariantChangeType(string_value, value, 0, VT_BSTR); -if(FAILED(hr)) +/* Attribute nodes treat NULL Variants as empty strings. */ +if(V_VT(value) == VT_NULL This-node-type == XML_ATTRIBUTE_NODE) { -VariantClear(string_value); -WARN(Couldn't convert to VT_BSTR\n); -return hr; +V_VT(string_value) = VT_BSTR; +V_BSTR(string_value) = SysAllocStringLen(NULL, 0); +} +else +{ +VariantInit(string_value); +hr = VariantChangeType(string_value, value, 0, VT_BSTR); +if(FAILED(hr)) +{ +VariantClear(string_value); +WARN(Couldn't convert to VT_BSTR\n); +return hr; +} } hr = S_FALSE; diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index e27c506..c975d73 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -2796,12 +2796,18 @@ static void test_xmlTypes(void) ok( V_VT(v) == VT_NULL, incorrect dataType type\n); VariantClear(v); +V_VT(v) = VT_NULL; +V_I4(v) = 0; +hr = IXMLDOMElement_put_nodeValue(pElement, v); +ok(hr == DISP_E_TYPEMISMATCH, ret %08x\n, hr ); + /* Attribute */ hr = IXMLDOMDocument_createAttribute(doc, szAttribute, pAttrubute); ok(hr == S_OK, ret %08x\n, hr ); if(hr == S_OK) { IXMLDOMNode *pNewChild = (IXMLDOMNode *)0x1; +IXMLDOMNode *pAttrNode = NULL; hr = IXMLDOMAttribute_get_nextSibling(pAttrubute, NULL); ok(hr == E_INVALIDARG, ret %08x\n, hr ); @@ -2876,6 +2882,30 @@ static void test_xmlTypes(void) ok( V_VT(v) == VT_NULL, incorrect dataType type\n); VariantClear(v); +/* test value */ +V_VT(v) = VT_NULL; +VariantClear(v); +hr = IXMLDOMAttribute_put_value(pAttrubute, v); +ok(hr == S_OK, ret %08x\n, hr ); +VariantClear(v); + +hr = IXMLDOMAttribute_get_value(pAttrubute, v); +ok(hr == S_OK, ret %08x\n, hr ); +ok( !lstrcmpW( V_BSTR(v), _bstr_() ), incorrect get_value string\n); +VariantClear(v); + +IXMLDOMAttribute_QueryInterface(pAttrubute, IID_IXMLDOMNode, (LPVOID*)pAttrNode); +if(hr == S_OK) +{ +V_VT(v) = VT_NULL; +VariantClear(v); +hr = IXMLDOMNode_put_nodeValue(pAttrNode, v); +ok(hr == S_OK, ret %08x\n, hr ); +VariantClear(v); + +IXMLDOMNode_Release(pAttrNode); +} + IXMLDOMAttribute_Release(pAttrubute); /* Check Element again with the Add Attribute*/ -- 1.5.4.3
Re: mshtml: Add new interfaces into mshtml.idl
Hi Konstantin, Konstantin Kondratyuk [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] I'm sorry, I have sent a wrong patch... -- Best regards, Konstantin Kondratyuk. You have missed POINTER_GRAVITY_Max MARKUP_CONTEXT_TYPE_Max SELECTION_TYPE_Max The following interfacess dont contain dual interfaces IHTMLEditDesigner IMarkupContainer IMarkupPointer ISegment ISelectionServicesListener ISelectionServices IHTMLEditServices Best Regards Alistair Leslie-Hughes _ Take a summer road trip with Windows Live Hotmail. Multiple prizes and the ultimate dream beach house! http://www.ninemsn.com.au/hotmailroadtrip
Re: mshtml: Correct tests
Ignore this. Alistair Leslie-Hughes [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi, Changelog: mshtml: Correct tests Best Regards Alistair Leslie-Hughes From e6ba1638d427366350ab1b4269372479cd4a3476 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes [EMAIL PROTECTED] Date: Thu, 13 Nov 2008 20:55:59 +1100 Subject: [PATCH] Correct tests To: wine-patches [EMAIL PROTECTED] --- dlls/shdocvw/tests/webbrowser.c | 14 +++--- 1 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c index 3aa4bdd..484efe2 100644 --- a/dlls/shdocvw/tests/webbrowser.c +++ b/dlls/shdocvw/tests/webbrowser.c @@ -1988,31 +1988,31 @@ static void test_QueryInterface(IUnknown *unk) hres = IUnknown_QueryInterface(unk, IID_IQuickActivate, (void**)qa); ok(hres == E_NOINTERFACE, QueryInterface returned %08x, expected E_NOINTERFACE\n, hres); -ok(qa == NULL, qa=%p, ezpected NULL\n, qa); +ok(qa == NULL, qa=%p, expected NULL\n, qa); hres = IUnknown_QueryInterface(unk, IID_IRunnableObject, (void**)runnable); ok(hres == E_NOINTERFACE, QueryInterface returned %08x, expected E_NOINTERFACE\n, hres); -ok(runnable == NULL, runnable=%p, ezpected NULL\n, runnable); +ok(runnable == NULL, runnable=%p, expected NULL\n, runnable); hres = IUnknown_QueryInterface(unk, IID_IPerPropertyBrowsing, (void**)propbrowse); ok(hres == E_NOINTERFACE, QueryInterface returned %08x, expected E_NOINTERFACE\n, hres); -ok(propbrowse == NULL, propbrowse=%p, ezpected NULL\n, runnable); +ok(propbrowse == NULL, propbrowse=%p, expected NULL\n, propbrowse); hres = IUnknown_QueryInterface(unk, IID_IOleCache, (void**)cache); ok(hres == E_NOINTERFACE, QueryInterface returned %08x, expected E_NOINTERFACE\n, hres); -ok(cache == NULL, cache=%p, ezpected NULL\n, runnable); +ok(cache == NULL, cache=%p, expected NULL\n, cache); hres = IUnknown_QueryInterface(unk, IID_IOleInPlaceSite, (void**)inplace); ok(hres == E_NOINTERFACE, QueryInterface returned %08x, expected E_NOINTERFACE\n, hres); -ok(inplace == NULL, inplace=%p, ezpected NULL\n, runnable); +ok(inplace == NULL, inplace=%p, expected NULL\n, inplace); hres = IUnknown_QueryInterface(unk, IID_IObjectWithSite, (void**)site); ok(hres == E_NOINTERFACE, QueryInterface returned %08x, expected E_NOINTERFACE\n, hres); -ok(site == NULL, inplace=%p, ezpected NULL\n, runnable); +ok(site == NULL, inplace=%p, ezpected NULL\n, site); hres = IUnknown_QueryInterface(unk, IID_IViewObjectEx, (void**)viewex); ok(hres == E_NOINTERFACE, QueryInterface returned %08x, expected E_NOINTERFACE\n, hres); -ok(viewex == NULL, viewex=%p, ezpected NULL\n, runnable); +ok(viewex == NULL, viewex=%p, expected NULL\n, viewex); } -- 1.5.4.3
Re: shdocvw: Added Support for the IViewObjectEx interface
Jacek Caban wrote: Alistair Leslie-Hughes wrote: Hi, Changelog: shdocvw: Added Support for the IViewObjectEx interface Please check if interface you add is really supposed to be there. It's not the first time someone tries to add an interface to WebBrowser or HTMLDocument that shouldn't be there (this time the patch is already in Git). Please remember that the fact that an app queries for interface doesn't mean it should success! I keep adding tests for such cases, but it really easy to tests it before sending patch and it's something you *should* do. Hi Jacek, I have been guilty of trying to add interfaces incorrectly here. I did double check on windows to confirm this interface does exist. I will add some test cases shortly. Best Regards Alistair Leslie-Hughes
Re: shdocvw: Added Support for the IViewObjectEx interface
Jacek Caban wrote: Alistair Leslie-Hughes wrote: Hi, Changelog: shdocvw: Added Support for the IViewObjectEx interface Please check if interface you add is really supposed to be there. It's not the first time someone tries to add an interface to WebBrowser or HTMLDocument that shouldn't be there (this time the patch is already in Git). Please remember that the fact that an app queries for interface doesn't mean it should success! I keep adding tests for such cases, but it really easy to tests it before sending patch and it's something you *should* do. Hi Jacek, Thanks for the correction. I had submitted a patch to provide this interface doesn't exist. Once this is reverted, I silence that interface warning. Best Regards Alistair Leslie-Hughes
Re: winmm: Increase tolerance range in tests
Robert Reif wrote: Please give an explanation why? If it's just to make the test pass, then we need to know why the test is failing. Is it only needed for wine? Could be a wine problem. Is it only needed for specific versions of Windows or specific hardware or drivers? Is it only needed for Windows running on a virtual machine? Then it could be a a virtual machine hardware emulation problem. I think all Windows hardware test failures that only happen on virtual machines should be considered suspect. It would be nice to detect if Windows is running on real hardware or a virtual machine because of this type of problem. Hi Robert, It was mainly to get test to pass. Its appears from the testing data that XP, 2k3, vista, 2k8 all have issues with the tolerance values. Best Regards Alistair Leslie-Hughes
Re: winmm: Increase tolerance range in tests
Hi Robert -- From: Robert Reif [EMAIL PROTECTED] Sent: Thursday, November 06, 2008 11:00 PM To: Alistair Leslie-Hughes [EMAIL PROTECTED] Cc: wine-devel@winehq.org Subject: Re: winmm: Increase tolerance range in tests On real hardware or on a virtual machine? The data I was looking at comes from http://test.winehq.org/data/ Some of these will be virtual machines but I cannot tell. Best Regards Alistair Leslie-Hughes
Re: [2/2] [PATCH] msxml3: fixed if nesting / ptr checking problems inxmlnode_transformNodemarcus
Hi Marcus, Marcus Meissner [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi, htmlDocContentDumpOutput(pOutput, result-doc, NULL); -if(pOutput) -{ Should this be changed to if(pOutput-buffer), I don't remember if pOutput-buffer can be NULL. Best Regards Alistair Leslie-Hughes _
Re: [PATCH 08/17] mshtml: Added IHTMLStyle::[get|put]_borderimplementation.
Hi Jacek, static HRESULT WINAPI HTMLStyle_put_border(IHTMLStyle *iface, BSTR v) { HTMLStyle *This = HTMLSTYLE_THIS(iface);-FIXME((%p)-(%s)\n, This, debugstr_w(v));-return E_NOTIMPL;++TRACE((%p)-(%s)\n, This, debugstr_w(v));++return set_style_attr(This, STYLEID_BORDER, v, 0); } My sample code style-put_border(Lgroove 5); produced BODY style=BORDER-RIGHT: 5px groove; BORDER-TOP: 5px groove; BORDER-LEFT: 5px groove; BORDER-BOTTOM: 5px groove /BODY Will gecko expand border to the above? Best Regards Alistair Leslie-Hughes _
Re: msxml3: Add IXMLHTTPRequest support
From: Hans Leidekker [EMAIL PROTECTED] Sent: Friday, October 03, 2008 9:45 PM To: wine-devel@winehq.org; Alistair Leslie-Hughes [EMAIL PROTECTED] Subject: Re: msxml3: Add IXMLHTTPRequest support On Friday 03 October 2008 13:23:14 Alistair Leslie-Hughes wrote: Changelog: msxml3: Add IXMLHTTPRequest support Would it be possible to use winhttp instead of nanohttp? The less we depend on libxml the better I'd say. Sure. This nanphttp was just my initial thought. I'll resend a corrected patch shortly. Best Regards Alistair Leslie-Hughes
Re: gdiplus: Stub GdipRecordMetafileFileName andGdipRecordMetafileFileNameI
Alistair Leslie-Hughes [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi, Changelog: gdiplus: Stub GdipRecordMetafileFileName and GdipRecordMetafileFileNameI Was there anything wrong with this patch? Best Regards Alistair Leslie-Hughes
Re: [2/3] mshtml: Add tests for get_scrollLeft
Alistair Leslie-Hughes [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi, Changelog: mshtml: Add tests for get_scrollLeft Best Regards Alistair Leslie-Hughes Hi, Swap the order of patch 2 and 3 and everything all tests will pass ok. Best Regards Alistair Leslie-Hughes
Re: [2/3] mshtml: Pass IID_IHTMLBodyElement to the IDispatchEx interface
Hi Jacek, Thanks for you feedback. Jacek Caban wrote: Hi Alistair, You should add IHTMLDOMNode_tid, IHTMLDOMNode2_tid, IHTMLElement_tid, IHTMLElement2_tid, Can you tell me what this list is for? here. +static dispex_static_data_t HTMLBodyElement_dispex = { +NULL, +IHTMLBodyElement_tid, You should use DispHTMLBodyElement here. I assumed the DispHTMLBodyElement_tid == DIID_IHTMLBodyElement, based off the current implementation, but DIID_IHTMLBodyElement doesn't exist in the mshtml.h file (Microsoft one). This is why I used IHTMLBodyElement_tid. So make DispHTMLBodyElement_tid = IID_IHTMLBodyElement? Best Regards Alistair Leslie-Hughes
Re: Networking problems with IDU Verwaltung software
Werner LEMBERG wrote: [wine 1.1.2] [openSuSE 10.2, kernel 2.6.21-rc6] Folks, I try to make run a German software bundle called `IDU Verwaltung'. It seems to work, however, I can't make it to connect to a PostgreSQL database. I have enabled PostgreSQL access in my firewall. How are you connecting to the PostgreSQL DB, ADO, ODBC? From pass experience, wine needs to be in win98 mode for odbc. Interestingly, I couldn't find information how to debug networking problems with wine. Any links? Whatever, here my problem report. I tried on wine-users first, but the responses weren't really encouraging. I would log a bug report, and attached a log. Best Regards Alistair Leslie-Hughes
Re: [8/11] ole32 : basic inprocess handler implentation
[EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Modify the stub implementation of GetDestCtx, to emulate a local machine instead of a remote machine. This trick is needed to allow handle marshalling + *pdwDestContext = MSHCTX_NOSHAREDMEM; //MSHCTX_DIFFERENTMACHINE; c++ style comments are discouraged. Best Regards Alistair Leslie-Huges _ Shout your Messenger buddies to the movies http://www.livelife.ninemsn.com.au/compIntro.aspx?compId=4590
re: msxml3: Added ISAXContentHandler_startDocument evenet (3/12)
Piotr Caban [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] +/*** LibXML callbacks ***/ +static void libxmlStartDocument(void *ctx) +{ + saxlocator *This = ctx; + HRESULT hr; + + if(This-saxreader-contentHandler) + { + hr = ISAXContentHandler_startDocument(This-saxreader-contentHandler); + if(FAILED(hr)) + { + xmlStopParser(This-pParserCtxt); + This-ret = hr; + } Hi Piotr, Should This-ret be set on a non-error? Best Regards Alistair Leslie-Hughes _ Are you paid what you're worth? Find out: SEEK Salary Centre http://a.ninemsn.com.au/b.aspx?URL=http%3A%2F%2Fninemsn%2Eseek%2Ecom%2Eau%2Fcareer%2Dresources%2Fsalary%2Dcentre%2F%3Ftracking%3Dsk%3Ahet%3Asc%3Anine%3A0%3Ahot%3Atext_t=764565661_r=OCT07_endtext_salary_m=EXT
Re: msxml3: oldChild in xmlnode_removeChild may be NULL
Piotr Caban wrote: --- IXMLDOMNode_Release(child); IXMLDOMNode_AddRef(childNode); - *oldChild = childNode; + + if(oldChild) + *oldChild = childNode; return S_OK; Hi Piotr, Your leaking childNode, it should be destroyed in this case. Best Regards Alistair Leslie-Hughes
Re: msxml3/tests: Added more tests to ISAXXMLReader_putContentHandler and ISAXXMLReader_getContentHandler, added todo test for ISAXXMLReader_parse
Piotr Caban wrote: --- +hr = ISAXXMLReader_getContentHandler(reader, lpContentHandler); Hi Piotr, You might want to add the test. hr = ISAXXMLReader_getContentHandler(reader, NULL); Best Regards Alistair Leslie-Hughes
Re: gdiplus: Add a trailing '\n' to Wine traces.
@@ -327,7 +327,7 @@ GpStatus WINGDIPAPI GdipGetFontHeightGivenDPI(GDIPCONST GpFont *font, REAL dpi, { if (!(font height)) return InvalidParameter; -FIXME(%p (%s), %f, %p\n), font, +FIXME(%p (%s), %f, %p\n)\n, font, The first \n in the fixme should be removed. Best Regards Alistair Leslie-Hughes
Re: msxml3/test: Added ISAXXMLReader test. (4/18) (resend)
Piotr Caban [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] --- dlls/msxml3/tests/Makefile.in |3 +- dlls/msxml3/tests/saxreader.c | 225 + 2 files changed, 227 insertions(+), 1 deletions(-) create mode 100644 dlls/msxml3/tests/saxreader.c hr = ISAXXMLReader_putContentHandler(reader, contentHandler); + ok(hr == S_OK, Expected S_OK, got %08x\n, hr); Hi Piotr, What about more tests for invalid parameters? eg. hr = ISAXXMLReader_putContentHandler(reader, NULL); Add some tests for get_contentHandler to confirm that putContentHandler works. Best Regards Alistair Leslie-Hughes
Re: msxml3: Added ISAXMLReader_getContentHandler implementation (2/18)(resend)
Piotr Caban [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] --- dlls/msxml3/saxreader.c |8 ++-- 1 files changed, 6 insertions(+), 2 deletions(-) Hi Piotr, You need to check the parameter is not NULL, and add tests cases. Best Regards Alistair Leslie-Hughes
Re: msxml3: Implemented domdoc_put_documentElement. (6/18) (resend)
Piotr Caban [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] --- dlls/msxml3/domdoc.c | 22 ++ 1 files changed, 18 insertions(+), 4 deletions(-) Hi Piotr, Your missing test cases. Best Regards Alistair Leslie-Hughes