An ATL Project to View Type Libraries

WEBINAR:
On-Demand

Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js


Lib2Usr ATL component.

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 in project

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 interface.

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).

ILFunction(CLFunction) - 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*).

ILVariable(CLVariable) - This interface provides informations, like name, type and kind (persistance, static, const or dispatch) of one variable.

ILParameter(CLParameter) - 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++

Download demo VB project - 10 KB

Download demo VC project - 10 KB

Download source - 54 KB

The demo project VB requires XPropertiesWnd ActiveX control. See A set of two activeX controls article.



Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • In the past, security was a major obstacle in moving workloads to the cloud. Today, the main obstacle to cloud adoption is the pain of migrating data. But not anymore. A data migration project using purpose-built tools that automate procedures and allow real-time testing can reduce the amount of downtime from hours or days to minutes or seconds. This eBook summarizes the major migration pain points, breaks down the flaws in traditional approaches, and illustrates how modern tools help businesses stay agile by …

  • Mobility is reaching an inflection point in enterprise. Smart enterprises are moving away from tactical point solutions for mobile device management, looking instead for a secure, comprehensive, unified, and future-proof mobile-app platform. Enterprise applications are now at the heart of mobile productivity, data is shared outside the enterprise walls, and the data itself may reside on multiple devices and clouds. Read this guide to learn how a unified endpoint management (UEM) solution is critical to …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date