12 Aug 23:52
COM status report
From: Jan Jezabek <jezabek <at> poczta.onet.pl>
Subject: COM status report
Newsgroups: gmane.comp.programming.swig.devel
Date: 2008-08-12 21:52:47 GMT
Subject: COM status report
Newsgroups: gmane.comp.programming.swig.devel
Date: 2008-08-12 21:52:47 GMT
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)
RSS Feed