Why can not I view the dll to understand what is in it ?: "Some components cannot be viewed"

I am looking for the missing X COM interface, which I suspect is defined in Y.dll . I can look into this supposed interface using

 grep X Y.dll 

which says match. Hooray, the suspicion is confirmed!

Alas, when I use the Object Browser in Visual Studio Express, trying to add Y.dll to my custom set of components, I get the error message β€œSome components could not be viewed” in the pop-up window.

So what are the reasons why I cannot view this dll? Can COM interfaces knowingly or accidentally defend, hide, protect or hide? Obviously, I need a primer!

Officially, everything Microsoft knows about this seems to be completely misunderstood:

This error usually occurs when you try to add a file type that does not support viewing objects, such as .htm and .txt in the Select Component dialog box. Object Browser supports file types such as .bsc, .olb, .tlb, .dll, .exe, and .ocx.

Seriously, what is the reason that dll or exe do not support viewing objects? Any pointers to study guides or books would be appreciated by this newbie! Thank.

0
windows dll com
Dec 16
source share
1 answer

Object browsers rely on metadata (type libraries) exported by COM servers (dll, exe, ocx, etc.).

The problem is that the COM server does not need to export metadata about which interfaces it implements. Unfortunately, I found quite a lot of such servers (so you need to know which CoClasses, interfaces, etc. are supported by other means).

Make sure your COM server (y.dll) contains a resource called "TYPELIB", similar to:

COM typelib resource

Hope this helps.

+1
Dec 16 '12 at 16:03
source share



All Articles