Server Extension Programmer's Guide:
Server Extension Overview

This topic introduces the capabilities of writing eRoom Server Extensions.

Who should read this guide?


eRoom Server Extension Programmer's Guide is for experienced application developers. In order to successfully write Server Extensions, you should be able to write programs in either C++ or in a scripting language, such as Visual Basic, VBScript or JavaScript.

What is an eRoom Server Extension?


An eRoom Server Extension is a custom application that you create in order to modify how eRoom behaves in response to certain events or how eRoom appears. eRoom currently supports four types of server extension programs: Customer Viewers, Custom Commands, Synchronous Event Handlers, and UI Event Handlers. In addition, modifications you make to eRoom pages and dialogs are also considered extensions. We have defined a model for how to implement every type of extension. You need only fill in the implementation. This usually entails either implementing a main function in a scripting language or implementing the methods of an interface that we have defined. In either case eRoom can call into these well-defined modules in order to execute the code you've written.

What kinds of things can you do with Server Extensions?


Server Extensions allow you enormous flexibility in terms of customizing eRoom to better suit your needs. Here are some examples of what each type of extension is best equipped to do, but this is by no means an exhaustive list of what you can do with Server Extensions.

Custom Commands

Custom commands allow you to add your own commands to the command bar in eRoom pages.

  • Write a command that checks the spelling and grammar for selected items in an item box.

  • Write a command that publishes the selected items and/or its custom fields to another web site or eRoom.

  • Write a command that will add up the values in a specified database column from all the rows.

  • Write a command that will change the status of selected items in a database.

Custom Viewers

Custom viewers allow you to write code that displays files with certain extensions.

  • Write code that will display the contents of a MS project file so that any eRoom user can view MS project files uploaded to eRoom even if they do not have it installed on their client machine.

Synchronous Event Handlers

UI Event Handlers allow you to hook into any of a number of supported events so that you can implement additional processing in response to the event.

  • Trap events, like erSynchEventType_Authenticate, in order to perform your own authentication whenever users log into an eRoom.

  • Trap events, like erSynchEventType_AuthenticationFailed, in order to compile statistics on or be alerted about failed login attemps.

  • Trap events, like erSynchEventType_AddFile and erSynchEventType_ReplaceFile, in order to perform virus checking on files before they are uploaded to the server and prevent them from being uploaded if a virus is detected.

  • Trap events, like erSynchEventType_EditDBRow, in order to implement your own collaborative workflow against a database item.

UI Event Handlers

UI Event Handlers allow you to hook into any of a number of supported events so that you can either display your own UI instead of or in addition to eRoom's UI.

  • Trap events, such as create user or create group, in order to collect additional information from the user.

  • Trap events, like create room, in order to display your own UI.

Custom User Interfaces

Custom User Interfaces allow you to replace the eRoom default Frame.asp file, which controls the layout of eRoom pages, dialogs, and popup dialogs. Custom User Interfaces also allows you to replace eRoom's cascading style sheets. In this manner, you can transform the look of eRoom to suit your needs and taste.

Custom Dialogs

The eRoom Dialog Toolkit enables you to build additional pages for eRoom that match the appearance of existing eRoom pages. You could do that by copying and pasting HTML, but to make it easier we've provided a dialog toolkit.

Using the Server Access API


Any Server Extension will most likely use the Server Access API (SAAPI) to manipulate eRoom objects and otherwise respond to the event that triggered it. It is therefore recommended that you become familiar with programming with SAAPI before you start to write your Server Extensions. Refer to the Server Access API and Server Access API Programmer's Guide for more details about how to write programs using SAAPI.

Getting Help


When you have a question about SAAPI, you can refer to this Programmer's Guide, or any of these sources:

  • Reference pages: For detailed descriptions of every object, interface, method and property defined by SAAPI, see the language reference.

  • Samples: The SAAPI toolkit ships with several programming samples which are intended to help you learn the API. In many cases, you may find that one of the samples tackles a problem similar to the one you are trying to solve, and you can use the sample as a starting point for your work.