I'm unable to instantiate TLI.TLIApplication from TlbInf32.dll
!PLEASE HELP!
The answer for how to determine the properties / methods / events
available to an object or within a .dll was/is? to use
windows\system\TlbInf32.dll by starting off like so:
Set oTLI = CreateObject("TLI.TLIApplication")
If I do this from my VBScript file, I get the error: Could not locate
automation class named "TLI.TLIApplication". Code: 80020009 Source:
WScript.CreateObject

At the same time, if I go into my VB5CCE and set Project/References to
find Typelib Information (which is located for me in
c:\windows\system32\TlbInf32.dll on my WinXP Pro, SP 2 system) and then
do:
Dim foo As TLI.TypeLibInfo
Set foo = New TLI.TypeLibInfo
MsgBox TypeName(foo)

Then VB is happy with that and the MsgBox shows: TypeLibInfo

Now, I have neither VB 5 nor the VB 6 development environment
installed. All there is, is me and my trusty VB5CCE, and version 5.6
of WScript. Just in case, I closed down VB5CCE to do the test, and I
also did
Regsvr32 c:\windows\system32\tlbinf32.dll.
After that I plied it with /u several times, then a last time without
/u, and regsvr32 was continually happy. The tblinf32.dll file itself
is dated 1/16/1997 at 132608 bytes and version 1.1.37.15

I hope someone has an idea on this cause I am stumped,
Thanks,
Csaba Gabor from Vienna

Re: Getting the properties and methods available with an object by ekkehard

ekkehard
Sat Aug 20 17:56:37 CDT 2005

Csaba Gabor wrote:
> I'm unable to instantiate TLI.TLIApplication from TlbInf32.dll
> !PLEASE HELP!
...
> Set oTLI = CreateObject("TLI.TLIApplication")
> If I do this from my VBScript file, I get the error: Could not locate
> automation class named "TLI.TLIApplication". Code: 80020009 Source:
> WScript.CreateObject
...
> After that I plied it with /u several times, then a last time without
> /u, and regsvr32 was continually happy. The tblinf32.dll file itself
> is dated 1/16/1997 at 132608 bytes and version 1.1.37.15

I use CreateObject("TLI.TLIApplication") in VBScript successfully, but
my dll is:
23.02.2004 00:00 150.528 TLBINF32.DLL (Vers 1.1.97.82)
I kind of remember that I downloaded it (with documentation) from
Microsoft.

Re: Getting the properties and methods available with an object by mayayana

mayayana
Sat Aug 20 20:57:54 CDT 2005

I don't know if this will help, but you
might try checking it in an object
browser to confirm the details of the
object model. Your code should work with
the VB6 version (1.10.8169, June, 98) but
you apparently have the VB5 version, which
could be slightly different. I know that there
are incompatibilities between the two versions,
(installing v. 6 over v. 5 can reportedly cause
malfunctions in software that uses v. 5) but I
don't know what exactly those incompatibilities
are.


> I'm unable to instantiate TLI.TLIApplication from TlbInf32.dll
> !PLEASE HELP!
> The answer for how to determine the properties / methods / events
> available to an object or within a .dll was/is? to use
> windows\system\TlbInf32.dll by starting off like so:
> Set oTLI = CreateObject("TLI.TLIApplication")
> If I do this from my VBScript file, I get the error: Could not locate
> automation class named "TLI.TLIApplication". Code: 80020009 Source:
> WScript.CreateObject
>
> At the same time, if I go into my VB5CCE and set Project/References to
> find Typelib Information (which is located for me in
> c:\windows\system32\TlbInf32.dll on my WinXP Pro, SP 2 system) and then
> do:
> Dim foo As TLI.TypeLibInfo
> Set foo = New TLI.TypeLibInfo
> MsgBox TypeName(foo)
>
> Then VB is happy with that and the MsgBox shows: TypeLibInfo
>
> Now, I have neither VB 5 nor the VB 6 development environment
> installed. All there is, is me and my trusty VB5CCE, and version 5.6
> of WScript. Just in case, I closed down VB5CCE to do the test, and I
> also did
> Regsvr32 c:\windows\system32\tlbinf32.dll.
> After that I plied it with /u several times, then a last time without
> /u, and regsvr32 was continually happy. The tblinf32.dll file itself
> is dated 1/16/1997 at 132608 bytes and version 1.1.37.15
>
> I hope someone has an idea on this cause I am stumped,
> Thanks,
> Csaba Gabor from Vienna
>



Re: Getting the properties and methods available with an object by mr_unreliable

mr_unreliable
Mon Aug 22 15:51:30 CDT 2005

This is a multi-part message in MIME format.
--------------040606020401050503090805
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Csaba, I am finding an interface to TLI.TLIApplication from the
_vb5_ version of tlbinf32.dll

The attachment is a dump of that interface, produced by Steve
McMahon's ActXDocumenter utility. (fwiw, there are many other
interfaces contained in tlbinf32.dll)

cheers, jw

--------------040606020401050503090805
Content-Type: text/html;
name="TLIApplication.HTML"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="TLIApplication.HTML"

<html><head>
<title>TLI Interface Definition</title>
<meta http-equiv="Content Type" content="text/html;charset=iso=8859-1" />
<meta name="AUTHOR" content="vbAccelerator ActiveX Documenter" />
<meta name="KEYWORDS" content="Visual Basic, VB, ActiveX, COM,TLI,TLIApplication" />
<meta name="DESCRIPTION" content="ActiveX Documentation for Object TLI" />
</head><body>
<h1>TLI Interface Definition</h1>
<div id="general">
<h2>General Information</h2>
<p id="library">Library: TLI (TypeLib Information)</p>
<p id="filename">File: C:\WINDOWS\SYSTEM\Tlbinf32.dll</p>
<p id="guid">GUID: {8B217740-717D-11CE-AB5B-D41203C10000}</p>
<p id="version">Version: 1.0</p>
</div>
<div id="toc">
<h2 class="toc">Contents</h2>
<ul>
<li class="toc1"><a href="#enums">Enums</a>
<ul>
<li class="toc2"><a href="#enum54">Enum CallConvs</a></li>
<li class="toc2"><a href="#enum13">Enum DescKinds</a></li>
<li class="toc2"><a href="#enum6">Enum FuncFlags</a></li>
<li class="toc2"><a href="#enum11">Enum IDLFlags</a></li>
<li class="toc2"><a href="#enum4">Enum ImplTypeFlags</a></li>
<li class="toc2"><a href="#enum10">Enum InvokeKinds</a></li>
<li class="toc2"><a href="#enum9">Enum LibFlags</a></li>
<li class="toc2"><a href="#enum12">Enum ParamFlags</a></li>
<li class="toc2"><a href="#enum8">Enum SysKinds</a></li>
<li class="toc2"><a href="#enum41">Enum TliCustomFilterAction</a></li>
<li class="toc2"><a href="#enum2">Enum TliErrors</a></li>
<li class="toc2"><a href="#enum17">Enum TliItemDataTypes</a></li>
<li class="toc2"><a href="#enum15">Enum TliSearchTypes</a></li>
<li class="toc2"><a href="#enum14">Enum TliVarType</a></li>
<li class="toc2"><a href="#enum16">Enum TliWindowTypes</a></li>
<li class="toc2"><a href="#enum3">Enum TypeFlags</a></li>
<li class="toc2"><a href="#enum5">Enum TypeKinds</a></li>
<li class="toc2"><a href="#enum7">Enum VarFlags</a></li>
</ul></li></ul>
<ul>
<li class="toc1"><a href="#classes">Classes</a>
<ul>
<li class="toc2"><a href="#class1">_DirectCalls</a>
<ul>
<li class="toc3"><a href="#methods1">Methods</a></li>
<li class="toc3"><a href="#events1">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class27">CoClasses</a>
<ul>
<li class="toc3"><a href="#methods27">Methods</a></li>
<li class="toc3"><a href="#events27">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class26">CoClassInfo</a>
<ul>
<li class="toc3"><a href="#methods26">Methods</a></li>
<li class="toc3"><a href="#events26">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class28">ConstantInfo</a>
<ul>
<li class="toc3"><a href="#methods28">Methods</a></li>
<li class="toc3"><a href="#events28">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class29">Constants</a>
<ul>
<li class="toc3"><a href="#methods29">Methods</a></li>
<li class="toc3"><a href="#events29">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class50">CustomData</a>
<ul>
<li class="toc3"><a href="#methods50">Methods</a></li>
<li class="toc3"><a href="#events50">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class51">CustomDataCollection</a>
<ul>
<li class="toc3"><a href="#methods51">Methods</a></li>
<li class="toc3"><a href="#events51">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class42">CustomFilter</a>
<ul>
<li class="toc3"><a href="#methods42">Methods</a></li>
<li class="toc3"><a href="#events42">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class40">CustomSort</a>
<ul>
<li class="toc3"><a href="#methods40">Methods</a></li>
<li class="toc3"><a href="#events40">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class30">DeclarationInfo</a>
<ul>
<li class="toc3"><a href="#methods30">Methods</a></li>
<li class="toc3"><a href="#events30">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class31">Declarations</a>
<ul>
<li class="toc3"><a href="#methods31">Methods</a></li>
<li class="toc3"><a href="#events31">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class23">InterfaceInfo</a>
<ul>
<li class="toc3"><a href="#methods23">Methods</a></li>
<li class="toc3"><a href="#events23">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class25">Interfaces</a>
<ul>
<li class="toc3"><a href="#methods25">Methods</a></li>
<li class="toc3"><a href="#events25">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class49">IntrinsicAliases</a>
<ul>
<li class="toc3"><a href="#methods49">Methods</a></li>
<li class="toc3"><a href="#events49">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class48">IntrinsicAliasInfo</a>
<ul>
<li class="toc3"><a href="#methods48">Methods</a></li>
<li class="toc3"><a href="#events48">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class39">ListBoxNotification</a>
<ul>
<li class="toc3"><a href="#methods39">Methods</a></li>
<li class="toc3"><a href="#events39">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class21">MemberInfo</a>
<ul>
<li class="toc3"><a href="#methods21">Methods</a></li>
<li class="toc3"><a href="#events21">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class22">Members</a>
<ul>
<li class="toc3"><a href="#methods22">Methods</a></li>
<li class="toc3"><a href="#events22">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class19">ParameterInfo</a>
<ul>
<li class="toc3"><a href="#methods19">Methods</a></li>
<li class="toc3"><a href="#events19">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class20">Parameters</a>
<ul>
<li class="toc3"><a href="#methods20">Methods</a></li>
<li class="toc3"><a href="#events20">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class46">RecordInfo</a>
<ul>
<li class="toc3"><a href="#methods46">Methods</a></li>
<li class="toc3"><a href="#events46">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class47">Records</a>
<ul>
<li class="toc3"><a href="#methods47">Methods</a></li>
<li class="toc3"><a href="#events47">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class33">SearchHelper</a>
<ul>
<li class="toc3"><a href="#methods33">Methods</a></li>
<li class="toc3"><a href="#events33">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class37">SearchItem</a>
<ul>
<li class="toc3"><a href="#methods37">Methods</a></li>
<li class="toc3"><a href="#events37">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class38">SearchResults</a>
<ul>
<li class="toc3"><a href="#methods38">Methods</a></li>
<li class="toc3"><a href="#events38">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class44">TLIApplication</a>
<ul>
<li class="toc3"><a href="#methods44">Methods</a></li>
<li class="toc3"><a href="#events44">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class34">TypeInfo</a>
<ul>
<li class="toc3"><a href="#methods34">Methods</a></li>
<li class="toc3"><a href="#events34">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class45">TypeInfos</a>
<ul>
<li class="toc3"><a href="#methods45">Methods</a></li>
<li class="toc3"><a href="#events45">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class36">TypeLibInfo</a>
<ul>
<li class="toc3"><a href="#methods36">Methods</a></li>
<li class="toc3"><a href="#events36">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class52">UnionInfo</a>
<ul>
<li class="toc3"><a href="#methods52">Methods</a></li>
<li class="toc3"><a href="#events52">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class53">Unions</a>
<ul>
<li class="toc3"><a href="#methods53">Methods</a></li>
<li class="toc3"><a href="#events53">Events</a></li>
</ul></li>
<li class="toc2"><a href="#class18">VarTypeInfo</a>
<ul>
<li class="toc3"><a href="#methods18">Methods</a></li>
<li class="toc3"><a href="#events18">Events</a></li>
</ul></li>
</ul></li></ul>
</div><div id="interfaces">
<a name="class44" /><h3>TLIApplication {8B21775E-717D-11CE-AB5B-D41203C10000}</h3>
<a name="methods44" /><h4>Methods</h4>
<p class="member"><strong>Function TypeLibInfoFromFile(ByVal FileName As String) As TypeLibInfo</strong></p>
<p class="description">Create a TypeLibInfo object from a file</p>
<p class="member"><strong>Function InterfaceInfoFromObject(ByVal Object As Object) As InterfaceInfo</strong></p>
<p class="description">Create an InterfaceInfo object from a running IDispatch object</p>
<p class="member"><strong>Property Get ListBoxNotification() As ListBoxNotification</strong></p>
<p class="description">Notification object for all Get*Direct methods. Use with Implements.</p>
<p class="member"><strong>Property Set ListBoxNotification() As ListBoxNotification</strong></p>
<p class="description">Notification object for all Get*Direct methods. Use with Implements.</p>
<p class="member"><strong>Property Get ResolveAliases() As Boolean</strong></p>
<p class="description">Automatically resolve all aliased parameters and return types. Defaults to True.</p>
<p class="member"><strong>Property Let ResolveAliases(RHS As Boolean)</strong></p>
<p class="description">Automatically resolve all aliased parameters and return types. Defaults to True.</p>
<p class="member"><strong>Function InvokeHook(ByVal Object As Object, ByVal NameOrID As Variant, ByVal InvokeKind As InvokeKinds, Optional ByVal ReverseArgList() As Variant) As Variant</strong></p>
<p class="description">Hook to IDispatch::Invoke. ID is Name or MemberID (DispId). List arguments backwards. Supports ByRef.</p>
<p class="member"><strong>Function InvokeHookArray(ByVal Object As Object, ByVal NameOrID As Variant, ByVal InvokeKind As InvokeKinds, ByVal ReverseArgList() As Variant) As Variant</strong></p>
<p class="description">Hook to IDispatch::Invoke. ID is Name or MemberID. Arguments in ReverseArgList must be listed backwards. ByRef args not supported.</p>
<p class="member"><strong>Sub InvokeHookSub(ByVal Object As Object, ByVal NameOrID As Variant, ByVal InvokeKind As InvokeKinds, Optional ByVal ReverseArgList() As Variant)</strong></p>
<p class="description">InvokeHook call with no return value.</p>
<p class="member"><strong>Sub InvokeHookArraySub(ByVal Object As Object, ByVal NameOrID As Variant, ByVal InvokeKind As InvokeKinds, ByVal ReverseArgList() As Variant)</strong></p>
<p class="description">InvokeHookArray call with no return value.</p>
<p class="member"><strong>Function ClassInfoFromObject(ByVal Object As Unknown) As TypeInfo</strong></p>
<p class="description">Create a TypeInfo object from any running COM object</p>
<p class="member"><strong>Function InvokeID(ByVal Object As Object, ByVal Name As String) As Long</strong></p>
<p class="description">Hook to IDispatch::GetIDsOfNames. Retrieve MemberID (DispId) once to speed up multiple InvokeHook calls.</p>
<p class="member"><strong>Property Get InvokeLCID() As Long</strong></p>
<p class="description">Language Identifier to use in InvokeHook calls.</p>
<p class="member"><strong>Property Let InvokeLCID(RHS As Long)</strong></p>
<p class="description">Language Identifier to use in InvokeHook calls.</p>
<p class="member"><strong>Function TypeLibInfoFromRegistry(ByVal TypeLibGuid As String, ByVal MajorVersion As Integer, ByVal MinorVersion As Integer, ByVal LCID As Long) As TypeLibInfo</strong></p>
<p class="description">Create a TypeLibInfo object from a file</p>
<p class="member"><strong>Function TypeInfoFromRecordVariant(ByVal RecordVariant As Variant) As TypeInfo</strong></p>
<p class="description">Create a TypeInfo object from a VT_RECORD Variant</p>
<p class="member"><strong>Property Get RecordField(ByVal RecordVariant As Variant, ByVal FieldName As String) As Variant</strong></p>
<p class="description">Read and write fields of a VT_RECORD Variant</p>
<p class="member"><strong>Property Let RecordField(ByVal RecordVariant As Variant, ByVal FieldName As String, RHS As Variant)</strong></p>
<p class="description">Read and write fields of a VT_RECORD Variant</p>
<p class="member"><strong>Property Set RecordField(ByVal RecordVariant As Variant, ByVal FieldName As String) As Variant</strong></p>
<p class="description">Read and write fields of a VT_RECORD Variant</p>
<a name="events44" /><h4>Events</h4>
<p>No Events.</p>
</div></body></html>
--------------040606020401050503090805--

Re: Getting the properties and methods available with an object by Csaba

Csaba
Tue Aug 23 12:32:50 CDT 2005

ekkehard.horner wrote:
> Csaba Gabor wrote:
> > I'm unable to instantiate TLI.TLIApplication from TlbInf32.dll

> I use CreateObject("TLI.TLIApplication") in VBScript successfully, but
> my dll is:
> 23.02.2004 00:00 150.528 TLBINF32.DLL (Vers 1.1.97.82)
> I kind of remember that I downloaded it (with documentation) from Microsoft.

I'd like to thank everyone for their response (Ekkehard, Mayayana, JW).
As a result, my biggest problem is solved, but there are still some
remnants which it would be good to clear up.

Ekkehard, your response reminded me that I have an old machine, and so
I looked at it and got it's TlbInf32.inf info from it. It is version
1.1.81.69 (size: 153600, with a date of 14 July 1998). I unregistered
the earlier version in c:\windows\system32 and registered the new one
(which I had in a different directory). At this point, the sample code
below ran as expected. Cool, and thanks.

Unfortunately, PHP is not so happy with this setup. Now, I can make
things work within PHP by stuffing VBScript into an
MSScriptControl.ScriptControl but that's not right.

Microsoft says that TlbInf32.dll is redistributable at:
http://msdn.microsoft.com/vbasic/downloads/addins/components/default.aspx
so I am hoping that someone will redistribute a more recent version to
me so I can see if it is PHP that is buggy, the .dll, or my
configuration.

Thanks,
Csaba Gabor from Vienna

Mayayana, thanks for the warnings - I hope that does not account for
the behaviour that I am seeing.