The eudora-emsapi list archive ending on 11 Jan 2002


Topics covered in this issue include:

  1. Re: Liist dead?
       Alexander Lishansky <alexl at surfree.net dot il>
       Mon, 26 Mar 2001 22:46:34 +0200
  2. Re: Liist dead?
       "Jeremy L. Idol" <jlidol at home dot com>
       Mon, 26 Mar 2001 19:08:47 -0500
  3. Re: Liist dead?
       Ron Bessems <R.E.M.W.Bessems at stud.tue dot nl>
       Tue, 27 Mar 2001 10:47:23 +0200
  4. Re: Liist dead?
       Raza Jaffri <razaph at yahoo dot com>
       Tue, 27 Mar 2001 15:15:09 +0400
  5. Questions 
       Jarno Tenni <jarno.tenni at vtt dot fi>
       Tue, 27 Mar 2001 14:46:28 +0300
  6. Re: Question
       Ron Bessems <R.E.M.W.Bessems at stud.tue dot nl>
       Tue, 27 Mar 2001 14:14:04 +0200
  7. Re: Liist dead?
       Martin Smith <martin at telerama dot com>
       Tue, 27 Mar 2001 09:05:42 -0500
  8. Re: Question
       Alan Davies <aland at steltor dot com>
       Tue, 27 Mar 2001 09:56:07 -0500
  9. Re: Question
       "Jeremy L. Idol" <jlidol at home dot com>
       Tue, 27 Mar 2001 11:53:49 -0500
 10. Official Line....
       "Jeremy L. Idol" <jlidol at home dot com>
       Tue, 27 Mar 2001 11:56:44 -0500
 11. Re: Liist dead?
       "Jeremy L. Idol" <jlidol at home dot com>
       Tue, 27 Mar 2001 12:31:23 -0500
 12. Re: Liist dead?
       Martin Smith <martin at telerama dot com>
       Tue, 27 Mar 2001 16:14:22 -0500
 13. Re: Question
       Alexander Lishansky <alexl at surfree.net dot il>
       Wed, 28 Mar 2001 03:49:13 +0200
 14. Re: Questions 
       Alexander Lishansky <alexl at surfree.net dot il>
       Wed, 28 Mar 2001 03:33:14 +0200
 15. Re: Liist dead?
       Alexander Lishansky <alexl at surfree.net dot il>
       Wed, 28 Mar 2001 03:48:04 +0200
 16. Re: Plugin error in Eudora 5.0.2
       Alexander Lishansky <alexl at surfree.net dot il>
       Wed, 28 Mar 2001 03:32:02 +0200
 17. Re: Question
       "Jeremy L. Idol" <jlidol at home dot com>
       Wed, 28 Mar 2001 00:15:15 -0500
 18. Re: Plugin error in Eudora 5.0.2
       Ron Bessems <R.E.M.W.Bessems at stud.tue dot nl>
       Wed, 28 Mar 2001 10:18:36 +0200
 19. Re: Question
       Raza Jaffri <razaph at yahoo dot com>
       Wed, 28 Mar 2001 15:57:35 +0400
 20. Re: Question
       "Jeremy L. Idol" <jlidol at home dot com>
       Wed, 28 Mar 2001 11:55:36 -0500
 21. Hi all again - sorry for that last post
       "Thomas P. Smith" <tom at uiscan dot com>
       Wed, 28 Mar 2001 09:58:28 -0800
 22. RE: List Dead
       "David Bolt" <davebolt at compuserve dot com>
       Wed, 28 Mar 2001 21:27:23 +0100
 23. Re: Plugin error in Eudora 5.0.2
       Alexander Lishansky <alexl at surfree.net dot il>
       Thu, 29 Mar 2001 00:04:58 +0200
 24. Re: Hi all again - sorry for that last post
       Alexander Lishansky <alexl at surfree.net dot il>
       Thu, 29 Mar 2001 00:05:07 +0200
 25. Eudora Enhancements website (was: Re: Question)
       Raza Jaffri <razaph at yahoo dot com>
       Thu, 29 Mar 2001 10:55:06 +0400
 26. Re: Plugin error in Eudora 5.0.2
       Ron Bessems <R.E.M.W.Bessems at stud.tue dot nl>
       Thu, 29 Mar 2001 09:14:08 +0200
 27. Eudora Enhancements website
       Raza Jaffri <razaph at yahoo dot com>
       Thu, 29 Mar 2001 12:12:45 +0400
 28. Re: Plugin error in Eudora 5.0.2
       Alexander Lishansky <alexl at surfree.net dot il>
       Fri, 30 Mar 2001 00:28:08 +0200
 29. Eudora's "Send" event...
       Benjamin Scott-Hopkins <benjamins at learningworlds dot com>
       Thu, 5 Apr 2001 11:13:10 -0400
 30. FAR* globals -- what does it do?
       Benjamin Scott-Hopkins <benjamins at learningworlds dot com>
       Fri, 6 Apr 2001 15:20:42 -0400
 31. Re: FAR* globals -- what does it do?
       Alan Davies <aland at steltor dot com>
       Fri, 06 Apr 2001 15:43:37 -0400
 32. Dialogue boxes during ems_translate_file()
       Benjamin Scott-Hopkins <benjamins at learningworlds dot com>
       Mon, 9 Apr 2001 13:49:28 -0400
 33. Re: Dialogue boxes during ems_translate_file()
       Alan Davies <aland at steltor dot com>
       Mon, 09 Apr 2001 14:19:07 -0400
 34. Hello, just a test
       "David A. Cobb" <superbiskit at home dot com>
       Thu, 12 Apr 2001 17:50:19 -0400
 35. On Display translator.
       Thomas Smith <tom at uiscan dot com>
       Tue, 01 May 2001 07:59:11 -0700
 36. New API
       Petr Prazak <prazak at grisoft dot cz>
       Wed, 9 May 2001 11:28:06 +0200
 37. DLL trouble.
       Paul Emberson <paul at fsc.co dot uk>
       Wed, 25 Jul 2001 17:02:28 +0100
 38. Newby questions
       Matt Tway <EudoraDev at rscubed dot com>
       Tue, 16 Oct 2001 18:19:43 -0700
 39. Compiling plugins ?
       james <james at programmer-software dot com>
       Mon, 22 Oct 2001 21:57:47 +1000 (EST)
 40. Re: Compiling plugins ?
       Alexander Lishansky <alexl at surfree.net dot il>
       Tue, 23 Oct 2001 02:24:59 +0200
 41. Re: Compiling plugins ?
       Alan Davies <aland at steltor dot com>
       Tue, 23 Oct 2001 11:46:37 -0400
 42. eudora-emsapi : Add header to an incoming email
       Matt Tway <EudoraDev at rscubed dot com>
       Wed, 31 Oct 2001 20:52:48 -0800
 43. Re: eudora-emsapi : Add header to an incoming email
       Alexander Lishansky <alexl at surfree.net dot il>
       Fri, 02 Nov 2001 04:42:02 +0200
 44. Buttons with defaults: EMSF_DEFAULT_Q_ON
       "Damon Gallaty" <dgal at citicom dot com>
       Wed, 7 Nov 2001 10:47:56 -0500
 45. New version (v2.00.00) of MimeHeaders plug-in
       Alexander Lishansky <alexl at surfree.net dot il>
       Sat, 22 Dec 2001 20:00:10 +0200
 46. C (not C++/MFC) example....
       "Tony K." <tony.kwok at 3web dot net>
       Thu, 10 Jan 2002 14:02:22 -0700
 47. Re: C (not C++/MFC) example....
       Alan Davies <aland at steltor dot com>
       Thu, 10 Jan 2002 19:13:53 -0500
 48. Re: C (not C++/MFC) example....
       Alexander Lishansky <alexl at surfree.net dot il>
       Fri, 11 Jan 2002 19:00:37 +0200
 49. mailConfigP->eudoraWnd (was: C (not C++/MFC))
       "Tony K." <tony.kwok at 3web dot net>
       Fri, 11 Jan 2002 13:15:15 -0700
 50. Re: mailConfigP->eudoraWnd (was: C (not C++/MFC))
       Alan Davies <aland at steltor dot com>
       Fri, 11 Jan 2002 16:18:05 -0500

Date: Mon, 26 Mar 2001 22:46:34 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: Liist dead?

At 00:22 26/03/01 +0200, Johannes M. Richter wrote:
>i'm subscribed to this list now for some weeks and there 
>was no message.. Am i the only one here?
>Would be an interesting topic though i don't know anything about it :)

It's because Qualcomm-s do not answer.


Date: Mon, 26 Mar 2001 19:08:47 -0500
From: "Jeremy L. Idol" <jlidol at home dot com>
Subject: Re: Liist dead?

>It's because Qualcomm-s do not answer.

I'll agree that there isn't much activity on the plug-in development front....

But we could talk and help each other - yet many remain quiet.

I would like to know how many people get this and are discouraged by the 
lack of participation.


Date: Tue, 27 Mar 2001 10:47:23 +0200
From: Ron Bessems <R.E.M.W.Bessems at stud.tue dot nl>
Subject: Re: Liist dead?

At 19:08 26-3-2001 -0500, you wrote:
>>It's because Qualcomm-s do not answer.
>
>I'll agree that there isn't much activity on the plug-in development front....
>
>But we could talk and help each other - yet many remain quiet.
>
>I would like to know how many people get this and are discouraged by the 
>lack of participation.

Well I sent a bug report about the plugin mechanism about a month ago
and never heard anything from here. So I was surprised to find messages
from here. Anyways don't use the global storage pointer that the emsapi
supplies its really messed up.

Regards,

Ron

(GnuPG eudora plugin)


Date: Tue, 27 Mar 2001 15:15:09 +0400
From: Raza Jaffri <razaph at yahoo dot com>
Subject: Re: Liist dead?

Time to break the silence. I would love to see some activity on this list. 
I have been subscribed to it for a long time but hardly see anyone passing 
this way.

But now we are 3 at least.

How can we help each other guy?

Raza

At 07:08 PM 3/26/2001 -0500, you wrote:
>>It's because Qualcomm-s do not answer.
>
>I'll agree that there isn't much activity on the plug-in development front....
>
>But we could talk and help each other - yet many remain quiet.
>
>I would like to know how many people get this and are discouraged by the 
>lack of participation.



_________________________________________________________

Do You Yahoo!?

Get your free @yahoo.com address at http://mail.yahoo.com




Date: Tue, 27 Mar 2001 14:46:28 +0300
From: Jarno Tenni <jarno.tenni at vtt dot fi>
Subject: Questions

Hello,
	I just joined this list yesterday and I just have started to study
the specifications etc. There are a couple of questions I would like to ask:

What is the Qualcomm's view to this plug-in software i.e. are they still 
developing
APIs etc. or have they discarded this whole thing? I noticed that at least 
in the
documents, last changes were on 1998, which does not promise very much :(

What would be the right way to plug Java software to Eudora? I know that
at least Visual Cafe can generate DLL:s, but is there some examples available
somewhere?

Has anybody tried to use other C++ environments than Developer Studio ?
Currently I have an old Powersoft 2.0 environment, but I have not yet
tried with it (Should I?).


Thanks and Best Regards,
	Jarno Tenni
  


Date: Tue, 27 Mar 2001 14:14:04 +0200
From: Ron Bessems <R.E.M.W.Bessems at stud.tue dot nl>
Subject: Re: Question

 >What is the Qualcomm's view to this plug-in software i.e. are they still 
developing
 >APIs etc. or have they discarded this whole thing? I noticed that at 
least in the
 >documents, last changes were on 1998, which does not promise very much :(

Yep not much happening on the plugin API, while there are several things
that would be nice if they changed.

 >What would be the right way to plug Java software to Eudora? I know that
 >at least Visual Cafe can generate DLL:s, but is there some examples available
 >somewhere?

Sorry never tried this.

 >Has anybody tried to use other C++ environments than Developer Studio ?
 >Currently I have an old Powersoft 2.0 environment, but I have not yet
 >tried with it (Should I?).

If Powersoft can make DLLs that export "WINAPI" (aka stdcalls) functions
it should work. Also the free borland compiler will work.

Regards,

Ron


Date: Tue, 27 Mar 2001 09:05:42 -0500
From: Martin Smith <martin at telerama dot com>
Subject: Re: Liist dead?

At 3:15 PM +0400 3/27/01, Raza Jaffri wrote:

>Time to break the silence. I would love to see some activity on this list. I have been subscribed to it for a long time but hardly see anyone passing this way.
>
>But now we are 3 at least.
>
>How can we help each other guy?
>
>Raza


Good idea, Raza.

I'm on this list because I want to share experiences with people using multiple languages via Eudora, especially Japanese with English.

Martin Smith <martin at telerama dot com>

Date: Tue, 27 Mar 2001 09:56:07 -0500
From: Alan Davies <aland at steltor dot com>
Subject: Re: Question

At 14:14 2001-03-27 +0200, you wrote:
> >What is the Qualcomm's view to this plug-in software i.e. are they still 
> developing
> >APIs etc. or have they discarded this whole thing? I noticed that at 
> least in the
> >documents, last changes were on 1998, which does not promise very much :(
>
>Yep not much happening on the plugin API, while there are several things
>that would be nice if they changed.


Although, there seems to be more to the API than they document-
if you're on Windows, try using "Dependency Walker" to look at
the symbols that Esp.dll exports. ems_mbox_content_* ? ems_idle ?

Esp does some cool stuff that we can't, like display an MDI child
window within Eudora.

I'm on the list too, I asked one question but got no response,
I think the problem is we are so few that we're all looking into
different things, with very little crossover. I wanted to know
how Eudora generates the text that it places next to my icon
when I return EMSR_NOT_NOW from an OnArrival translator, any ideas?
(sometimes it's "UntitledXX.ems", sometimes it's "SubjectOfEmail.ems",
showing the subject is better than nothing, but people always ask
"What's ems?"....)

--Alan


Date: Tue, 27 Mar 2001 11:53:49 -0500
From: "Jeremy L. Idol" <jlidol at home dot com>
Subject: Re: Question

>I'm on the list too, I asked one question but got no response,  I think 
>the problem is we are so few that we're all looking into different things, 
>with very little crossover.

         I would have to agree with you on that one... I think instead of a 
mailing list this would almost be better served with a forum somewhere.... ugh.

>I wanted to know how Eudora generates the text that it places next to my 
>icon when I return EMSR_NOT_NOW from an OnArrival translator, any ideas?

         Nope.... I haven't looked at the API in quite some time... But I'm 
starting to think about it again.   I've always wanted a specific plug-in 
done well, and it never had come into being...


Date: Tue, 27 Mar 2001 11:56:44 -0500
From: "Jeremy L. Idol" <jlidol at home dot com>
Subject: Official Line....

Well, the official word from their documentation is:

>BUG REPORTS
>
>If you experience something you think might be a bug in Eudora, please 
>report it by sending a message to eudora-bugs at qualcomm dot com. Describe what 
>you did, what happened, what version of Eudora you have, any error 
>messages Eudora gave (the numbers in {}'s are especially important), what 
>kind of computer you have, what version of System Software you're using, 
>and anything else you think might be relevant.
>
>You will receive an automated response indicating that your bug report has 
>been received and forwarded to our engineering staff. Unless additional 
>information is needed, you will not receive a direct response.
>
>REQUESTS FOR FEATURES
>
> From time to time, everyone comes up with an idea for something they'd 
> like their software to do differently. If you come across an idea that 
> you think might make a nice enhancement to Eudora Pro, your input is 
> always welcome. Please send any suggestions or requests for new features to
>eudora-suggest at qualcomm dot com.
>
>You will receive an automated response indicating that your suggestion has 
>been received and forwarded to our engineering staff. Unless additional 
>information is needed, you will not receive a personal response.


I have sent numerous suggestions and bugs to these addresses and have 
actually had a few addressed in the fixes from the beta cycle and in the 
release patches/upgrades.

If it's the only avenue you have to get their attention,  it's best to use it.

I agree that the API should be updated and if enough suggestions are sent 
in with what you want and requesting an update.... perhaps it will happen.


Date: Tue, 27 Mar 2001 12:31:23 -0500
From: "Jeremy L. Idol" <jlidol at home dot com>
Subject: Re: Liist dead?

>I'm on this list because I want to share experiences with people using 
>multiple languages via Eudora, especially Japanese with English.

Sorry - As I have no experience there.... native English speaker with only 
limited experience in Spanish and Italian.... and a bit of German from a 
trip once.... haha

You might check here: http://www.emailman.com/  under International at the 
bottom of the page....

For Eudora specific info and 
plugins:  http://www.emailman.com/eudora/index.html

Another site:  http://eudora.interweb.be/index.html


Hope it helps!


Date: Tue, 27 Mar 2001 16:14:22 -0500
From: Martin Smith <martin at telerama dot com>
Subject: Re: Liist dead?

At 12:31 PM -0500 3/27/01, Jeremy L. Idol wrote:

>>I'm on this list because I want to share experiences with people using multiple languages via Eudora, especially Japanese with English.
>
>Sorry - As I have no experience there.... native English speaker with only limited experience in Spanish and Italian.... and a bit of German from a trip once.... haha
>
>You might check here: http://www.emailman.com/  under International at the bottom of the page....
>
>For Eudora specific info and plugins:  http://www.emailman.com/eudora/index.html
>
>Another site:  http://eudora.interweb.be/index.html
>
>
>Hope it helps!

Thanks.

I'm the person many people turn towards to get their Japanese email problems fixed.  But although I have a lot of experience with Japanese / Macintosh / Eudora (and a lot of other applications), I've often enough found helpful hints that I never thought o
f myself.  That's what I'd be looking for.

John Delacour used to be one of those folks.  In fact, he compiled some translation tables and scripts which helped accomplish things I needed.  But he's gone silent in the Eudora lists to which I subscribe.  Some of the plug-ins and tables provided by he
lpful people in the past are no longer valid in Mac OS 9.1.  And I haven't ventured into Eudora 5 (since Eudora-J is still in version 4 -- and I run both the English and Japanese versions).

Anyway, thanks for the links.  Most of the plugins, etc. posted at these sites are old.  I'm pretty familiar with the ones relevant to Japanese.

Martin Smith <martin at telerama dot com>

Date: Wed, 28 Mar 2001 03:49:13 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: Question

At 14:14 27/03/01 +0200, Ron Bessems wrote:
>...the free borland compiler will work...

Where can I read about this free compiler?


Date: Wed, 28 Mar 2001 03:33:14 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: Questions

At 14:46 27/03/01 +0300, Jarno Tenni wrote:
>...Has anybody tried to use other C++ environments than Developer Studio?..

I tried Borland C++ v5.02.


Date: Wed, 28 Mar 2001 03:48:04 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: Liist dead?

At 09:05 27/03/01 -0500, Martin Smith wrote:
>I'm on this list because I want to share experiences with 
>people using multiple languages via Eudora, especially Japanese with English.

I don't know Japanese, but if you are speaking about such 
fragments as "=?Big5?B?dGFpbWl...", you may try to use my 
"MimeHeaders" plug-in for decoding Quoted-Printable and 
BASE64-coded headers. I did not test it on 2-byte-character 
languages (because I can't check the result), but who knows?..

Maybe there is a plug-in with similar functions, which is 
better than mine? I did not find.

By the way, beginning from v5.1.0.10 beta Eudora is capable 
to decode "=?windows..." MIME-encoded headers (though such 
headers are only a small subset of what I need from Eudora developers).


Date: Wed, 28 Mar 2001 03:32:02 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: Plugin error in Eudora 5.0.2

At 16:02 24/02/01 +0100, Ron Bessems wrote:
>I've been working on a GPG plugin for Eudora 5.0.2, and i think
>i have found a huge bug.
>
>I use the globals of mechanism of the EMS to store my settings
>during a session of Eudora, no problem there.
>
>BUT, when Eudora exists it starts to free some of my allocated
>memory by calling
>
>extern "C" long WINAPI ems_free(
>     void FAR* mem
>)
>
>No problem either except for the fact that eudora also calls
>this function for the globals pointer that i passed during the
>ems_plugin_init!
>
>Next eudora calls
>
>extern "C" long WINAPI ems_plugin_finish(
>                 void FAR* globals
>)
>
>Where i assume that "globals" still points to my
>valid structure, but that is not the case as it
>was already freed by a call to ems_free!! Thus
>i get loads of Eudora crashes when it exists.

Maybe you are right, and they did not take into account 
some things, but I have two questions regarding your report:

1) Why don't you assume that "ems_plugin_finish()" must not 
use that memory region, since it has been released by 
"ems_free()"? May be it is their bug, but it is not "huge", 
as you describe. You will discover the proper sequence of 
these routines during your first debug session, and 
remember it from now on. Finish all your memory-concerned 
things inside "ems_free()" and that's all.

2) I always wondered, why this mechanism exists? I'm 
speaking about "globals". I even thought it is obsolete, 
but your question proves the opposite. Anyway, I wrote something like:
    static int MyGlobalStaticVariableThatDoesNotNeedGlobals = 1;
and I don't understand: why I need that "mem"?

>I hope than some Eudora developers are reading this
>too, as I don't have a registration code yet i can't send
>an email to them directly to notify them of this problem.

I didn't know that I need a registration code to send a 
question to "win-eudora-bugs@qualcomm.com". E dot g., in Eudora 
pull-down menu there is the following item:

    Help->
     Report A Bug

>Thanks,
>Ron


Date: Wed, 28 Mar 2001 00:15:15 -0500
From: "Jeremy L. Idol" <jlidol at home dot com>
Subject: Re: Question

>>...the free borland compiler will work...
>
>Where can I read about this free compiler?

You can read about it - and download it from the following address:

         http://www.borland.com/bcppbuilder/freecompiler/

Enjoy!


Date: Wed, 28 Mar 2001 10:18:36 +0200
From: Ron Bessems <R.E.M.W.Bessems at stud.tue dot nl>
Subject: Re: Plugin error in Eudora 5.0.2

At 03:32 28-3-2001 +0200, you wrote:
>At 16:02 24/02/01 +0100, Ron Bessems wrote:
>>I've been working on a GPG plugin for Eudora 5.0.2, and i think
>>i have found a huge bug.
>>
>>I use the globals of mechanism of the EMS to store my settings
>>during a session of Eudora, no problem there.
>>
>>BUT, when Eudora exists it starts to free some of my allocated
>>memory by calling
>>
>>extern "C" long WINAPI ems_free(
>>     void FAR* mem
>>)
>>
>>No problem either except for the fact that eudora also calls
>>this function for the globals pointer that i passed during the
>>ems_plugin_init!
>>
>>Next eudora calls
>>
>>extern "C" long WINAPI ems_plugin_finish(
>>                 void FAR* globals
>>)
>>
>>Where i assume that "globals" still points to my
>>valid structure, but that is not the case as it
>>was already freed by a call to ems_free!! Thus
>>i get loads of Eudora crashes when it exists.
>
>Maybe you are right, and they did not take into account some things, but I 
>have two questions regarding your report:
>
>1) Why don't you assume that "ems_plugin_finish()" must not use that 
>memory region, since it has been released by "ems_free()"? May be it is 
>their bug, but it is not "huge", as you describe. You will discover the 
>proper sequence of these routines during your first debug session, and 
>remember it from now on. Finish all your memory-concerned things inside 
>"ems_free()" and that's all.

True, true, BUT in that global pointer i've allocated a structure, and in 
that structure i use pointers
to chars, thus i have to free them before i free the global pointer. That 
is the whole idea of
ems_plugin_finish.


>2) I always wondered, why this mechanism exists? I'm speaking about 
>"globals". I even thought it is obsolete, but your question proves the 
>opposite. Anyway, I wrote something like:
>    static int MyGlobalStaticVariableThatDoesNotNeedGlobals = 1;
>and I don't understand: why I need that "mem"?

My Guess is that they allow the same plugin multiple times into the same 
memory space, thus
you'd need a method for the plugin to know which instance (?) is called. 
But i've solved
it by allocating my structure globally and not passing it to the global 
mechanism. This
of course works only for 1 instance but then again i never saw my plugin 
popup twice,
just wanted to tell them that the globals mechanism is going terribly wrong,
it took me quite some time to figure out why my plugins crashed on exit.

Regards,
Ron


Date: Wed, 28 Mar 2001 15:57:35 +0400
From: Raza Jaffri <razaph at yahoo dot com>
Subject: Re: Question

At 11:53 AM 3/27/2001 -0500, Jeremy L. Idol wrote:

>         I would have to agree with you on that one... I think instead of 
> a mailing list this would almost be better served with a forum 
> somewhere.... ugh.


This was exactly the motive behind creating 
http://clubs.yahoo.com/clubs/eudoraenhancements so that all the Eudora 
developers and enthusiasts can hang around at one place and the discussions 
would remain online in the club's archive.

Any suggestions how to drum up the membership and get the people who this 
stuff to drop by once in a while?

I don't have any personal incentive in it, except that I love Eudora and 
would like to achieve more from it then possible at the moment.


Best Regards!

Raza



_________________________________________________________

Do You Yahoo!?

Get your free @yahoo.com address at http://mail.yahoo.com




Date: Wed, 28 Mar 2001 11:55:36 -0500
From: "Jeremy L. Idol" <jlidol at home dot com>
Subject: Re: Question

>This was exactly the motive behind creating 
>http://clubs.yahoo.com/clubs/eudoraenhancements so that all the Eudora 
>developers and enthusiasts can hang around at one place and the 
>discussions would remain online in the club's archive.

         Interesting idea, but a web site dedicated to it with a forum link 
to your site might be better.... locally stored plugins and which versions 
of eudora they were developed for and tested with.... etc... etc...

>Any suggestions how to drum up the membership and get the people who this 
>stuff to drop by once in a while?

         Hmmm... perhaps you should submit it to a few search 
engines...  (it doesn't even come up when you search yahoo.... odd.)

>I don't have any personal incentive in it, except that I love Eudora and 
>would like to achieve more from it then possible at the moment.

         Understood completely!


Date: Wed, 28 Mar 2001 09:58:28 -0800
From: "Thomas P. Smith" <tom at uiscan dot com>
Subject: Hi all again - sorry for that last post

Hi all - I just joined this list in the hopes I could find some more 
information and help in regards to developing Eudora plugins under windows. 
There is very little out there in the online community.

I am writing an encryption plugin, using Eudora v5.0.2 and EMS-API v4. It 
encrypts messages on Q4_TRANSMISSION, and decrypts on display. Obviously, I 
am using translation mechanisms for these tasks, and have been successful 
up to this point. Now I am on the last 5%, and it is certainly taking more 
time than the first 95%.

I am facing three issues at the moment.

1. I have implemented the ems_plugin_config function very simply. All I do 
is call the MFC enabler ( AFX_MANAGE_STATE(AfxGetStaticModuleState()); ) 
and then call my settings dialog, then exit returning EMSR_OK. However, 
this code never gets called - my plugin appears in the list of plugins 
obtained from Settings->Message Plugin Settings, but the settings button is 
disabled - I cannot invoke this code at all. Is there something I need to 
do besides implement this function for the config handler to be called?

2. I would like to modify the subject line of encrypted messages to 
indicate that the message is encrypted when viewed in an inbox, etc. All I 
wish to do is add a short prefix to the subject before the message is sent. 
I have been able to access the header information in ems_translate_file, 
and modify the subject in the outFilePB structure, but my modifications are 
ignored or discarded. Is this the correct place to do this, or should I be 
accessing the information elsewhere??

I realise this is a lot to ask on a first post, but I am quite frustrated 
that the solution has eluded me so long. Thank you all for anything you can 
offer to help.

Tom Smith


Tom Smith
tom at vernon dot com
Ultra Information Systems
(250) 542-0112
"If things seem to be going your way, you obviously have no idea what the 
hell is going on."  Murphy's Law


From: "David Bolt" <davebolt at compuserve dot com>
Subject: RE: List Dead
Date: Wed, 28 Mar 2001 21:27:23 +0100

I think you will find that Qualcom actually state that this list is not
directly supported by them. I think they intend it to be a medium for
conversation between developers working independently of themselves.
Now, I still listen in, but I have not had much response to my own
questions. For instance, there is an example in Visual C which can be
downloaded from Qualcom's site, but it does not seem to contain the
necessary files to actually be compiled and do something.
Personally, when I next get the time, I will be looking at development in
Delphi. This should not be a problem apart from having to translate the API
into Pascal. Delphi can e used to create all the various COM stuff, DLLs and
regular EXEs. You can even create services if you wish. Just need to
interpret the API correctly. :-)
Dave.



Date: Thu, 29 Mar 2001 00:04:58 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: Plugin error in Eudora 5.0.2

At 10:18 28/03/01 +0200, Ron Bessems wrote:
>At 03:32 28-3-2001 +0200, you wrote:
>>At 16:02 24/02/01 +0100, Ron Bessems wrote:
>>>I've been working on a GPG plugin for Eudora 5.0.2, and i think
>>>i have found a huge bug.
>>>
>>>I use the globals of mechanism of the EMS to store my settings
>>>during a session of Eudora, no problem there.
>>>
>>>BUT, when Eudora exists it starts to free some of my allocated
>>>memory by calling
>>>
>>>extern "C" long WINAPI ems_free(
>>>     void FAR* mem
>>>)
>>>
>>>No problem either except for the fact that eudora also calls
>>>this function for the globals pointer that i passed during the
>>>ems_plugin_init!
>>>
>>>Next eudora calls
>>>
>>>extern "C" long WINAPI ems_plugin_finish(
>>>                 void FAR* globals
>>>)
>>>
>>>Where i assume that "globals" still points to my
>>>valid structure, but that is not the case as it
>>>was already freed by a call to ems_free!! Thus
>>>i get loads of Eudora crashes when it exists.
>>
>>Maybe you are right, and they did not take into account 
>>some things, but I have two questions regarding your report:
>>
>>1) Why don't you assume that "ems_plugin_finish()" must 
>>not use that memory region, since it has been released by 
>>"ems_free()"? May be it is their bug, but it is not 
>>"huge", as you describe. You will discover the proper 
>>sequence of these routines during your first debug 
>>session, and remember it from now on. Finish all your 
>>memory-concerned things inside "ems_free()" and that's all.
>
>True, true, BUT in that global pointer i've allocated a 
>structure, and in that structure i use pointers
>to chars, thus i have to free them before i free the 
>global pointer. That is the whole idea of
>ems_plugin_finish.

I think you are wrong. The idea of "ems_plugin_finish()" - 
is not freeing global memory. This is the role of 
"ems_free()". In the latter routine you should free both 
your char pointers and the global array of these pointers itself.

>>2) I always wondered, why this mechanism exists? I'm 
>>speaking about "globals". I even thought it is obsolete, 
>>but your question proves the opposite. Anyway, I wrote something like:
>>    static int MyGlobalStaticVariableThatDoesNotNeedGlobals = 1;
>>and I don't understand: why I need that "mem"?
>
>My Guess is that they allow the same plugin multiple times 
>into the same memory space, thus
>you'd need a method for the plugin to know which instance (?) is called.

You have instance parameter in "DllEntryPoint()".

>But i've solved
>it by allocating my structure globally and not passing it 
>to the global mechanism. This
>of course works only for 1 instance but then again i never 
>saw my plugin popup twice,
>just wanted to tell them that the globals mechanism is going terribly wrong,
>it took me quite some time to figure out why my plugins crashed on exit.
>
>Regards,
>Ron

Maybe Eudora developers could avoid confusing us via 
defining "ems_plugin_finish()" as function without parameters.

By the way. In spite of I don't use both of these 
functions, I wrote some notes for myself, when I was 
developing plug-in for Eudora v5.0.2.01. And while reading 
them now, I found out that:

- "ems_free()" is called 2 times on exiting from 
configuration menu and 4 times on exiting from Eudora, 
before "ems_plugin_finish()".

- "ems_plugin_finish()" is called once on exiting from 
Eudora, after "ems_free()".

This means that you should avoid assumptions that these 
your functions (at least "ems_free()") will be called only 
once. You may crash if you try to free the same memory twice.


Date: Thu, 29 Mar 2001 00:05:07 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: Hi all again - sorry for that last post

At 09:58 28/03/01 -0800, Thomas P. Smith wrote:
>I am facing three issues at the moment.
>
>1. I have implemented the ems_plugin_config function very 
>simply. All I do is call the MFC enabler ( 
>AFX_MANAGE_STATE(AfxGetStaticModuleState()); ) and then 
>call my settings dialog, then exit returning EMSR_OK. 
>However, this code never gets called - my plugin appears 
>in the list of plugins obtained from Settings->Message 
>Plugin Settings, but the settings button is disabled - I 
>cannot invoke this code at all. Is there something I need 
>to do besides implement this function for the config handler to be called?

Did you exported it?

>2. I would like to modify the subject line of encrypted 
>messages to indicate that the message is encrypted when 
>viewed in an inbox, etc. All I wish to do is add a short 
>prefix to the subject before the message is sent. I have 
>been able to access the header information in 
>ems_translate_file, and modify the subject in the 
>outFilePB structure, but my modifications are ignored or 
>discarded. Is this the correct place to do this, or should 
>I be accessing the information elsewhere??

It is very hard and painful issue. There is no documented 
way for changing headers.

>I realise this is a lot to ask on a first post, but I am 
>quite frustrated that the solution has eluded me so long. 
>Thank you all for anything you can offer to help.
>
>Tom Smith

There are three kinds of people: those who can count and those who can not.

How many issues you said you are facing?


Date: Thu, 29 Mar 2001 10:55:06 +0400
From: Raza Jaffri <razaph at yahoo dot com>
Subject: Eudora Enhancements website (was: Re: Question)

Thanks for the advice. I will probably make a gateway page and then submit 
that to all the search engines. Any other suggestions will be helpful from 
everyone on this list.

Best Regards!

Raza

At 11:55 AM 3/28/2001 -0500, Jeremy L. Idol wrote:
>>This was exactly the motive behind creating 
>>http://clubs.yahoo.com/clubs/eudoraenhancements so that all the Eudora 
>>developers and enthusiasts can hang around at one place and the 
>>discussions would remain online in the club's archive.
>
>         Interesting idea, but a web site dedicated to it with a forum 
> link to your site might be better.... locally stored plugins and which 
> versions of eudora they were developed for and tested with.... etc... etc...
>
>>Any suggestions how to drum up the membership and get the people who this 
>>stuff to drop by once in a while?
>
>         Hmmm... perhaps you should submit it to a few search 
> engines...  (it doesn't even come up when you search yahoo.... odd.)
>
>>I don't have any personal incentive in it, except that I love Eudora and 
>>would like to achieve more from it then possible at the moment.
>
>         Understood completely!



_________________________________________________________

Do You Yahoo!?

Get your free @yahoo.com address at http://mail.yahoo.com




Date: Thu, 29 Mar 2001 09:14:08 +0200
From: Ron Bessems <R.E.M.W.Bessems at stud.tue dot nl>
Subject: Re: Plugin error in Eudora 5.0.2

 > >True, true, BUT in that global pointer i've allocated a
 > >structure, and in that structure i use pointers
 > >to chars, thus i have to free them before i free the
 > >global pointer. That is the whole idea of
 > >ems_plugin_finish.
 >
 > I think you are wrong. The idea of "ems_plugin_finish()" -
 > is not freeing global memory. This is the role of
 > "ems_free()". In the latter routine you should free both
 > your char pointers and the global array of these pointers itself.
 >

Then tell me how i should determine if the pointer passed to
ems_free is the structure so that i can cast it to a structure
and free the different chars in there without comparing memory
address. I say this is just a big mistake by the developers.

Lets quote the documentation on this one shall we:

--- EMS API page 28
For Windows, the ems_plug_init function must allocate this storage
and return a pointer to it in the location pointer to by ythe global
parameter. Eudora will then pass this pointer into all other translation
API calls for that plugin-in. It should be de-allocated in the
ems_plug_in_finish function
---

Any questions ?


 > >>2) I always wondered, why this mechanism exists? I'm
 > >>speaking about "globals". I even thought it is obsolete,
 > >>but your question proves the opposite. Anyway, I wrote something like:
 > >>    static int MyGlobalStaticVariableThatDoesNotNeedGlobals = 1;
 > >>and I don't understand: why I need that "mem"?
 > >
 > >My Guess is that they allow the same plugin multiple times
 > >into the same memory space, thus
 > >you'd need a method for the plugin to know which instance (?) is called.
 >
 > You have instance parameter in "DllEntryPoint()".
 >


Then you give a reason for the global mechanism.

Quote API docs:

This SHOULD be used for global data in the plugin scope.


 > By the way. In spite of I don't use both of these
 > functions, I wrote some notes for myself, when I was
 > developing plug-in for Eudora v5.0.2.01. And while reading
 > them now, I found out that:
 >
 > - "ems_free()" is called 2 times on exiting from
 > configuration menu and 4 times on exiting from Eudora,
 > before "ems_plugin_finish()".
 >
 > - "ems_plugin_finish()" is called once on exiting from
 > Eudora, after "ems_free()".
 >
 > This means that you should avoid assumptions that these
 > your functions (at least "ems_free()") will be called only
 > once. You may crash if you try to free the same memory twice.
 >


In the end i've written wrappers for "free" and "malloc"
so i could track memory locations, but I did not find this
behavior you are talking about.

But come on,... isn't that a nice bug also,... freeing
the same memory multiple times... I think that Eudora developers
didn't care too much about the plugin API. They would have
updated the docs, extended it and found/fixed these bugs by
now if they did care.

Ron


Date: Thu, 29 Mar 2001 12:12:45 +0400
From: Raza Jaffri <razaph at yahoo dot com>
Subject: Eudora Enhancements website

Hi guys!

Here is the gateway page... its all yours

http://www.geocities.com/razaph/eudora/

Please forward it, help promote it, and let everyone know about it. 
Together we can help each other.

Hope this helps!



_________________________________________________________

Do You Yahoo!?

Get your free @yahoo.com address at http://mail.yahoo.com




Date: Fri, 30 Mar 2001 00:28:08 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: Plugin error in Eudora 5.0.2

At 09:14 29/03/01 +0200, Ron Bessems wrote:
> > >True, true, BUT in that global pointer i've allocated a
> > >structure, and in that structure i use pointers
> > >to chars, thus i have to free them before i free the
> > >global pointer. That is the whole idea of
> > >ems_plugin_finish.
> >
> > I think you are wrong. The idea of "ems_plugin_finish()" -
> > is not freeing global memory. This is the role of
> > "ems_free()". In the latter routine you should free both
> > your char pointers and the global array of these pointers itself.
>
>Then tell me how i should determine if the pointer passed to
>ems_free is the structure so that i can cast it to a structure
>and free the different chars in there without comparing memory
>address. I say this is just a big mistake by the developers.
>
>Lets quote the documentation on this one shall we:
>
>--- EMS API page 28
>For Windows, the ems_plug_init function must allocate this storage
>and return a pointer to it in the location pointer to by ythe global
>parameter. Eudora will then pass this pointer into all other translation
>API calls for that plugin-in. It should be de-allocated in the
>ems_plug_in_finish function
>---
>
>Any questions ?

You force me to read the documentation at last. It is good.

They say:

"ems_plugin_finish()... gives the plug- in a chance to free 
allocated memory, save state information, etc."

"ems_free()... is called by Eudora to free data structures 
passed from a plug-in to Eudora. This data includes 
strings, addresses, and the MIME type data structure."

This means that your private things (which you do not pass 
to Eudora) you must free in "ems_plugin_finish()" (I was 
wrong in my previous EMail), and the things being passed to 
Eudora (such as icons, MIME data) you must free in 
"ems_free()". I think that your error is that you tried to 
free all your data (including private things and things 
that have been passed to Eudora) in "ems_free()", while 
this function is not designed to do that.

For example, if your structure contains pointer to HICON 
with your icon passed to Eudora, then you must free it in 
"ems_free()" and set this pointer (which is a member of 
your structure) to NULL - in order to determine in the 
future that you must not free it. But don't free all your 
structure in "ems_free()" (as well as other pointers to 
your private data, which are members of the structure) - it 
is written in the doc. There is "ems_plugin_finish()" for such things.

Such (or similar) approach will help you to temporary 
allocate memory needed for working inside, say, 
configuration menu. Upon exiting from this menu 
"ems_free()" will be called, and "ems_plugin_finish()" - 
will not be called. By the way, this may happen several 
times - according to how many times a user will enter the configuration menu.

This is what I understood from the spec. But since I did 
not use these functions, maybe I'm wrong.

> > By the way. In spite of I don't use both of these
> > functions, I wrote some notes for myself, when I was
> > developing plug-in for Eudora v5.0.2.01. And while reading
> > them now, I found out that:
> >
> > - "ems_free()" is called 2 times on exiting from
> > configuration menu and 4 times on exiting from Eudora,
> > before "ems_plugin_finish()".
> >
> > - "ems_plugin_finish()" is called once on exiting from
> > Eudora, after "ems_free()".
> >
> > This means that you should avoid assumptions that these
> > your functions (at least "ems_free()") will be called only
> > once. You may crash if you try to free the same memory twice.
>
>In the end i've written wrappers for "free" and "malloc"
>so i could track memory locations, but I did not find this
>behavior you are talking about.

Maybe it depends on Eudora version, Windows version, plugin type, etc.

>But come on,... isn't that a nice bug also,... freeing
>the same memory multiple times... I think that Eudora developers
>didn't care too much about the plugin API. They would have
>updated the docs, extended it and found/fixed these bugs by
>now if they did care.

I would assign NULL to pointers that I have set free, and 
check them before trying to free the memory they point to. 
This way we can avoid freeing the same memory twice.


Date: Thu, 5 Apr 2001 11:13:10 -0400
From: Benjamin Scott-Hopkins <benjamins at learningworlds dot com>
Subject: Eudora's "Send" event...

Thank you for your time, and please bear with me -- I am still quite new to
the mail add-on scene.

I recently wrote an app for Outlook, and am trying to port it to Eudora. I
got the SDK, and read through the example files... I was unable to find any
reference to what outlook would call the send event -- after the user clicks
"Send" but before the message is actually sent -- does Eudora provide a way
to act here (Like for an automatic spellchecker, etc.)? Also can anyone
point me in the direction of some sample code?

Thank you very much,
Benjamin

-- 
Benjamin Scott-Hopkins
benjamins at learningworlds dot com                 
Gertrude Stein Repertory Theatre
Learning Worlds

Date: Fri, 6 Apr 2001 15:20:42 -0400
From: Benjamin Scott-Hopkins <benjamins at learningworlds dot com>
Subject: FAR* globals -- what does it do?

I'm sorry to bother the list with what I suspect is a fairly obvious
question, but I'm trying to simultaneously learn the Eudora API and a lot of
the general MFC principles as well... Essentially I'm just replacing bits of
the example code until it breaks, and then trying to fix it. (:

My current question is about FAR* globals, a very popular argument that many
functions get passed in the pseudosign example... Why is it? My best guess
is that it contains information about Eudora's window or graphic space...
dialogue boxs seem to rely on it, anyway.

As I say, I reckon that this is pretty basic stuff, but you gotta start
somewhere.

Thank you for your time,
Benjamin


-- 
Benjamin Scott-Hopkins
benjamins at learningworlds dot com                 
Gertrude Stein Repertory Theatre
Learning Worlds

--------------------------------------------------------------------
Words scare not him who blenches not at deeds.

-= Sophocles

Date: Fri, 06 Apr 2001 15:43:37 -0400
From: Alan Davies <aland at steltor dot com>
Subject: Re: FAR* globals -- what does it do?

The 'globals' pointer is just a void * that Eudora will keep
for you between ems_plugin_init() and subsequent callbacks.

You can put anything you want in here, but I never needed
to use it. Perhaps it would be useful if the same plugin
could be initialised multiple times, but I don't know enough
about emsapi to know if this is possible.

(btw, FAR is a legacy thing from the WIN16 days, it's ignored
in win32.)

--Alan

At 15:20 2001-04-06 -0400, Benjamin Scott-Hopkins wrote:
>I'm sorry to bother the list with what I suspect is a fairly obvious
>question, but I'm trying to simultaneously learn the Eudora API and a lot of
>the general MFC principles as well... Essentially I'm just replacing bits of
>the example code until it breaks, and then trying to fix it. (:
>
>My current question is about FAR* globals, a very popular argument that many
>functions get passed in the pseudosign example... Why is it? My best guess
>is that it contains information about Eudora's window or graphic space...
>dialogue boxs seem to rely on it, anyway.
>
>As I say, I reckon that this is pretty basic stuff, but you gotta start
>somewhere.
>
>Thank you for your time,
>Benjamin
>
>
>--
>Benjamin Scott-Hopkins
>benjamins at learningworlds dot com
>Gertrude Stein Repertory Theatre
>Learning Worlds
>
>--------------------------------------------------------------------
>Words scare not him who blenches not at deeds.
>
>-= Sophocles


Date: Mon, 9 Apr 2001 13:49:28 -0400
From: Benjamin Scott-Hopkins <benjamins at learningworlds dot com>
Subject: Dialogue boxes during ems_translate_file()

I'm writing an Q4_TRANSMISSION translator, and I'm trying to communicate
with the user during the ems_translate_file() function... right now this is
really just for debugging purposes...

I'm still used to Outlook programming in *gasp* Visual Basic... what I'd
like is something akin to the MsgBox() functionality... I built a dialogue
box, and am calling it:

     int trsenc = *((int FAR *) (globals));
     CTestDlg testDlg(trsenc);
     int ret = testDlg.DoModal();

int globals is, so far as I can tell, completely unecessary, and this code
works fine in other functions. I had hope that in this case, whenever the
user clicked "Send" it would pop up my special dialogue... instead it pops
up an assertion failure. Any thoughts?

Thank you,
Benjamin

-- 
Benjamin Scott-Hopkins
benjamins at learningworlds dot com                 
Gertrude Stein Repertory Theatre
Learning Worlds

--------------------------------------------------------------------
Words scare not him who blenches not at deeds.

-= Sophocles

Date: Mon, 09 Apr 2001 14:19:07 -0400
From: Alan Davies <aland at steltor dot com>
Subject: Re: Dialogue boxes during ems_translate_file()

Did you do a AFX_MANAGE_STATE(AfxGetStaticModuleState()) before
opening the dialog?

--Alan


At 13:49 2001-04-09 -0400, Benjamin Scott-Hopkins wrote:
>I'm writing an Q4_TRANSMISSION translator, and I'm trying to communicate
>with the user during the ems_translate_file() function... right now this is
>really just for debugging purposes...
>
>I'm still used to Outlook programming in *gasp* Visual Basic... what I'd
>like is something akin to the MsgBox() functionality... I built a dialogue
>box, and am calling it:
>
>      int trsenc = *((int FAR *) (globals));
>      CTestDlg testDlg(trsenc);
>      int ret = testDlg.DoModal();
>
>int globals is, so far as I can tell, completely unecessary, and this code
>works fine in other functions. I had hope that in this case, whenever the
>user clicked "Send" it would pop up my special dialogue... instead it pops
>up an assertion failure. Any thoughts?
>
>Thank you,
>Benjamin
>
>--
>Benjamin Scott-Hopkins
>benjamins at learningworlds dot com
>Gertrude Stein Repertory Theatre
>Learning Worlds
>
>--------------------------------------------------------------------
>Words scare not him who blenches not at deeds.
>
>-= Sophocles


Date: Thu, 12 Apr 2001 17:50:19 -0400
From: "David A. Cobb" <superbiskit at home dot com>
Subject: Hello, just a test

Hello,
         I just began using Eudora.  This is a test so I can set up my 
filter correctly for the list.  Just throw it away (or just say "Hello" back).

David A. Cobb, The Superbiskit !
Software Engineer, Public Access Advocate, All around nice guy.
Get my PGP key at
:<http://pgpkeys.mit.edu:11371/pks/lookup?op=get&search=superbiskit>
Fingerprint=0x{6E3E_DB8C_2E8C_4248_62B2_FE29_08EE_CF0A_3629_E954}
"By God's Grace I am a Christian man, by my actions a great sinner."
--The Way of a Pilgrim, R. M. French [tr.]
<---.----!----.----!----.----!----.----!----.----!----.----!----.---->


Date: Tue, 01 May 2001 07:59:11 -0700
From: Thomas Smith <tom at uiscan dot com>
Subject: On Display translator.

Hi all - I have an On-Display translator that works well, except for one 
small detail.

When the user clicks on the translate button in the body of the message, 
the translation occurs and puts the results in the message after the 
translation button/link.

Is there a way to remove this translator after a message is translated so 
that only the resulting text is shown?

Thanks very much,

Tom



----------
Tom Smith

<mailto:tom at uiscan dot com>tom at uiscan dot com
Ultra Information Systems
(250) 542-0112







----------
Tom Smith

<mailto:tom at uiscan dot com>tom at uiscan dot com
Ultra Information Systems
(250) 542-0112





Date: Wed, 9 May 2001 11:28:06 +0200
From: Petr Prazak <prazak at grisoft dot cz>
Subject: New API

Hello Jeff,


 When will be the new version of EMS API (4.5) documented ?

 I noticed that ESP.DLL exports few new functions as

          1    0 00035510 ems_allocate
          5    4 000354A0 ems_eudora_mode_notification
          7    6 00035930 ems_idle
          8    7 00035AA0 ems_mbox_context_folder
          9    8 00035A20 ems_mbox_context_hook
         10    9 000359B0 ems_mbox_context_info
         18   11 000357A0 ems_wants_full_message
 
Would you please document them ?


Best regards,
  Petr Prazak


Date: Wed, 25 Jul 2001 17:02:28 +0100
From: Paul Emberson <paul at fsc.co dot uk>
Subject: DLL trouble.

Hello, I need someone who knows about DLL's.

I want my plugin DLL to make calls to a separate DLL I've written.  I have 
written a command line program to test my DLL and this works fine.  I am 
implicitly linking to it, exporting all the classes using __declspec(export).

However, when I try to get my Eudora plugin DLL to make calls to my library 
in exactly the same way as the command line program does Eudora completely 
ignores my plugin and nothing works.  As soon as I remove all references 
(take out any calls to functions) to the external DLL, it works again.

Any help would be very much appreciated.

Thanks,

Paul Emberson


Date: Tue, 16 Oct 2001 18:19:43 -0700
From: Matt Tway <EudoraDev at rscubed dot com>
Subject: Newby questions

Hello,

Just joined this list, hope people are still here, the
archive looks pretty dead.

I'm just starting to look at writing a plugin to do some
more advanced message filtering than can be done with
the current filters. 

I am trying to figure out how to add an additional header to
each message as it is recieved.
"x-spam-check: [some text here]"

I also need to get the full text of the message so I can scan it.

I don't want to change the "content" of messages just tag
them so the regular eudora filters can then be used to sort 
things out.

I have copied the squish example but am having trouble with it.

I think I should be modifying the translate_file routine but am
getting in a loop between can_translate and translate or losing
the data altogether.

Anybody have a more straight forward example geared more toward
what I and trying to do ?

thx

Matt



Date: Mon, 22 Oct 2001 21:57:47 +1000 (EST)
From: james <james at programmer-software dot com>
Subject: Compiling plugins ?

Hi Everyone,

I dont know much about compiling on the microsoft os, and have not been
able to get my test plugin to get noticed by eudora 5.1

Have added code like :-

__decspec( ddlexport ) emd_plugin_version 
ditto

and have been able to compile using cygwin :-

gcc -c test.cpp -s -mwindows -o test.o 

dllwrap --export-all --output-def test.def --implib libtest.a 
        -o test.dll test.o

The test.def file has things like :- 
EXPORTS 
	ems_plugin_init@16 @1;
	ems_plugin_config@8 @2; 
	ems_plugin_finish@4 @3; 
	ems_can_translate@16 @4;
	ems_plugin_version@4 @5; 
	ems_translate_file@24 @6; 
	ems_translator_info@8 @7;

The resulting test.dll in the eudora directory is not found though.
Know even less of VC++ as I can not even get the samples to compile (as
it cant find afxwin.h ).

Are there any instustions on compiling up a eudora plugin using cygwin ?
If not, are there some on how to get VC++ to compile a sample plugin ?

Thanks 
james.






Date: Tue, 23 Oct 2001 02:24:59 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: Compiling plugins ?

At 21:57 22/10/01 +1000, james wrote:
>The resulting test.dll in the eudora directory is not found though.

Place it into "plugins" directory.


Date: Tue, 23 Oct 2001 11:46:37 -0400
From: Alan Davies <aland at steltor dot com>
Subject: Re: Compiling plugins ?

I don't know much about compiling with cygwin; check that
the necessary symbols are really exported by the DLL; a tool
such as 'Depends', the Dependency Walker that comes with
Visual C++ will do this.

Also check, of course, that you've put the plugin in the
correct directory.

It shouldn't be difficult to get the sample projects to
compile; just load up the appropriate workspace into VC++
and hit 'Compile'. It's probably easier if you try to
get one of these working and then modify it to suit your
needs, rather than coding your own plugin from scratch-
there are quite a few pitfalls that will cause the plugin
to just fail.

If VC++ can't find afxwin.h it's got big problems; this is
a fundamental part of MFC. Check to make sure that the file
is on your machine (In a directory something like
C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include ),
what version of VC++ are you running?

Hope this helps,

--Alan


At 09:57 PM 22/10/2001 +1000, james wrote:
>Hi Everyone,
>
>I dont know much about compiling on the microsoft os, and have not been
>able to get my test plugin to get noticed by eudora 5.1
>
>Have added code like :-
>
>__decspec( ddlexport ) emd_plugin_version
>ditto
>
>and have been able to compile using cygwin :-
>
>gcc -c test.cpp -s -mwindows -o test.o
>
>dllwrap --export-all --output-def test.def --implib libtest.a
>         -o test.dll test.o
>
>The test.def file has things like :-
>EXPORTS
>         ems_plugin_init@16 @1;
>         ems_plugin_config@8 @2;
>         ems_plugin_finish@4 @3;
>         ems_can_translate@16 @4;
>         ems_plugin_version@4 @5;
>         ems_translate_file@24 @6;
>         ems_translator_info@8 @7;
>
>The resulting test.dll in the eudora directory is not found though.
>Know even less of VC++ as I can not even get the samples to compile (as
>it cant find afxwin.h ).
>
>Are there any instustions on compiling up a eudora plugin using cygwin ?
>If not, are there some on how to get VC++ to compile a sample plugin ?
>
>Thanks
>james.


Date: Wed, 31 Oct 2001 20:52:48 -0800
From: Matt Tway <EudoraDev at rscubed dot com>
Subject: eudora-emsapi : Add header to an incoming email

Hi,

Does anyone know how, if its possible, to add
another header to an incoming Eudora message...

Like:

X-My-Header : some stuff here.

I can add it to the top of the email body but it looks
unprofessional when I do that.

thx

Matt



Date: Fri, 02 Nov 2001 04:42:02 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: eudora-emsapi : Add header to an incoming email

At 20:52 31/10/01 -0800, Matt Tway wrote:
>Does anyone know how, if its possible, to add
>another header to an incoming Eudora message...
>
>Like:
>
>X-My-Header : some stuff here.

I think you should use "ON_TRANSMISSION" translator with 
permanent "EMSR_NOW" in "ems_can_translate()" function, and 
with the following loop in "ems_translate_file()" function:

       /* Inserting your header: */
       for( ; ; )
          if( fgets( Buf, BufLen, ifd ) == NULL )
             break;
          else if( strcmp( Buf, "\n" ) == 0 ) {
             fprintf( ofd, "%s\n\n", X_My_Header );
             break;
          }
          else
             fputs( Buf, ofd );

    /* Appending the rest of the message: */
    if( ! feof( ifd ) && ! ferror( ifd ) && ! ferror( ofd ) )
       for( ; ; ) {
          char c;

          c = (char) getc( ifd );
          if( feof( ifd ) || ferror( ifd ) )
             break;
          putc( c, ofd );
          if( ferror( ofd ) )
             break;
       }

Consider the above only a general frame, you should 
customize it for your circumstances.


From: "Damon Gallaty" <dgal at citicom dot com>
Subject: Buttons with defaults: EMSF_DEFAULT_Q_ON
Date: Wed, 7 Nov 2001 10:47:56 -0500

I have a plug-in that's been working with Eudora 4.x just fine. It displays
a button on the toolbar in the message composition window, and uses
EMSF_DEFAULT_Q_ON to turn the button on by default. However, in Eudora 5.0.x
and 5.1, the button is not defaulting to on, even though I haven't changed
any code.

I'm curious if anyone else is using EMSF_DEFAULT_Q_ON successfully with
Eudora 5.0.x or 5.1. If so, can you tell me what your settings are for the
transInfo->flags member that you set in the ems_translator_info() function?
Something must have changed to cause this to work differently, or perhaps
not at all.

- Damon


Date: Sat, 22 Dec 2001 20:00:10 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: New version (v2.00.00) of MimeHeaders plug-in

Eudora mailer has a problem of decoding MIME-encoded headers, such as the 
following:
    =?iso-8859-5?B?vuLS1eI6IFtwcmddIFBhZ2Ugb3B0aW9ucyBpbiBEZWxwaGk=?

In case someone is interested to get a new version (v2.00.00) of my 
"MimeHeaders" plug-in for partial solving this problem, this plug-in may be 
taken free of charge from the following WEB-pages:
    http://eudora.interweb.be/plugins.html
Full link:
    http://eudora.interweb.be/MimeHeaders.zip

Its links on my home-page are the following:
    http://www.geocities.com/alexl1118/Sasha/Programs/Plugins/Eudora/MimeHeaders/
Full link:
    http://www.geocities.com/alexl1118/Sasha/Programs/Plugins/Eudora/MimeHeaders/MimeHeaders_2.00.00.zip


Date: Thu, 10 Jan 2002 14:02:22 -0700
From: "Tony K." <tony.kwok at 3web dot net>
Subject: C (not C++/MFC) example....

Hi everyone,

It would be of considerable help to me (and I believe to many others) if someone could contribute a simple plugin "shell" or "example" in clean, portable C coded directly to Win32 API (as opposed to C++/MFC).

thanks in advance...
tk
Anthony K. Transportation Systems - no HTML mail please. 

Date: Thu, 10 Jan 2002 19:13:53 -0500
From: Alan Davies <aland at steltor dot com>
Subject: Re: C (not C++/MFC) example....

At 02:02 PM 10/01/2002 -0700, Tony K. wrote:
>Hi everyone,
>
>It would be of considerable help to me (and I believe to many others) if 
>someone could contribute a simple plugin "shell" or "example" in clean, 
>portable C coded directly to Win32 API (as opposed to C++/MFC).

(btw, If you've written the code to the Win32 API, in what
way would it be portable?)

I may be missing something but I don't see where the EMSAPI
examples rely on MFC heavily, or where they use much non-C
code.

If I get a chance I'll try converting one of the example
plugins, just to double check this

--Alan


Date: Fri, 11 Jan 2002 19:00:37 +0200
From: Alexander Lishansky <alexl at surfree.net dot il>
Subject: Re: C (not C++/MFC) example....

At 14:02 10/01/02 -0700, Tony K. wrote:
>It would be of considerable help to me (and I believe to many others) if 
>someone could contribute a simple plugin "shell" or "example" in clean, 
>portable C coded directly to Win32 API (as opposed to C++/MFC).

I wrote my "MimeHeaders" plugin in plain C. Maybe it will be better if you'll 
try, and then ask questions, if something will go wrong?


Date: Fri, 11 Jan 2002 13:15:15 -0700
From: "Tony K." <tony.kwok at 3web dot net>
Subject: mailConfigP->eudoraWnd (was: C (not C++/MFC))

>I wrote my "MimeHeaders" plugin in plain C. 
>Maybe it will be better if you'll try, and then 
>ask questions, if something will go wrong?

I did "try" and it seems I have my C "shell" more or less working - if there was one available, it would save me two days. That was supposed to be the purpose of the plugin example code included with the kit - to save developers time. As it is, it saves t
ime only to those that use a particular set of development tools. (Just my $0.02) 

But yes, I do have a question:

in a callback into my ems_plugin_init() the pointer to main Eudora Window handle (mailConfigP->eudoraWnd) is null. Why have a pointer instead of the handle itself in this structure in the first place - it presumably can't change, as main Eudora window 
ys open "for the duration"? Is it null by design or am I missing something?  (Incidentally, other elements of the same structure - size and directory are passed by Eudoea and recieved by my instance initialization function corretly).

thanks in advance,
TK

Anthony K. Transportation Systems - no HTML mail please. 

Date: Fri, 11 Jan 2002 16:18:05 -0500
From: Alan Davies <aland at steltor dot com>
Subject: Re: mailConfigP->eudoraWnd (was: C (not C++/MFC))

At 01:15 PM 11/01/2002 -0700, Tony K. wrote:
>in a callback into my ems_plugin_init() the pointer to main Eudora Window 
>handle (mailConfigP->eudoraWnd) is null. Why have a pointer instead of the 
>handle itself in this structure in the first place - it presumably can't 
>change, as main Eudora window sta
>ys open "for the duration"? Is it null by design or am I missing 
>something?  (Incidentally, other elements of the same structure - size and 
>directory are passed by Eudoea and recieved by my instance initialization 
>function corretly).

I don't know. Sometimes a pointer is used in this way
so that a NULL pointer can indicate a special case;
i.e. you're not supposed to be doing any UI code in
ems_plugin_init(). They could have indicated this
with a NULL HWND I suppose though, but perhaps they
wanted to be more explicit.

--Alan


Last updated on 11 Jan 2002 by Pensive Mailing List Admin