#1
|
|||
|
|||
VB6 IIDs changing for no obvious reason.
I have discovered that every time I (re-)build a VB6 COM object, it ends up with new IIDs (Interface UUIDs).
This happens even though: 1) Binary compatibility is ON (see "Build VB6" VBP project file below). 2) The VB6 source has not changed. 3) The *only* deltas in the interface are the IIDs, the interface content is identical. 4) No other GUIDs (CLSID, TypeLib) change. This started happening after I started using VBP to do the builds. While I am not saying VBP caused this problem (and I don't see how it could), when I build the exact same source on an older version ("pre-VBP") of the build system disk, the IIDs do not change. The IIDs also change if I build the project the "pre-VBP" way using the current (VBP) build system disks. Any ideas on what is causing the IIDs to change? Notes: 1) I found the changing IIDs by using "OLE View" to generate IDL for a problem DLL (VBIliadDataMgr.dll) TypeLib. Then I used WinDiff and found that 3 IIDs differed. It is always the same 3 IDs that change, the other 7 do not change. I have attached IDL made from 3 versions of this DLL. 2) The "Build VB6" VBP project file used to run the IDE looks like: <?xml version='1.0'?> <project version='5'> <step action='Group' type='0'> <name>Project steps</name> </step> <step action='Make VB6' type='0'> <Attr type='11'>-1</Attr> <BinCompat type='11'>-1</BinCompat> <CompatDir>..\cbin</CompatDir> <Filename>%PROJ_FILE%</Filename> <IncrReason type='11'>-1</IncrReason> <TargDir>..\bin</TargDir> <Version>%VB6BLDVERSION%</Version> <VersionSel type='3'>2</VersionSel> <ignorefail type='11'>-1</ignorefail> <indent type='3'>1</indent> <name>VB6 build</name> </step> </project> 3) FWIW, the run-time error associated with this problem is the expected one: Run-time error '430': Class does not support Automation or does not support expected interface |
|
|