From: Tony Toews on
Folks

Does anyone have a developer friendly definition of TLB files? Not
for the likes of Karl Peterson and others in this newsgroup who
understand subclassing. But for the likes of people like me. <smile>

I'd like to put in a few sentences in a blog posting I'm doing about
ADO versions. Which depend on TLB files.

Tony
--
Tony Toews, Microsoft Access MVP
Tony's Main MS Access pages - http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
For a convenient utility to keep your users FEs and other files
updated see http://www.autofeupdater.com/
From: Mike S on
On 6/30/2010 8:30 PM, Tony Toews wrote:
> Folks
>
> Does anyone have a developer friendly definition of TLB files? Not
> for the likes of Karl Peterson and others in this newsgroup who
> understand subclassing. But for the likes of people like me.<smile>
>
> I'd like to put in a few sentences in a blog posting I'm doing about
> ADO versions. Which depend on TLB files.
>
> Tony

How about this?

http://www.thefreelibrary.com/What+Is+Type+Library+and+How+Is+It+Related+to+the+Registry%3F-a01073813717
From: Tony Toews on
On Wed, 30 Jun 2010 20:46:42 -0700, Mike S <mscir(a)yahoo.com> wrote:

>How about this?
>http://www.thefreelibrary.com/What+Is+Type+Library+and+How+Is+It+Related+to+the+Registry%3F-a01073813717

Thanks I'll use it. Rirst paragrah is decent. Second goes overboard
from my perspective.

Tony
--
Tony Toews, Microsoft Access MVP
Tony's Main MS Access pages - http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
For a convenient utility to keep your users FEs and other files
updated see http://www.autofeupdater.com/
From: Mayayana on
| >How about this?
|
>http://www.thefreelibrary.com/What+Is+Type+Library+and+How+Is+It+Related+to+the+Registry%3F-a01073813717
|
| Thanks I'll use it. Rirst paragrah is decent. Second goes overboard
| from my perspective.

It's an interesting question. The more I think about
it, the more I'm not sure. But the quote you have
doesn't seem very useful. It requires that one know
most COM terminology in order to read the definition.
Wouldn't such a person also know what a typelib is?
Most people don't even know that "server" is the generic
name for a COM PE file. For those people the paragraph
you have is what I think of as an "MS documentation
copout". It might be technically right, but the writer basically
just copied a blurb out of context.

Also, it says the typelib must be in a .TLB file. But
that's only correct in a limited context that the text does
not define. VB produces typelibs embedded in the
OCX/DLL/EXE.

If you want to get across the basic practical info.
then why not just say "typelibs for VB are .TLB files
that can be referenced to enable early binding. Early
binding is good. Look that up if you want to know
more." :)

If you want to get across the gist of it, so that people
can understand the whole point of it, then I wonder if
it might make sense to say something like, "A typelib
describes a vTable, which is a COM correlate to a PE
file export table. The typelib mapping enables calling code
to find and call a function pointer directly, which is far more
efficient than using the IDispatch methods that must call
into the vTable to find the function pointer offset."

I'm not certain that the above is the most accurate way
to put it. (And it would require also providing a certain amount
of explanation about vTable, IDispatch, etc.) But personally,
I find it difficult to grasp something if I don't understand the
gist of it. Rote learning is just memorization. It doesn't
make connections of understanding. If I were reading your
blog I'd be very appreciative of a few sentences/paragraphs that
make me say, "Oh, so that's how it works!" rather than a whole
page of technical terms that require me to know other technical
terms, and end up leaving me unsure of what I've just read.

Though the latter is clearly quite efficient if, like Microsoft,
you want to sell courses, certifications and diplomas. :)


From: Tony Toews on
On Thu, 1 Jul 2010 10:03:47 -0400, "Mayayana"
<mayayana(a)invalid.nospam> wrote:

>| >How about this?
>|
> >http://www.thefreelibrary.com/What+Is+Type+Library+and+How+Is+It+Related+to+the+Registry%3F-a01073813717
>|
>| Thanks I'll use it. Rirst paragrah is decent. Second goes overboard
>| from my perspective.
>
> It's an interesting question. The more I think about
>it, the more I'm not sure. But the quote you have
>doesn't seem very useful. It requires that one know
>most COM terminology in order to read the definition.
>Wouldn't such a person also know what a typelib is?
>Most people don't even know that "server" is the generic
>name for a COM PE file. For those people the paragraph
>you have is what I think of as an "MS documentation
>copout". It might be technically right, but the writer basically
>just copied a blurb out of context.
>
> Also, it says the typelib must be in a .TLB file. But
>that's only correct in a limited context that the text does
>not define. VB produces typelibs embedded in the
>OCX/DLL/EXE.
>
> If you want to get across the basic practical info.
>then why not just say "typelibs for VB are .TLB files
>that can be referenced to enable early binding. Early
>binding is good. Look that up if you want to know
>more." :)
>
> If you want to get across the gist of it, so that people
>can understand the whole point of it, then I wonder if
>it might make sense to say something like, "A typelib
>describes a vTable, which is a COM correlate to a PE
>file export table. The typelib mapping enables calling code
>to find and call a function pointer directly, which is far more
>efficient than using the IDispatch methods that must call
>into the vTable to find the function pointer offset."
>
> I'm not certain that the above is the most accurate way
>to put it. (And it would require also providing a certain amount
>of explanation about vTable, IDispatch, etc.) But personally,
>I find it difficult to grasp something if I don't understand the
>gist of it. Rote learning is just memorization. It doesn't
>make connections of understanding. If I were reading your
>blog I'd be very appreciative of a few sentences/paragraphs that
>make me say, "Oh, so that's how it works!" rather than a whole
>page of technical terms that require me to know other technical
>terms, and end up leaving me unsure of what I've just read.
>
> Though the latter is clearly quite efficient if, like Microsoft,
>you want to sell courses, certifications and diplomas. :)

All I can ay is "I agree with you." So here's what I've come up with
in reference to ADO which is what I care about right at this moment.

ADO always had me confused. Look at the references list and you can
see a bunch of different versions all but that last one pointing to a
TLB file. I didn't really understand what a TLB file was until
recently so that didn't help either. The TLB acronyum stands for type
library file. A TLB file, somehow, provides and interface and points
to other files. I�ve been using a shelllnk.tlb file for many years in
my Auto FE Updater utility so it can create shortcuts.

In ADO, for example, the ADO 2.7 Library TLB file has the identical
binary interfaces that ADO version 2.7 itself had. But msado27.tlb
points to/interfaces with/references/whatever msado15.dll. See COM,
DCOM, and Type Libraries for a definition if that page helps or
confuses. Another definition is the first paragraph at What Is Type
Library and How Is It Related to the Registry?

Various screen shots inserted here.

Tony

--
Tony Toews, Microsoft Access MVP
Tony's Main MS Access pages - http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
For a convenient utility to keep your users FEs and other files
updated see http://www.autofeupdater.com/