Re: Really slow named pipes

2003-08-26 Thread Duane Clark
Duane Clark wrote:
That one came through, but unfortunately it did not fix the problem. I 
will try to see if I can figure out a bit more about how writes to pipes 
work.
Okay, more info about what is happening. It is not a problem of writes 
being blocked. Instead what I see is:

trace:file:CreateFileW Opening a pipe: 
L".\\pipe\\Win32.Pipes.0014.0001"
trace:file:FILE_OpenPipe Returned 0x1c8
trace:file:CreateFileW returning 0x1c8
trace:file:CreatePipe Read 0x1c4 write 0x1c8
...
trace:file:WriteFile 0x1c8 0x40c13768 77 0x40c13b70 (nil)
...
trace:file:WriteFile 0x1c8 0x40c13768 75 0x40c13b70 (nil)
...
trace:file:WriteFile 0x1c8 0x40c13768 75 0x40c13b70 (nil)
...
trace:file:WriteFile 0x1c8 0x40c136ec 83 0x40c13af4 (nil)
...
trace:file:WriteFile 0x1c8 0x40c136ec 78 0x40c13af4 (nil)
...
trace:file:PeekNamedPipe  0x004d bytes available
...
trace:file:PeekNamedPipe  0x004b bytes available
...
trace:file:PeekNamedPipe  0x004b bytes available
...
trace:file:PeekNamedPipe  0x0053 bytes available
...
trace:file:PeekNamedPipe  0x004e bytes available

Notice that the number of bytes available in each Peek corresponds 
exactly with the number that were written in each individual write. What 
should be happening of course is that the total number of bytes should 
have been reported in the first peek.





Re: Thank you!

2003-08-26 Thread Duane Clark
Dustin Navea wrote:
bah some of these sobig emails are still getting thru jer


I think these have no attachments, though I don't receive the emails 
directly, so I can't be sure. At least the attachments are not archived; 
I don't know where they are being stripped. Without the attachment, they 
won't be caught by the moderation filter if they have a legitimate From 
email address.





Deleted emails

2003-08-26 Thread Duane Clark
Ahh..., fun with the Sobig.F virus. I skipped out yesterday to do some 
scuba diving, and arrived this morning to find about 7000 emails 
awaiting moderation. Yikes!!!

Anyway, Jeremy seems to have fixed things so they are now being blocked. 
Thanks!!! But rather than trying to go through 7000 postings to find 
legitimate emails, all pending moderation requests were simply deleted. 
So if anyone posted something to any of the lists in about the 36 hours 
or so prior to this morning, and it never showed up, please just resend.





Re: Really slow named pipes

2003-08-26 Thread Duane Clark
Eric Pouech wrote:
oops (took the file from the wrong dir...)

That one came through, but unfortunately it did not fix the problem. I 
will try to see if I can figure out a bit more about how writes to pipes 
work.






Re: Fwd: Your message to wine-bugs awaits moderator approval

2003-08-25 Thread Duane Clark
Gregory M. Turner wrote:
I don't think I've done anything on wine-bugs lately... what's going on here?

--  Forwarded Message  --

Subject: Your message to wine-bugs awaits moderator approval
Date: Sunday 24 August 2003 05:40 pm
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Your mail to 'wine-bugs' with the subject

Thank you!

Is being held until the list moderator can review it for approval.

Sobig.F is kindly sending emails to the list with your email address 
forged on them. Sorry about the bounces. I have now disabled the 
automatic notification; it is already off on the other lists but somehow 
it was still on on wine-bugs.





Re: Really slow named pipes

2003-08-24 Thread Duane Clark
Eric Pouech wrote:
So the problem appears to be that in the new implementation, the write 
to the pipe is being blocked on every call, until a read has happened. 
What should be happening is that the write should only block if the pipe 
is full. Does that help someone know where to look?


does this help ?



bash: wine: command not found
Nope ;) I think there was a problem when you tried to attach that :-)





Re: Really slow named pipes

2003-08-24 Thread Duane Clark
Duane Clark wrote:
This is a bit old, from May, but anyhow...

The patch to implement anonymous pipes on top of named pipes:
http://www.winehq.com/hypermail/wine-cvs/2003/05/0305.html
along with a corresponding bug fix:
http://www.winehq.com/hypermail/wine-cvs/2003/06/0123.html
causes Xilinx ISE to run really, really slow.
It has a window to which messages are sent via a pipe, and what I see 
now is that one line comes out every 2/3 of a second or so, as regular 
as a clock at least by eye. I can revert those two patches, and it goes 
back to spitting out the messages very fast. Since there are a lot of 
messages being sent, the current version slows the app down to a crawl.
A bit more info about what is happening, as best as I can tell. It looks 
like the message window is doing a PeekNamedPipe about every 2/3 of a 
second; hence the timing that I am seeing.

So the problem appears to be that in the new implementation, the write 
to the pipe is being blocked on every call, until a read has happened. 
What should be happening is that the write should only block if the pipe 
is full. Does that help someone know where to look?





Really slow named pipes

2003-08-24 Thread Duane Clark
This is a bit old, from May, but anyhow...

The patch to implement anonymous pipes on top of named pipes:
http://www.winehq.com/hypermail/wine-cvs/2003/05/0305.html
along with a corresponding bug fix:
http://www.winehq.com/hypermail/wine-cvs/2003/06/0123.html
causes Xilinx ISE to run really, really slow.
It has a window to which messages are sent via a pipe, and what I see 
now is that one line comes out every 2/3 of a second or so, as regular 
as a clock at least by eye. I can revert those two patches, and it goes 
back to spitting out the messages very fast. Since there are a lot of 
messages being sent, the current version slows the app down to a crawl.

It does not look like the patch itself is the problem; I am guessing 
that it is the underlying named pipe implementation that is the problem, 
which was exposed by the patch.

Also, reverting to the full CVS 5/20, just after the pipe patches, has 
the same problem. So it appears that whatever is wrong with named pipes 
(if that really is the problem) was already there on 5/20, rather than 
it being something introduced since then.

Any hints on what I could look for would be welcome.





Re: Viruses in the wine-devel archive ??

2003-08-22 Thread Duane Clark
Stefan Leichter wrote:
On Friday 22 August 2003 19:00, Duane Clark wrote:


I have temporarily changed the maximum message size on wine-patches to
40KB. So any emails with valid forged "From" headers will be caught for
moderation. Since all the other lists were already set at 40KB by
default, no viruses were able to make it through.


If you like to save some work i have seen filter rule against sobig.f for 
Postfix 
(http://sbserv.stahl.bau.tu-bs.de/~hildeb/postfix/postfix_sobigf.shtml), Exim 
and sendmail. For Exim and sendmail the description is in german only on 
http://www.heise.de/newsticker/data/dab-20.08.03-004/.
I don't control the mail server, so you would need to address this to 
Jeremy. I just do moderation. Hopefully he will also soon add the 
Mailman spam filtering he mentioned a couple of weeks ago?




Re: About spam

2003-08-22 Thread Duane Clark
Sylvain Petreolle wrote:
I have an  evidence that some robots can grab our email adress, even
with our mangling process on winehq. I used my work adress only onto
wine-devel and got spammed last week.
A lot of spammers do dictionary attacks using various email combinations 
including first initial last [EMAIL PROTECTED]





Re: Viruses in the wine-devel archive ??

2003-08-22 Thread Duane Clark
Jeremy Newman wrote:
Yup, here is the message.
http://winehq.com/hypermail/wine-patches/2003/08/0203.html
I'll remove that attachment. Should we contact that author and let him
know he is infected, or simply remove him from the list?
Please don't remove anyone from the lists. The "From" is always forged, 
so you should ignore it. The Wine lists are currently getting about 1000 
Sobig.F viruses per day, some of them supposedly from Alexandre ;)

I have temporarily changed the maximum message size on wine-patches to 
40KB. So any emails with valid forged "From" headers will be caught for 
moderation. Since all the other lists were already set at 40KB by 
default, no viruses were able to make it through.






Re: Wine history draft

2003-08-14 Thread Duane Clark
Brian Vincent (C) wrote:
I put together the following:
 http://users.theshell.com/~vinn/wine-history.html
...
Comments / suggestions / criticisms? 

Some interesting postings from the beginnings of Wine were collected and 
reposted last year. They might be worth including or being referenced in 
some form.

http://www.winehq.com/hypermail/wine-devel/2002/11/0455.html





Re: propset.c: In function `DSPROPERTY_EnumerateW

2003-08-09 Thread Duane Clark
Peter Birch wrote:
The latest cvs code (08/06/2003 20:45:00 pst) will not compile - I get 
the following error:

gcc -c -I. -I. -I../../include -I../../include  -D_REENTRANT -fPIC 
-D__WINESRC__  -Wall -mpreferred-stack-boundary=2 -fno-strict-aliasing 
-gstabs+ -Wpointer-arith  -g -O2 -o propset.o propset.c
propset.c: In function `DSPROPERTY_EnumerateW':
propset.c:522: parse error before `*'
propset.c:526: `wDescription' undeclared (first use in this function)
propset.c:526: (Each undeclared identifier is reported only once
propset.c:526: for each function it appears in.)
propset.c:527: `wModule' undeclared (first use in this function)
propset.c:528: `wInterface' undeclared (first use in this function)
propset.c:550: parse error before `*'

This is on Linux kernel 2.4.20 (i586), GCC 2.95.4
with the configure line: ./configure --prefix=/usr --sysconfdir=/etc 
--with-opengl --with-x

This used to work, and the error amazes me because the exact same code 
appears in the source file several times before the error.
This patch will fix it.
http://www.winehq.com/hypermail/wine-patches/2003/08/0050.html





Crash in EnumMRUListA

2003-08-04 Thread Duane Clark
Running MS Excel viewer, I seem to be able to crash it fairly easily 
when opening files. The is occurring in the apparently undocumented 
function EnumMRUListA, so I am not really sure what to expect here.

Unhandled exception: page fault on read access to 0x in 32-bit 
code (0x40a231f0).
In 32-bit mode.
0x40a231f0 (EnumMRUListA+0x88 [comctl32undoc.c:1056] in 
comctl32.dll.so): movl 0x0(%edi),%eax
1056datasize = min( witem->size, nBufferSize );
Wine-dbg>bt
Backtrace:
=>0 0x40a231f0 (EnumMRUListA+0x88(hList=0x416c00b8, nItemPos=0x3, 
lpBuffer=0x405816a8, nBufferSize=0x800) [comctl32undoc.c:1056] in 
comctl32.dll.so) (ebp=40581230)
  1 0x4097b3d9 (SHAddToRecentDocs+0x3c9(uFlags=0x2, pv=0x4058242c) 
[shellord.c:788] in shell32.dll.so) (ebp=40582414)
  2 0x300c4151 (XLVIEW.EXE.EntryPoint+0xabc81 in XLVIEW.EXE) (ebp=40582530)
  3 0x301851a2 (XLVIEW.EXE.EntryPoint+0x16ccd2 in XLVIEW.EXE) 
(ebp=40582950)
  4 0x30047dae (XLVIEW.EXE.EntryPoint+0x2f8de in XLVIEW.EXE) (ebp=40582b94)
  5 0x30046b30 (XLVIEW.EXE.EntryPoint+0x2e660 in XLVIEW.EXE) (ebp=40582c10)
  6 0x300476cb (XLVIEW.EXE.EntryPoint+0x2f1fb in XLVIEW.EXE) (ebp=40582c44)
  7 0x30047790 (XLVIEW.EXE.EntryPoint+0x2f2c0 in XLVIEW.EXE) (ebp=40582c68)
  8 0x407de4f7 (WINPROC_wrapper+0x17 in user32.dll.so) (ebp=40582c8c)
  9 0x407de582 (WINPROC_CallWndProc+0x82(proc=0x300476d2, hwnd=0x10021, 
msg=0x111, wParam=0x2001, lParam=0x0) [winproc.c:219] in user32.dll.so) 
(ebp=40582cbc)
  10 0x407e492f (CallWindowProcW+0xcf(func=0x4086e3f4, hwnd=0x10021, 
msg=0x111, wParam=0x2001, lParam=0x0) [winproc.c:2928] in user32.dll.so) 
(ebp=40582cf0)
  11 0x407c7bd2 (DispatchMessageW+0x11e(msg=0x40582dc0) [message.c:886] 
in user32.dll.so) (ebp=40582d34)
  12 0x30043eae (XLVIEW.EXE.EntryPoint+0x2b9de in XLVIEW.EXE) 
(ebp=)





Re: Trackbar select range tweaks

2003-08-03 Thread Duane Clark
Dustin Navea wrote:
could someone send me the testcase and i will run it on a win2k machine, a
win98 machine and a winxp machine?
Hmm, an executable for determining the SM_CYCAPTION metric is small, so 
I'll attach that. It comes from this code.

#include "windows.h"
#include "stdio.h"
main()
{
	printf("GetSystemMetrics(SM_CYCAPTION) = %d\n", 
GetSystemMetrics(SM_CYCAPTION));
}

For determing thumb size, I use MS ControlSpy, available here:
http://www.microsoft.com/msj/0798/controlspy.aspx
That includes binaries. Just run the Trackbar binary, click on 
"TBM_GETTHUMBLENGTH" in the window on the lower left, and then click the 
"Send" button. In the window below that button, it should say something 
like:
lResult: 21 (0x15)
which means the thumb size is 21.



sysmetric.exe.zip
Description: Zip archive


Re: Trackbar select range tweaks

2003-08-02 Thread Duane Clark
BiGgUn wrote:
Changelog: Oops, initial thumb length doesn't appear to depend on 
SM_CYCAPTION after all.


Thumb length DOES depend on GetSystemMetrics( SM_CYCAPTION) on a
native platform. ( thumb_length = GetSystemMetrics( SM_CYCAPTION) + 2
[with no select range]) If wine uses standard values from windows
there's no matter. But if a user decides to change these values in
its registry, trackbars won't reflect those changes in their sizes.
So i think that thumb length still need to depend on this metrics
value.
Well, as I mentioned elsewhere, on Win2K for me
GetSystemMetrics(SM_CYCAPTION) returns 20, while the initial thumb size
is 21. So any relationship appears to depend on the Windows version.
By all means feel free to figure out exactly how it works, and submit a 
patch. But I think it needs to be tested on a few different versions of 
Windows. I find the explanation of SM_CYCAPTION in the SDK to not be too 
clear:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win9x/verdiff_8hwz.asp





Re: Trackbar size fixes

2003-08-01 Thread Duane Clark
Jon Bright wrote:
Duane Clark wrote:

 >  From the Wine include file:
 >
 > winuser.h:#define SM_CYCAPTION 4
 >
 > So I don't think we want to use that value.
That's just the value for passing to GetSystemMetrics.  The actual value 
returned will be either:

 sysMetrics[SM_CYCAPTION]  = 20;

or

 sysMetrics[SM_CYCAPTION] = SYSMETRICS_GetRegistryMetric(hkey, 
"CaptionHeight", 18)
  + 1; /* for the separator? */

Hmm... well I wrote a small test case on Windows. For me on WinNT,
GetSystemMetrics(SM_CYCAPTION) returns 19 (which is also what Wine
returns for me), while the initial trackbar thumb size is 21. On Win2k,
GetSystemMetrics(SM_CYCAPTION) returns 20, but the the initial thumb
size is still 21. So am I doing something wrong? It does not appear to
me that the trackbar thumb size is related to SM_CYCAPTION.
By the way, for me, changing to
[Version]
"Windows" = "win2k"
still returns 19 for SM_CYCAPTION for me on Wine. I am assuming that
should return 20?



Re: Trackbar size fixes

2003-08-01 Thread Duane Clark
BiGgUn wrote:
As BiGgUn suggests, in TRACKBAR_InitializeThumb, setting:
infoPtr->uThumbLen = 21;


In this case 21 is a magic number. In fact, infoPtr->uThumbLen equals SM_CYCAPTION.

From the Wine include file:

winuser.h:#define SM_CYCAPTION 4

So I don't think we want to use that value.




Re: Trackbar size fixes

2003-07-29 Thread Duane Clark
Duane Clark wrote:
Duane Clark wrote:

Hmm, attached is what that looks like for me. So I don't know why it 
looks bad to you.


Oops, sorry. I was using a native control there. I do see the same thing
as you.
(Sorry about replying to myself several times)

As BiGgUn suggests, in TRACKBAR_InitializeThumb, setting:
infoPtr->uThumbLen = 21;
fixes IE. I suspect that is close to correct, other than that it 
probably should not be a magic number.





Re: Trackbar size fixes

2003-07-29 Thread Duane Clark
Duane Clark wrote:
Hmm, attached is what that looks like for me. So I don't know why it 
looks bad to you.


Oops, sorry. I was using a native control there. I do see the same thing
as you.



Re: Trackbar size fixes

2003-07-29 Thread Duane Clark
BiGgUn wrote:
Hi,

  I'm currently working on a patch about trackbar sizes fixes. The main goal
of this patch is to get rid off magic values and provide a more generic
approach of trackbar computation.
 Some test cases have shown for example that thumb length doesn't depend on
client rect fields...
Ah, I suspected as much.





Re: Trackbar size fixes

2003-07-29 Thread Duane Clark
Mike Hearn wrote:
On Tue, 2003-07-29 at 05:19, Duane Clark wrote:

I have done quite a bit of comparison testing with ControlSpy on Wine 
and Win2K, so these changes should be accurate. Mainly done to fix 
earthquake (which was completely broken).

Changelog:
Fix the size/position of the thumb/channel/tics to match Win.


There's clearly something strange going on here we don't fully
understand - this patch breaks Internet Explorer again. See attached
screenshot. Builtin after this patch is on the left, native (98) is in
the middle, CVS wine is on the right.
Hmm, attached is what that looks like for me. So I don't know why it 
looks bad to you.

Horizontal trackbars are still OK, though with this patch the thumb is
bigger than native 98. I didn't bother with a screenshot of that since
it still looks OK.
One part of the code I did not test is the function 
TRACKBAR_InitializeThumb(), which sets the initial thumb length. My 
confidence in that part is not very good, since it doesn't make sense to 
have different calculations for the horizontal and vertical bars. So if 
someone were to do some simple testing to verify/correct that function, 
it would be a good thing.

All of the rest of the patch sets the rest of the dimensions of the 
control based on the length of the thumb and the size of the window, 
which is how Windows does it. That part I tested extensively, and am 
very confident is correct.

<>

Re: lostwages/ include/wwn.php templates/en/contri ...

2003-06-18 Thread Duane Clark
Brian Vincent (C) wrote:
...
PS.  Anyone notice the interviews on WWN?  Anyone have any
comments or suggestions for improving them?  Any particular
people I need to interview that I'm forgetting?  (I do have
some in various stages of preparation, and a list of people
I need to include.)  I'll save Alexandre for last.
I've read all of them, and they have been very good. About all that I 
would consider to be missing are pictures, though maybe not everyone 
would want that :-)





Re: Missing Bugzilla Descriptions

2003-06-17 Thread Duane Clark
Robert North wrote:
Dustin Navea speeddymon-at-yahoo.com |Wine Mailing Lists| wrote:

Hey guys i was browsing thru BugZilla and I noticed that most if not all of
the bugs between 853-1349 are missing their descriptions..  Possibly from the
software update?
Either way, I'm still around every now and then, although I'm not subscribed
to any lists, so if anyone replies, please CC me
Just noticed that!
2 *important* bugs for me 1160 & 1165 are missing any comments.
1165 in particular, contained some useful debugging info ... I suppose 
it's a good thing that it seems to be resolved in the current CVS!

Any ideas?
Well, most all the bugs and comments after Apr 2002 should be archived 
on news.gmane.org. That includes new bugs starting about bug 565. It is 
a lot easier to browse with gmane than the winehq archives (select all 
articles and sort by subject). However, gmane doesn't archive the 
attachments.





Re: Typo fixes

2003-06-09 Thread Duane Clark
Francois Gouget wrote:
-As to the implict existance question: I'm not sure.
+As to the implict existence question: I'm not sure.
+As to the implicit existence question: I'm not sure.
 ^




Re: Internet Explorer regressions

2003-05-30 Thread Duane Clark
Gregory M. Turner wrote:
I've been trying to force myself to use nt4 mode & nt4 native dll's; Oh, and 
just to make it even more borked I'm using IE6 ;).   Absolutely no dice 
whatsoever, here.  The installation goes OK, but I just can't find a 
combination of native/wine dlls that doesn't go "bonk" real fast.  I think, 
this is about what I should expect with such a get-up, IOW its not a 
regression.
Ah, I should have said "reasonably fast" rather than "reasonably well". 
I use IE very little, so shouldn't comment on stability.

Oops, I am running IE5, not 6.

That said, I am using these settings (mostly from Sylvain):

[AppDefaults\\iexplore.exe\\Version]
"Windows" = "win98"
[AppDefaults\\iexplore.exe\\DllOverrides]
"comctl32" = "native" # for favorites
"commctrl" = "native"
# "crypt32" = "native" # call to uninmplemented
# "msvcrt20" = "native"
"msvcrt" = "native"
# "oleaut32" = "native"# |
# "ole32" = "native"   # |not necessary in order to run
# "olepro32" = "native"# |
"rpcrt4" = "native"  # |
"shdocvw" = "native" # .101 PathRemoveBackslashW calls to undocumented
 # in shlwapi and force IE to abort.
# "shell" = "native"   # }
# "shell32" = "native" # }
"shlwapi" = "native" # }} unimplemented funcs
"urlmon" = "native"  # }
"wininet" = "native" # }




Re: Internet Explorer regressions

2003-05-30 Thread Duane Clark
Mike Hearn wrote:
I've been doing that, but unfortunately am limited in how far I can go
back before I lose NPTL support and wine stops running.
If it's my setup here then it'll also be borked. I'm sending latest CVS
into work, to see if that breaks IE as well, then I'll know if it's code
or environment.
Well, at least on RH7.3 (no nptl) ie6 seems to run reasonably well.





Re: notepad and commdlg problems ?

2003-03-19 Thread Duane Clark
Sylvain Petreolle wrote:
could you tell exactly what you are doing to get this ?
I tried it with gnome and kde in managed mode 
and got no problem of this kind.


It looks to me like its your install is borken. However CVS has its
own problems
http://www.telusplanet.net/public/lambregt/wine/notepad.png

Not that bad but the last icon on the right is cut off. 

I would guess the difference is that you are using a very narrow font. 
Mine is much wider. As a really wild guess, it looks like perhaps the 
width is being determined solely as a some multiple of a font width, and 
no consideration is given for the space the icons take. With a wider 
font, it comes out ok.

This stuff is all in dlls/commdlg/filedlg*, so happy hacking :-)





Re: Mutual Debugging Efforts

2003-03-12 Thread Duane Clark
James wrote:
Great, thanks for the copy of details. I'll file them away for when I
get a moment. It's a little while since I last tried building anything
manually, and had compatibility issues back then, so I avoid it when I
can, plus I noticed some stuff in the knowledgebase about this so felt i
should approach with caution!
Ah yes, you are running RH8. I do seem to recall some mention of 
problems there.





Re: Mutual Debugging Efforts

2003-03-12 Thread Duane Clark
James wrote:
On Wed, 2003-03-12 at 17:28, Mike Hearn wrote:


Hi, that version is over half a year old. Compiling from source is a bit
harder than using RPMs, but not much. If you can keep up with CVS then
upgrading is pretty easy as well.


Yes, I was wondering about this. RH are often quite good at new
releases, but perhaps only for security issues or bugs they consider
more serious in non-development systems and hence they've not even tried
to deliver a newer RPM for Wine. Oh well, I might have to try biting the
bullet. Very badly pressed for time at present though :(
Since I recently provided instructions elsewhere, here is a copy. I 
would ignore the tarball method mentioned in the wine documentation; I 
consider it more trouble than it is worth. This takes only a few 
minutes, other than the time spent waiting for the Wine compile to 
complete.

First uninstall the Wine that you have (you can always reinstall it 
later if desired). Then..

Create the file ~/.cvspass and put in the line:
:pserver:[EMAIL PROTECTED]:/home/wine Ah
Create the file ~/.cvsrc and put in:
cvs -z 3
update -PAd
diff -u
Type "cvs checkout wine", and in a few minutes (assuming a reasonable
internet connection) you should have a complete Wine tree. CD into it
and type "./tools/wineinstall", or do it manually:
./configure
make depend
make
make install (as root)
And you should then be ready to go. That really should be all there is 
to it. Then in the future to update, you just CD into the wine directory 
and type "cvs update", and then redo the last four steps above.








Re: New conformance test for user32.dll

2003-03-05 Thread Duane Clark
Duane Clark wrote:
Which demonstrates one of the complications with inlined plain text, 
because generally extra effort is required to prevent undesired word wrap.
Perhaps what might reduce this problem is to explicitely document for 
every common mailer, a method that will produce the desired format.





Re: New conformance test for user32.dll

2003-03-05 Thread Duane Clark
Tony Lambregts wrote:
Ok. then

Change Log: Clarify patch requirements.

Files changed: documentation/patches.sgml

Index: patches.sgml
===
RCS file: /home/wine/wine/documentation/patches.sgml,v
retrieving revision 1.6
diff -u -r1.6 patches.sgml
--- patches.sgml18 Feb 2003 23:23:35 -1.6
+++ patches.sgml5 Mar 2003 21:01:34 -
@@ -48,8 +48,8 @@
   
   
 For additions: mention that you have some new files and
-include them as either separate attachments or by appending
-the diff -u /dev/null /my/new/file output of 
them
  

Which demonstrates one of the complications with inlined plain text, 
because generally extra effort is required to prevent undesired word wrap.





Re: SystemParametersInfo patch

2003-03-05 Thread Duane Clark
Jon Bright wrote:
...
(as an aside are patches preferred as MIME attachments or straight in
the mail here?)
I will just throw in a couple more comments to add to those already 
made. The main problem with the way you attached this is that it has 
modified a lot of the "special" characters, which you normally don't see 
because your mail reader has displays them ok. So you should do a "view 
source" of what you have attached. For example, it starts out:

diff -u -r1.49 sysparams.c
--- windows/sysparams.c	19 Feb 2003 22:04:46 -	1.49
+++ windows/sysparams.c	5 Mar 2003 10:39:39 -
@@ -1662,17 +1662,26 @@
 }
=20
 case SPI_GETMOUSEHOVERWIDTH:		/* 98  _WIN32_WINNT >=3D 0x400 
|| _W=
IN32_WINDOW > 0x400 */

Notice the "=20", "=3D", and "=". Not only has the mailer changed 
some of the characters, but it has inserted line feeds. For many of us, 
all this is invisible. I use Mozilla, and it recreates the file 
correctly as long as I Save As... text. But I don't think we should 
assume that everyone can do that.





Re: A relay trace indenting tool, take 2

2003-03-03 Thread Duane Clark
Alexandre Julliard wrote:
Duane Clark <[EMAIL PROTECTED]> writes:


Changelog:
A tool for indenting calls in relay traces.


It would be much better to merge that into examine-relay, rather than
having two different scripts basically doing the same parsing.
The format of the output is quite a bit different, so the tools serve 
somewhat different purposes. I did leave all the error parsing in, but 
only because that was easier then bothering to delete it. Since the 
program is rather small, I did not think it was worth the admittedly 
small effort.

I suppose a command line flag could be used to select output format.





Re: Relay trace indenting?

2003-03-03 Thread Duane Clark
Mike Hearn wrote:
I was under the impression this is what tools/examine-relay did?

I never understood exactly how it does the indents though, it does it in
a slightly non-intuitive way.
That is very close to what I want. I have started making mods to it, and
will submit it probably as a separate tool, "indent-relay".





Relay trace indenting?

2003-03-02 Thread Duane Clark
Just wondering if anyone has written a script or something that does 
indenting of relay traces. I don't know how other people handle these, 
but I find that I invariably spend a lot of time indenting the calls in 
relay trace files to make them easier to follow. It would seem like 
something that someone would already have an automated method of 
handling (or maybe I'm the only one that does this).





Re: Rebuilding font retrics each time Wine starts.

2003-02-24 Thread Duane Clark
J. Grant wrote:
Hi,

Is there a reason the "font metrics" are rebuilt every day or so? (when 
I start to run a program with wine)
See the thread:
http://www.winehq.com/hypermail/wine-users/2003/02/0073.html





Re: A window size/move fix (repost)

2003-02-18 Thread Duane Clark
Alexandre Julliard wrote:

Duane Clark <[EMAIL PROTECTED]> writes:



Changelog:
	Before changing window size/pos, handle pending ConfigureNotify events.



That's only hiding the problem, and only in some cases. There is no
guarantee that the ConfigureNotify has arrived by the time we do the
resize, so we need to cope with a ConfigureNotify arriving at any
time.



Okay, that will certainly be more ...err... challenging ;) I will see 
what I can do.





Re: PATCH Window resizing

2003-02-17 Thread Duane Clark
Just wondering about the status of two patches. Is there any additional 
info I can provide or changes that need to be made for these?

http://www.winehq.com/hypermail/wine-patches/2003/02/0080.html
http://www.winehq.com/hypermail/wine-patches/2003/02/0095.html





Re: wine/ win32/device.c server/trace.c server/tim ...

2003-02-16 Thread Duane Clark
Eric Pouech wrote:


does this unapplied yet patch helps ?

http://www.winehq.com/hypermail/wine-patches/2003/02/0118.html


Well, that fixed the corrupted icons that Uwe mentioned yesterday. 
However when I exited the program (Xilinx ISE, basically the same as 
WebPack), it spit out a bunch of cryptic messages:

0x8eb0e30:1: Fd unix_fd=15 mode=00 user=0x8eb0e70
0x8eb0df0:1: Fd unix_fd=15 mode=00 user=0x8eb0e30
0x8eb0db0:1: Fd unix_fd=15 mode=00 user=0x8eb0df0
0x8071ea8:1: Fd unix_fd=15 mode=00 user=0x8eb0d80
0x8eb0d40:1: Fd unix_fd=15 mode=00 user=0x8eb0d80
0x8eb0d00:1: Fd unix_fd=15 mode=00 user=0x8eb0d40
0x8eb0cc0:1: Fd unix_fd=15 mode=00 user=0x8eb0d00
0x8eb0c80:1: Fd unix_fd=15 mode=00 user=0x8eb0cc0
0x8eb0c40:1: Fd unix_fd=15 mode=00 user=0x8eb0c80
0x8eb0c00:1: Fd unix_fd=15 mode=00 user=0x8eb0c40
0x8eb0bc0:1: Fd unix_fd=15 mode=00 user=0x8eb0c00
0x8eb0b80:1: Fd unix_fd=15 mode=00 user=0x8eb0bc0
... etc, about 40 of them.





Re: wine/ win32/device.c server/trace.c server/tim ...

2003-02-16 Thread Duane Clark
Duane Clark wrote:


You mean this one :-)

http://www.winehq.com/hypermail/wine-cvs/2003/02/0055.html



Oops, I should have looked closer. You didn't mean that one.







Re: wine/ win32/device.c server/trace.c server/tim ...

2003-02-16 Thread Duane Clark
Eric Pouech wrote:

Rein Klazes wrote:


On Fri, 14 Feb 2003 14:27:11 -0600, you wrote:




Log message:
	Changed fd operations to take a struct fd instead of a struct object.
	Removed get_file_info function from object operations.
	Added get_device_id request to avoid abusing get_file_info.

Patch: http://cvs.winehq.com/patch.py?id=7246



does this unapplied yet patch helps ?

http://www.winehq.com/hypermail/wine-patches/2003/02/0118.html


You mean this one :-)

http://www.winehq.com/hypermail/wine-cvs/2003/02/0055.html






Re: The richedit scrollbars

2003-02-16 Thread Duane Clark
Shachar Shemesh wrote:

Duane Clark wrote:



The easy fix is to have WM_NCCALCSIZE return the true size of the
enclosing window, which is what we have done here. The more difficult
fix is to create a custom Richedit MoveWindow procedure for use in the
WM_SIZE message above. Since it is very unlikely that an app would call
and use the WM_NCCALCSIZE message, we stick with the easy fix for now. 


Sorry for being a pest about this, and it's not like the Richedit is in 
my focus at the moment, but what does Windows do under the same 
circumstances?

Well, Windows does not embed an edit control within another Window to 
come up with the richedit control. So in that case "the true size of the 
enclosing window" (and I probably should have said "the true size of the 
client area of the enclosing window") matches the client area of the 
richedit control. So there is no issue there. This is purely an artifact 
of the way richedit has been implemented in Wine. This also is why the 
problem disappears in Wine's notepad when an edit control is used 
directly (as by your patch of a few weeks ago).

Basically the problem comes about because Wine determines what size to 
set the edit control to with the results of a WM_NCCALCSIZE sent message 
to the enclosing window, which in our case is the richedit window. If we 
do not return "the true size of the client area of the enclosing 
window", then the edit control is drawn incorrectly.

And I really do think that the likelihood of an app using WM_NCCALCSIZE 
on a richedit control to be rather remote, and the likelihood that the 
value returned affecting the results even more remote. So I personally 
consider the effort to write a custom WM_SIZE routine to be largely






Re: Listview delete column zero

2003-02-14 Thread Duane Clark
Dimitrie O. Paun wrote:

On February 13, 2003 11:06 pm, Duane Clark wrote:


I probably should have mentioned why the app deletes column zero. It
repeatedly deletes column zero, testing the returned Boolean until it
gets false, and then it starts inserting new columns. So it ends up
completely replacing the listview contents.



That sounds ... strage . Why not just use LVM_DELETEALLITEMS?



Well, I thought it seemed a bit strange too. The short answer is that 
the new listview has a different number of columns.




Re: Listview delete column zero

2003-02-13 Thread Duane Clark
Duane Clark wrote:

While the MSDN specifically says that column zero should not be deleted,
it does in fact work on WinNT, and at least one app depends on it. On
WinNT, deleting column zero deletes the last column of items but the
first header. Since no app will ever depend on that bizarre behavior,
we just delete the last column including the header.



I probably should have mentioned why the app deletes column zero. It 
repeatedly deletes column zero, testing the returned Boolean until it 
gets false, and then it starts inserting new columns. So it ends up 
completely replacing the listview contents.





Re: suspended threads acquiring synchronization objects

2003-02-13 Thread Duane Clark
Dimitrie O. Paun wrote:

On Thu, 13 Feb 2003, Peter Hunnisett wrote:



... I've attached a simple test case, the code for the test
case and a ReWind licensed patch for the problem. 


Are you sure?



The version with the attached test case got stuck in moderator limbo 
because it is 60KB, and I just now got to it.





Re: 2GB visible partition size

2003-02-13 Thread Duane Clark
Tony Lambregts wrote:

Alexandre Julliard wrote:


Well, yes, if we really need to change the fstype it should be a
generic option that allows all types to be specified, not just
NTFS. And it shouldn't overload the existing "type" parameter, it
should be a separate entry.


OK. I guess my biggest problem with this is that the most obvious name 
for this entry is "Filesytem" which is already used .

Since the parameter of interest is specifically named "fsname" rather 
than "fstype" or "Filesystem", perhaps that should be the configurable 
parameter name. I would think that would eliminate any confusion.





err:keyboard:X11DRV_ToUnicode Please report

2003-02-11 Thread Duane Clark
Originally discovered (as far as I know) by Paul McNett and mentioned in 
bug 1264, typing a shift-tab in an app under Wine generates the message:

err:keyboard:X11DRV_ToUnicode Please report: no char for keysym FE20 
(ISO_Left_Tab) :
err:keyboard:X11DRV_ToUnicode (virtKey=9,scanCode=F,keycode=17,state=1)

So here is a report.





Re: Started playing with Wineserver on mingw/cygwin again

2003-02-05 Thread Duane Clark
Geoff Thorpe wrote:

* Michael Stefaniuc ([EMAIL PROTECTED]) wrote:


On Wed, Feb 05, 2003 at 01:47:54PM -0500, Dimitrie O. Paun wrote:


On Wed, 5 Feb 2003, Geoff Thorpe wrote:
This is an interesting question. I know Ingo Molnar has been (one of) the
main developer working on the glibc threading stuff, and I also know he
used to follow the Wine project. I am sure he's not indifferent to our


To resolve any doubts that Ingo isn't taking care of wine read this:
http://lwn.net/Articles/6972/



That does indeed suggest that Ingo is "on this". Thank god too, I've just
been following up on my hollow words with some attempts to look at the
wine code and start finding my way around. That threading stuff is some
deep code, and profoundly uninviting. I hope that Ingo's kernel patch
(and Alexandre's mention in the mail and address in the CC line)
indicate that higher powers are already on top of this problem?


I couldn't help but notice that the date on that was 7 Aug 2002. It 
would be interesting to know what has gone on since then.





Re: Winspool errors with notepad

2003-02-05 Thread Duane Clark
Sylvain Petreolle wrote:

trace:winspool:AddPrinterA ((null),2,0x407c2c1c): stub
trace:winspool:DEVMODEdupAtoW
trace:winspool:AddPrinterW (L"",2,0x4026ac58)

Following these debug messages, we see that the name of the server on
which the server is installed changes fromNULL to "".


In an attempt to revive this thread (since it broke printing for me 
too), it appears that if a NULL pointer is passed to:

RtlCreateUnicodeStringFromAsciiz(&pNameW,pName);

then it returns an empty string in pNameW.buffer, rather than NULL.

Since these conversion functions are apparently APIs in Win2000 and 
later, which I don't have, hopefully someone could add test cases to 
dlls/ntdll/test/rtlstr.c to test what that function should return when 
passed a null pointer?





Re: Initialize listview item size.

2003-02-05 Thread Duane Clark
Dimitrie O. Paun wrote:

On February 3, 2003 11:58 am, Duane Clark wrote:


This is a separate bug from the other listview patches. If an app sends
a LISTVIEW_Paint to a new listview before adding any items (which an app
was :-) the item size was not getting set, causing subsequent
LISTVIEW_Paint calls to clip the painting.

Changelog:
   Make sure item size is initialized when the first item is added.



This is an optimization I've put in to avoid a lot of complex calculations
while the listview is initially populated (typically before it's being
painted). You are right, we have to detect the change nItemCount from 0
to 1, to do all those calculations. But since we don't actually need them
until we paint, I'd like to defer them as much as possible. Moreover,
with your patch, we don't catch the SetItemCount case. What about this
patch instead:


Last night almost the same solution occured to me, so yes I would agree 
this is better.





Re: LISTVIEW_SetItemCount take 4

2003-02-04 Thread Duane Clark
Duane Clark wrote:

Sigh.. I guess I really should have compiled that previous version 
before sending it in. Sorry for the excessive traffic. So here it is 
fixing compiler warnings, with the missing return added in, and with the 
changelog. Hopefully this will be the last time.


Dimi, Dan and I have been looking into this further. This is not the 
right fix, so please do not apply.





Re: Scrollbars misplaced in several apps

2003-02-03 Thread Duane Clark
Shachar Shemesh wrote:

Duane Clark wrote:



Were you perhaps using Window's notepad rather than Wine's? I see it 
with Wine's notepad. I also see it in Actel designer, that I remember. 
And I guess I should have said richedit rather than richtext... oh 
well. In all cases that I have seen, it is fixed by using a native 
richedit dll.


Window's notepad uses the usual EDIT control. As of a few days ago, 
however, so does the Wine notepad. This may explain the inconsitancy.

http://cvs.winehq.com/patch.py?id=7152


Hmmm... I thought I remembered maybe 6 months ago or so a discussion 
about this... ahh yes between you and Dmitry :-)

http://www.winehq.com/hypermail/wine-devel/2002/11/0463.html

So does this mean you are going to create a separate wordpad, as you 
mentioned then?





Re: Scrollbars misplaced in several apps

2003-02-03 Thread Duane Clark
Dan Kegel wrote:

Several apps I've tried (including my company's app) have scrollbars
in the wrong place, inset in the window by one scrollbar width.

Duane Clark has seen this, too, and said
"... the scrollbars being in the wrong position in the richtext window?
I am pretty sure that is a richtext bug. I see it in every application
that uses richtext. For example, run notepad and then resize the window. "
(I tried running notepad, and couldn't reproduce it myself,
so maybe I'm confused.)


Were you perhaps using Window's notepad rather than Wine's? I see it 
with Wine's notepad. I also see it in Actel designer, that I remember. 
And I guess I should have said richedit rather than richtext... oh well. 
In all cases that I have seen, it is fixed by using a native richedit dll.





Re: Initialize listview item size.

2003-02-03 Thread Duane Clark
Duane Clark wrote:


It paints the headers. And the problem comes about because in 
LISTVIEW_Paint, a test is made for the first paint, and if it is the 
first paint, the item size is updated.


I guess I should have said something like "...and only if it is the 
first paint...". Hopefully that was reasonably obvious anyway.







Re: Initialize listview item size.

2003-02-03 Thread Duane Clark
Dimitrie O. Paun wrote:

On Mon, 3 Feb 2003, Duane Clark wrote:



This is a separate bug from the other listview patches. If an app sends 
a LISTVIEW_Paint to a new listview before adding any items (which an app 
was :-) the item size was not getting set, causing subsequent 
LISTVIEW_Paint calls to clip the painting.


Sorry Duane, maybe it's just Monday morning, but I don't understand this.
If the listview has no items, what is it supposed to paint?


It paints the headers. And the problem comes about because in 
LISTVIEW_Paint, a test is made for the first paint, and if it is the 
first paint, the item size is updated.

if (infoPtr->bFirstPaint)
{
	UINT uView =  infoPtr->dwStyle & LVS_TYPEMASK;
	
	infoPtr->bFirstPaint = FALSE;
	LISTVIEW_UpdateItemSize(infoPtr);
...



Also, this just doesn't seem like the right place to place this check.
What if the app doesn't call LVM_SETITEMCOUNT?



It has nothing to do with LVM_SETITEMCOUNT that I know, or am I missing 
something? This bug is not related to the other bug.




Re: App works almost perfectly, but one MDI screen won't draw

2003-01-29 Thread Duane Clark
Mike Hearn wrote:


These sound like a problem I'm seeing with the Adobe SVG plugin,
which means that unfortunately I have to go back to Windows during
the day. Basically the app doesn't blit its backbuffer in response
to WM_PAINT messages in my case, however, forcing it to redraw itself, 
for instance due to animation, or a mouseover script causing it to change
makes it happen.

I keep meaning to look into it, last time I tried I was pretty inexperienced
at reading relay traces (well, still am :).


I spent a lot of time learning how the bitblt stuff works for the patch 
I sent in a few weeks ago (which was to fix a similar problem), and 
stared at a lot of relay traces related to that. So if you narrow it 
down to a small part of the relay trace and are stuck, go ahead and send 
it to me (or post it). The bitblt stuff is rather tricky.

I'm assuming "Adobe SVG" is a commercial product?





Re: Missing WM_NCPAINT (was: Re: App works almost perfectly, butone MDI screen won't draw)

2003-01-27 Thread Duane Clark
Dan Kegel wrote:


That sounds like the problem my app is having, too.  Now that I
have Spyxx.exe running, I see that a WM_NCPAINT message is sent
to that window in WinMe but not in Wine.


NC messages affect the border that Windows (and Wine) add to a window. 
The border that you use to stretch or move the window, and that contains 
the window title. Since your problem is within the window client 
(content) area, it is probably unrelated.

Interestingly, a WM_NCPAINT *does* get sent to the parent
window ("AfxFrameOrView42") in wine.  Is it supposed to
percolate down from that to its child area?
- Dan


Generally, no they won't percolate. I am most of the way through a fix 
for the WM_NCPAINT messages in MDI apps, so that will probably come out 
this coming weekend. It turned out that finding where the fix went was 
fairly easy, but actually implementing it was slightly trickier than I 
expected.





Re: App works almost perfectly, but one MDI screen won't draw

2003-01-23 Thread Duane Clark
Mike Hearn wrote:

So then it becomes a matter of figuring out where they should 
be generated.


Yeah, that's the big that usually gets me :) Are they the sort of
messages that should be generated by Wine or the app?


By Wine. In general, I have found message bugs relatively 
straightforward to fix.

What happens if the app doesn't call BeginPaint in a WM_PAINT handler.
Is that an API violation, or are there reasons for it? MSDN had an
explanation that seemed to suggest that in certain unusual circumstances
you didn't need to call it, but I don't remember exactly what.


Yea, I want to try to figure out the exceptions and add something to 
silence those messages. In this case, they appear to be a "red herring". 
Looking at SPY++, the WM_NCPAINT and WM_ERASEBACKGROUND messages should 
have been sent prior to posting the WM_PAINT message. But more studying 
to come.

It is a bit of a 
mystery to me why the call is bad; it is a call directly from the app. I 
wonder if the wrong function is being called for some reason. But that 
is something I will look into later.

How common is it for apps to actually make bad API calls? QuickTime
seemed to do that, is it rare or not?


I don't really know. From the looks of this one, I cannot believe the 
app was written this incorrectly, so the bug must be something more 
subtle. I think I am going to have to resort to disassembling the small 
portion of the app that makes the call to figure out what is happening. 
Fortunately, the location shows up just fine in winedbg when it crashes, 
so that makes things easier.





Re: App works almost perfectly, but one MDI screen won't draw

2003-01-22 Thread Duane Clark
Mike Hearn wrote:

Could you explain this to me please? I tried Kaleidograph and started
looking at why the "Demo version only" dialog that pops up at the
beginning wasn't blanking the background properly, which I decided was
because the app didn't call BeginPaint but I am very much a novice.

So, if you could explain how you tracked down these bugs I'd very much
appreciate it!


I ran the app under WinNT and Wine, and compared the messages generated 
using SPY++. There are non-client (border) and background fill messages 
missing. So then it becomes a matter of figuring out where they should 
be generated.

Otherwise in the case of Kaleidagraph, there is an additional problem 
where GetMenuItemInfoA is called with invalid parameters, causing 
crashes. I temporarily hacked around that, and KGraph then seems to work 
quite well for me (though I did not test extensively). It is a bit of a 
mystery to me why the call is bad; it is a call directly from the app. I 
wonder if the wrong function is being called for some reason. But that 
is something I will look into later.






Re: App works almost perfectly, but one MDI screen won't draw

2003-01-22 Thread Duane Clark
Rick Romero wrote:
>
> If Dan's app behaves the same as mine, I can create a prog that
> displays a window :)
>
> FWIW, Transgaming's current CVS WILL display the text correctly, but
> what appeared to be an MDI window is actually created unmanaged (with
> windows decorations).  If anything, that's one way to test and see if
> you get your text..

Please do send me a test app. I plan on going after several painting 
bugs for the next few weekends.





Re: App works almost perfectly, but one MDI screen won't draw

2003-01-21 Thread Duane Clark
Dan Kegel wrote:

Installing my company's app is still a bear -- the only
way I've found to avoid the dreaded "object reference not set" is
to run with --debugmsg +ole and redirect to a file
(not to the screen, and not to /dev/null).

Once installed, the app runs quite well... except for one screen,
which remains nearly blank.  The MDI frames draw fine, but the
contents (which include a hex memory dump area and a tree control)
remain blank.


I was going to spend this weekend fixing another MDI app to fix a draw 
problem that several exhibit (for example, Kaleidegraph). Oddly it is 
just the opposite; the contents draw ok but not the frames. I already 
have a good idea of where the problem on them is.

Would a demo version of your app be available for download somewhere? I 
would be interested in testing it.





Re: dlls/ddraw/dsurface/user.c and OWN_WINDOW & Worms World Party

2003-01-20 Thread Duane Clark
Sylvain Petreolle wrote:

hasnt got this list a size limitation ?


40KB supposedly. I don't know whether multiple attachments affects that. 
It is possible that I clicked this one on through (it's happened 
before), but it doesn't look familiar.





Re: Installshield 6 crash: ole trouble

2003-01-20 Thread Duane Clark
Dan Kegel wrote:

...
Copying and pasting from the wine debugger window
is beyond me; it seems totally broken...


In ~/.wine/user.reg, look for the [Software\\Wine\\WineDbg] key and 
change "UseXTerm"=dword: (yes, zero is true for some reason).

Then in ~/.wine/system.reg, look for [Software\\Microsoft\\Windows 
NT\\CurrentVersion\\AeDebug] and set
"Auto"="1"
"Debugger"="winedbg.exe --debugmsg -all %ld %ld"
___ put in the ".exe"

I think that was all I did to be able to run the debugger within an 
xterm. Cutting and pasting is now much easier.





Re: VirtualDub cannot find its codecs

2003-01-19 Thread Duane Clark
Waldeck Schutzer wrote:

...

Index: wine/dlls/msvideo/msvideo_main.c
===
RCS file: /home/wine/wine/dlls/msvideo/msvideo_main.c,v
retrieving revision 1.45
diff -r1.45 msvideo_main.c


Please supply as diff -u, or better, create a ~/.cvsrc file that contains:

cvs -z 3
update -PAd
diff -u






Re: Packaging Update $3

2003-01-18 Thread Duane Clark
Tom Wickline wrote:

...
I sent a patch 9 hours ago and it still has not shown up so im 
re-sending the patch.

Ahh, well. To prevent that, you need to subscribe the email address you 
are using to the wine-patches list, otherwise it waits for me to get 
around to moderating it. Since your previous email appears to have been 
sent at about midnight my time, there was a bit of a wait before I saw it ;)

If you already are subscribed under a different email address, it is 
perfectly ok to subscribe another. Just go into your user preferences 
after completing the subscription process and turn On "Disable mail 
delivery" to prevent getting multiple copies of postings sent to you.





Getting a program to crash

2003-01-17 Thread Duane Clark
Howdy,

I am trying to make a program crash ;) Instead, the program apparently 
captures exceptions, pops up a dialog, and continues on. I am hoping for 
a way to prevent that from happening, and instead falling into the debugger.

It does call EXC_RtlRaiseException when the exception occurs, but it is 
not clear to me how that function works. Hopefully I can comment out 
something there to get it to crash properly?





Re: Possible bug (with fix) in MENU_FindItem()

2003-01-08 Thread Duane Clark
Peter Gerwinski wrote:

Hello,

while developing an application for WINE (also intended to run under
MSPOW = MicroSoft's Parody Of WINE, spoken "m-spow";-) I encountered
something which I consider a bug in WINE:

When I invoke EnableMenuItem to enable/disable a menu item holding
a command with the numeric value 200, the first popup menu is
enabled/disabled instead of the menu item. (This behaviour does not
show up under MSPOW, version "ME".)

IMHO this is due to a wrong order of two "if" conditions in
control/menu.c:MENU_FindItem().

I am attaching a patch which fixed the problem for me.


Hi. Please submit to wine-patches. It will be unlikely to get into wine 
if submitted here.





Re: Window menu

2003-01-07 Thread Duane Clark
Dmitry Timoshkov wrote:

"Duane Clark" <[EMAIL PROTECTED]> wrote:



Changelog:
A window with a WS_EX_APPWINDOW extended style can also
get a menu.



[skipped]



/* Set the window menu */

-if ((wndPtr->dwStyle & (WS_CAPTION | WS_CHILD)) == WS_CAPTION )
+if ((wndPtr->dwStyle & WS_CAPTION || wndPtr->dwExStyle & WS_EX_APPWINDOW)
+&& !( wndPtr->dwStyle & WS_CHILD) )



Sorry for the late response, but this doesn't look right to me.
First of all check for WS_CAPTION should be if ((dwStyle & WS_CAPTION) == WS_CAPTION)
because WS_CAPTION is a two bit style. Next, apparently menu can be assigned
only for a window that has a caption and not is a child. If for some reason
in your case a window has no WS_CAPTION style set (even after all style
corrections) then it's a bug in Wine and it should be found and fixed.

I would suggest to write a conformance test for this, which will create windows
with various styles, check whether they have a caption (by comparing client and
window rectangles), then try to set a menu for a window.



Well, just as a bit of info, the window does not appear to have a 
caption; either in Windows or Wine. The menu pops down when the mouse is 
slid to the very top of the window, and no other border decoration shows 
ever. Here is the call that does it, which is a call directly from the app.

08072f68:Call user32.CreateWindowExA(0004,004bc998 
"menuWndProc",40582b38 
"",8000,,,0280,0013,00010023,00c8,0040,) 
ret=00414c77
trace:win:WIN_CreateWindowEx "" "menuWndProc" ex=0004 style=8000 
0,0 640x19 parent=0x10023 menu=0xc8 inst=0x40 params=(nil)





Re: FAQ: best win32 api spy tool?

2003-01-01 Thread Duane Clark
Dan Kegel wrote:


The SPYXX.EXE in my copy of msvc4.0 appears to only let you log
windows messages, not api calls.  Then again, since help doesn't
work under Wine, I can't tell if I'm missing something...



Oops, my mistake. That's right.





Re: FAQ: best win32 api spy tool?

2003-01-01 Thread Duane Clark
Dan Kegel wrote:

Hi,
I'm trying to figure out why an app works on Windows but not Wine,
and it'd sure be nice to be able to log all the api calls the
app makes under each of the two environments; then perhaps
I could compare the logs to see where Wine differed from Windows.

Does anyone else do stuff like that?  If so, what tools do you use?



You had previously mentioned having a copy of msvc. Did you check in it 
for SPY++? I would have to say that it seems to work quite well under Wine.






Re: Problem with ShellExecute and HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

2002-12-29 Thread Duane Clark
Dan Kegel wrote:

...
I also noticed that ShellExecute will sometimes try to
run the executable  "C:\\Program" (the first word of "C:\\Program Files\\whatever...").
I fixed that for the case I touched, I think, but didn't do a general fix.



MSDN for CreateProcess claims that if the supplied string is not quoted, 
then that is the correct behavior.






Re: Problem with ShellExecute and HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

2002-12-29 Thread Duane Clark
Dan Kegel wrote:


Thanks for the --debugmsg +process tip (and I guess you also did relay?)!

But if you also add +reg, you'll see that the App Paths key is indeed being searched
by SearchPath():



That was done inside CreateProcessA (note the relay Call and Ret pair), 
and at least at first glance, appears to be looking for the App Path key 
for "ListV", which is the name of my test application. I am note real 
sure what the NtQueryValueKey calls are doing though. I still think the 
problem is later on, in SHELL_FindExecutable. I think the registry 
checks here are "red herrings". Then again, I could be completely wrong 
about that ;)

Probably the best way to determine that is to modify your simple program 
to call CreateProcess directly, and see what happens then.

08073208:Call kernel32.CreateProcessA(,40582788 "wordpad.exe 
readme.txt",,,,,,0040e4db 
"C:\\",40581eb8,40581ea8) ret=40c8d29f
trace:process:CreateProcessA app (null) cmdline "wordpad.exe readme.txt"
trace:process:find_exe_file looking for "wordpad.exe"
trace:reg:NtOpenKey 
((nil),L"Machine\\Software\\Microsoft\\Windows\\CurrentVersion\\App 
Paths",f003f,0x4057e998)
trace:reg:NtOpenKey <- 0x4c
trace:reg:NtOpenKey (0x4c,L"ListV.exe",f003f,0x4057e994)
trace:reg:NtOpenKey <- (nil)
trace:reg:NtOpenKey 
((nil),L"Machine\\Software\\Wine\\Wine\\Config\\AppDefaults",f003f,0x4057fdf0)
trace:reg:NtOpenKey <- 0x4c
trace:reg:NtOpenKey (0x4c,L"ListV.exe\\DllOverrides",f003f,0x4057fdec)
trace:reg:NtOpenKey <- (nil)
trace:reg:NtQueryValueKey (0x14,L"wordpad.exe",2,0x4057fee4,80,22)
trace:reg:NtQueryValueKey (0x14,L"*wordpad.exe",2,0x4057fee4,80,24)
trace:reg:NtQueryValueKey (0x14,L"*",2,0x4057fee4,80,2)
trace:process:find_exe_file Trying built-in exe 
"C:\\WINDOWS\\SYSTEM\\wordpad.exe"
trace:process:find_exe_file Trying native exe 
"C:\\WINDOWS\\SYSTEM\\wordpad.exe"
trace:process:find_exe_file looking for "wordpad.exe readme.txt"
trace:reg:NtOpenKey 
((nil),L"Machine\\Software\\Microsoft\\Windows\\CurrentVersion\\App 
Paths",f003f,0x4057e998)
trace:reg:NtOpenKey <- 0x4c
trace:reg:NtOpenKey (0x4c,L"ListV.exe",f003f,0x4057e994)
trace:reg:NtOpenKey <- (nil)
trace:reg:NtOpenKey 
((nil),L"Machine\\Software\\Wine\\Wine\\Config\\AppDefaults",f003f,0x4057fdf0)
trace:reg:NtOpenKey <- 0x4c
trace:reg:NtOpenKey (0x4c,L"ListV.exe\\DllOverrides",f003f,0x4057fdec)
trace:reg:NtOpenKey <- (nil)
trace:reg:NtQueryValueKey (0x14,L"wordpad.exe 
readme.txt",2,0x4057fee4,80,44)
trace:reg:NtQueryValueKey (0x14,L"*wordpad.exe 
readme.txt",2,0x4057fee4,80,46)
trace:reg:NtQueryValueKey (0x14,L"*",2,0x4057fee4,80,2)
trace:process:find_exe_file Trying built-in exe 
"C:\\WINDOWS\\SYSTEM\\wordpad.exe readme.txt"
trace:process:find_exe_file Trying native exe 
"C:\\WINDOWS\\SYSTEM\\wordpad.exe readme.txt"
08073208:Ret  kernel32.CreateProcessA() retval= ret=40c8d29f






Re: Problem with ShellExecute and HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

2002-12-29 Thread Duane Clark
Duane Clark wrote:


According to MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp

CreateProcess should check several places for an application, none of 
which include the registry key. So that call should fail, and it does.


By the way, since many things are "inadvertently" left out of the MSDN, 
it might be worth testing whether that is really the way CreateProcess 
works on Windows. In fact, that would make a good test case to add to 
Wine, if you really wanted go for it.






Re: Problem with ShellExecute and HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

2002-12-29 Thread Duane Clark
Dan Kegel wrote:

I have a windows-free installation of current CVS wine,
with wordpad.exe and the needed DLLs pulled in from a Windows ME
installation.  wordpad works great.  However,
ShellExecute(... "wordpad.exe", ".\\stl\\readme.wri" ...) is failing to find wordpad.exe for me.
(The call in question is issued by the msvc4.0 setup.exe.
The current directory when I run this is /mnt/cdrom, and stl/readme.wri is
indeed there.)


Ignore the part about /usr/local/etc/system.reg.

With a few more traces, I see the first attempt to execute, triggered by 
 the execfunc at line 608 of ShellExecuteExA32. This is just a test to 
see if the command line can be executed as is.

trace:exec:ShellExecuteExA32 mask=0x hwnd=(nil) verb="open" 
file="wordpad.exe" parm="readme.txt" dir="C:\\" show=0x0005 
class=not used
trace:exec:ShellExecuteExA32 execute:'wordpad.exe','readme.txt'
trace:exec:SHELL_ExecuteA Execute wordpad.exe readme.txt from directory C:\
08073208:Call kernel32.CreateProcessA(,40582788 "wordpad.exe 
readme.txt",,,,,,0040e4db 
"C:\\",40581eb8,40581ea8) ret=40c8d29f
trace:process:CreateProcessA app (null) cmdline "wordpad.exe readme.txt"
trace:process:find_exe_file looking for "wordpad.exe"

According to MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.asp

CreateProcess should check several places for an application, none of 
which include the registry key. So that call should fail, and it does.

08073208:Ret  kernel32.CreateProcessA() retval= ret=40c8d29f

Next comes the test at line 614 of ShellExecuteExA32, which calls 
SHELL_FindExecutable.

trace:exec:SHELL_FindExecutable wordpad.exe
08073208:Call kernel32.SearchPathA(0040e4db "C:\\",40582548 
"wordpad.exe",40ca9be7 ".exe",0100,40581af0,) ret=40c8d43a
08073208:Ret  kernel32.SearchPathA() retval= ret=40c8d43a
trace:exec:SHELL_FindExecutable xlpFile=,extension=(null)
warn:exec:SHELL_FindExecutable Returning 31 - No association

That call should have passed. It returns early at line 203, because 
xlpFile and the extension, returned from SearchPathA are null. That 
appears to be where things broke. Even if that passed, it does not 
appear that a check for the "App Patch" key is being done here, and it 
looks to me like it should be.

Is that enough to get you going further?







Re: Regression in msvideo patch

2002-12-28 Thread Duane Clark
Stephen Mollett wrote:

Hi,

[Following on from a thread on wine-users]

I've had some problems recently with running the VirtualDub video 
post-processing package on Wine. It used to work, but then stopped working 
(it no longer displays the frame previews when seeking in a video file) 
recently.

It might also be worth mentioning that VirtualDub is a free download and 
under 1MB. With some initial tinkering, it at least plays mpegs great, 
though I really have not yet figured out how else to work it.






Re: RtlUnicodeStringToInteger prototype (resending)

2002-12-27 Thread Duane Clark
Dan Kegel wrote:

I sent this to wine-patches on the 25th, but it never appeared in the archive;
is that list moderated?


Only for unsubscribed email adresses, or postings over a 200KB size 
limit. And I did not see your patches among those being held.






Re: Old scrolling bug

2002-12-26 Thread Duane Clark
Duane Clark wrote:


Fundamentally, the problem is that the X events are handled out of 
order, because X11DRV_EndGraphicsExposures stripped out particular 
events (due to copying) without accounting for other pending events that 
might be relevant (plain old exposure).

Well, that conclusion appears to not be quite correct. I stuck a 
XPending check at the end of X11DRV_EndGraphicsExposures to see whether 
there were any pending events, and there were apparently none. So I am 
not sure why the GraphicsExpose event is coming out before the regular 
expose event, since in real time, they occurred in the opposite order.







Old scrolling bug

2002-12-26 Thread Duane Clark
Howdy,

Another in my pattern of posting intermediate debugging results here, in 
case anyone can contribute some insight...

Looking into the bug that Dimitrie reported here:
http://www.winehq.com/hypermail/wine-devel/2002/09/0748.html

Here is what is happening (testing on the Listview Control Spy) when 
sliding the obscuring window. I changed a bunch of TRACE messages to 
ERR, and added a few. The window of interest, that the artifacts are 
appearing in is 0x10039 (the "Control Notifications" window):

err:x11drv:X11DRV_Expose win 0x10021 (2e3) 0,138 11x1
err:x11drv:X11DRV_Expose win 0x10021 (2e3) 304,138 4x1
err:x11drv:X11DRV_Expose win 0x10039 (2e00032) 0,110 2x1
err:x11drv:X11DRV_Expose win 0x10039 (2e00033) 0,108 99x1
err:x11drv:X11DRV_Expose win 0x10040 (2e00041) 0,126 293x1
err:win:BeginPaint hwnd 0x10021 hdc = 0x9e8 box = (0,138 - 409,139)
err:win:EndPaint Here
err:win:BeginPaint hwnd 0x10039 hdc = 0x9e8 box = (0,108 - 99,109)
err:win:EndPaint Here
err:win:BeginPaint hwnd 0x10040 hdc = 0x9e8 box = (0,0 - 293,186)
err:win:EndPaint Here
err:win:BeginPaint hwnd 0x10047 hdc = 0x890 box = (0,109 - 277,110)
err:win:EndPaint Here

So an initial exposure occurred and was almost immediately painted. The 
obscuring window is now at y=109. The first expose of the pair is a 
validate, and the second is the invalidate. Then ScrollWindowEx is 
called, which eventually gets to X11DRV_ScrollDC, where the bitblt that 
scrolls the window is called.

err:bitblt:BitBlt hdcSrc=0x9e8 0,14 24 bpp->hdcDest=0x9e8 0,0 126x154x24 
rop=cc0020

After scrolling, X11DRV_EndGraphicsExposures is called, which checks 
pending exposure events as a result of the scroll.

err:x11drv:X11DRV_EndGraphicsExposures got 0,96 99x14 count 0

Note that the exposed part is the rectangle with y coordinates from 96 
to 110. That means that before the bitblt copy had occurred, the 
obscuring window had already moved down one pixel. The bitblt moved the 
previously obscured rectangle at (0,109 - 99,110) to (0,95 - 99,96), but 
that rectangle did not get into the update rectangle.

This is because the only pending events checked are those that are a 
direct result of exposure due to the copy in bitblt, and does not 
include any additional areas that were exposed by sliding the obscuring 
region.

err:scroll:X11DRV_ScrollWindowEx A hwnd 0x10039 rgn rect = (0,96,126,168)
err:win:GetUpdateRgn hrgnUpdate 0
err:scroll:X11DRV_ScrollWindowEx B hwnd 0x10039 rgn rect = (0,96,126,168)

It should be pointed out that X did not lose the exposure event due to 
sliding the obscuring window, because here it shows up in the next 
exposure event

err:x11drv:X11DRV_Expose win 0x10021 (2e3) 0,139 11x1
err:x11drv:X11DRV_Expose win 0x10021 (2e3) 304,139 4x1
err:x11drv:X11DRV_Expose win 0x10039 (2e00032) 0,111 2x1
err:x11drv:X11DRV_Expose win 0x10039 (2e00033) 0,109 99x1
 ^^^
Unfortunately, we have already handled the offset due to scrolling, so 
this event is put into the update region unshifted. The remaining 
exposures are new, so no shifting is needed.

err:x11drv:X11DRV_Expose win 0x10040 (2e00041) 0,127 293x1
err:x11drv:X11DRV_Expose win 0x10021 (2e3) 0,140 11x3
err:x11drv:X11DRV_Expose win 0x10021 (2e3) 304,140 4x3
err:x11drv:X11DRV_Expose win 0x10039 (2e00032) 0,112 2x3
err:x11drv:X11DRV_Expose win 0x10039 (2e00033) 0,110 99x3
err:x11drv:X11DRV_Expose win 0x10040 (2e00041) 0,128 293x3
err:x11drv:X11DRV_Expose win 0x10021 (2e3) 0,143 11x1
err:x11drv:X11DRV_Expose win 0x10021 (2e3) 304,143 4x1
err:x11drv:X11DRV_Expose win 0x10039 (2e00032) 0,115 2x1
err:x11drv:X11DRV_Expose win 0x10039 (2e00033) 0,113 99x1
err:x11drv:X11DRV_Expose win 0x10040 (2e00041) 0,131 293x1
err:x11drv:X11DRV_Expose win 0x10021 (2e3) 0,144 11x2
err:x11drv:X11DRV_Expose win 0x10021 (2e3) 304,144 4x2
err:x11drv:X11DRV_Expose win 0x10039 (2e00032) 0,116 2x2
err:x11drv:X11DRV_Expose win 0x10039 (2e00033) 0,114 99x2
err:x11drv:X11DRV_Expose win 0x10040 (2e00041) 0,132 293x2
err:win:BeginPaint hwnd 0x10021 hdc = 0x890 box = (0,139 - 409,146)
err:win:EndPaint Here

And finally the update region is painted. This update region includes 
the region exposed by the scroll, plus all the additional exposure 
events that occurred due to sliding the obscuring window.

err:win:BeginPaint hwnd 0x10039 hdc = 0x890 box = (0,96 - 126,168)
err:win:EndPaint Here

But there is a one pixel artifact at (0,95 - 99,96), because it is not 
in the update region.

Fundamentally, the problem is that the X events are handled out of 
order, because X11DRV_EndGraphicsExposures stripped out particular 
events (due to copying) without accounting for other pending events that 
might be relevant (plain old exposure).





Re: Changing FS type reported by Wine

2002-12-25 Thread Duane Clark
Derek Broughton wrote:


Is it a serious problem using the file system type of the root?  This is
a fairly obscure problem anyway, and if you encountered a problem with a
specific application you could set up new drive letters for the specific
file systems you needed.  It's a little kludgey, but I don't see it as
being incompatible with the intent of Wine - after all, while Wine _can_
access Unix file systems, and use the features of them, it's providing
an interface to Windows which _doesn't_ understand the concept of
different file systems under a single drive.



According to MSDN, "FAT" and "NTFS" are both legitimate return values 
for the filesystem name from GetVolumeInformation (though it does not 
mention what other possibilities might also be valid). Wine hardcodes 
this to always return FAT (or CDROM).

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/getvolumeinformation.asp

Since it is hardcoded, I don't know how you would "set up new drive 
letters for the specific file systems you needed." An option in 
~/.wine/config, on the otherhand, would make this easy.





Re: A crash destroying imagelists

2002-12-23 Thread Duane Clark
Dimitrie O. Paun wrote:

On December 22, 2002 02:50 pm, Duane Clark wrote:


That area is then freed. When freed, COMCTL32_Free writes prev and next
entries into himl.



Where? COMCTL32_Free() simply calls HeapFree():

BOOL WINAPI COMCTL32_Free (LPVOID lpMem)
{
TRACE("(%p)\n", lpMem);
return HeapFree (COMCTL32_hHeap, 0, lpMem);
}


HeapFree then calls RtlFreeHeap, which calls HEAP_MakeInUseBlockFree, 
and that writes the prev and next entries. It appears that Wine keeps a 
linked list of free blocks on the heap, with the link entries in the 
first and second words of the block.

At the end of ImageList_Destroy, there is a call to ZeroMemory, which
obliterates the prev and next pointers which had been written there.
Then another COMCTL32_Free call detects the error. At least I assume it
is an error.



Does this work any better? It shouldn't make any difference, but ...


Nope.



There is something else funny here. I can't see why zeroing out an
area we're just about to free is problematic.


The first time, when it was a valid block, zeroing out the area before 
freeing was fine. When the block was freed, HEAP_MakeInUseBlockFree 
marked it as free and then wrote the link list entries into it, 
overwriting the zeroes that had just been put there.

It would appear that at a minimum, a test needs to be made in 
ImageList_Destroy to determine whether the heap corresponding to the 
imagelist is valid.

Even better, there is already a magic field in the _IMAGELIST structure, 
which does not appear to be used. Perhaps it should have "used" and 
"free" magic values, similar to what is used by the heap.

It really would not matter if the "free" value is subsequently 
overwritten, either by the heap functions or something else to which the 
block was allocated, since it would not be likely to get the "used" 
magic written to it; unless of course it was allocated to another imagelist.






Re: A crash destroying imagelists

2002-12-22 Thread Duane Clark
Duane Clark wrote:


...
At the end of ImageList_Destroy, there is a call to ZeroMemory, which 
obliterates the prev and next pointers which had been written there. 
Then another COMCTL32_Free call detects the error. At least I assume it 
is an error.


And indeed simply commenting out the ZeroMemory fixes the application. 
Though I have no idea what the correct fix would be.






Re: A crash destroying imagelists

2002-12-22 Thread Duane Clark
Duane Clark wrote:

I am trying to track down a crash when exiting an application. Here is 
what I think are relevant parts of the trace. Does it appear that I am 
in the right area? Any hints on how to proceed would be appreciated.

I think the problem comes down to this. The application explicitly 
destroys the imagelist that belongs to a listview:

08073208:Call comctl32.ImageList_Destroy(41691ba0) ret=005027f5

> ...

That area is then freed. When freed, COMCTL32_Free writes prev and next 
entries into himl.

trace:commctrl:COMCTL32_Free (0x41691ba0)
trace:heap:RtlFreeHeap (0x4169,0002,41691ba0): returning TRUE
08073208:Ret  comctl32.ImageList_Destroy() retval=0001 ret=005027f5

> ...

Then LISTVIEW_NCDestroy is called.




> trace:listview:LISTVIEW_NCDestroy ()
> trace:listview:LISTVIEW_DeleteAllItems ()
> trace:commctrl:DPA_DeleteAllPtrs (0x41690d98)

... 
trace:listview:notify_hdr   <= 0
trace:listview:LISTVIEW_NCDestroy Start destroying data structures.
...

The listview does not know that the imagelist was already destroyed, so 
it again calls ImageList_Destroy.

trace:listview:LISTVIEW_NCDestroy Start destroying image lists.
08073208:Call gdi32.DeleteObject() ret=409fcadd
08073208:Ret  gdi32.DeleteObject() retval= ret=409fcadd
08073208:Call gdi32.DeleteObject() ret=409fcaea
08073208:Ret  gdi32.DeleteObject() retval= ret=409fcaea
08073208:Call gdi32.DeleteObject() ret=409fcaf7
08073208:Ret  gdi32.DeleteObject() retval= ret=409fcaf7
08073208:Call gdi32.DeleteObject() ret=409fcb04
08073208:Ret  gdi32.DeleteObject() retval= ret=409fcb04


At the end of ImageList_Destroy, there is a call to ZeroMemory, which 
obliterates the prev and next pointers which had been written there. 
Then another COMCTL32_Free call detects the error. At least I assume it 
is an error.

trace:commctrl:COMCTL32_Free (0x41691ba0)
err:heap:HEAP_ValidateFreeArena Heap 4169: bad next ptr  for   arena 41691b98








A crash destroying imagelists

2002-12-21 Thread Duane Clark
I am trying to track down a crash when exiting an application. Here is 
what I think are relevant parts of the trace. Does it appear that I am 
in the right area? Any hints on how to proceed would be appreciated.

08073208:Call comctl32.ImageList_Destroy(41691ba0) ret=005027f5
08073208:Call gdi32.DeleteObject(098c) ret=409fcadd
08073208:Call x11drv.DeleteBitmap(098c) ret=4078081b
08073208:Call gdi32.GDI_GetObjPtr(098c,4f4b) ret=40adcfe4
08073208:Ret  gdi32.GDI_GetObjPtr() retval=40279910 ret=40adcfe4
08073208:Call gdi32.GDI_ReleaseObj(098c) ret=40add01e
08073208:Ret  gdi32.GDI_ReleaseObj() retval= ret=40add01e
08073208:Ret  x11drv.DeleteBitmap() retval=0001 ret=4078081b
trace:heap:RtlFreeHeap (0x4023,0002,40279910): returning TRUE
08073208:Ret  gdi32.DeleteObject() retval=0001 ret=409fcadd
08073208:Call gdi32.DeleteObject(0990) ret=409fcaea
08073208:Call x11drv.DeleteBitmap(0990) ret=4078081b
08073208:Call gdi32.GDI_GetObjPtr(0990,4f4b) ret=40adcfe4
08073208:Ret  gdi32.GDI_GetObjPtr() retval=402799c8 ret=40adcfe4
08073208:Call gdi32.GDI_ReleaseObj(0990) ret=40add01e
08073208:Ret  gdi32.GDI_ReleaseObj() retval= ret=40add01e
08073208:Ret  x11drv.DeleteBitmap() retval=0001 ret=4078081b
trace:heap:RtlFreeHeap (0x4023,0002,402799c8): returning TRUE
08073208:Ret  gdi32.DeleteObject() retval=0001 ret=409fcaea
08073208:Call gdi32.DeleteObject(1282) ret=409fcaf7
trace:heap:RtlFreeHeap (0x4023,0002,40279ac0): returning TRUE
trace:heap:RtlFreeHeap (0x4023,0002,40279a58): returning TRUE
08073208:Call kernel32.LOCAL_Free(01b7,1282) ret=4078e36f
08073208:Ret  kernel32.LOCAL_Free() retval= ret=4078e36f
08073208:Ret  gdi32.DeleteObject() retval=0001 ret=409fcaf7
08073208:Call gdi32.DeleteObject(1286) ret=409fcb04
trace:heap:RtlFreeHeap (0x4023,0002,40279b28): returning TRUE
trace:heap:RtlFreeHeap (0x4023,0002,40279ae0): returning TRUE
08073208:Call kernel32.LOCAL_Free(01b7,1286) ret=4078e36f
08073208:Ret  kernel32.LOCAL_Free() retval= ret=4078e36f
08073208:Ret  gdi32.DeleteObject() retval=0001 ret=409fcb04
trace:commctrl:COMCTL32_Free (0x41691ba0)
trace:heap:RtlFreeHeap (0x4169,0002,41691ba0): returning TRUE
08073208:Ret  comctl32.ImageList_Destroy() retval=0001 ret=005027f5

The next mention of 41691ba0 is

08073208:Call window proc 0x40a0f0c8 
(hwnd=0x1002e,msg=LVM_GETIMAGELIST,wp=0001,lp=)
08073208:Call kernel32._ConfirmSysLevel(4070bc18) ret=406b681d
08073208:Ret  kernel32._ConfirmSysLevel() retval= ret=406b681d
08073208:Call user32.GetWindowLongW(0001002e,) ret=40a0f0e5
08073208:Ret  user32.GetWindowLongW() retval=41690a18 ret=40a0f0e5
trace:listview:LISTVIEW_WindowProc (uMsg=1002 wParam=1 lParam=0)
08073208:Call user32.GetWindowLongW(0001002e,fff0) ret=40a0f164
08073208:Ret  user32.GetWindowLongW() retval=40018405 ret=40a0f164
08073208:Call kernel32.GlobalGetAtomNameW(c012,4070ce90,003c) 
ret=40693ce9
08073208:Ret  kernel32.GlobalGetAtomNameW() retval=000d ret=40693ce9
08073208:Call kernel32.lstrcpynW(4070cf08,40274130 L"List1",0010) 
ret=406b9fe6
08073208:Ret  kernel32.lstrcpynW() retval=4070cf08 ret=406b9fe6
08073208:Ret  window proc 0x40a0f0c8 
(hwnd=0x1002e,msg=LVM_GETIMAGELIST,wp=0001,lp=) retval=41691ba0
08073208:Ret  user32.CallWindowProcA() retval=41691ba0 ret=005050d2
08073208:Ret  user32.CallWindowProcA() retval=41691ba0 ret=005050d2
08073208:Call kernel32.GlobalGetAtomNameW(c012,4070ce90,003c) 
ret=40693ce9
08073208:Ret  kernel32.GlobalGetAtomNameW() retval=000d ret=40693ce9
08073208:Call kernel32.lstrcpynW(4070cf08,40274130 L"List1",0010) 
ret=406b9fe6
08073208:Ret  kernel32.lstrcpynW() retval=4070cf08 ret=406b9fe6
08073208:Ret  window proc 0x5048bf 
(hwnd=0x1002e,msg=LVM_GETIMAGELIST,wp=0001,lp=) retval=41691ba0

So it appears to still get the imagelist, even though it has been 
destroyed. Then the next mention is where it gives a bad ptr message.

08073208:Call window proc 0x503959 
(hwnd=0x1002d,msg=WM_NOTIFY,wp=041b,lp=40581ea4)
08073208:Call kernel32._ConfirmSysLevel(4070bc18) ret=406b681d
08073208:Ret  kernel32._ConfirmSysLevel() retval= ret=406b681d
08073208:Call kernel32.GlobalFindAtomW(406f3982 L"PropertySheetInfo") 
ret=406d7488
08073208:Ret  kernel32.GlobalFindAtomW() retval= ret=406d7488
08073208:Call kernel32.GlobalGetAtomNameW(8002,4070ce90,003c) 
ret=40693ce9
08073208:Ret  kernel32.GlobalGetAtomNameW() retval=0007 ret=40693ce9
08073208:Call kernel32.lstrcpynW(4070cf08,402757e8 L"Conference 
Information Window",0010) ret=406b9fe6
08073208:Ret  kernel32.lstrcpynW() retval=4070cf08 ret=406b9fe6
08073208:Ret  window proc 0x503959 
(hwnd=0x1002d,msg=WM_NOTIFY,wp=041b,lp=40581ea4) retval=
08073208:Call kernel32.GlobalFindAtomW(406f3982 L"PropertySheetInfo") 
ret=406d7488
08073208:Ret  

Re: Listview report mode tweaks

2002-12-20 Thread Duane Clark
Dimitrie O. Paun wrote:

On December 19, 2002 07:48 pm, Duane Clark wrote:


I also altered LISTVIEW_GetSubItemRect so that it reports correct
values, as compared against WinNT on ControlSpy.



Problem is that LISTVIEW_GetSubItemRect is documented to return
same thing for LVIR_LABEL and LVIR_BOUNDS. Of course, incorrect
documentation is known to exist, so as long as you checked it...

However, when we implement things different from the documented
behavior, a clear comment explaining why we deviate is appropriate.
Otherwise, someone might get rid of it in the future. :(



Well well... I had not read the docs that closely. I did not expect the 
definition of LVIR_LABEL to depend on what function used it.

This might require that I do a bit more testing. I had noticed that 
LISTVIEW_GetSubItemRect was only specified for use with a "one-based 
index of the subitem", but it works fine on WinNT with subitem '0', the 
first item.

A little more testing shows that with subitem '0', 
LISTVIEW_GetSubItemRect succeeds with LVIR_SELECTBOUNDS too, but that 
item fails for any other subitem. So I suspect the correct behavior is 
for subitem '0' to pass the request on to LISTVIEW_GetItemRect. For non 
zero subitems I may need to try to get icons inserted into another 
column to test with.






Re: Uninitialized lpVtbl for IExtractIconA in PidlToSicIndex

2002-12-14 Thread Duane Clark
Uwe Bonnes wrote:


Rolf answered in PM. The CVS server seemed doen for him. He send me appended
fix and promises to send a patch the wine-patches when he can access the cvs
server again. The fix works for me.



That fixes my crash too.







Re: Uninitialized lpVtbl for IExtractIconA in PidlToSicIndex

2002-12-13 Thread Duane Clark
Uwe Bonnes wrote:

Hallo,


xilinx _pn.exe crashes again. It seems related to the shell updates today. 
In PidlToSicIndex the call to IShellFolder_GetUIObjectOf succeeds, but ei
seems uninitialized and call to IExtractIconA_GetIconLocation goes astray:



And Xilinx fpga_editor also crashes, when attempting to bring up the 
"Open" dialog. Sounds like it could be the same thing. I did not narrow 
it down beyond one of the Dec 12 patches (which I assume Uwe is 
referring to).






Re: MSI (MS Installer)

2002-12-10 Thread Duane Clark
Scott Cote wrote:



I agree that the installers that are blindly expecting msiexec to be there
are flawed. However, since most windows machines have msiexec installed,
the end result is that these installers will run on most windows machines
but not on wine.



Perhaps a "simple" solution would be a "dummy" msiexec which is 
installed only if a real one does not exist, which simply prints a 
message or pops up a dialog when it is executed telling the user where 
to download MSI.







Re: MSI (MS Installer)

2002-12-09 Thread Duane Clark
Uwe Bonnes wrote:

"Zsolt" == Zsolt Rizsanyi <[EMAIL PROTECTED]> writes:



Zsolt> On Monday 09 December 2002 17:54, Scott Cote wrote:
>> I've found that many of the test applications I've tried installing
>> failed due to the lack of MSIEXEC. If it is implemented, could you
>> tell me where to find it? If not, I'd like to contribute, could you
>> tell me if any work has been done and who to coordinate with?

Zsolt> It is not implemented. That's sure. (Tough installing MS Office
Zsolt> 2k installs it for you) I have not heard anybody speaking about
Zsolt> implementing it on this list (I'm listening here since about a
Zsolt> year).

We don't need to implement every MS dll. We only need to implement:
- core dlls (kernel32, comclt32, ...) which applications expect to be
  available 
- dlls used for compiling/porting (msvcrt)

I guess this msiexec is not loaded to the system after a clean
Windowsinstall. In this case the installer must cope with the situation that
msiexec is not there and must provide it itself.

And just as a bit more info, MSI can be downloaded freely and directly 
from Microsoft. Just go to
http://search.microsoft.com/default.asp

Type "msi" into the search box, and a couple different versions are 
available. Seems to work fine.






Re: ppdebug

2002-11-29 Thread Duane Clark
Michael Sauer wrote:

...
P.S.: sorry if this mail reaches the list twice, but the first one i send
with some private e-mail address and the list moderator will (hopefully)
erase it (as he does it every time).



Hmmm... since I am the moderator, I am a bit puzzled by that. On rare 
occasions I will reject a post, but always supply a reason. The only 
ones I "erase" are spam.

In any case, starting Saturday afternoon for about a week, I will be 
gone. Hopefully some of the other folks with moderator access will fill 
in, otherwise moderated posts are going to get stuck in moderator limbo 
for quite awhile.






Re: An opengl regression

2002-11-25 Thread Duane Clark
Lionel Ulmer wrote:

...


 /* If OpenGL is available, change the default visual, etc as 
necessary */
-if ((desktop_vi = X11DRV_setup_opengl_visual( display )))
+if (desktop_dbl_buf && (desktop_vi = X11DRV_setup_opengl_visual( 
display )))
 {
 visual   = desktop_vi->visual;
 screen   = ScreenOfDisplay(display, desktop_vi->screen);


Out of curiosity, do you have the 'DesktopDoubleBuffered' option set in your
Wine config file ?


I did notice and try that (after posting), and it also fixes it. So I 
guess the issue becomes whether it should also work without double 
buffering, as that is the default in the sample config file.




Re: An opengl regression

2002-11-25 Thread Duane Clark
Duane Clark wrote:

The patch for dynamic loading of opengl,
http://www.winehq.com/hypermail/wine-cvs/2002/11/0151.html

has caused a (apparently minor) regression in the program earthquake
http://www.navagent.com/products/earthquake/



And as a bit more information, this is the chunk that does it.

--- wine/dlls/x11drv/x11drv_main.c:1.64	Mon Nov 25 19:04:54 2002
+++ wine/dlls/x11drv/x11drv_main.c	Mon Nov 25 19:04:54 2002
@@ -313,8 +317,11 @@
 }
 else screen_depth = DefaultDepthOfScreen( screen );

+/* Initialize OpenGL */
+X11DRV_OpenGL_Init(display);
+
 /* If OpenGL is available, change the default visual, etc as 
necessary */
-if ((desktop_vi = X11DRV_setup_opengl_visual( display )))
+if (desktop_dbl_buf && (desktop_vi = X11DRV_setup_opengl_visual( 
display )))
 {
 visual   = desktop_vi->visual;
 screen   = ScreenOfDisplay(display, desktop_vi->screen);






An opengl regression

2002-11-24 Thread Duane Clark
The patch for dynamic loading of opengl,
http://www.winehq.com/hypermail/wine-cvs/2002/11/0151.html

has caused a (apparently minor) regression in the program earthquake
http://www.navagent.com/products/earthquake/

That is a small app (250K download) with a spinning globe that shows 
current earthquakes; actually a pretty cool little app. The regression 
is that now when the oceans are turned on (via the settings dialog), the 
land gets flooded.




Re: Doubleclick in systray (was Pegasus Mail 4.02)

2002-11-23 Thread Duane Clark
Alexandre Julliard wrote:


Duane Clark  writes:


>And just as a bit more info, under both WinNT and Wine, the systray
>gets the dual mouse down, mouse up sequence. The SYSTRAY_WndProc()
>function directly the posts messages to the app. So it appears to me
>that it is the responsibility of SYSTRAY_WndProc() to keep track of
>the clicks, and create the doubleclick message. Does that sound
>reasonable?


Something like this might help:



Yep, that fixed it.







Re: Doubleclick in systray (was Pegasus Mail 4.02)

2002-11-23 Thread Duane Clark
Duane Clark wrote:



The problem here appears to be that under WinNT, when double clicking on
the systray icon under WinNT, messages are sent for mouse down (message
201), mouse up (message 202), double click (message 203) (the message
200 is extraneous):
...
While under Wine, what is sent are two pairs of mouse down, mouse up
messages:



And just as a bit more info, under both WinNT and Wine, the systray gets 
the dual mouse down, mouse up sequence. The SYSTRAY_WndProc() function 
directly the posts messages to the app. So it appears to me that it is 
the responsibility of SYSTRAY_WndProc() to keep track of the clicks, and 
create the doubleclick message. Does that sound reasonable?






Doubleclick in systray (was Pegasus Mail 4.02)

2002-11-23 Thread Duane Clark
Rick wrote:


The second issue, I've noticed that double-clicking the system tray
icon does not restore Pegasus Mail.  I can minimize it so it appears
both on the taskbar and the system tray, but I can't restore the
application from the system tray icon (though I can from the
taskbar).



The problem here appears to be that under WinNT, when double clicking on 
the systray icon under WinNT, messages are sent for mouse down (message 
201), mouse up (message 202), double click (message 203) (the message 
200 is extraneous):
 <00171> 0007011E S message:0x19C9 [User-defined:WM_USER+5577] 
wParam:1F47 lParam:0201
<00172> 0007011E R message:0x19C9 [User-defined:WM_USER+5577] 
lResult:
<00173> 0007011E S message:0x19C9 [User-defined:WM_USER+5577] 
wParam:1F47 lParam:0202
<00174> 0007011E R message:0x19C9 [User-defined:WM_USER+5577] 
lResult:
<00175> 0007011E S message:0x19C9 [User-defined:WM_USER+5577] 
wParam:1F47 lParam:0200
<00176> 0007011E R message:0x19C9 [User-defined:WM_USER+5577] 
lResult:
<00177> 0007011E S message:0x19C9 [User-defined:WM_USER+5577] 
wParam:1F47 lParam:0203

While under Wine, what is sent are two pairs of mouse down, mouse up 
messages:
<00062> 00010024 P message:0x19C9 [User-defined:WM_USER+5577] 
wParam:1F47 lParam:0201
<00063> 00010024 P message:0x19C9 [User-defined:WM_USER+5577] 
wParam:1F47 lParam:0202
<00064> 00010024 P message:0x19C9 [User-defined:WM_USER+5577] 
wParam:1F47 lParam:0201
<00065> 00010024 P message:0x19C9 [User-defined:WM_USER+5577] 
wParam:1F47 lParam:0202

So while I am poking around trying to figure out where that translation 
should be occuring, if anyone has some hints on where to look, it would 
be most appreciated...





Re: Pegasus Mail 4.02 ('Silver' App)

2002-11-21 Thread Duane Clark
Rick Romero wrote:


...
I don't like being the one to introduce a hack, so FWIW, Pegasus Mail
only requires the patch I attached.  If this works for Duane also,
excellent, I assume you'd want to keep the hack to a minimum.



Unfortunately, fpga_editor is still broken with this patch, though it 
does make Pegasus work fine here too.








Re: Pegasus Mail 4.02 ('Silver' App)

2002-11-20 Thread Duane Clark
Rick Romero wrote:




I'm not sure what Alexandre may not have liked other than the extra
stuff that was in there, so I yanked out the extra things that didn't do
anything, and did a cvs diff -u .

How is this one?  (Should I have done it from wine/ instead ?)



Well, here was his comment at the time:
http://www.winehq.com/hypermail/wine-devel/2002/08/0360.html







Re: Pegasus Mail 4.02 ('Silver' App)

2002-11-20 Thread Duane Clark
Rick Romero wrote:


Hey all, I'm currently testing out Pegasus Mail, and I've noticed three
issues that I would like to help with debugging.


> ...



The second issue, I've noticed that double-clicking the system tray icon
does notrestore Pegasus Mail.  I can minimize it so it appears both on
the taskbar and the system tray, but I can't restore the application
from the system tray icon (though I can from the taskbar).



This can be fixed by this patch:
http://www.winehq.com/hypermail/wine-patches/2002/08/0094.html

Alexandre did not like the way I did that, so hopefully you can figure 
out the right fix :-)






Page faults

2002-11-11 Thread Duane Clark
Having just added more memory to prevent the disk swapping I was 
encountering, I now seem to be crashing with a page fault. I don't 
really know enough about how the memory is handled. Is this likely to be 
a wine bug?

I am running native versions of msvcrt and mfc42, but pretty much 
builtin for everything else. This is running Xilinx fpga_editor. When 
running on this particular design, it appears to use about 350MB of RAM.

Unhandled exception: page fault on write access to 0x9c5a7c4c in 32-bit 
code (0x7800d77a).
0x7800d77a (MSVCRT.DLL._set_sbh_threshold+0x6de in 
C:\WINDOWS\SYSTEM\MSVCRT.DLL): movl  %ecx,0xfffc(%ecx,%edx,1)
Wine-dbg>bt
Backtrace:
=>0 0x7800d77a (MSVCRT.DLL._set_sbh_threshold+0x6de in 
C:\WINDOWS\SYSTEM\MSVCRT.DLL) (ebp=4048f768)
  1 0x7800ccf7 (MSVCRT.DLL.??_V@YAXPAX@Z+0xe4 in 
C:\WINDOWS\SYSTEM\MSVCRT.DLL) (ebp=4048f7a0)
  2 0x78001026 (MSVCRT.DLL..text+0x26 in C:\WINDOWS\SYSTEM\MSVCRT.DLL) 
(ebp=405a2dcc)
  3 0x5f40b4fe (MFC42.DLL.1576+0x52 in C:\WINDOWS\SYSTEM\MFC42.DLL) 
(ebp=405a2e8c)
  4 0x400c53fc (start_process+0x258 [process.c:564] in libntdll.dll.so) 
(ebp=405a2f38)





  1   2   >