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.
HTH.
Rick
-----Forwarded Message-----
From: David Harris <David.Harris(a)pmail.gen.nz>
To: Rick Romero <rick(a)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
altogether.
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.
Cheers!
-- David --
------------------ David Harris -+- Pegasus Mail ----------------------
Box 5451, Dunedin, New Zealand | e-mail: David.Harris(a)pmail.gen.nz
Phone: +64 3 453-6880 | Fax: +64 3 453-6612
Real newspaper headlines from U.S. papers:
MAN HELD OVER GIANT L.A. BRUSH FIRE
--
--
Rick Romero
IT Manager
Valeo, Inc. ph: 262.695.4841
Sussex, WI. fax: 262.695.4850
Rick(a)valeoinc.com