If yes, download the beta version 1.6 of COMView by clicking here . One of the new features implemented is a property dialog box allowing to walk the exposed object model of a running object. Thats far more exciting that just browse type information and whats more, allows changing properties and executing methods. So you can now enter a whole excel sheet with COMView :) .

Since this is a beta version, I'm interested in bugs you may find and wanna tell me. But this will only be useful for errors I can reproduce, so please only report errors with COMView hosting "standard" applications like IE, media player, MS office ...

Have fun


PS: If no, ignore this post
Posted on 2003-01-21 12:54:27 by japheth
hey, thats fast!
Some threads earlier I wrote, that COM is slow because accessing the CLSID stuff in the registry, but this
seems to be no problem :)
Posted on 2003-01-22 06:45:25 by beaster
Hi beaster,

the extent of registry access in COM is fairly overestimated I suppose.

COM with in-process servers is fast, even with IDispatch:Invoke

COM with local servers (with excel i.e.) is sufficiently fast, as long as you dont write 3D games with that constellation).

Posted on 2003-01-22 07:24:58 by japheth

what a great addition to ComView. Just spent some time
'walking' thru Excel, Access, DAO and some non "standard" applications. So far it has worked without flaw.

Thank you.
Posted on 2003-01-22 10:21:15 by Wayne

thanks for your reply. I was really excited when it first worked. Suddenly I was able to understand the MS office object model a bit :).
But there are still many errors left (for example most collections of IE dont work, as I must realize today).

Posted on 2003-01-22 15:11:23 by japheth
I dont usually swear on the board...


That is F'N COOL! ;)

This is a fantanstic tool to be had. Like Wayne, i have yet to reach a problem. However, my imagination in working in overtime ;)

Here's an idea for you to mull on :grin:

Just like all good text editors, you get a macro feature that lets you record a set of steps, and use them repeatably. Kind of along the same vain of thought, why not have a 'start record' and 'stop record' function to systematically note the steps taken while dynamically loading com objects and using their interfaces.

The end result of this would be having it generate the ASM code of the recorded sequence. I would personally find this very handy, as functions can be first practiced by hand ~dynamically~ , and then recorded when figured out correctly and the subsequent code generated for MASM. Hell you could even do away with the need for excessive include files if you had pre-generated calls and values for everything you use....

Granted this would not be perfectly integratable with everyones code, but it would be a few simple cut'n'paste jobs to make it work in a function etc. Especially with the typelib info already at your fingertips (due to this tool already) to act as a road map to the generated code, allowing one to make specific and suttle changes as needed for their applications.

Anywho, fantastic work! I hope your happy with constructive feedback rather than error reports ;)

Posted on 2003-01-22 22:03:41 by NaN
More Constructive feedback...

As im playing with it im getting alot of "instances" open in my face... which clutters alot of the screen space. So what i've been doing is minimizing them until i get to them again. However, its getting a bit hard to figure out which one is which cause usually most of the instance name is dotted out in the title bar. Could it be possible to remove the word "Properties" preceeding the instance name in the title bar of each instance window?

This would make things simpler when you want to 'reach' over and grab a specific instance with the mouse...

Another alternative would be colapsable windows like Paint shop pro has for its toolbars. The automatcally retract when the mouse has left the window, and open when the mouse is over the title bar again.

Anywho, just a few more comments for you ;)
Posted on 2003-01-22 22:28:38 by NaN
Another suggestion:

I just opened up Microsoft Chart Control 5.0. And when i tried to open the _??? Interface (cant remember name now), it dumped a bunch of message box errors saying can't property "get" etc. etc. (witch is ok).

My suggestion is perhaps a "skip all errors" button on that pop-up window. I say this cause i was luck and only got 10 or so properties that failed. If there was *alot* more the user would be clicking "ok" for 5 minutes before its time to close the window and forget it anyways :)

PS: I just created and filled an excel chart from scratch (hee hee). Took me 5 minutes with your new comview. In respect it took me nearly 2 weeks to put "Hello world" on a simple excel sheet by code/trial and error. This tool will save me sooooooooo much R&D time! Thank you, thank you, thank you ;)

Posted on 2003-01-22 22:46:02 by NaN
Hi NaN,

thanks very much for feedback. Its really appreciated.

About your suggestions:

I have sort of "roadmap" for COMView and Version 1.6 is "closed", meaning no new features here (still 1 severe error to eliminate). But your 'properties window caption' suggestion will be an exception.

Message boxes when scanning the properties I wanted to avoid as well. I had in mind that currently only GPFs (which are tracked by SEH inside COMView) would produce message boxes during property scan (is already in roadmap to avoid in the future). But I will have a look at this code again

Your first suggestion is really cool, but regretably means some work :). So I currently can only promise to insert it in the roadmap for version 1.7.


PS: NaN, as you may suspect: I was inspired for this feature by "our" excel thread some weeks ago.
Posted on 2003-01-23 03:39:12 by japheth
I've found one small bug.

If you display the properties of an Object, and if any of the properties produce an Exception - such as Exception , and you select the item and try to edit it, the edit control does not disappear when you try to select another item (which is not possible), the edit control even stays visible if you select the Methods tab, although by selecting another item in the Methods tab seems to clear the condition. Once in this state, none of the buttons on the property dialog work, the only way to close it is to use the X in the right hand corner.

Other than this small problem, which doesn't effect the functionality, an excellent piece of software.

Posted on 2003-01-23 05:57:43 by Nick
damm, i'm a VB-professional and diving into asm for hobby.
My wishes to easily integrate typelibs into asm can become true
(wanna using Microsoft Scripting for example).
But i have to study more your examples, also to convert the generated includes
to nasm/fasm syntax .

Very good work, plz continue !
Posted on 2003-01-23 07:05:56 by Rings

thanks for reply. This error is hopefully fixed already

Heres my "roadmap" (simple text, but possibly hard to understand for other people), which lists the known and open errors for version 1.6 as well as some currently fixed.
And my considerations about next version. Just in case you are interested.

Thanks Rings for reply.

Posted on 2003-01-23 11:46:16 by japheth

I realize that my first suggestion would be alot of overhead.. and the outcome may or not work as well as hoped.

I was thinking about this today at work (*what else is work for ;) *) and thought that it would be just as practical to have a multi-line edit box (2-3 lines) that displays constantly *only* the last command issued by the user and updatest when new COM/Interface calls are made.

This would reduce alot of overhead from my initial idea (no file output/recording commands etc. ec.). It could probably be wrapped up into one function. From a using the tool point of view, you would simply figure out how to do something, and then do it again while cut'n'pasting each step manually into your source as needed.

Basically a feedback window that tells you just the call that is being made (with perhaps a "copy to clipboard" icon/button at the end.

Perhaps you would find this not too much work at all, me hopes ;)
Posted on 2003-01-23 16:48:13 by NaN
sorry i'm stupid, but what's new on this version japhet? i dont see anything that you mention aka "walk". btw, if it is can walk a running COM instance, then it really pretty cool, that's mean you know exactly how those COMthing managed "on the fly". uhm... that's maybe worth to write some tut on that, japhet.

uhm... maybe you could make debug feature for those instances too ;)
Posted on 2003-01-24 03:52:45 by dion

your post has made it clear to me that some more documentation may be necessary. On the short run there will be no more help though.

The "properties" dialog mentioned above is somewhat "hidden" to prevent absolute newbies in COM from finding it and produce damage using it :) . So I cannot give you any more hints.

Posted on 2003-01-24 17:54:38 by japheth
:( :) :grin:

hehe, sorry japhet, i'm totally a noobee :grin:
Posted on 2003-01-24 20:27:54 by dion

:( :) :grin:

hehe, sorry japhet, i'm totally a noobee :grin:

Its nothing to be sorry about. However Japheth does make a good point. This tool can srew up your registry if your not paying attention to what your doing.

I could give you a walk-thru with his tool now, but a few things come to mind. 1) Any small oversite i say, and you do screw up something, im to blame, 2) Nothing really useful anyways if your still learning what COM is ( you wont be able to use the info learned unless you know how to program com anyways ).

This tool does *alot* for you, but you have to learn how it saves your time first, before it actually will. In a nut shell this tool will help you break out of the few areas that COM Classes are documented (Win32 Shell), and start developing for third party COM Classes that dont come with an operations manual, such as ICQ for instance.

Hope this is some help..
Posted on 2003-01-24 23:06:41 by NaN
thanks NaN, but the noobee part might be true. thanks to COM gurus here that i understood COMconcept. but seems nothing really interest me much. uhm... maybe SQL apps? OLE-DB sample? i want to explore that one... maybe... btw, thanks for advice.
Posted on 2003-01-25 01:55:36 by dion
VB is for the devil.

Too many problem. Any program that REQUIRES any installer to modify the OS (install OCXs) and a DLL (vbxxxxx.dll) is definitly short sighted.

Re. the noobee thing, I'm shure you know more about the Win32API than any of my co-workers (ie I'm the expert)
Posted on 2003-01-26 04:40:00 by eet_1024
that's alright, eet_1024 ;)

btw, i take a look at the doc, and i realize it really neat tool ;) but why its just one example, japhet? i hope to see more usefull example, or more "real-life" examples ;)

ps. NaN, are your website still there?
Posted on 2003-01-26 20:33:00 by dion