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. 
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.  
  | 
    |