Previous | Table of Contents | Next |
17.5.2.1 Ordering Rules for the CORBA->MIDL Transformation
• Each OMG IDL interface that does not have a parent is mapped to an MIDL interface deriving from IUnknown.
• Each OMG IDL interface that inherits from a single parent interface is mapped to an MIDL interface that derives from the mapping for the parent interface.
• Each OMG IDL interface that inherits from multiple parent interfaces is mapped to an MIDL interface deriving from IUnknown.
• For each CORBA interface, the mapping for operations precede the mapping for attributes.
• The resulting mapping of operations within an interface are ordered based upon the operation name. The current ordering is to sort the operations based on the byte-bybyte comparison of the ISO-Latin-1 encoding values of their respective names (e.g., operation ‘A’ comes before operation ‘B.’
• Similarly, the resulting mapping of attributes within an interface are ordered based upon the ISO-Latin-1 encoding of attribute name. If the attribute is not read-only, the get <attribute name> method immediately precedes the set <attribute name> method.
17.5.2.2 Ordering Rules for the CORBA->Automation Transformation
• Each OMG IDL interface that does not have a parent is mapped to an ODL interface deriving from IDispatch.
• Each OMG IDL interface that inherits from a single parent interface is mapped to an ODL interface that derives from the mapping for the parent interface.
• Each OMG IDL interface that inherits from multiple parent interfaces is mapped to an ODL interface, which derives using single inheritance from the mapping for the first parent interface. The first parent interface is defined as the first interface when the immediate parent interfaces are sorted based upon interface idname. The names are put in ascending order based upon the byte-by-byte comparison of ISO-Latin-1 encoding values of the interface names (for example, interface ‘AZ’ comes before interface ‘BA’).
• Within an interface, the mapping for operations precede the mapping for attributes.
• An OMG IDL interface’s operations are ordered in the resulting mapping based upon the operation name. The operations are put in ascending order based upon the ISO-Latin-1 encoding values of the operation names.
• Similarly, the mapping of an OMG IDL interface’s attributes are ordered in the resulting mapping based upon the byte-by-byte comparison of the ISO-Latin-1 encoding of the attribute name. For non-read-only attributes, the [propget] method immediately precedes the [propput] method.
• For OMG IDL interfaces that multiply inherit from parent interfaces, the new interface is mapped as deriving from the mapping of its first parent.
• Then for each subsequent parent interface, the new interface will repeat the mapping of all operations and attributes of that parent excluding any operations or attributes that have already been mapped; that is, these operations/attributes are grouped per interface and each group is internally ordered using the rules described above. • After all the parent interfaces are mapped, the new operations and attributes that were introduced in the new interface are then mapped using the ordering rules for operations and attributes.