Popular Post trancexx Posted July 5, 2010 Popular Post Share Posted July 5, 2010 (edited) So, what's this?It's a tool-script you would use when you want to know details about specific type libraries.There are some tools available on the net for the job. None written in AutoIt (take this conditionally and search for posts made by doudou). That made me wonder how hard it would be to write one from the scratch. Turned to be very demanding. TypeLib format is not officially or publicly available, at least not to my knowledge. Doing the research I found what's called The Unofficial TypeLib Data Format Specification. Sort of a must read when it comes to understanding the organization of typelib format.Script I'm posting here is written solely upon that document. I must also say that I had to do few modifications of some fields because of found inconsistencies in order to get correct readings. Also I'm doing few deliberate shortcuts mostly because of incomplete description within theircorp's document.What's covered is MSFT type of TypeLib. This obviously means there are more types. Actually one more, called SLTG TypeLib, but this one is very rare (probably less than 1/100 of all TypeLibs).GUI will certainly look familiar if you have run some of the scripts I posted recently. This time it's a wrapper for edit control. Main function is called _TLB_TypelibMSFT(). Everything else inside script serves it.What to learn from it? DllStruct manipulation maybe. But who wants that? Script:TLBViewer.au3Try AutoItX3.dll or wscript.exe or winhttp.dll or shell32.dll or thousand more to see what this really is. Object(s) some more. Edited January 16, 2011 by trancexx JohnOne, argumentum, Gianni and 3 others 5 1 ♡♡♡ . eMyvnE Link to comment Share on other sites More sharing options...
JohnOne Posted July 5, 2010 Share Posted July 5, 2010 The whole code is fascinating to me, and something I will have to study more closely when I understand better. I've been testing it out on various files and (I dont brandish this word without a warrant) its awsome, absolutey superb. Top Drawer. Cheers. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
trancexx Posted July 6, 2010 Author Share Posted July 6, 2010 The whole code is fascinating to me, and something I will have to study more closely when I understand better.I've been testing it out on various files and (I dont brandish this word without a warrant) its awsome, absolutey superb.Top Drawer.Cheers.It's very hard to follow this kind of code, right? Thank you for the waves. ♡♡♡ . eMyvnE Link to comment Share on other sites More sharing options...
monoceres Posted July 6, 2010 Share Posted July 6, 2010 I had no idea all this information was available. Interesting. Broken link? PM me and I'll send you the file! Link to comment Share on other sites More sharing options...
ValeryVal Posted July 6, 2010 Share Posted July 6, 2010 Thank you! It can show the content of interfaces from OWC11.DLL (>8Mb), too. What is about interface tree creation like TypeLibDocumenter? The point of world view Link to comment Share on other sites More sharing options...
Zedna Posted January 15, 2011 Share Posted January 15, 2011 Very nice/usefull tool trancexx Five stars from me! I tested in on CDO.Message: C:\WINDOWS\system32\cdosys.dll and it works OK and shows also enums,modules, properties/methods descriptions, etc! Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
Zedna Posted January 15, 2011 Share Posted January 15, 2011 Idea: It would be nice to use RichEdit control instead od Edit and colorize important parts, for example Names of properties/methods. Here is example for colorizing in RichEdit by using _GUICtrlRichEdit_AppendTextColor($hWnd, $sText, $iColor) Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
trancexx Posted January 16, 2011 Author Share Posted January 16, 2011 (edited) Very nice/usefull tool trancexx Five stars from me!I tested in on CDO.Message: C:\WINDOWS\system32\cdosys.dlland it works OK and shows also enums,modules, properties/methods descriptions, etc! That tlb is where you can see incompleteness of the document I based this script on.I've corrected the code. Try it now and you will see what that "module thing" should print. Edited April 26, 2015 by trancexx test ♡♡♡ . eMyvnE Link to comment Share on other sites More sharing options...
step887 Posted April 13, 2013 Share Posted April 13, 2013 (edited) First off, I wanted to say that this is amazing and it works great. So thank you. I have one question, I am working on a cleaner of sorts and if they files are there I have no issues. but if the files are gone and I have the UUID. Is there a easy way to get the Interface ID? I know I can RegEmunKey HKEY_LOCAL_MACHINESOFTWAREClassesInterface and compare the default value of sub TypeLib to the UUID. This is slow and I prefer to avoid it if possible. I do not think I saw a way in your code, but I am not strong with COM objects - so I could have overlook it. Is this possible? Thanks in advance. Edited April 13, 2013 by step887 Link to comment Share on other sites More sharing options...
trancexx Posted April 17, 2013 Author Share Posted April 17, 2013 First off, I wanted to say that this is amazing and it works great. So thank you.I have one question, I am working on a cleaner of sorts and if they files are there I have no issues.but if the files are gone and I have the UUID. Is there a easy way to get the Interface ID?I know I can RegEmunKey HKEY_LOCAL_MACHINESOFTWAREClassesInterface and compare the default value of sub TypeLib to the UUID. This is slow and I prefer to avoid it if possible.I do not think I saw a way in your code, but I am not strong with COM objects - so I could have overlook it.Is this possible?Thanks in advance.I don't know because I'm not sure what you're asking. Could you rephrase that?The script isn't using registry values nor care if the typelib, coclass or interfaces are registered on the system. It just parses tlb format and interprets the data following the linked specs. ♡♡♡ . eMyvnE Link to comment Share on other sites More sharing options...
Moderators JLogan3o13 Posted October 13, 2014 Moderators Share Posted October 13, 2014 I know this is an older post, but I linked to it from GH & S. Great work, wouldn't expect anything less. Thanks for sharing. "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now