Jan Jezabek | 12 Aug 23:52
Picon

COM status report

Hi Ian (and list),

It's been a long time since the last status report - sorry for that. I 
haven't been sitting idle though. Here is what I have been working on in 
the last two weeks:

- support for constants which are wrapped as read-only properties in the 
module class,
- support for enums (type unsafe for now). COM has a very obscure enum 
feature, which is rather useless. Therefore enum values are currently 
just constants in the appropriate scope (e.g. if a class defines an enum 
then the constants are not in the module class which corresponds to 
global scope),
- added of typemaps for char *, std::string, std::wstring (all mapped to 
the OLE BSTR type, using character set conversion if necessary),
- added INPUT, OUTPUT, INOUT typemaps for all primitive types,
- changed wrapped function declarations to return HRESULT, converting 
the real return value to a [ retval, out ] parameter. This is required 
for OLE Automation and for DCOM,
- added stub exception handlers, simply returning E_ABORT,
- various bugfixes which brought the number of non-compiling tests from 
117 down to 25,
- made some changes to allocate.cxx to enable detecting overloading of 
functions which are inherited from base classes and the corresponding 
changes to the COM module,
- added a feature that I call 'class objects' (suggestions for a better 
name are welcome) used to work around the lack of static functions in 
COM. In short this is meant to be used if you need to call a static 
method of a class but you do not have an instance of that class. This is 
probably best shown by an example:
(Continue reading)


Gmane