The code generated by the CVF COM server wizard declares the derived type of the COM object with the following form:
(1) Is the SEQUENCE attribute required?
(2) Is it possible for a component to have the pointer attribute e.g.
REAL(DP), DIMENSION(:), POINTER :: data => NULL()
(I am unsure if the SEQUENCE attribute can be used if a component has the pointer attribute??)
(3) The purpose for asking these questions is that I am considering wrapping existing Fortran 90 libraries in a COM wrapper. These libraries have their own derived types (e.g. TYPE(HashType) which have pointer types and no SEQUENCE attribute). It would be most desirable to encapsulate these existing derived types, without change, as components within a COM type:
TYPE(HashType) :: hash
Is it possible for a COM component to be a derived type?
(4) If the SEQUENCE attribute is necessary, what are the implications of adding the SEQUENCE attribute to my pre-existing derived types. Is there likely to be a performance hit?