The GroupWise 5 Object API: An Object-Oriented Picture of the Data Store
Articles and Tips: article
01 Sep 1996
Describes the object-oriented nature of the Object API. Also gives examples of Object API use for Visual Basic and Delphi.
The GroupWise 5 Object API lets you see, use, and manipulate the GroupWis data store from outside GroupWise 5. The Object API lets you use the GroupWise 5 Address Book and document management capabilities, and lets you mail messages, appointments, tasks, notes, and phone messages.
The initial release of GroupWise 5 will implement the Object API only under Windows 95. You can use the Object API through OLE languages such as Visual Basic* and Delphi and object oriented languages such as C++. The Object API supports OLE Automation, which is an industry standard for interfacing applications.
The Object API does not define a user interface other than a login dialog box. An application with its own UI can use the Object API to access the GroupWise information store. Third party applications which run under the GroupWise 5 client can use Custom 3rd Party Objects(C3POs) to access and manipulate the GroupWise information store. C3POs must be registered in the Windows 95 system registry, but the Object API itself does not use the system registry.
The GroupWise 5 Object API design is based on state of the art object oriented techniques and theory. Object API objects provide an organized representation of the GroupWise information store. An object contains the relevant properties (data) and the methods (functions) which manipulate the properties. New objects may be defined without affecting older applications that are not aware of the new objects. Additional properties and methods may be added to existing objects without changing the previous functionality of the object.
Thus, new versions of the Object API are inherently backward compatible. Any development tools that can access OLE Automation objects can be used to develop applications and can get GroupWise 5 information.
OLE Automation can manage collection objects defined in the Object API. A collection object is a special object that provides a uniform means of managing a number of objects of a given type.
Object API versus Other APIs
The GroupWise Object API does not replace any other API. However, other APIs can be used in conjunction with the Object API. GroupWise 5 also supports the Microsoft Messaging API (MAPI), Dynamic Data Exchange (DDE), Open Document Management API (ODMA), and the Third-Party Handler (TPH).
MAPI is a standard set of messaging functions used to create mail enabled applications. However, since MAPI is focused on E mail, it is not general enough to handle other GroupWise functions such as appointments, tasks, and calendars. An application might use the Object API to access the GroupWise information store and use MAPI to interface the application to another E mail system. (For more information about using MAPI with GroupWise, see the article on MAPI support in this issue of Developer Notes.)
GroupWise can act as a DDE server and will execute tokens or commands. GroupWise 5 will support ODMA, which is a standardized interface that fits between applications and document management systems. GroupWise 5 also supports theThird-Party Handler, which provides the ability to trap and process tokens that are generated by GroupWise. However, the Object API will provide all of the information and functionality to interface with GroupWise 5 that is required to implement many applications.
More than any other API, the GroupWise 5 Object API opens the GroupWise system to third party development. The GroupWise Object API is easier to use than APIs such as MAPI because it provides a higher level interface with GroupWise. It provides access to the GroupWise 5 information store free from the complexity of the underlying system and allows you to focus on using the information encapsulated in the objects.
Using the GroupWise Object API
The first step to using the Object API in a third party application is to get a handle to the GroupWise Application object. You can use either Microsoft Visual Basic or Borland Delphi as a development tool.
If you are using Visual Basic, use the following line to get a handle to the GroupWise Application object:
Set objGroupWise = CreateObject( "NovellGroupWiseSession" )
The variable objGroupWisemust be of type variant or object.
The next step is to log in to GroupWise by invoking the Application object Login method.
vntReturnVal = objGroupWise.Login( txtUserID, txtCommandLine )
The variable vntReturnVal is of type variant and must be present in the statement even if it is not used otherwise. The string txtUserID is the user ID name. The string txtCommandLine contains any valid command line parameters.
Now your application is logged in to GroupWise and the Application object properties are valid. Information store contents are accessible through the Application object.
From Delphi, use the following statements to get a handle to the GroupWise Application object and to log in to GroupWise. Make sure you declare OleAuto in the Uses section and objGroupWisein the Var section.
To get the handle to the GroupWise Application object from Delphi, use:
objGroupWise := CreateOleObject( 'NovellGroupWiseSession' );
To log in to GroupWise, use:
objGroupWise.Login( txtUserID, txtCommandLine );
The GroupWise 5 Object API Objects
The Object API defines the objects below.
Figure 1: GroupWise 5 Object Model.
* Originally published in Novell AppNotes
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.