在进行基于组件的程序开发时,你可能需要在运行时用到新的组件。这些组件可以增加额外的功能,譬如用新格式输出数据或者替换一个现有的功能。但是一般情况下,你不可能在调用软件前把所有要用到的组件都考虑到。
你可以使用Microsoft公司的TypeLibInformation组件在程序运行时加载和执行新的组件。这个组件提供程序接口为Component Object Model (COM)的组件测定库信息。
下面的程序显示如何加载一个新的组件到TypeInfo对象。这个对象提供类执行时的界面,方法,属性及事件的信息。下面的例子显示的是将TypeInfo对象用到ActiveX Data Objects (ADO) Recordset对象上。
一旦你设置了TypeInfo对象,你就可以使用Members集合通过方法和属性来对对象做迭代。这个集合包括MemberInfo对象,可以提供关于每个方法的信息,如名称和方法是如何被调用的(InvokeKind)。
利用MemberInfo对象提供的信息,你可以通过InvokeHook和 InvokeHookSub函数对对象执行方法。
下面的代码显示的是通过对Members集合的迭代来给CursorLocation属性定位并且将其设置到adUseClient (3)。