April 20, 2024, 03:09:11 AM

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


TypeLib Browser 1.01

Started by JR, May 06, 2006, 01:44:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JR

May 06, 2006, 01:44:51 AM Last Edit: May 18, 2007, 03:28:54 PM by José Roca
The TypeLib Browser is a tool designed to let you to examine the contents of COM servers and ActiveX controls, to generate definitions for the interfaces, enumerations and structures, and to generate classes for events sink.

What is new in this version?

  • Bug fix: In the interface declarations, the implied interface (always IUnknown or IDIspatch) was used instead of the inherited interface.
  • As Aurora allows to pass structures by value since version Alpha 3 Rev 1, the declarations of the interface's virtual functions have been changed to allow to pass VARIANT's by value using the BYVAL keyword.
  • A new option called Events has been added to the Code menu. It generates dispatch classes for events sink.
  • The CLSIDs (Class identifiers) and IIDs (Interface identifiers) are now declared global and defined using assembler. The resulting code can be saved to a file suitable to be compiled as an static library or an object file.

Please note that because the interfaces are defined in the same order that are retrieved from the typelib you may need to change the placement of some of them if they are referenced before they are defined.

You may also need to change the placement of some structures that are referenced before they are defined. Another potential problem are structures and unions with cross references, e.g. an structure with a member that is an union having this same structure as one of its members.

Ionic Wind Support Team

Thanks.  It will be a wonderful addition to everyones Aurora toolkit.
Ionic Wind Support Team

lviklund

Thank you JosÃÆ'Ã,©.

I used TL a lot when I used PowerBasic and I am extremely  ;D happy to be able to continue to use it know together with Aurora.
For me it is a great tool.

Regards
Lasse

JR

Developing it helped me a lot to learn COM programming. I have bought Aurora mainly because I was looking for a compiler that will allow me to use low-level COM without having to waste countless hours making wrappers. C++ was an option, but it has a very steep learning curve.

Ionic Wind Support Team

And the source it generated is near perfect ;)
Ionic Wind Support Team

Steven Picard

Wow!  :D This is awesome.  Thanks!!!

JR

July 12, 2006, 08:39:19 PM #6 Last Edit: July 12, 2006, 08:45:20 PM by José Roca
Quote from: Paul Turley on May 06, 2006, 02:58:49 PM
And the source it generated is near perfect ;)

If somebody notices bugs please report it to fix them. So far I have made the following modifications for the next update:

* Bug fix: OUT parameters of the type VT_USERDEFINED that are members of an enumeration or an alias for a standard type didn't get an "*" before its name.

* Bug fix: The IUnknown interface (defined in STDOLE2.TLB) got an " :" after its name.

* Bug fix: Interfaces without a virtual table are fully skipped. In version 1.01 were listed, originating an interface definition without virtual declarations.

* Bug fix: In the generated code for the identifiers, the name of the interface was omitted iin the remed line DEFINE_GUID(_IID_xxx).

Zen

Well it looks very nice but it may aswell be in russian for me, COM is something that has always been over the top of my head from the beginning and i cant really find a beginners com documentation.

Lewis

JR

May 18, 2007, 03:35:44 PM #8 Last Edit: May 18, 2007, 03:41:09 PM by José Roca
 
I'm posting the last version of this tool here as an attachment because I'm going to move to another forum and because currently I don't have time to work with Aurora. Hope I will find the time in the future.


The TypeLib Browser is a tool designed to let you to examine the contents of COM servers and ActiveX controls, to generate definitions for the interfaces, enumerations and structures, and to generate classes for events sink.

If the Automation box is checked, information for dual interfaces will be shown in the treeview using the IDispatch interface view instead of the VTable view.

If the Add enum prefix box is checked, the name of the enumerations are added to the constants. This is useful to avoid conflicts between different enumerations having one or more members with the same name that other enumerations.

Double click the wanted typelib in the ListView to retrieve the information.

Click the Code button to generate the interface definitions.

Note The file ATLB_KEYW.TXT contains a list of the reserved words, one per row. It is used for syntax coloring and to avoid conflicts with the names of the methods, properties and variables. An underscore ("_") is added to the name of a variable, method or property with the same name that a reserved word.

Note The file ATLB_COM.INC contains some constants, structures, declarations and interface definitions that you may need to use until Aurora will come with official include files for the Windows API.


DISCLAIMER

This software and accompanying documentation are provided "as is" and without warranties as to performance or merchantability or any other warranties whether expressed or implied.

Because of the various hardware and software environments into which this application may be used, no warranty of fitness for a particular purpose is offered. The user must assume the entire risk of using this software. In no case shall any of the contributors to this project be liable for any incidental, special or consequential damages or loss, including, without limitation, lost profits or the inability to use equipment or access data. This is true even if we are advised of the possibility of such damages. We also don't have any obligation of fix eventual bugs or to add new features.

What is new in this version?



  • Bug fix: OUT parameters of the type VT_USERDEFINED that are members of an enumeration or an alias for a standard type didn't get an "*" before its name.

  • Bug fix: The IUnknown interface (defined in STDOLE2.TLB) got an " :" after its name.

  • Bug fix: Interfaces without a vtable are fully skipped. In version 1.01 where listed, originating an interface definition without virtual declarations.

  • Bug fix: In the generated code for the identifiers, the name of the interface was omitted in the remed line DEFINE_GUID(_IID_xxx).

What was new in version 1.01?


  • Bug fix: In the interface declarations, the implied interface (always IUnknown or IDIspatch) was used instead of the inherited interface.
  • As Aurora allows to pass structures by value since version Alpha 3 Rev 1, the declarations of the interface's virtual functions have been changed to allow to pass VARIANT's by value using the BYVAL keyword.
  • A new option called Events has been added to the Code menu. It generates dispatch classes for events sink.
  • The CLSIDs (Class identifiers) and IIDs (Interface identifiers) are now declared global and defined using assembler. The resulting code can be saved to a file suitable to be compiled as an static library or an object file.

Steven Picard

BTW, thanks for this great tool.  Hopefully we will soon get a lot more users who will benefit from your it.

dossic

HI!

I bought a new notebook, and it is only running Vista   Now, I can no more open ATLB under Vista.   Do you have any suggestion or help?

Yours   Carlo

JR

Which error are you getting?

dossic

The error message is the following :

"Error 1240040 releasing TLibAttr"

Yours   Carlo

JR

Thanks. Hope this new version will work. I don't have Vista installed.

dossic

It appears to work great!

Thanks.   Carlo