Next: Step 2 - Base package, Up: The COM object implementation [Contents][Index]
The type library must be embedded in to every COM object in order to let the operating system know how to handle proxying and marshaling of the object when needed. It also provides information to binding generators, visual tools, and scripting languages about the object. This is done by creating and compiling with the GNU windres or Microsoft’s rc followed by res2coff a resource script that contains the line:
1 TypeLib "gnatexample.tlb" |
Where gnatexample.tlb would be the name of your type library file. It is
also advisable to include a version info resource with a StringFileInfo
block containing the value pair OLESelfRegister and a blank to indicate
that the COM object container will handle registration of the COM object
and type library when requested to do so from the command line for Local
Servers or using the utility regsvr32.exe for InProc Servers. For
example:
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
FILEFLAGS 0x0L
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Your Company Here\0"
VALUE "FileDescription", "gnatexample\0"
VALUE "FileVersion", "1, 0, 0, 1\0"
VALUE "InternalName", "gnatexample\0"
VALUE "LegalCopyright", "Copyright©\0"
VALUE "OriginalFilename", "gnatexample\0"
VALUE "ProductName", "gnatexample\0"
VALUE "ProductVersion", "1, 0, 0, 1\0"
VALUE "OLESelfRegister", ""
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
|