I'm currently upgrading a suite of applications from 18.2 to 19.1.

One of these applications, a windows application, includes some COM interfaces to msado and cdosys, generated by FlexCOM2.

When I compile this application with 19.1 I get this error:

Error 4332: ...\msado26.pkg (ln 219) Symbol already defined OLEADCREATESTRUCTDOC

Now, if I comment out line 219 the error goes away, but that makes no sense at all.

msado26.pkg contains a lot of definitions. Among them:

Code:
Define OLEConnectModeEnum for Integer
    Define OLEadModeUnknown for 0
    Define OLEadModeRead for 1
    Define OLEadModeWrite for 2
    Define OLEadModeReadWrite for 3
    Define OLEadModeShareDenyRead for 4
    Define OLEadModeShareDenyWrite for 8
    Define OLEadModeShareExclusive for 12
    Define OLEadModeShareDenyNone for 16
    Define OLEadModeRecursive for 4194304


Define OLERecordCreateOptionsEnum for Integer
    Define OLEadCreateCollection for 8192
    Define OLEadCreateStructDoc for -2147483648
    Define OLEadCreateNonCollection for 0
    Define OLEadOpenIfExists for 33554432
    Define OLEadCreateOverwrite for 67108864
    Define OLEadFailIfNotExists for -1

cdosys.pkg, which is also included, also contains a lot of definitions. Among those:

Code:
Define OLEConnectModeEnum for Integer
    Define OLEadModeUnknown for 0
    Define OLEadModeRead for 1
    Define OLEadModeWrite for 2
    Define OLEadModeReadWrite for 3
    Define OLEadModeShareDenyRead for 4
    Define OLEadModeShareDenyWrite for 8
    Define OLEadModeShareExclusive for 12
    Define OLEadModeShareDenyNone for 16
    Define OLEadModeRecursive for 4194304


Define OLERecordCreateOptionsEnum for Integer
    Define OLEadCreateCollection for 8192
    Define OLEadCreateStructDoc for -2147483648
    Define OLEadCreateNonCollection for 0
    Define OLEadOpenIfExists for 33554432
    Define OLEadCreateOverwrite for 67108864
    Define OLEadFailIfNotExists for -1
These two blocks of code are 100% identical. The 19.1 compiler fails hard on one of these definitions, but happily accepts all the others.

Bug or feature?