Passed to the C3POServer during UI modification operations. The C3PO can call back through this interface to discover UI contextual information. ClientState serves as the base class for client-specific subclasses. The GroupWise client issues the GWClientState object as the specific ClientState derivative. Other clients have their own subclasses. A C3PO should never assume a specific ClientState subclass. Rather, the ClientName, MajorVersion, and MinorVersion properties should be checked to identify the appropriate ClientState subclass.


The following table lists the properties for this class, along with access and descriptions.






String. An optional description of why the Dial command is being called



Object. A list of called phone numbers, if the event being handled is a Dial event.



String. The name of the C3PO client. Because each C3PO client typically provides a subclass of the ClientState object, the ClientName, MajorVersion, and MinorVersion are used to differentiate them. The ClientName is assumed to be non-translatable and alike for all versions of a client.



Object. Returns account object that represents the currently selected account in the client.



Long. The major version number for the client.



Long. The minor version number for the client.


GWCommand BuildCommand( String Context, String PersistentID, GWCommand BaseCommand, Parameters parms )
  • Exposing this method allows a C3PO to build commands from persistent IDs available to it. Building a GWCommand through this interface implies that the command will call out to applicable C3PO software. For example, a C3PO must not bind to and throw a command as part of executing that command. Also, circular chains of commands are not detected. There is no built-in protection against infinite loops.
  • Rather than a Flag Not Set token-based command, the client builds a Flag Set token-based command followed by a call to BuildCommandAggregate. This implies that the GWMenu object knows what context to support when it calls the build object. The applicable context appears as a parameter on the BuildGWMenu and BuildGWToolbar items.
  • The context in this command refers to the context for the command. The context string contains either the class of a GW data object (such as GW.MESSAGE.MAIL.X) or the class of a specific GW user interface (such as GW.CLIENT.WINDOW.BROWSER).
  • BaseCommand is the command being composed (overridden).
  • Parms is the parameter list for the command. Some clients may return NULL for any invocation of this method.
String BuildPersistentID( long ID, [variant ObjFrom] )
  • Used to build a persistent ID from another integer ID in the system. For example, the C3POManager invokes this method to change a menu ID into the associated persistent ID.
  • ID in this command is the integer identifier that is being permuted into a persistent ID.
  • ObjFrom is optional, and is the object that identifies the ID. For IDs from the toolbar, the ObjFrom is the IDispatch pointer for the GWToolbar object. For menu IDs, ObjFrom is the IDispatch pointer for the GWMenu object. Because GroupWise 5.x and 6.x always omits this parameter, C3PO clients should be able to uniquely distinguish a persistent ID from any integer ID in the system.
  • Returning an empty string, NULL, or an error are all interpreted to mean no persistent ID is available.
PresenceUpdated(DIGWPresence2 *pDispPresence)
  • Call this method whenever your presence state changes, so that it can be reflected in the client user interface