Version 3 of COMet

Updated 2004-12-10 13:12:07 by lwv

COM Explorer for Tcl

Version 1.0, December 8, 2004

COMet is a COM exploration tool for COM interfaces in Windows. With COMet, you can instantiate COM objects, examine Collections and Properties, invoke Methods, and examine ENUMs in associated TypeLibs. Any Collection entry, or Property / Method result that is another COM object, can be instantiated and examined further. If a TypeLib for any object can be determined via Registry information, that library will be loaded and ENUM constants displayed. Other TypeLibs can be loaded manually. A log of COMet actions is maintained, and can be written to a file for further development.

COMet was written by TP because of sadly lacking and confusing COM documentation for a Windows project on which he worked. COMet is distributed under the Tcl BSD-style license.

COMet is available as a StarKit from the StarKit archive: http://mini.net/sdarchive/

Note: as of Dec 9, 2004, the starkit has been submitted. It may not be available until the archive folks have had a chance to move it to the archive.

A TclKit for Windows is required, find one at http://www.equi4.com/pub/tk/

COMet is known to work with 8.4.9/tclkit-win32.exe.gz and 8.4.9/tclkit-win32.upx.exe TclKits from the TclKit distribution. Simply run the Tclkit executable with comet.kit as an argument, i.e.,

  • tclkit comet.kit

A StarPack of COMet may be available at the same StarKit archive, using the upx Windows TclKit.

COMet relies on tcom for COM interaction, and uses BWidget for highlevel widgets. The COMet StarKit contains tcom version 3.9 and BWidget 1.7.0, so you don't need to worry about installing these packages.


Bugs / Problems / Caveats

TP Dec 8, 2004 ver 1.0

  • The list of COM objects is determined by looking at objects that have a Programmable or LocalServer registry key. I have no idea if this is correct, but it works for me :-)
  • COM objects are displayed in a BWidget Tree. It seems to be rather slow on opening nodes. I don't know if the representation of "Objects By Name" vs. "Objects by Type" is really important or not for finding the object you want.
  • Methods cannot be invoked that require arrays arguments. Only scalars are permitted at this time.
  • Many COM objects don't seem to have Registry references to their associated TypeLibs. You'll have to find and load TypeLibs manually.

male Dec 10, 2004

  • The UI is not scalable and the right vertical dived array is not scalable to (like in paned windows)
  • methods with optional arguments are not callable, if no argument data is given in the method call dialog

{Category Applications]