The OLE/COM Object Viewer

The OLE/COM Object Viewer is a developer and power user oriented administration and testing tool. With The OLE/COM Object Viewer you can:

System Requriements

The OLE/COM Object Viewer requires either Windows 95 or Windows NT 4.0. You must have also installed either Internet Explorer 3.0 or the ActiveX Software Development Kit.

This version does not run on Windows NT 3.5 or Windows NT 3.51, although earlier variations of the same tool (it used to be called OLE2View) are available in the Win32 SDK and with Visual C++.

Download Instructions

To download the OLE/COM Object Viewer, click on the link below that corresponds to your processor architecture to download a self-extracting executable which will allow you to specify where you want the component files placed.

x86 (Win95 and Windows NT)

(Builds for the MIPS, DEC Alpha, and PowerPC are not yet available).

What's new and different?

What's to come (and what's broken)?


IInterfaceViewer Specification

The OLE/COM Object Viewer supports plug-in interface viewers. If you have a COM interface you have designed, or would like to be able to "party" on some existing interface you can develop your own interface viewers. Simply create an in-process COM server which implements the IInterfaceViewer interface and have it register the following information:

HKCR\Interface\{the IID you want to view}\OleViewerIViewerCLSID = {your clsid}

You should also use the Component Category Manager to register your viewer's CLSID as implementing the OLEViewer Interface Viewer CATID ({64454F82-F827-11CE-9059-080036F12502}).

IDL for IInterfaceViewer

// iview.idl
//
// Interface definitions for Ole2View Interface Viewers
//
import "unknwn.idl";

// DEFINE_GUID(IID_IInterfaceViewer,0xfc37e5ba,0x4a8e,0x11ce, 0x87,0x0b,0x08,0x00,0x36,0x8d,0x23,0x02);
//
// IInterfaceViewer::View can return the following SCODEs
//
// S_OK
// E_INVALIDARG 
// E_UNEXPECTED
// E_OUTOFMEMORY        
// 
[
    uuid(fc37e5ba-4a8e-11ce-870b-0800368d2302),
    object
]
interface IInterfaceViewer : IUnknown
{
    HRESULT View([in]HWND hwndParent, [in]REFIID riid, [in]IUnknown* punk);
}