OK. Some further testing has thrown up the following …
1) The line that fails is
Set oMsg = Client.ClientState.CommandMessage
It fails despite the On Error arround it. Since it never seems to get the message from this line I have removed it. The ‘Groupwise.ItemMessageIDFromView()’ is now used as the source of the opening email.
2) The application level event of OnItemRead causes Groupwise.ItemMessageIDFromView() to fail when used against the Shared Folder’s messages collection.
Using the email level event of OnOpen doesn’t seem to suffer from this problem.
3) The Catastrophic Failure message has the same title as the access violation – Sorry, the applet could not be executed. The message is from Formativ, or at least passed through by Formativ.
Now I know what to avoid doing I can probably do so, hopefully it won’t limit the actual development.
A few questions …
A) Is it better (faster) to get a message using the GetMessage( <id> ) function at Account level or by using the SelectedFolder.Messages( <id> ) function.
Some of our users will happily harbour thousands of emails in any one folder so I need to know which method is least likely to be affected by numbers of emails. Logically I feel it ought to be the Account level one but am not sure.
B) Is there any difference between the OnItemRead and OnOpen events?
What happens if someone is using the Quickviewer. Do they still get an event?
C) Is it possible to integrate my Applets with the toolbar in the QuickViewer. They get the standard Reply/Forward buttons but not my additional ones.