Define constants and c_int
aliases earlier than others in wrapper modules
#527
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have noticed something while fixing the bug reported in #524.
In the wrapper module, members of an enumeration are defined as module-level constants.
If they have the same name as a previously defined interface or CoClass, it will overwrite the definition.
The order of type information parsed from the COM library is optimized for the environment, so it is not always fixed.
In other words, symbols with duplicate names cannot be identified as to what type or value they are until the module is generated.
To ensure that the values of constants do not overwrite interfaces or CoClasses, codegenerator generates the codebase that defines the constants before them.