4.1.1 Mini Servers vs. Full Servers

When creating a server application, you can choose whether to make your application a mini server or a full server.

4.1.1.1 Mini Server Applications

Mini servers are server applications that cannot run stand-alone; they can only be called from client applications. Mini-server applications have the following limitations:

They cannot open and save files independently.

They only support embedded objects.

They have a simplified user interface.

Microsoft Draw (included with Word for Windows 2.0) is a good example of a mini server. You should consider making your application a mini server when you want to provide limited functionality or you want to create a server that will work with specific kinds of client applications. Small visual object servers—such as Microsoft Draw or Microsoft WordArt—don't need to save files independently and are designed to be used in conjunction with large client applications.

4.1.1.2 Full Server Applications

Full servers are stand-alone applications that can create and edit files, independently of other applications. Full OLE servers have some or all of the following capabilities:

They can create, open, and save files.

They can link or embed objects.

They can have additional OLE-specific user-interface elements.

They can be an OLE client themselves.

Microsoft Excel is a good example of such an application and has all the capabilities of a full server. Full servers usually have additional user-interface elements that change during the editing process. For example, when a full server starts editing an embedded object, menu commands may be different from the normal non-server application menu commands; see Chapter 3, "Ole User Interface.".

4.1.1.3 Choosing between a Mini Server or Full Server

If you have an existing application that can read and write files, your application should probably be a full server. If you have a large application that already exists as a stand-alone application and you want to add linking and embedding, a full server makes the most sense.

If you are creating a small application that exists primarily to provide added functionality to other applications, you may want to make it a mini server. Small utility applications make good mini servers.