Here is an ATL
project for viewing all "classes" from a dll, tlb, or ocx, in fact
library files. User can read some of informations, like functions(methods and
properties) from a file, only if that file has a resource "TYPELIB"\1
in resource component. I use the LoadTypeLib file to provide a pointer to a
ITypeLib interface. From the ITypeLib interface you can find all that library
know (functions, variables, names, …).
Classes and Interfaces uses
ILib2Me (CLib2Me) – an interface which provides two functions: Load and
Class Load function loads the file as TypeLibrary. If the is function
successfull, then you can call funtion Class to provide one by one all interfaces,
enums, coclass, … defines in library. Function will return a pointer to an
ILClass (CLClass) – This
interface provides informations about one "class". I define
"class" to be a : enum, record, module, interface, dispatch, coclass,
alias, union or max .(kinds) User can find the name (get_Name ), kind
(get_Kind), count of functions, function (get_Function), count of variables,
variable (get_Variable) of this "class". get_Function(int nIndex)
function returns pointer (ILFucntion*) to the function nIndex from class.
get_Variable(int nIndex) function returns pointer (ILVariable*) to the variable
nIndex from class. In both cases, functions will return NULL, if nIndex is not
found in range (0..GetCount…() – 1).
This interface provides infromations about one function. User can find name
(get_Name), kind (get_Kind – virtual,purevirtual,nonvirtual,static,dispatch),
invoke kind (get_InvokeKind – function(1), get(2), put(4),putref(8)),
documentation (get_Documentation), ID (get_ID), parameters and return type. If
you want one of the function’s parameter, wou have to call get_Parameter
function. You have to pass the index of parameter, and this parameter will
return the pointer to one parameter interface (ILParameter*).
This interface provides informations, like name, type and kind
(persistance, static, const or dispatch) of one variable.
This interface wil return informations such name (get_Name, and type (get_Type),
of one parameter.
DEMO program And Source(Updated)
Now one can even watch interfaces of a particular object. Demo application in VC++ included.
This is how DEMO VB program looks like :-
A new DEMO program has been added in VC++
The demo project VB requires XPropertiesWnd ActiveX control. See
A set of two activeX controls article.