[Fwd: Re: Wine developers want Pegasus Mail as a 'Gold' app]

Rick Romero rick at valeoinc.com
Thu Nov 21 16:13:41 CST 2002

I contacted David Harris, author of Pegasus Mail, and here's what he had
to say.  I am totally lost when it comes to the windowing stuff, I'm not
sure what's X and what's Windows.  Hopefully that can help a little.. I
know the patches thread was really self-explanatory, but was centered on
the app being iconified. I don't know that this is really any different,
but it just seems more of a 'hiding the taskbar' and not iconifying the
app.  Or am I just stubborn/thick-headed? (well, I am :)
The "Setup Wizard" was something I thought would be good to have, but at
this point, I think David would have to remove the actual file open code
from Pegasus for it to work.



-----Forwarded Message-----

From: David Harris <David.Harris at pmail.gen.nz>
To: Rick Romero <rick at valeoinc.com>
Subject: Re: Wine developers want Pegasus Mail as a 'Gold' app
Date: 22 Nov 2002 10:52:12 +1300

On 21 Nov 2002 at 11:59, Rick Romero wrote:

> I apologize for the direct email, I had hoped that a Win-PM list posting
> would be sufficient, but it unfortunately hasn't been.

Alas, I don't read any of the public lists any more - with more than 300 
messages a day to deal with just on the local accounts, I simply don't 
have time.

> But let me get right down the the issues.  I was hoping you could give
> me some insight into the workings of Pegasus Mail so that the Wine guys
> could easily implement any Windows API's that you might be using, that
> are missing from Wine.

Please consider my mailbox open at any time of the day for this - both 
yourself and any Wine developer who would like to contact me directly. 
Given that I simply don't have the resources to produce my own Linux 
version of Pegasus Mail at this stage, Wine assumes considerable 
importance for me, so any collaboration offers clear mutual benefits.

> The first, critical issue, has to do with hiding the taskbar entry.
> The option: "Hide the Pegasus Mail taskbar entry when minimized" which
> is on by default, causes Wine to not refresh the window after
> minimizing, or changing virtual desktops.  A one-line fix for Wine DOES
> exist, (Essentially, the flag WS_VISIBLE is not checked within Wine) but
> I was hoping you could give us a little more info on what flag you may
> set on that checkbox, or if it's just a flag at all, or a quick couple
> lines of code.. 

It's not as clean or tidy as a couple of lines of code - there are some 
messages involved, but overall it's pretty simple. When Pegasus Mail 
gets a WM_SIZE message with wParam set to SIZE_MINIMIZED, it 
simply calls

    ShowWindow (hWndFrame, SW_HIDE);

where "hWndFrame" is the main WinPMail frame window. There's a 
little other cruft in there as well, but nothing that would affect this. Under 
Windows, the effect of this is to remove the application from the 
taskbar. That's really all there is to it.

The preferences checkbox merely sets a preference field which is 
queried later when the application is actually minimized - it has no other 
immediate function when it is checked.

> The second issue is just for user convienance.  We've found that Pmail
> checks for a physical winsock.dll (wsock32.dll for Wine), and if that
> exists, it enables TCP/IP.  What still doesn't occur though, is the
> Internet Setup Wizard.  A fresh install, with wsock32.dll existing, (We
> assume) should start the Wizard upon startup.  That doesn't happen,
> Pegasus works just fine, but doesn't start the wizard for the new user. 
> Are there any other checks you make to start that wizard up?  

Looking through the code, it appears to me that the following conditions 
need to be true before the Internet Setup Wizard will run:

1: It must be the first time the program has ever run for this user (i.e, 
there needs to have been no PMAIL.INI file present in the mailbox when 
the program started).

2: The commandline -Z (flags) switch must not have bit 0 set (i.e, it 
cannot have "1" as one of its bit members) - this disables TCP/IP 

3: The User's POP3 server, POP3 username and POP3 password must 
all be zero-length (i.e, not yet defined) internally.

4: The bit member 0x20000 must not be set in the -Z (flags) 
commandline switch (this bit simply disables the setup wizard).

5: The program must be able to locate WSOCK32.DLL in any of the 
usual places where LoadLibrary would look (the Windows System 
directory, the Windows directory, the path, the current directory).

Note that the check in step 5 is unintentionally quite extensive - the file 
not only has to be present, but Pegasus Mail actually has to be able to 
open it for reading (this is because I have a general-purpose file 
existence checking routine that attempts to make sure that the file not 
only exists, but can be opened, and I use that as part of the process of 
searching for a DLL).

Aside from (all) that, I can't see anything else in there that might cause 
the setup wizard not to run.


If there were some reliable way that I could determine that I was running 
under Wine, I would be *happy* to add code to the program that gave it 
specific behaviours in that environment - all you need to do is tell me 
what behaviours you need modified, and how I can detect Wine.


-- David --

------------------ David Harris -+- Pegasus Mail ----------------------
  Box 5451, Dunedin, New Zealand | e-mail: David.Harris at pmail.gen.nz
           Phone: +64 3 453-6880 | Fax: +64 3 453-6612

Real newspaper headlines from U.S. papers:

Rick Romero
IT Manager	
Valeo, Inc.	ph: 262.695.4841
Sussex, WI.	fax: 262.695.4850
Rick at valeoinc.com

More information about the wine-devel mailing list