Browseh: Automation Controller to Browse Type Library

Click to open or copy the Browseh project files.

Browseh exposes a number of Automation objects that correspond to components of a type library. This allows an Automation controller like Browse to access the properties and methods of these objects to browse the type library instead of directly using ITypeLib and ITypeInfo. So Browseh is a type library browse helper.

The Browse sample controls the Automation objects of the Browseh (Browse Helper) inproc server to browse a type library. Browse is a developer-oriented type library browser.

In addition to displaying type library information, this sample shows how to control an Automation object by accessing its properties and methods. Browse provides generic helper functions (CreateObject and Invoke) to control any Automation server. For more information on how to use these functions, see the comments in Invhelp.cpp.

Browseh does not support vtable binding. Controllers must use IDispatch to control this server.

Building SDK Samples

This sample uses the following keywords:

_fmemcpy; _fmemset; _inittypeinfo; _wep; addref; alloc; browsetypelibrary; calias; carraybound; carraydesc; cbrowsehelper; cbrowsehelpercf; ccoclass; ccollection; cconstant; cdispinterface; cenum; cenumvariant; cfunction; cinterface; clone; cmodule; cmydispatch; cogetmalloc; converttoansi; converttounicode; cotaskmemfree; cparameter; cproperty; create; createinstance; cstruct; ctypedesc; ctypeinfo; ctypelibrary; cunion; delete; didalloc; dispgetidsofnames; dispinvoke; dllcanunloadnow; dllgetclassobject; failed; free; from_ole_string; get__newenum; get_arraybounds; get_arraydesc; get_baseinterface; get_basetype; get_callconvention; get_count; get_documentation; get_elements; get_elementscount; get_elementtype; get_funcflags; get_funckind; get_functions; get_guidasstring; get_helpcontext; get_helpfile; get_idlflags; get_interface; get_interfaces; get_invocationkind; get_item; get_kind; get_localeid; get_lowerbound; get_majorversion; get_memberid; get_members; get_methods; get_minorversion; get_name; get_numberofoptionalparams; get_offsetinvtbl; get_parameters; get_pointerdesc; get_properties; get_returntype; get_type; get_typeflags; get_typeinfokind; get_typeinfos; get_userdefineddesc; get_value; getcontainingtypelib; getdocumentation; getfuncdesc; getidsofnames; getinterfaceid; getlibattr; getnames; getreftypeinfo; getreftypeofimpltype; gettypeattr; gettypeinfo; gettypeinfocount; gettypeinfoofguid; gettypeinfotype; getvardesc; initdll; invoke; loadregtypelib; loadstring; loadtypeinfo; loadtypelib; lockserver; lstrcpyn; multibytetowidechar; next; olestr; outputdebugstring; queryinterface; raiseexception; release; releasefuncdesc; releasetlibattr; releasetypeattr; releasevardesc; reset; safearraycopy; safearraycreate; safearraydestroy; safearraygetelement; safearraygetlbound; safearrayputelement; skip; stdmethod; stdmethod_; stdmethodimp_; stringfromclsid; succeeded; sysallocstring; sysfreestring; text; to_ole_string; unlockdata; variantclear; variantinit; widechartomultibyte; wsprintf