In addition to transferring objects, you can support user creation of OLE embedded or linked objects by generating a new object based on an existing object or object type and inserting the new object into the target container.
Include an Insert Object command on the menu responsible for creating or importing new objects into a container, such as an Insert menu. If no such menu exists, use the Edit menu. When the user selects this command, display the Insert Object dialog box, as shown in Figure 11.6. This dialog box allows the user to generate new objects based on their object type or an existing file.
Figure 11.6 The Insert Object dialog box
The type list is composed of the type names of registered types. When the user selects a type from the list box and chooses the OK button, an object of the selected type is created and embedded.
Note
For more information about type names and the registry, see Chapter 10, "Integrating with the System."
The user can also create an OLE embedded or linked object from an existing file, using the Create From File and Link options. When the user sets these options and chooses the OK button, the result is the same as directly copying or linking the selected file.
When the user chooses the Create From File option button, the Object Type list is removed, and a text box and Browse button appear in its place, as shown in Figure 11.7. Ignore any selection formerly displayed in the Object Type list box (shown in Figure 11.6).
Figure 11.7 Creating an OLE embedded object from an existing file
The text box initially includes the current directory as the selection. The user can edit the current directory path when specifying a file. As an alternative, the Browse button displays an Open dialog box that allows the user to navigate through the file system to select a file. Use the file's type to determine the type of the resulting OLE object.
Use the Link check box to support the creation of an OLE linked object to the file specified. The Insert Object dialog box displays this option only when the user chooses the Create From File option. This means that a user cannot insert an OLE linked object when choosing the Create New option button, because linked objects can be created only from existing files.
The Display As Icon check box in the Insert Object dialog box enables the user to specify whether to display the OLE object as an icon. When this option is set, the icon appears beneath the check box. An OLE linked object displayed as an icon is the equivalent of a shortcut icon. It should appear with the link symbol over the icon.
Note
If the user chooses a non-OLE file for insertion, it can be inserted only as an icon. The result is an OLE package. A package is an OLE encapsulation of a file so that it can be embedded in an OLE container. Because packages support limited editing and viewing capabilities, support OLE for all your object types so they will not be converted into packages.
At the bottom of the Insert Object dialog box, text and pictures describe the final outcome of the insertion. Table 11.2 outlines the syntax of descriptive text to use within the Insert Object dialog box.
Table 11.2 Descriptive Text for Insert Object Dialog Box
Function |
Resulting text |
Create a new OLE embedded object based on the selected type. |
"Inserts a new Type Name into your document." |
Create a new OLE embedded object based on the selected type and display it as an icon. |
"Inserts a new Type Name into your document as an icon." |
Create a new OLE embedded object based on a selected file. |
"Inserts the contents of the file as an object into your document so that you may activate it using the application which created it." |
Create a new OLE embedded object based on a selected file (copies the file) and display it as an icon. |
"Inserts the contents of the file as an object into your document so that you may activate it using the application which created it. It will be displayed as an icon." |
Create an OLE linked object that is linked to a selected file. |
"Inserts a picture of the file contents into your document. The picture will be linked to the file so that changes to the file will be reflected in your document." |
Create an OLE linked object that is linked to a selected file and display it as a Shortcut icon. |
"Inserts a Shortcut icon into your document which represents the file. The Shortcut icon will be linked to the original file, so that you can quickly open the original from inside your document." |
You can also use the context of the current selection in the container to determine the format of the newly created object and the effect of it being inserted into the container. For example, an inserted graph can automatically reflect the data in a selected table. Use the following guidelines to support predictable insertion:
Note
For more information about the guidelines for inserting an object with a Paste command, see Chapter 5, "General Interaction Techniques."
After inserting an OLE embedded object, activate it for editing. However, if the user inserts an OLE linked object, do not activate the object.
The Insert Object command provides support for inserting all registered OLE objects. You can include additional commands tailored to provide access to common or frequently used object types. You can implement these as additional menu commands or as toolbar buttons or other controls. These buttons provide the same functionality as the Insert Object dialog box, but perform more efficiently. Figure 11.8 illustrates two examples. The drawing button inserts a new blank drawing object; the graph button creates a new graph that uses the data values from a currently selected table.
Figure 11.8 Using toolbar buttons for creating new objects