Re: Frequent and annoying Wine bug

2005-08-15 Thread Robbert Xerox
Hi, late response, been on holiday :). The patch from 
francios gougetdoesn't fix the error. I dug a little
deeper into this:I had a knoppix live cd lying around
and there bug is not present. A program like Neatimage
(www.neatimage.com) startsup just fine there.  I also
did some tracing to see where the difference is. I'm
quite noobish in this so correct me plz if i'm wrong:

On knoppix running neatimage fine i see this:

0009:Ret  user32.LoadStringA() retval=001b
ret=00527b86
0009:Call
kernel32.RaiseException(0eedfade,0001,0007,4067f930)
ret=004aefac
0009:Call ntdll.RtlRaiseException(4067f7d8)
ret=404a5393 fs=1007
 eax=4067f7d8 ebx=40569244 ecx= edx=0018
esi=4067f94c edi=4067f808
 ebp=4067f834 esp=4067f7d8 ds=002b es=002b gs=
flags=00200216
trace:seh:EXC_RtlRaiseException code=eedfade flags=1
addr=0x404a5300
trace:seh:EXC_RtlRaiseException  info[0]=004aefac
trace:seh:EXC_RtlRaiseException  info[1]=411d3068
trace:seh:EXC_RtlRaiseException  info[2]=411d2fb0
trace:seh:EXC_RtlRaiseException  info[3]=411d3058
trace:seh:EXC_RtlRaiseException  info[4]=4067f974
trace:seh:EXC_RtlRaiseException  info[5]=4067f964
trace:seh:EXC_RtlRaiseException  info[6]=4067f94c
trace:seh:EXC_RtlRaiseException  eax=4067f7d8
ebx=40569244 ecx= edx=0018 esi=4067f94c
edi=4067f808
trace:seh:EXC_RtlRaiseException  ebp=4067f834
esp=4067f7d8 cs=0023 ds=002b es=002b fs=1007 gs=
flags=00200216
trace:seh:EXC_CallHandler calling handler at 0x538243
code=eedfade flags=1
0009:Call
ntdll.RtlUnwind(4067f990,0053916b,4067f7d8,)
ret=0053916b fs=1007
 eax=4067f990 ebx=4067f7d8 ecx=00549d68 edx=4067f7d8
esi=001c edi=4067f7d8
 ebp=4067f0a4 esp=4067f040 ds=002b es=002b gs=
flags=00200206
trace:seh:EXC_RtlUnwind code=eedfade flags=3
trace:seh:EXC_CallHandler calling handler at 0x538243
code=eedfade flags=3
trace:seh:EXC_CallHandler handler returned 1
trace:seh:EXC_CallHandler calling handler at
0x401ae2c0 code=eedfade flags=3
trace:seh:EXC_CallHandler handler returned 1
0009:Ret  ntdll.RtlUnwind() retval=
ret=0053916b fs=1007
 eax= ebx=4067f7d8 ecx=00549d68 edx=4067f7d8
esi=001c edi=4067f7d8
 ebp=4067f0a4 esp=4067f040 ds=002b es=002b gs=
flags=00200206

0009:Call advapi32.RegSetValueExA(005c,411d3058
StartCount,,0004,4067f97c,0004)
ret=004aef22

Looks to me as if an exception is thrown, wine is
handling the exception and the program continues fine

On my fc3 computer i see this:

000b:Ret  user32.LoadStringA() retval=001b
ret=00527b86
000b:Call
kernel32.RaiseException(0eedfade,0001,0007,7fa9f93c)
ret=004aefac
000b:Call ntdll.RtlRaiseException(7fa9f824)
ret=7fcfe544 fs=003b
 eax=7fcec305 ebx=7fd5bacc ecx= edx=0eedfade
esi=7fa9f958 edi=7fa9f854
 ebp=7fa9f880 esp=7fa9f824 ds=007b es=007b gs=0033
flags=00200212
trace:seh:__regs_RtlRaiseException code=eedfade
flags=1 addr=0x7fcfe4e0
trace:seh:__regs_RtlRaiseException  info[0]=004aefac
trace:seh:__regs_RtlRaiseException  info[1]=7e4c32f4
trace:seh:__regs_RtlRaiseException  info[2]=7e4c323c
trace:seh:__regs_RtlRaiseException  info[3]=7e4c32e4
trace:seh:__regs_RtlRaiseException  info[4]=7fa9f980
trace:seh:__regs_RtlRaiseException  info[5]=7fa9f970
trace:seh:__regs_RtlRaiseException  info[6]=7fa9f958
trace:seh:__regs_RtlRaiseException  eax=7fcec305
ebx=7fd5bacc ecx= edx=0eedfade esi=7fa9f958
edi=7fa9f854
trace:seh:__regs_RtlRaiseException  ebp=7fa9f880
esp=7fa9f824 cs=0073 ds=007b es=007b fs=003b gs=0033
flags=00200212
trace:seh:EXC_CallHandler calling handler at 0x538243
code=eedfade flags=1
000b:Call
kernel32.GetModuleFileNameA(,7fa9f0c8,0080)
ret=00541424
000b:Call
ntdll.RtlAllocateHeap(7fdb,,0100)
ret=7fd06d22
000b:Ret  ntdll.RtlAllocateHeap() retval=7fdef278
ret=7fd06d22
000b:Call
ntdll.LdrLockLoaderLock(,,7fa9efdc)
ret=7fd1638f
000b:Ret  ntdll.LdrLockLoaderLock() retval=
ret=7fd1638f
000b:Call
ntdll.LdrFindEntryForAddress(0040,7fa9efd8)
ret=7fd163a1
000b:Ret  ntdll.LdrFindEntryForAddress()
retval= ret=7fd163a1
000b:Call ntdll.LdrUnlockLoaderLock(,000b)
ret=7fd163e5
000b:Ret  ntdll.LdrUnlockLoaderLock() retval=
ret=7fd163e5
000b:Call
ntdll.RtlUnicodeToMultiByteN(7fa9f0c8,0080,7fa9efdc,7fdef278,0052)
ret=7fcff857
000b:Ret  ntdll.RtlUnicodeToMultiByteN()
retval= ret=7fcff857
000b:Call
ntdll.RtlFreeHeap(7fdb,,7fdef278)
ret=7fd06d4a
000b:Ret  ntdll.RtlFreeHeap() retval=0001
ret=7fd06d4a
000b:Ret  kernel32.GetModuleFileNameA()
retval=0029 ret=00541424
000b:Call kernel32.GetVersion() ret=005413a7
000b:Call ntdll.RtlGetVersion(7fa9eef8) ret=7fd3d280
000b:Ret  ntdll.RtlGetVersion() retval=
ret=7fd3d280
000b:Ret  kernel32.GetVersion() retval=ca04
ret=005413a7
000b:Call kernel32.GetCurrentThreadId() ret=005413c6
000b:Ret  kernel32.GetCurrentThreadId()
retval=000b ret=005413c6
000b:Call
user32.EnumThreadWindows(000b,00541388,7fa9f0b8)
ret=005413cc

Re: Lostwages: howto.diff

2005-08-15 Thread Paul Vriens
On Mon, 2005-08-15 at 08:44, Tom Wickline wrote:
 Hello All,
 
 We have moved to winecfg..
 
 Tom
 
 Changelog:
 spelling fix, doc update
Hi Tom,

you're patch shows:

-pWine is currently in a transitionary phase. We are working on replacing the 
-cryptic configuration file with an easy to use graphical utility called 
winecfg.
-In the meantime, however, we recommend that you use a handy program called 
+pIf your using an old version of Wine we recommend that you use a handy 
program called 

As winecfg is currently THE tool why not refer to this (and maybe also to 
Winetools) this way more
and more people will use it (and make it better?).

Cheers,

Paul.




Re: Lostwages: howto.diff

2005-08-15 Thread Tom Wickline
On 8/15/05, Paul Vriens [EMAIL PROTECTED] wrote:
 As winecfg is currently THE tool why not refer to this (and maybe also to 
 Winetools) this way more
 and more people will use it (and make it better?).

for new versions of Wine winecfg is the default tool to setup/edit a setup.
So I figured most people would use it in new versions. There is the
possibility even probability new users won't know about winecfg... I
was just recommending WineTools for people still using older versions
of Wine. I'm sure the WineTools guys will fix there nifty tool to
comply with the changes that have taken place. And I will be editing
this page again to tell people to choose the front end of there
choice.

So do you think I should say if you use a version of Wine from
20050628 forward we recommend that you use winecfg, and for versions
older than 20050628 use WineTools?

Tom

 
 Cheers,
 
 Paul.
 
 





Re: dlls/shell32/pidl.c

2005-08-15 Thread Michael Jung
Hi Ge,

On Saturday 13 August 2005 20:55, Ge van Geldorp wrote:
  dwAttributes = SFGAO_FILESYSTEM;
  hr = IShellFolder_GetAttributesOf(psfFolder, 1, pidlLast,
 dwAttributes); -if (FAILED(hr) || !(dwAttributes  SFGAO_FILESYSTEM))
 return FALSE; +if (FAILED(hr) || !(dwAttributes  SFGAO_FILESYSTEM)) {
 +IShellFolder_Release(psfFolder);
 +ILFree((LPITEMIDLIST) pidlLast);
 +return FALSE;
 +}


I had another look at this after realising that Alexandre did'nt apply the 
patch. SHBindToParent does not allocate a new PIDL for pidlLast, but returns 
a pointer to right location in pidl. This means you should not free it. 
There's still the problem that the shell folder isn't released in failure 
cases.

Sorry, I didn't realize this. Once again I'm impressed that Alexandre always 
catches those things.

Bye, 
-- 
Michael Jung
[EMAIL PROTECTED]




calling *W functions in wt (Was: dlls/shell32/shfldr_desktop.c)

2005-08-15 Thread Saulius Krasuckas
Hello Ge and especially unicoders: 
Alexandre, Dimi, Dmitry, Rob, Shachar, Troy and others.

I am not sure of how should be file operations implemented in winetest:

* On Sat, 13 Aug 2005, Ge van Geldorp wrote:
 
 --- dlls/shell32/tests/shlfolder.c12 Aug 2005 10:33:37 -  1.29
 +++ dlls/shell32/tests/shlfolder.c13 Aug 2005 18:49:59 -
  ...
 +PathAddBackslashW(wszFileName);
 +lstrcatW(wszFileName, wszTestFile);
 +hTestFile = CreateFileW(wszFileName, GENERIC_WRITE, 0, NULL, CREATE_NEW, 
 0, NULL);
 +ok(hTestFile != INVALID_HANDLE_VALUE, CreateFileW failed! Last error: 
 %08lx\n, GetLastError());
 +if (hTestFile == INVALID_HANDLE_VALUE) {
 +IShellFolder_Release(psfDesktop);
 +return;
 +}
 +CloseHandle(hTestFile);
 +
 +hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, wszTestFile, 
 NULL, pidlTestFile, NULL);
 +ok (SUCCEEDED(hr), Desktop's ParseDisplayName failed to parse filename 
 hr = %08lx\n, hr);
 +if (FAILED(hr)) {
 +IShellFolder_Release(psfDesktop);
 +DeleteFileW(wszFileName);
 +IMalloc_Free(ppM, pidlTestFile);
 +return;
 +}

*FileW and *DirectoryW functions fail on every win9x box as they are 
unimplemented here. They succeed only when app is linked to MS Layer for 
Unicode (MSLU) and MSLU is installed. [1]

I was trying to replace every failing unicode function with its ascii 
counterpart in one of the wt files [2], but that looked ugly to me.

Maybe it would be really nice and possible to link wt to unicows.lib on 
windows.  In this case we need a corresponding static lib in Wine too, 
right?  It probably will be empty because UNICOWS.DLL shouldn't be 
loaded as Wine doesn't lack implementation of mentioned functions.  
Though, I have no guess if this could be done easily.

What could be a clean and acceptable solution?  Your comments, please.


[1] http://msdn.microsoft.com/msdnmag/issues/01/10/MSLU/default.aspx
[2] http://www.winehq.org/hypermail/wine-patches/2005/08/0267.html



Re: calling *W functions in wt (Was: dlls/shell32/shfldr_desktop.c)

2005-08-15 Thread Shachar Shemesh

Saulius Krasuckas wrote:

*FileW and *DirectoryW functions fail on every win9x box as they are 
unimplemented here.



Makes sense.

They succeed only when app is linked to MS Layer for 
Unicode (MSLU) and MSLU is installed. [1]
 


A royal pain.

I was trying to replace every failing unicode function with its ascii 
counterpart in one of the wt files [2], but that looked ugly to me.


Maybe it would be really nice and possible to link wt to unicows.lib on 
windows.  In this case we need a corresponding static lib in Wine too, 
right?  It probably will be empty because UNICOWS.DLL shouldn't be 
loaded as Wine doesn't lack implementation of mentioned functions.  
Though, I have no guess if this could be done easily.
 

Unicows is a pain. First of all, in order to link with it, you will have 
to remove all standard links (kernel, gdi, advapi, etc), put unicows.lib 
at the beginning, and then put all standard library links again. Unicows 
takes over all of the function calls, and on NT and above just redirects 
them to the usual places. On Windows 98 it does ugly simulations of the 
actual original call.


What I am most afraid of, if using Unicows, is that we will be 
destroying the validity of the tests. The main question, I guess, is 
whether these are Unicode tests (i.e. - tests meant to find out whether 
the Unicode functions are working correctly), or whether these are 
unrelated tests that merely use the Unicode interface.


As for defining unicows.lib - we could do that, sure. We could either 
export everything there (Unicows.dll today is merely a redirection to 
the other functions), or we could make it a lib exporting nothing. The 
first is truer to what the real unicows.dll does (not 100% the same 
still, thankfully), but the second would probably work better. I would 
really prefer it if unicows.dll was only ever referenced by PE programs 
compiled on Windows.



What could be a clean and acceptable solution?  Your comments, please.
 

The these are Unicode tests, use the Unicode interface. If these are 
just file system tests, I suggest you use the TCHAR functions. In other 
words, define your buffers as TCHAR buffer[] (rather than char or 
wchar), and call the functions without any prefix (neither W nor A). 
When compiling under NT, define a compiler variable UNICODE, which 
will map TCHAR to WCHAR.


Now, I know that Wine code is forbidden from using the non-suffixed 
calls, but the wine tests are not Wine code, they are winelib 
applications. I don't think there is any problem in using these 
functions there. We could even run the tests both in ANSI and in Unicode 
mode, to compare results.


 Shachar

--
Shachar Shemesh
Lingnu Open Source Consulting ltd.
http://www.lingnu.com/




Re: Lostwages: howto.diff

2005-08-15 Thread Andreas Mohr
Hi,

On Mon, Aug 15, 2005 at 05:39:39AM -0400, Tom Wickline wrote:
 On 8/15/05, Paul Vriens [EMAIL PROTECTED] wrote:
  As winecfg is currently THE tool why not refer to this (and maybe also to 
  Winetools) this way more
  and more people will use it (and make it better?).
 
 for new versions of Wine winecfg is the default tool to setup/edit a setup.
 So I figured most people would use it in new versions. There is the
 possibility even probability new users won't know about winecfg... I
 was just recommending WineTools for people still using older versions
 of Wine. I'm sure the WineTools guys will fix there nifty tool to
 comply with the changes that have taken place. And I will be editing
 this page again to tell people to choose the front end of there
 choice.
 
 So do you think I should say if you use a version of Wine from
 20050628 forward we recommend that you use winecfg, and for versions
 older than 20050628 use WineTools?
I'd do it like that. winecfg can make use of some good testing, so we
should trick people into using it...

Just try to make sure that people won't get the impression that WineTools is
simply a wine configuration tool, just like winecfg. It's a bit more than that,
with its extension package installation (MSI, ODBC, IE, ...)
and installation entries for common well-tested applications.

Andreas



RE: dlls/shell32/pidl.c

2005-08-15 Thread Ge van Geldorp
 From: Michael Jung
 
 SHBindToParent does not allocate a 
 new PIDL for pidlLast, but returns a pointer to right 
 location in pidl. This means you should not free it. 
 There's still the problem that the shell folder isn't 
 released in failure cases.
 
 Sorry, I didn't realize this.

I feel a bit silly for not catching it either. MSDN is very clear about
this. I've resubmitted a patch which only releases the interface pointer.

Gé van Geldorp.





RE: calling *W functions in wt (Was: dlls/shell32/shfldr_desktop.c)

2005-08-15 Thread Ge van Geldorp
 From: Saulius Krasuckas
 
 Hello Ge and especially unicoders: 
 Alexandre, Dimi, Dmitry, Rob, Shachar, Troy and others.
 
 I am not sure of how should be file operations implemented in 
 winetest:
 
 *FileW and *DirectoryW functions fail on every win9x box as 
 they are unimplemented here. They succeed only when app is 
 linked to MS Layer for Unicode (MSLU) and MSLU is installed. [1]

Yeah, I see your point. I just followed the existing stuff in there, which
was all Unicode. For routines which implement the Ansi function by calling
the Unicode function with appropriate conversions, I guess it would be
better to test the the Ansi function, since this implicitly tests the
Unicode function too. Then again, this would make the test depend on
internals of the functions, not good. So the only solution seems to be to
test functions which have Ansi and Unicode implementations both ways (which
is kind of boring to write) on NT and skip the Unicode tests on Win9x.
Difficult stuff. I guess it's not an option to drop Win9x compatibility in
Wine g.

Ge van Geldorp.




Re: MSHMTL: Added QueryStatus implementation

2005-08-15 Thread Jacek Caban

Saulius Krasuckas wrote:


* On Sun, 14 Aug 2005, Jacek Caban wrote:
 


* Saulius Krasuckas wrote:
   

Is something like this OK? I have borrowed boolean variable 
expect_SetActiveObject_active.
 


Yes, it looks good.
   



Does that mean by a chance it can to wine-patches? :-)

 


Hello.

Yes, it could, but I've tried to get other tests working
on win 98, without success. It's possible that it won't
work this way on 9x, so the best solution is to disable
all tests after UIActivate fails. I'll do so today and
send together with cleanup.

Thanks,
   Jacek



Error on clean .wine for theming

2005-08-15 Thread Paul Vriens
Hi,

just updated to current cvs and removed .wine:

[EMAIL PROTECTED] paul]$ rm -rf .wine
[EMAIL PROTECTED] paul]$ winecfg
wine: creating configuration directory '/home/paul/.wine'...
err:theming:THEMING_Initialize Could not re-register class LEdit: 582
wine: '/home/paul/.wine' created successfully.

Error 582 (1410) is ERROR_CLASS_ALREADY_EXISTS. 

Is this really an ERR or should error 582 be ignored ?

Cheers,

Paul.




Re: Help with debugging needed

2005-08-15 Thread Stefan Dösinger
Hi,

That thing gets more and more interesting: I was mislead by the belief that 
'next' would behave as 'nexti' at the end of the known C code. But obviosly 
it doesn't.

Well, Empire Earth doesn't crash on return from Main_DirectDraw_Release, but 
quite a bit later in its own code. It tries to call 
Main_DirectDrawSurfaceRelease for an allready freed surface: From the crash 
dump:

First chance exception: page fault on read access to 0x in 32-bit code 
(0x).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033
 EIP: ESP:7fc1fc58 EBP:7f2703e0 EFLAGS:00210293(   - 00  RISA1C)
 EAX:7fe049f0 EBX:0001 ECX:7fe01b38 EDX:7803a11c
 ESI:7f288aa0 EDI:7f288acc
Stack dump:
0x7fc1fc58:  7dbbd6d7 7fe049f0 7f288aa0 7f2703e0
0x7fc1fc68:  0001 7dbb1c20 7dbc59b4 
0x7fc1fc78:  7f9f24fc 0001 7fa24015 7dbc5998
0x7fc1fc88:  7fa23451 7dbc5998 7f270838 
0x7fc1fc98:  0002 7dbb9a14 7fa6bda1 
0x7fc1fca8:  7fc1fd04  0052ba8b 5c575f20
Backtrace:
=1 0x (0x7f2703e0)
  2 0x (0x)
0x: addb%al,0x0(%eax)

The surface to to release is in %eax and the 2nd element on the stack: 
7fe049f0.
From the log, a few lines before the crash: 
warn:ddraw:Main_DirectDrawSurface_ForceDestroy destroying surface 0x7fe049f0 
with refcnt 1
The address of the function is taken from the surface structur and now points 
to 0x.

(I do not expect a reply to this mail. I write it for a few reasons:
*Someone might have seen something like this allready
*Someone(maybe I) might search the archives sometimes and find this 
information usefull.
If I shouldn't do so, just tell me)




Re: WLDAP32: implement ldap_result

2005-08-15 Thread Vitaliy Margolen
Monday, August 15, 2005, 5:19:10, Hans Leidekker wrote:
  -Hans

 Changelog
   Implement ldap_result.

This patch brakes cvs build:

misc.c:58: error: `LDAP_NOT_SUPPORTED' undeclared (first use in this function)
misc.c:58: error: (Each undeclared identifier is reported only once
misc.c:58: error: for each function it appears in.)

Vitaliy Margolen






Re: Help with debugging needed

2005-08-15 Thread Lionel Ulmer
 Well, Empire Earth doesn't crash on return from Main_DirectDraw_Release, but 
 quite a bit later in its own code. It tries to call 
 Main_DirectDrawSurfaceRelease for an allready freed surface: From the crash 
 dump:

Could you put the +ddraw trace somewhere on the web ? This suspiciously
looks like a reference counting issue either in the application or in the
Wine code.

 Lionel

-- 
 Lionel Ulmer - http://www.bbrox.org/



Re: MSHTML: test cleanup

2005-08-15 Thread Jacek Caban

This time with the patch.

Changelog:
  - Code cleanup
  - Dissable tests after UIActivate failes (fixes tests win 9x)

Index: dlls/mshtml/tests/htmldoc.c
===
RCS file: /home/wine/wine/dlls/mshtml/tests/htmldoc.c,v
retrieving revision 1.8
diff -u -p -r1.8 htmldoc.c
--- dlls/mshtml/tests/htmldoc.c 15 Aug 2005 09:41:30 -  1.8
+++ dlls/mshtml/tests/htmldoc.c 15 Aug 2005 16:48:51 -
@@ -43,7 +43,6 @@
 ok(called_ ## func, expected  #func \n); \
 expect_ ## func = called_ ## func = FALSE
 
-static IUnknown *htmldoc_unk = NULL;
 static IOleDocumentView *view = NULL;
 static HWND container_hwnd = NULL, hwnd = NULL, last_hwnd = NULL;
 
@@ -469,7 +468,7 @@ static HRESULT WINAPI DocumentSite_Activ
 CHECK_EXPECT(ActivateMe);
 ok(pViewToActivate != NULL, pViewToActivate = NULL\n);
 
-hres = IUnknown_QueryInterface(htmldoc_unk, IID_IOleDocument, 
(void**)document);
+hres = IOleDocumentView_QueryInterface(pViewToActivate, IID_IOleDocument, 
(void**)document);
 ok(hres == S_OK, could not get IOleDocument: %08lx\n, hres);
 
 if(SUCCEEDED(hres)) {
@@ -513,8 +512,15 @@ static HRESULT WINAPI DocumentSite_Activ
 SET_EXPECT(SetActiveObject);
 SET_EXPECT(ShowUI);
 expect_SetActiveObject_active = TRUE;
+
 hres = IOleDocumentView_UIActivate(view, TRUE);
+
+if(FAILED(hres)) {
+trace(UIActivate failed: %08lx\n, hres);
+return hres;
+}
 ok(hres == S_OK, UIActivate failed: %08lx\n, hres);
+
 CHECK_CALLED(CanInPlaceActivate);
 CHECK_CALLED(GetWindowContext);
 CHECK_CALLED(GetWindow);
@@ -796,14 +802,14 @@ static LRESULT WINAPI wnd_proc(HWND hwnd
 return DefWindowProc(hwnd, msg, wParam, lParam);
 }
 
-static void test_Persist()
+static void test_Persist(IUnknown *unk)
 {
 IPersistMoniker *persist_mon;
 IPersistFile *persist_file;
 GUID guid;
 HRESULT hres;
 
-hres = IUnknown_QueryInterface(htmldoc_unk, IID_IPersistFile, 
(void**)persist_file);
+hres = IUnknown_QueryInterface(unk, IID_IPersistFile, 
(void**)persist_file);
 ok(hres == S_OK, QueryInterface(IID_IPersist) failed: %08lx\n, hres);
 if(SUCCEEDED(hres)) {
 hres = IPersist_GetClassID(persist_file, NULL);
@@ -816,7 +822,7 @@ static void test_Persist()
 IPersist_Release(persist_file);
 }
 
-hres = IUnknown_QueryInterface(htmldoc_unk, IID_IPersistMoniker, 
(void**)persist_mon);
+hres = IUnknown_QueryInterface(unk, IID_IPersistMoniker, 
(void**)persist_mon);
 ok(hres == S_OK, QueryInterface(IID_IPersistMoniker) failed: %08lx\n, 
hres);
 if(SUCCEEDED(hres)) {
 hres = IPersistMoniker_GetClassID(persist_mon, NULL);
@@ -872,12 +878,18 @@ static const OLECMDF expect_cmds[OLECMDI
 OLECMDF_SUPPORTED   /* OLECMDID_GETPRINTTEMPLATE */
 };
 
-static void test_OleCommandTarget(IOleCommandTarget *cmdtrg)
+static void test_OleCommandTarget(IUnknown *unk)
 {
+IOleCommandTarget *cmdtrg;
 OLECMD cmds[OLECMDID_GETPRINTTEMPLATE];
 int i;
 HRESULT hres;
 
+hres = IUnknown_QueryInterface(unk, IID_IOleCommandTarget, 
(void**)cmdtrg);
+ok(hres == S_OK, QueryInterface(IIDIOleM=CommandTarget failed: %08lx\n, 
hres);
+if(FAILED(hres))
+return;
+
 for(i=0; iOLECMDID_GETPRINTTEMPLATE; i++) {
 cmds[i].cmdID = i+1;
 cmds[i].cmdf = 0xf0f0;
@@ -891,20 +903,63 @@ static void test_OleCommandTarget(IOleCo
 ok(cmds[i].cmdf == expect_cmds[i+1], cmds[%d].cmdf=%lx, expected 
%x\n,
 i+1, cmds[i].cmdf, expect_cmds[i+1]);
 }
+
+IOleCommandTarget_Release(cmdtrg);
 }
 
-static void test_HTMLDocument(void)
+static void test_OleCommandTarget_fail(IUnknown *unk)
 {
-IOleObject *oleobj = NULL;
-IOleClientSite *clientsite = (LPVOID)0xdeadbeef;
-IOleInPlaceObjectWindowless *windowlessobj = NULL;
-IOleInPlaceActiveObject *activeobject = NULL;
-IOleCommandTarget *cmdtrg = NULL;
-GUID guid;
-RECT rect = {0,0,500,500};
+IOleCommandTarget *cmdtrg;
+int i;
 HRESULT hres;
-ULONG ref;
 
+OLECMD cmd[2] = {
+{OLECMDID_OPEN, 0xf0f0},
+{OLECMDID_GETPRINTTEMPLATE+1, 0xf0f0}
+};
+
+hres = IUnknown_QueryInterface(unk, IID_IOleCommandTarget, 
(void**)cmdtrg);
+ok(hres == S_OK, QueryInterface(IIDIOleM=CommandTarget failed: %08lx\n, 
hres);
+if(FAILED(hres))
+return;
+
+
+
+hres = IOleCommandTarget_QueryStatus(cmdtrg, NULL, 0, NULL, NULL);
+ok(hres == S_OK, QueryStatus failed: %08lx\n, hres);
+
+hres = IOleCommandTarget_QueryStatus(cmdtrg, NULL, 2, cmd, NULL);
+ok(hres == OLECMDERR_E_NOTSUPPORTED,
+QueryStatus failed: %08lx, expected OLECMDERR_E_NOTSUPPORTED\n, 
hres);
+ok(cmd[1].cmdID == OLECMDID_GETPRINTTEMPLATE+1,
+

Re: Help with debugging needed

2005-08-15 Thread Stefan Dösinger
Am Montag, 15. August 2005 17:07 schrieb Lionel Ulmer:
  Well, Empire Earth doesn't crash on return from Main_DirectDraw_Release,
  but quite a bit later in its own code. It tries to call
  Main_DirectDrawSurfaceRelease for an allready freed surface: From the
  crash dump:

 Could you put the +ddraw trace somewhere on the web ? This suspiciously
 looks like a reference counting issue either in the application or in the
 Wine code.
Sure. The log can be found at www.doesi.gmxhome.de/ee-ddraw.log.gz
(38KB)

Stefan



Re: Help with debugging needed

2005-08-15 Thread Stefan Dösinger
Am Montag, 15. August 2005 17:07 schrieb Lionel Ulmer:
  Well, Empire Earth doesn't crash on return from Main_DirectDraw_Release,
  but quite a bit later in its own code. It tries to call
  Main_DirectDrawSurfaceRelease for an allready freed surface: From the
  crash dump:

 Could you put the +ddraw trace somewhere on the web ? This suspiciously
 looks like a reference counting issue either in the application or in the
 Wine code.

Oh, I forgot to add that I've done a little change to the ddraw code. Empire 
Earth calls Main_DirectDraw_SetCooperativeLevel with cooplevel == 
DDSCL_SETFOCUSWINDOW and expects a successfull result. I don't think that 
this is related to the problem.

I've also modified dlls/ntdll/heap.c to allways fill freed heap areas with 
0x.

Stefan
Index: dlls/ddraw/ddraw_main.c
===
RCS file: /home/wine/wine/dlls/ddraw/ddraw_main.c,v
retrieving revision 1.8
diff -u -r1.8 ddraw_main.c
--- dlls/ddraw/ddraw_main.c	26 Jul 2005 20:10:51 -	1.8
+++ dlls/ddraw/ddraw_main.c	15 Aug 2005 17:18:55 -
@@ -1120,6 +1120,7 @@
 	return DDERR_HWNDALREADYSET;
 */
 
+if(cooplevel == DDSCL_SETFOCUSWINDOW) return DD_OK;
 if (!(cooplevel  (DDSCL_EXCLUSIVE|DDSCL_NORMAL)))
 	return DDERR_INVALIDPARAMS;
 


Re: Help Please

2005-08-15 Thread Fabio Duarte Vilas Boas
How dumb icone of wine in kde?
 I want to place my image when to minimize it








___ 
Yahoo! Acesso Grátis - Internet rápida e grátis. 
Instale o discador agora! http://br.acesso.yahoo.com/



Re: lostwages/templates/en howto.template

2005-08-15 Thread Lionel Ulmer
 Log message:
   Tom Wickline [EMAIL PROTECTED]
   spelling fix, doc update

+pIf your using an old version of Wine we recommend that you use a handy 
program called
   

Sorry to spot this once it has been committed :-)

 Lionel

-- 
 Lionel Ulmer - http://www.bbrox.org/



How dumb icone of wine in kde? I want to place my image when to minimize it

2005-08-15 Thread Fabio Duarte Vilas Boas
How dumb icone of wine in kde?
 I want to place my image when to minimize it





___ 
Yahoo! Acesso Grátis - Internet rápida e grátis. 
Instale o discador agora! http://br.acesso.yahoo.com/



Re: Lostwages: howto.diff #2

2005-08-15 Thread Lionel Ulmer
On Mon, Aug 15, 2005 at 05:14:27PM -0400, Tom Wickline wrote:
 Changelog:
 Spelling fix and doc update

Note that the 'if your running' typo is still here.

   Lionel

-- 
 Lionel Ulmer - http://www.bbrox.org/



Re: WINEALSA: comment on unexpected shrinking of mmap-buffer (resend)

2005-08-15 Thread Alex Villací­s Lasso

Robert Reif wrote:



Only the primary buffer supports hardware acceleration.  The secondary
buffer(s) are implemented in software and mixed into the primary buffer.
The formats (mono/stereo, 8/16 bit samples, and sample rate) of the
primary and secondary buffers are totally independent and can be 
anything.


One of the dsound tests keeps the primary buffer format constant and
iterates through all secondary buffer formats and another keeps the
secondary buffer format constant and iterates through all possible
primary formats.

This is probably what you are seeing.  The secondary buffer format
has nothing to do with what is sent to the hardware.


The first test that fails with the ALSA driver is the so-called 
reference tone, which, as far as I could see, is played with a primary 
buffer, and no secondary buffer. The reference tone uses the hardware 
position directly, which wraps around at a buffer size that changes 
unexpectedly when switching playback formats. I have prepared a patch 
that fixes this, by re-querying the buffer size in the case of a 
primary buffer, and displaying a warning if it detects a buffer size 
change. However, I don't know if the buffer size is supposed to remain 
constant across buffer format changes. If it does, then the patch would 
need to be modified to mark this as a TODO.


Changelog:
* Re-query buffer capabilities after format change, and display warning 
if buffer size changed after format change. Fixes reference playback 
with ALSA.


diff -uN wine-20050725-cvs/dlls/dsound/tests/ds3d8.c wine-20050725-cvs-patch/dlls/dsound/tests/ds3d8.c
--- wine-20050725-cvs/dlls/dsound/tests/ds3d8.c	2005-06-20 09:18:04.0 -0500
+++ wine-20050725-cvs-patch/dlls/dsound/tests/ds3d8.c	2005-08-13 11:35:55.0 -0500
@@ -254,6 +254,8 @@
 ok(status==0,status=0x%lx instead of 0\n,status);
 
 if (is_primary) {
+DWORD previous_buffer_size;
+
 /* We must call SetCooperativeLevel to be allowed to call SetFormat */
 /* DSOUND: Setting DirectSound cooperative level to DSSCL_PRIORITY */
 rc=IDirectSound8_SetCooperativeLevel(dso,get_hwnd(),DSSCL_PRIORITY);
@@ -292,6 +294,29 @@
   wfx.nChannels,wfx.nAvgBytesPerSec,wfx.nBlockAlign);
 }
 
+/* Not all sound implementations guarantee that the buffer size will remain 
+   unchanged after a successful SetFormat() call. For example, ALSA is known
+   to change buffer sizes when requested to change sound format. So the 
+   buffer capabilities are re-queried in order to play the samples correctly.
+   
+   TODO: is this a Windows DirectSound requirement? (bufsize constant across
+   format changes)
+ */
+previous_buffer_size = dsbcaps.dwBufferBytes;
+dsbcaps.dwSize=sizeof(dsbcaps);
+rc=IDirectSoundBuffer_GetCaps(dsbo,dsbcaps);
+ok(rc==DS_OK,IDirectSoundBuffer_GetCaps() failed: %s\n,
+   DXGetErrorString8(rc));
+if (rc==DS_OK  winetest_debug  1) {
+trace(Caps (again): flags=0x%08lx size=%ld\n,dsbcaps.dwFlags,
+  dsbcaps.dwBufferBytes);
+}
+/* should the following check be marked as a TODO? */
+if (previous_buffer_size != dsbcaps.dwBufferBytes) {
+trace(buffer size changed after SetFormat() - previous size is %lu, current size is %lu\n,
+previous_buffer_size, dsbcaps.dwBufferBytes);
+}
+
 /* Set the CooperativeLevel back to normal */
 /* DSOUND: Setting DirectSound cooperative level to DSSCL_NORMAL */
 rc=IDirectSound8_SetCooperativeLevel(dso,get_hwnd(),DSSCL_NORMAL);
diff -uN wine-20050725-cvs/dlls/dsound/tests/ds3d.c wine-20050725-cvs-patch/dlls/dsound/tests/ds3d.c
--- wine-20050725-cvs/dlls/dsound/tests/ds3d.c	2005-07-15 13:36:52.0 -0500
+++ wine-20050725-cvs-patch/dlls/dsound/tests/ds3d.c	2005-08-12 20:53:54.0 -0500
@@ -362,6 +362,8 @@
 ok(status==0,status=0x%lx instead of 0\n,status);
 
 if (is_primary) {
+DWORD previous_buffer_size;
+
 /* We must call SetCooperativeLevel to be allowed to call SetFormat */
 /* DSOUND: Setting DirectSound cooperative level to DSSCL_PRIORITY */
 rc=IDirectSound_SetCooperativeLevel(dso,get_hwnd(),DSSCL_PRIORITY);
@@ -400,6 +402,29 @@
   wfx.nChannels,wfx.nAvgBytesPerSec,wfx.nBlockAlign);
 }
 
+/* Not all sound implementations guarantee that the buffer size will remain 
+   unchanged after a successful SetFormat() call. For example, ALSA is known
+   to change buffer sizes when requested to change sound format. So the 
+   buffer capabilities are re-queried in order to play the samples correctly.
+   
+   TODO: is this a Windows DirectSound requirement? (bufsize constant across
+   format changes)
+ */
+previous_buffer_size = dsbcaps.dwBufferBytes;
+

Re: WINEALSA: comment on unexpected shrinking of mmap-buffer (resend)

2005-08-15 Thread Robert Reif

Alex Villací­s Lasso wrote:

The first test that fails with the ALSA driver is the so-called 
reference tone, which, as far as I could see, is played with a 
primary buffer, and no secondary buffer. The reference tone uses the 
hardware position directly, which wraps around at a buffer size that 
changes unexpectedly when switching playback formats. I have prepared 
a patch that fixes this, by re-querying the buffer size in the case 
of a primary buffer, and displaying a warning if it detects a buffer 
size change. However, I don't know if the buffer size is supposed to 
remain constant across buffer format changes. If it does, then the 
patch would need to be modified to mark this as a TODO.


Fix the wine ALSA driver rather than the test unless you can prove that 
the test fails on Windows.





Lines of code in Wine?

2005-08-15 Thread Tom Wickline
Hello,

I was looking at our line count so I could update the history page and the FAQ
with new up to date numbers. And my numbers come no where close to
what has been reported in the past. anyone care to generate the
current line count ?

Here is the numbers I get if anyone is interested.

Wine:
ansic:  1025534 (96.99%)
perl: 18339 (1.73%)
yacc:  6503 (0.61%)
sh:4064 (0.38%)
lex:   2916 (0.28%)
awk: 54 (0.01%)

Total = 1,057,410

Lostwages:
php:   1469 (100.00%)

Total = 1,469

AppDB:
php:   9034 (97.78%)
perl:   185 (2.00%)
sh:  20 (0.22%)

Total = 9,239

Tools:
perl:  3725 (81.71%)
python: 572 (12.55%)
exp:140 (3.07%)
php:115 (2.52%)
sh:   7 (0.15%)

Total = 4,559

kernel-win32:
ansic: 6269 (100.00%)

Total = 6,269

Grand Total = 1,078,946

Tom




Re: Lines of code in Wine?

2005-08-15 Thread Brian Vincent
On 8/15/05, Tom Wickline [EMAIL PROTECTED] wrote:
 I was looking at our line count so I could update the history page and the FAQ
 with new up to date numbers. And my numbers come no where close to
 what has been reported in the past. anyone care to generate the
 current line count ?

Alexandre mentioned we were rapidly approaching 1.4 million at
WineConf and I'm sure we're past that now (avg = 700 /day).  I'm not
exactly sure how he calculated that number, but I'm inclined to
believe it's right.

-Brian




Re: [Bug 3220] New: PowerFinder now braindead checking for msvcrt.dll

2005-08-15 Thread Scott Edwards
I have narrowed this bug down to local configuration options for
PowerFinder.exe.  When msvcrt and msvcrt40 are both set to 'native'
*or* 'native' then 'builtin', the application functions as expected.

If there's any way I can help narrow this down for you, please let me know.

Thanks.




Proposed interface for file operations by the file dialog code (dlls\commdlg\filedlg*.c)

2005-08-15 Thread Troy Rollo
References:
http://www.winehq.org/hypermail/wine-patches/2005/08/0265.html
http://www.winehq.org/hypermail/wine-devel/2005/08/0286.html

Background:

Work is currently proceeding on a branched version to create additional 
APIs
for WINE that use UNIX path names rather than Windows ones. This is 
useful
for Winelib apps and seeks to make them look more like they are native 
apps,
thereby addressing some of the complaints that Winelib apps are somehow 
of
lesser status than ports using other APIs. After some discussion, it was
decided that this would remain a branch until at least such time as the
implementation was proven to work in real-world situations.

Part of this involves producing file dialog APIs that operate 
appropriately
in this context. That includes taking UNIX path names on input, 
producing
UNIX path names on output and in callbacks to the application, and 
browsing a
heirarchy that does not include windows-isms such as drive letters.

To make modifications directly in the existing code would result in a 
set of
differences that would result in significant headaches for branch 
maintenance
and any future merge-back to WineHQ. The objective is to reduce the
differences so as to improve  compatibility between the branches.

The patch referenced above took a minimal-change approach to this 
problem by
implementing an interface that mostly implemented the small operations 
made
by the existing code, without even putting in local stubs (hence the
inconsistent calling conventions in the interface).

The general principle I have used is that path names should, as far as
possible, be opaque so that the file dialog code itself never examines 
their
contents directly, but rather calls functions in the interface to 
extract or
locate particular portions of the path, to modify or concatenate paths 
or to
make use of the paths.

The minimalist interface:

typedef struct
{
UINTcode_page;
WCHAR   sep_char;

HRESULT WINAPI (*get_top_folder)(IShellFolder **);
LPITEMIDLIST(*get_pidl_from_name)(IShellFolder *, LPWSTR);
BOOL(*get_display_name) (LPCITEMIDLIST, LPWSTR);
IShellFolder*   (*get_folder_from_pidl)(LPITEMIDLIST);

BOOLWINAPI  (*change_directory) (LPCWSTR);
UINTWINAPI  (*get_directory)(UINT, LPWSTR);

void(*qualify_path) (LPWSTR, LPCWSTR);
void(*complete_path)(LPWSTR);
BOOL(*has_invalid_char) (LPCWSTR);
LPWSTR  WINAPI  (*find_next_component)  (LPCWSTR);
LPWSTR  WINAPI  (*find_file_name)   (LPCWSTR);
LPWSTR  WINAPI  (*find_extension)   (LPCWSTR);
BOOLWINAPI  (*file_exists)  (LPCWSTR);
BOOLWINAPI  (*is_directory) (LPCWSTR);
LPWSTR  WINAPI  (*add_dir_sep)  (LPWSTR);
DWORD   WINAPI  (*get_full_path)(LPCWSTR, DWORD, 
LPWSTR, LPWSTR*);

} FileDlgFileOps;

Minimalist interface vs ideal interface:

On IRC this morning Alexandre said he would prefer a well-designed 
interface
to the minimalist approach, hence this discussion.

Since the interface is entirely internal to commdlg, I will use cdecl 
calling
conventions.

Detailed discussion follows.

The code_page member was put there because the UNIX file name APIs may not use 
the same code page as other A entry points. WINE uses CP_ACP (as does Windows 
- although CP_THREAD_ACP is subject to further investigation) for most 
purposes, but CP_UNIXCP for UNIX path names when translating them to UTF16. 
Often CP_UNIXCP will be something like UTF8, or it may be ISO8859-1 in 
situations where Windows would use CP1252.  It may be that a Winelib 
application should have CP_ACP set to be the UNIX code page, but they may not 
(and unless they do something special will not.

So places where A-W or W-A conversions happen on path names need to make 
sure they use the right code page in the context. The minimalist approach was 
to make this a data member, but the ideal approach would be to have functions 
which performed the appropriate conversions. Looking through the existing 
code, the conversions are performed in some contexts where the output is 
allocated, and others where the output is a fixed size buffer. If we want to 
have just one conversion function for each direction, this would give us:

CHAR *filename_wtoa(WCHAR const *in, CHAR *out, int bufrange);
WCHAR *filename_atow(CHAR const *in, WCHAR *out, int bufrange);

in is the input buffer.

Re: [MSXML]xmlnode_get_nodeName Implementation

2005-08-15 Thread Mike McCormack


Hi Vijay,

Vijay Kiran Kamuju wrote:


i think it would be better if we put bstr_from_xmlChar in msxml_private.h
need directions how to implement domdoc_get_nodeName


I'll post a patch to move bstr_from_xmlChar and other utility functions 
somewhere else in the code later.



please comment on the patch


For now the basics of msxml3 aren't really decided (eg. how to map 
xmlNodePtr to IXMLDOMNode, etc), and how to manage the relationship 
between nodes.  The way I'm managing node pointers will probably change 
again.


What I really need is more test cases, so if you have any msxml test 
cases lying around, then let me know.


Mike



Re: [MSXML]xmlnode_get_nodeName Implementation

2005-08-15 Thread Vijay Kiran Kamuju
Hi Mike,

I am planning to write some tests for IXMLDOMNode.
I need your help on how to write tests in the wine test framework and
test on the windows framework.

Thanks,
Vijay

On 8/16/05, Mike McCormack [EMAIL PROTECTED] wrote:
 
 Hi Vijay,
 
 Vijay Kiran Kamuju wrote:
 
  i think it would be better if we put bstr_from_xmlChar in msxml_private.h
  need directions how to implement domdoc_get_nodeName
 
 I'll post a patch to move bstr_from_xmlChar and other utility functions
 somewhere else in the code later.
 
  please comment on the patch
 
 For now the basics of msxml3 aren't really decided (eg. how to map
 xmlNodePtr to IXMLDOMNode, etc), and how to manage the relationship
 between nodes.  The way I'm managing node pointers will probably change
 again.
 
 What I really need is more test cases, so if you have any msxml test
 cases lying around, then let me know.
 
 Mike





Re: [MSXML]xmlnode_get_nodeName Implementation

2005-08-15 Thread Mike McCormack


Vijay Kiran Kamuju wrote:


I am planning to write some tests for IXMLDOMNode.
I need your help on how to write tests in the wine test framework and
test on the windows framework.


I started a simple test case in dlls/msxml3/tests/domdoc.c.  I modify it 
a little bit to get it to compile under MSVC 6.0.  I've attached the 
diff from the version that compiles on Windows.


Mike
--- /home/mike/testprogs/xmltest/xmltest.c	2005-08-11 13:10:52.0 +0900
+++ /home/mike/wine/dlls/msxml3/tests/domdoc.c	2005-08-12 20:25:05.0 +0900
@@ -27,8 +27,7 @@
 #include xmldom.h
 #include stdio.h
 
-//#include wine/test.h
-#define ok(cond,str) do{ if(!(cond)) fprintf(stderr,line %d: %s,__LINE__,str); }while (0)
+#include wine/test.h
 
 void test_domdoc( void )
 {
@@ -80,7 +79,7 @@ void test_domdoc( void )
 
 r = CoCreateInstance( CLSID_DOMDocument, NULL, 
 CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (LPVOID*)doc );
-ok( r == S_OK, failed to create an xml dom doc\n );
+/* ok( r == S_OK, failed to create an xml dom doc\n ); */
 if( r != S_OK )
 return;
 
@@ -199,8 +198,7 @@ void test_domdoc( void )
 ok( r == S_OK, failed to uninit com\n);
 }
 
-//START_TEST(domdoc)
-main(int argc, char **argv)
+START_TEST(domdoc)
 {
 test_domdoc();
 }


Re: [MSXML]xmlnode_get_nodeName Implementation

2005-08-15 Thread Vijay Kiran Kamuju
Hi Mike,

Do we have to register the IXMLDOMNode to the registry?
As you did in the test for domdoc.
I think we need to add all other basic interface's CLSID's to the registry?

Thanks,
Vijay

On 8/16/05, Mike McCormack [EMAIL PROTECTED] wrote:
 
 Vijay Kiran Kamuju wrote:
 
  I am planning to write some tests for IXMLDOMNode.
  I need your help on how to write tests in the wine test framework and
  test on the windows framework.
 
 I started a simple test case in dlls/msxml3/tests/domdoc.c.  I modify it
 a little bit to get it to compile under MSVC 6.0.  I've attached the
 diff from the version that compiles on Windows.
 
 Mike
 
 





Re: [MSXML]xmlnode_get_nodeName Implementation

2005-08-15 Thread Mike McCormack


Vijay Kiran Kamuju wrote:


Do we have to register the IXMLDOMNode to the registry?
As you did in the test for domdoc.
I think we need to add all other basic interface's CLSID's to the registry?


IXMLDOMNode is an interface, which has an IID, not a CLSID.  We don't 
need to register interfaces for the moment, only CLSIDs.  The other 
CLSID we might want to register is CLSID_XMLDocument, but there's no 
implementation of that for the moment.  I have a stub in my tree, but I 
haven't submitted it as yet.


Interfaces only need to be registered if we want OLE automation (eg. 
IXMLDOMNode-Invoke()) to work, and I think they can be registered 
automatically using oleaut32.RegisterTypeLib().


Mike