Novell is now a part of Micro Focus

Moving from GroupWise 4.1 to GroupWise 5 APIs

Articles and Tips: article

RUSS LUNDBERG
Developer Support Engineer
Developer Support

01 Nov 1996


This article helps developers know what to expect when moving from GroupWise 4.1 to GroupWise 5. The 4.1 APIs included these elements:

Moving from GroupWise 4.1 to GroupWise 5 APIs

Windows Open API. This interface is a third party DLL handler that allows developers to see events from GroupWise. Tokens (events) are generated when macros or user interaction takes place. The tokens generated are passed to a third party DLL function called HandleTokenValReturn. This allows developers to trap events that take place within GroupWise to add or remove GroupWise functionality.

Macros. Macros can be used by experienced and non-experienced users. Experienced users are able to write macro language code to extract GroupWise data store information or to cause events to occur such as display a dialog, etc. Non-experienced users are able to record macros to automate repetitive commands within GroupWise.

Dynamic Data Exchange (DDE). GroupWise has a DDE interface that allows developers to send tokens to GroupWise from other applications. The GroupWise DDE appserver name is: GroupWise. There are several topics you can choose from. You can use the Topic "Command" to send tokens that don't return a value. You can use the topic "Request" to send tokens to GroupWise that return a value. This interface is generally slower than other available interfaces but can be implemented quickly.

Custom Message/Custom Commands. This interface allows developers to use a set of triggers in GroupWise to activate a DLL or EXE file. The triggers for Custom Commands are Startup, Shutdown, and Item arrival. Using Custom Messages there is a list of 17 different events that can be trapped, from Compose to Reply.

GroupWise 5 16-Bit APIs. GroupWise 5 16-bit version has basically the same APIs available as GroupWise 4.1. GroupWise 5 16-bit does access the GroupWise 5 data store, and a few changes to some of the AddressBook tokens were made. Besides that, the APIs and their functionality remain the same. Still it is a good idea to test your application that currently works with GroupWise 4.1, to make sure it works with GroupWise 5 16-bit version.

GroupWise 5 32-bit APIs. These included the following:

Windows Open API:

  • This interface is a carry-over from GroupWise 4.1 but has been converted to 32-bit DLL. The GroupWise 4.1 16-bit DLL will not work directly on its own under GroupWise 5. It must be converted to a 32-bit DLL.

  • The structures used in this interface are also the same as GroupWise 4.1 structures. So, most of the 16-bit code can be ported without modification.

  • GroupWise 5, does not include macro support. So, if your third party DLL runs any macros, they need to be modified to perform all the macro functions within the DLL.

  • Registration of a GroupWise 5 third-party handler is done by adding an entry in the Windows Registry. The following reg files data will add the appropriate DLL entry:

REGEDIT4

[HKEY_CURRENT_USER\Software\NOVELL\Groupwise\Client\Third Party]

"DLL1"="c:\\tphdll\\gwdll.dll""

To add multiple third party DLLs just add another entry for DLL2 like:

"DLL2"="c:\\tphdll\\gwdll2.dll"

Dynamic Data Exchange:

GroupWise 5 has a Token Commander interface that also supports DDE. If you currently have an application that sends DDE messages to GroupWise 4.1, try it with GroupWise 5. Depending on the commands you use, things may work without modification. Don't be surprised when your complex filter commands used in GroupWise 4.1 also work in GroupWise 5. Using Filters to get a message VIEWNAME works in GroupWise 5 with a small glitch (only the first 4 characters of the VIEWNAME are returned, [this problem will be fixed]). Most of the tokens used in GroupWise 4.1 also exist in GroupWise 5. The Novell SDK contains a document that lists the GroupWise 5 tokens, and the GroupWise 4.1 tokens that are not supported in GroupWise 5.

New Interfaces with GroupWise 5

Object API:

  • This interface allows developers to access the GroupWise 5 data store without loading the GroupWise client. The Object API is an OLE automation interface that is simple to usewith languages like Delphi and Visual Basic, and can also be used with C/C++ languages but requires at least double the amount of code used in higher level languages.

  • Developers can access GroupWise data store without user interface.

  • Using the Object API you can send mail, perform document management functions, extract information from messages, access the AddressBooks and more! The Object API is a full featured API that gives access to GroupWise data and provides functionality to act upon that data, as well as create NEW data. You can actually create your own GroupWise client application using the Object API.

  • Object API sample code can be downloaded from HTTP://DEVSUP.NOVELL.COM/sample.html.

Custom 3rd Party Objects (C3POs):

  • The C3PO interface is a COM interface which replaces the Custom Message/Custom Command interface. This interface allows developers to add Menu and Toolbar items to trigger their application. The events OnReady, OnDelivery, and OnShutDown can all be handled in a C3PO. If you want to replace the current interface for a message type like GW.MESSAGE.NOTE, you can! There is an example included with the Novell SDK called GWNOTES, that replaces the Notes interface. It allows users to drag a GroupWise note to the Desktop to be a reminder. When you click on the desktop Note item it opens the GroupWise Note view, if GroupWise is already loaded. If GroupWise is not loaded then it loads GroupWise and then displays the note.

  • The method for adding custom messages is to append a unique string at the end of one of the default massage types .GW.MESSAGE.MAIL is the default mail message type. For example, if you want to create a custom MYMSG, then you would create a message called GW.MESSAGE.MAIL.MYMSG. Using windows registry entries, you can specify that you want your C3PO to be notified when the user tries to open messages of type GW.MESSAGE.MAIL.MYMSG. If you want to be notified regarding all mail messages, then you would add an entry for GW.MESSAGE.MAILin the registry, that trap the OPEN event and then your C3PO would be notified for ALL messages of type mail for the OPEN event. See the Novell SDK for specifics on C3PO registration.

Other GroupWise APIs. CMC/CSA API allows server access to GroupWise data store. This is available in both GroupWise 4.1 and GroupWise 5. GroupWise 5 supports Extended MAPI 1.0. GroupWise 4.1 supports Simple MAPI. GroupWise 5 includes a Message Logging API. This API allows developers to gather message traffic information from the GroupWise system. The Novell SDK also includes a Name Completion OCX Control, and an AddressBook OCX control. These OCX controls are specific to GroupWise 5.

Copyright 1996 by Novell, Inc. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose without the express written permission of Novell.

All product names mentioned are trademarks of their respective companies or distributors.

Copyright 1997 by Novell, Inc. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose without the express written permission of Novell.

All product names mentioned are trademarks of their respective companies or distributors.

* Originally published in Novell AppNotes


Disclaimer

The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.

© Copyright Micro Focus or one of its affiliates