Index

_______________________________________________

OLE 2.0 Utilities:

DFView - DocFile Viewer

DObjView - IDataObject Viewer

IROTView - Running Object Table Viewer

OLE2View - OLE 2.0 Object Viewer


Running Object Table Viewer
IROTView

_______________________________________________

Displays the contents of OLE's running object table.

All monikers registered with OLE's running object table are displayed in the main window.

The display is updated whenever the application receives the focus.  An update can also be forced by selecting the update command from the main menu.

The status window at the bottom of the display displays the following information about whichever moniker is selected in the top of the display:

∗	Name -- the display name of the moniker.

∗	Reduced -- the display name given by the moniker after it has been reduced.

∗	Inverse -- the display name of this moniker's anti-moniker; a moniker which, if composed to the end of the selected moniker, would destroy it.

∗	Enumerated -- an enumeration of the components of the moniker.  If the moniker is not a composite moniker, this field displays "N/A".

∗	Hash Value -- the 32 bit integer hash value associated with the moniker.

∗	Running -- the state of the moniker: TRUE if the moniker is running; FALSE if it is not.

∗	Last Change -- the last time the moniker's data was updated.

∗	Type -- indicates the moniker's type.

Possible types are:

+	Generic Composite Moniker

+	File Moniker

+	Anti-Moniker

+	Item Moniker

+	Pointer Moniker

+	Not a System Moniker


DObjView

_______________________________________________

IDataObject Viewer

DObjView is a tool for viewing objects that support the IDataObject interface.  This includes objects placed on the clipboard as well as objects that are transferred via drag-drop.

When a data object is retrieved from the clipboard or via a drag-drop operation, its data formats are enumerated and displayed in the main window.

For more information:

Main Display

Commands

Manipulating Data Objects

The Enumerate FORMATETC Command


DObjView's Main Display

_______________________________________________

Each FORMATETC structure supported by a data object displayed by DObjView is enumerated and displayed in the main window.

Each line contains five fields:

1.	The clipboard format.  Possible values include any of the various Windows clipboard formats as well as any of the additional clipboard formats defined by OLE.  It is also possible that the format may be unknown.

2.	pdt -- The "primary target device" for which the data has been formatted.  Generally this field contains NULL.

3.	dwAspect -- The aspect or role of the data.  Possible values include: Content, Thumbnail, Icon, and Docprint.  Each data format may have more than one aspect.

4.	index -- An indication of which part of the aspect is of interest.  Typically this field contains -1.  See the OLE 2 Programmer's Reference for details on how this field is used.

5.	tymed - The "type of media" which may be used to transfer the data.  Possible values include: hGlobal, File, IStorage, IStream, GDI, and MFPict.  Each data format may support more than one type of transfer media.


Command Summary

_______________________________________________

DObjView's commands are grouped under five menu headings:

*	The File menu contains the "Exit" command which terminates the application.

*	The Clipboard menu contains the "View Clipboard Object" command for viewing objects on the clipboard and the "Empty Clipboard" for emptying the clipboard.

*	The Data Object menu contains commands for testing and manipulating objects via the IDataObject interface.  See Manipulating Data Objects for a description of this menu.

*	The Options menu contains the "Clear Listing" command for clearing the display window.

*	The Help menu contains commands for receiving on-line help and for displaying author and version information.


Manipulating Data Objects

_______________________________________________

The Data Object menu contains commands for testing and manipulating objects via the IDataObject interface.

This menu is grouped into three sections:

1.	Commands for retrieving objects.

2.	Commands for testing objects once they've been retrieved.

3.	Commands for determining the linking and embedding capabilities of objects.

The commands in the second two sections are only available once an IDataObject pointer for an object has been retrieved.  The commands in the first section are used to get an IDataObject pointer.  Also, some commands in the second section are only available when DObjView has an IDataObject pointer which can support them.


The first section of the Data Object menu contains two commands:

*	The "Get Clipboard Data Object" command gets the IDataObject pointer for whichever object is currently on the clipboard.

*	The "Get Drag-Drop Data Object" command toggles the "Get Drag-Drop Data Object" option on and off.  A check mark is placed beside this command when the option is enabled.  When this option is enabled, DObjView will hold on to the IDataObject pointer for any object that is dropped onto its main window.


The second section of the Data Object menu contains four commands:

*	The "EnumerateFORMATETC" command brings up a set of dialogs that test the FORMATETC enumerators for the data object.

*	The "Show Object Descriptor" command brings up a dialog the shows the contents of the data object's object descriptor.

*	The "Show Link Source Descriptor" command brings up a dialog that shows the contents of the data object's link source descriptor.  This dialog is the same as the dialog displayed for the "Show Object Descriptor" command except that the data is taken from the link source descriptor instead of the object descriptor.

*	The "Release Data Object" command releases the IDataObject pointer.  Since the commands in the last two sections of the Data Object menu require an IDataObject pointer, they are disabled after this command has been selected.


The third section of the Data Object menu contains two commands:

*	The "Call OleQueryCreateFromData" command calls the OLE function of the same name to determine if it is possible for applications to create an embedded object using this IDataObject pointer.

*	The "Call OleQueryLinkFromData" command calls the OLE function of the same name to determine if it is possible for applications to create a link using this IDataObject pointer.


The Enumerate FORMATETC Command

_______________________________________________

When the "Enumerate FORMATETC" command is selected, a dialog box is displayed which asks which direction to enumerate the data object.

The choices are:

*	DATADIR_GET -- enumerates format types that can be passed to IDataObject::GetData.  (It passes DATADIR_GET as the direction value to IDataObject::EnumFormatETC.)

*	DATADIR_SET -- enumerates format types that can be passed to IDataObject::SetData.  (It passes DATADIR_SET as the direction value to IDataObject::EnumFormatETC.)

*	Other Error Value -- passes the value 3 to IDataObject::EnumFormatETC, allowing additional testing of the IDataObject enumerators.

Once the enumerator's direction has been selected and the enumerator has been retrieved, a dialog box is displayed that allows the enumerator to be exercised and tested.

The enumerator dialog box has a row of buttons which allow the enumerator's Next, Skip, Reset, Clone, and Release methods to be exercised.

The number of elements to skip or retrieve can be selected by typing the number in a text box.

The HRESULT of the last operation is displayed in a second text box.

A list box displays the data retrieved by the last "Next" operation.

Selecting the "Clone" button clones the enumerator and displays a second enumeration dialog box which allows the same operations to be performed on the cloned enumerator.

Selecting the "Release" button releases the enumerator and closes the dialog box.

The data retrieved by each "Next" operation is displayed by the field names of the FORMATETC structure.  This data is the same data that is displayed by each line in DObjView's main window.


DocFile Viewer
DFView

_______________________________________________

Displays the contents of an OLE2 DocFile.

A DocFile can be loaded by using the Open DocFile command in the file menu or by passing its name on the command line.

Once the DocFile has been loaded, DFView displays its contents using two types of windows:  one for displaying the storage hierarchy and another for displaying a stream's contents.


Storage Hierarchy Display

_______________________________________________

DFView's main window displays a DocFile's storage and stream hierarchy in a tree display that is similar to the display used by the Windows File Manager.

Storages are represented by folders:

Streams are represented by documents:

Double clicking (or pressing return) on a closed folder expands the tree at that point, revealing any streams or storages that are contained beneath that storage.

Double clicking (or pressing return) on an open folder collapses the tree at that point.

Double clicking (or pressing return) on a document brings up a stream contents display window.


Stream Contents Display

_______________________________________________

When a stream node is expanded, DFView grays its document icon (to indicate that it has been opened) and displays the stream's contents in a window.

At the top of the stream contents display window, the title bar displays the name of the stream and the total number of bytes in the stream.

The contents of the stream are displayed in the stream contents display window using a simple hex-dump format.  Here is an example of what a line of that format looks like:

0x00000000  4C 6F 75 75 20 50 69 6E 65  6C 6C 61 2C 20 4D 61 6E   Lou Pine lla, Man

The first number is the offset (in hexadecimal) of the bytes within the stream.  Up to sixteen bytes are displayed on a line.  This line is displaying the first sixteen bytes in the stream.

The next sixteen numbers are the values of bytes found in the stream (again in hexadecimal).  They are displayed in two groups of eight bytes each to ease counting.

The sixteen characters at the end of the line are the ASCII representation of the bytes.  (Using the example above, the letter 'L' is the ASCII representation of the value 4C.)  The ASCII display is also grouped into two sets of eight bytes.  Bytes which do not have a visual ASCII representation are displayed as periods.

If a stream is collapsed (or closed) the stream display window is closed.  A stream can be collapsed by double clicking (or pressing return) on its document icon within the storage hierarchy display, by closing the stream display window, or by selecting one of the appropriate commands from the menu.