The PowerBASIC COM Browser supports exporting an Interface Structure to the clipboard or directly to a disk file. Both options are available through the File menu, plus options to Find and Select All Interfaces:
When the PowerBASIC COM Browser exports data, it generates a set of compilable PowerBASIC INTERFACE structures that define the selected Interface(s) and Interface members. Enumerations in the list are also exported as a list of numeric and/or string equates. In addition, the PowerBASIC COM Browser will add a header block noting the name and other relevant details from the type library.
When developing a COM controller application, it is common for all the Interfaces to be exported to a .INC file which is included into the main application with a #INCLUDE metastatement. However, exporting to the clipboard can be useful in situations where just one or two Interface definitions are required in the program.
Including the entire Interface definition and Enumerations for a COM Object only increases the size of the source code -- it has no impact on the size of the final compiled code.
The following is a portion of the data exported by the PowerBASIC COM Browser:
' ----------------------------------------------------------
' Library Name: Microsoft Word 8.0 Object Library
' Library File: C:\Office\MSWORD8.OLB
' ----------------------------------------------------------
' Version Info:
' -------------
' Company Name: Microsoft Corporation
' File Description: Microsoft Word for Windows® 97 object library
' File Version: 8.0
' Internal Name: mswordtlb
' Legal Copyright: Copyright (C) Microsoft Corporation 1983-1996.
' Original Filename: MSWORD8.OLB
' Product Name: Microsoft® Word for Windows® 97
' Product Version: 8.0
' ----------------------------------------------------------
' ProgID: Word.Application.8
' Interface Name: WordApplication
'
' Interface Prefix: Word
' ----------------------------------------------------------
$PROGID_WordApplication8 = "Word.Application.8"
INTERFACE DISPATCH WordApplication
MEMBER GET Application<&H3E8>() AS WordApplication
MEMBER GET Creator<&H3E9>() AS LONG
MEMBER GET Parent<&H3EA>() AS VARIANT
MEMBER GET Name<&H0>() AS STRING
MEMBER GET Documents<&H6>() AS WordDocuments
...
See Also
Creating an Instance of an Object
Example COM controller application