Comet History

Version 1 beta 31 ( )
  • safearray.h - Fix a few omissions/bugs (Lijun Qin)
  • comet_lint.lnt - Add pclint options file. (Michael Geddes)
  • server.h - Fix singlton_autorelease class (Ralf Jürgensen)
  • datetime.h - Fix bug in century non-leap-years. (Michael Geddes)
  • datetime.h - Use julian date conversions from boost - to drastically improve split/join efficiency (Michael Geddes)
  • datetime.h - Make invalid() rather than valid() the default (Michael Geddes)
  • date.h - Make use of above improvements in datetime_t (Michael Geddes)
  • datetime.h/date.h - Add ability to construct/assign invalid/null dates from dt_null, dt_invalid (Michael Geddes)
Version 1 beta 30 (2004-3-5)
  • Support for VC7.1 partial specialisation. (Lijun Qin)
  • datetime.h - Bugfix in datetime_t conversion (Gordon Donaldson)
  • safearray.h - Separate safearray_t::resize into resize and resize_bound to avoid ambiguous conversions. (Michael Geddes)
  • safearray.h - Fix bug in safearray_t:resize_bound using an incorrect copy. (Michael Geddes)
  • safearray.h - Add safearray_t debug iterator for debug builds. (Michael Geddes)
  • safearray.h - Add more comments for safearray_t (Michael Geddes)
  • safearray.h - Support more container-type methods (erase,push_front,push_back,pop_front,pop_back) (Michael Geddes)
  • server.h - Add auto-release singleton (Michael Geddes)
  • uuid.h - uuid_t::operator! no longer reversed (Lijun Qin)
  • uuid.h - fix ambiguous ++ operator usage. (Lijun Qin, Bulat Raditch, Michael Geddes)
  • handle.h - Extension of handles for GDI objects for cometw (Michael Geddes/Vladimir Voinkov/Lindgren Mikael)
  • bstr.h - Throw comparison errors if they occur. (Michael Geddes)
  • cp.h - add 'is_connected' method to connection points. (Lijun Qin)
  • common.h - Support for pclint (Michael Geddes, Gabriel Barta)
  • datetime.h - Support for timezones (Michael Geddes)
  • datetime.h - Fix up buffer handling (Michael Geddes, Lijun Qin)
  • variant.h - Support for strings with embedded nulls (Michael Geddes)
  • tlb2h - Support for bool in structs and in safearrays (Michael Geddes)
  • tlb2h - Support for wrapper renaming of specific methods on specific interfaces/struct/unions. (Michael Geddes)
  • tlb2h - Dual interfaces inherited from an interface in a different type-library now works when called by dispatch (Michael Geddes)
  • tlb2h - Output of HTML now better restricted to only required interfaces. (Michael Geddes)
  • tlb2h - Obey COM rules that require [out] pointers to be initialised on failure (Michael Geddes)
  • tlb2h - Support implementation of an interface that inherits from an interface from a different typelibrary (Michael Geddes)
  • cometautoexp - Support for more types, and better handling of strings. (std::basic_string, COLEDateTime) (Michael Geddes)
  • date.h - Added dateonly_t class. (Michael Geddes)
  • uuid.h - Make the strings accessors consistant (Michael Geddes, Lijun Qin)
Version 1 beta 29 (2003-12-30)
  • Added loads of documentation, reduced doxygen warnings to 1(Michael Geddes)
  • Added CometAutoExp.dll extended support for AutoExp.dat
  • Remove unnecessary catch(...) - use specific catches (Michael Geddes)
  • Support create_const_reference in all wrapper classes. (Michael Geddes)
  • tlb2h - Enhance support for error information (interface/coclass name) (Michael Geddes)
  • tlb2h - Add support for logging calls & exceptions. (Michael Geddes)
  • tlb2h - Support for special characters in help strings. (Michael Geddes)
  • tlb2h - Few tweaks to get correct output. (Michael Geddes)
  • tlb2h - Option to show version (Michael Geddes)
  • bstr.h - Work with _STLP_DEBUG wrappers (Michael Geddes)
  • bstr.h - Constructor works with MBCS (Michael Geddes)
  • bstr.h - Support for {} round uuid_t (Michael Geddes)
  • cp.h - Add convenience methods. (Michael Geddes)
  • datetime.h - Constructor to supply date and time (Michael Geddes)
  • datetime.h - Support output streams. (Michael Geddes)
  • error.h - Support for source, iid and helpfile in errors. (Michael Geddes)
  • interface.h - Provide extra comtype definitions. (Michael Geddes)
  • interface.h - Provide convenience macro to define extra comtype with IID_ instances. (Michael Geddes)
  • ptr.h - Add identity_ptr class that references an identity IUnknown. All other comparisons QI on both pointers. (Michael Geddes)
  • server.h - Add support for singelton classes. (Michael Geddes)
  • tlbinfo.h - Fix up reference counting on struct wrappers. (Michael Geddes)
  • tlbinfo.h - Support ITypeInfo2 (Michael Geddes)
  • variant.h - Added explicit converts (as_uchar(), as_uint(), as_double() etc) (Michael Geddes)
  • variant.h - Added is_empty(), is_null() and is_nothing() (Michael Geddes)
Version 1 beta 28 (2003-6-18)
  • Support for Visual Studio 2003
Version 1 beta 27 (2003-3-5)
  • tlb2h - bug fix variant_t members of dispinterfaces (Michael Geddes)
  • tlb2h - support for safearrays of interfaces (Michael Geddes)
Version 1 beta 26 (2003-2-1)
Version 1 beta 25 (2002-11-28)
Version 1 beta 24 (2002-11-13)
  • Major update of tlb2h. See and (Michael Geddes)
  • Fixed problem with variant_t::operator==. (Kyle Alons)
  • Fixed bug in bstr_t::s_str(), bstr_t::is_empty(), bstr_t::length() (Mikael Lindgren, Michael Geddes)
  • safearray_t: 1. Changed the constructor that takes two iterators to not have a default lowerbound (to be consistant with the other constructor) 2. Changed resize to allow specifying a lower-bound. 3. Changed the default lb to be 0 in the case where none is specified and where the safearray is NULL. (Michael Geddes)
Version 1 beta 23 (2002-9-1)
  • Bug fixes to namespace handling. (Michael Geddes)
  • Added friendly error message for missing tlbinf32.dll. (Sofus Mortensen)
  • Worked around MSVC6 internal compiler error when contructing an enum. (Michael Geddes)
  • Bug fixes to currency.h (Michael Geddes)
  • Bug fixes to datetime.h (Michael Geddes)
Version 1 beta 22 (2002-8-19)
  • Update of tlb2h - better handling of namespace mangling, and support for unwrapping the type of aliases without unwrapping the name of the aliases (Michael Geddes).
  • Fixed bug in uuid_fwd. (John Harrison)
  • Added oleidl_comtypes.h. (Gabriel Barta)
  • Restored old functionality of try_cast - will no longer throw when casting a null pointer. (Sofus Mortensen)
  • New auto-locking implementation of safearray_t::create_reference and safearray_t::create_const_reference. (Michael Geddes, Sofus Mortensen)
  • Included first drop (pre-alpha version) of cometw. (Vladimir Voinkov)
Version 1 beta 21 (2002-6-21)
  • Fixed null pointer bug in com_error::what(). (Kyle Alons)
  • Fixed bug to do with the unloading of typelibraries when refcount reaches zero. (Michael Geddes)
  • Added support for MBCS to std::string and const char* conversions for bstr_t. Only active when _MBCS is defined. (Michael Geddes)
  • Fixed locking/unlocking bug. (Vladimir Voinkov, Sofus Mortensen)
  • Fixed bug in safearray_t::create_reference(variant_t&). (Michael Geddes)
  • Various fixes to datetime and currency. (Michael Geddes)
  • Added constants COMET_VARIANT_TRUE and COMET_VARIANT_FALSE in order to avoid warnings. (Michael Geddes, Sofus Mortensen)
  • registry::value has been extended with overload for method str and dword, where a default value can be supplied if the key/value does not exist. (Sofus Mortensen)
  • Various patches for BCC. (Michael Geddes)
  • Solved problem with vtables gaps when inheriting from those interfaces. (Michael Geddes)
  • Removed a few level 4 warnings. (Michael Geddes)
  • Added experimental HTML generation to tlb2h. (Sofus Mortensen)
Version 1 beta 20 (2002-4-9)
  • tlb2h will fall back to using raw structs for structs with types that cannot be wrapped. (Sofus Mortensen)
  • Added application wizard for MSVC.NET. See tlb2h/src/Comet. (Sofus Mortensen)
  • Eliminated a few warnings. (Sofus Mortensen)
Version 1 beta 19 (2002-3-26)
  • Added caching of IRecordInfo to sa_traits for wrapped structs and ITypeInfo to IDispatch implementations. (Sofus Mortensen)
  • Fixed problem with safearray_t iterators on MSVC7. (Sofus Mortensen)
  • Fixed bug regarding range checking for safearray_t::at being off by one. (Sofus Mortensen)
  • Added range checking assertion (debug only) to safearray_t::operator[]. (Sofus Mortensen)
  • Changed safearray_t constructor, so that lower bound of one is no longer assumed. Instead lower bound must be specified. (Sofus Mortensen)
Version 1 beta 18 (2002-3-25)
  • Major revision of bstr_t. (Sofus Mortensen)
  • Added experimental support for wrapped structs to tlb2h and safearray. (Sofus Mortensen)
  • Fixed problem with having a coclass as a connection point sink. (Sofus Mortensen)
  • Revised treatment of [in, out] parameters in tlb2h. The old implementation could cause double deletion of [in. out] parameters when an exception was thrown. (Sofus Mortensen)
  • Revised all wrapper classes, in order for create_reference to create a mutable reference and create_const_reference an immutable reference. (Sofus Mortensen)
  • Revised locking in safearray_t. safearray_t::create_reference and safearray_t::create_const_reference is no longer doing automatic locking. (Sofus Mortensen)
  • tlb2h now generates #import alike smart pointer typedef. Ie. interface IFoo will be matched with a typedef com_ptr<IFoo> IFooPtr. (Sofus Mortensen)
  • Added support for datetime_t and currency_t to safearray_t. (Sofus Mortensen)
  • Added t_str() to bstr_t for converting to tstring. (Sofus Mortensen)
Version 1 beta 17 (2002-2-18)
  • Fixed bug in atl_module. (Michael Geddes)
  • Documentation update for bstr.h. (Michael Geddes)
  • bstr_t now supports strings with embedded nulls. Thanks to Eric Friedman for reporting this. (Sofus Mortensen)
  • Removed use of _alloca in bstr.h. (Sofus Mortensen)
Version 1 beta 16 (2002-2-12)
  • Fixed bug in functors bstr::less, bstr::less_equal, bstr::greater, bstr::greater_equal, bstr::equal_to and bstr::not_equal_to. (Michael Geddes)
  • tlb2h: switched ResolveAliases off per request from Michael Geddes.
  • tlb2h: Removed dummy wrapper methods (see (Sofus Mortensen)
Version 1 beta 15 (2002-2-1)
  • Added lw_lock class based on Brad Wilson's LightweightLock (see Many thanks to Brad for making LightweightLock open source. (Sofus Mortensen)
  • Comet now works with MSVC7. (Sofus Mortensen)
  • Removed functor.h. (Sofus Mortensen)
  • Fixed serious bug in bstr_base - causing memory corruption when concat'ing bstr's. (Michael Geddes)
  • Fixed obvious typo in locking_ptr. (Vladimir Voinkov)
  • Removed unnecessary include dependency from scope_guard.h. (Vladimir Voinkov)
  • Fixed compatibility problem with STLport for bstr comparison functors. (Michael Geddes)
  • Removed level 4 warnings from currency.h. (Michael Geddes).
  • Fixed problem with the -c option in tlb2h. (Michael Geddes).
  • Fixed bug in ATL_module.h. (Michael Geddes)
  • impl_dispatch is now lazy loading TypeInfo. Better performance for dual interfaces where client is not using IDispatch. (Sofus Mortensen)
  • Fixed various bugs in tlb2h. (Sofus Mortensen)
Version 1 beta 14 (2002-1-17)
  • Fixed problem with dispinterfaces and [in, out] enum parameters. (Sofus Mortensen)
  • Added simple system to prevent compiling out-of-date tlb2h generated headers. (Sofus Mortensen)
  • Fixed bug in impl_dispatch. (Michael Geddes, Sofus Mortensen)
Version 1 beta 13 take 4 (2002-1-11)
  • Fixed problem with dispinterfaces and enum parameters reported by Kyle Alons. (Sofus Mortensen)
  • Fixed serious bug in iterators for safearray_t reported by Steve Broeffle. The bug was caused by a MSVC compiler bug. (Sofus Mortensen)
  • Fixed bug operator in operator[] in iterators for safearray_t. (Sofus Mortensen)
Version 1 beta 13 take 3 (2002-1-9)
  • Fixed bug in uuid_t introduced in beta 13 take 2. (Sofus Mortensen)
Version 1 beta 13 take 2 (2002-1-7)
  • Beta 13 couldn't compile with _UNICODE defined. Fixed now. (Sofus Mortensen)
Version 1 beta 13 (2002-1-7)
  • Added basic support for writing exe servers in Comet. (Mikael Lindgren, Sofus Mortensen)
  • Added simple command line parser class to new header comet/cmd_line_parser.h (Mikael Lindgren)
  • Added new header comet/tstring.h. Defines tstring, tistream, tostream, etc, etc. (Sofus Mortensen)
  • Fixed various bugs in uuid_t. (Sofus Mortensen)
Version 1 beta 12 (2001-12-20)
  • Revision of embedded_object. embedded_object now takes parent type as first argument, arguments 2, 3, 4, .. denotes interfaces to implement. embedded_object_1 has been removed. embedded_object2 has been added, extends embedded_object with functionality to disconnect a child object from its parent. (Sofus Mortensen with help from Kyle Alons).
  • Added new file dispatch.h with specialisation of wrap_t<IDispatch> with similar (but superior) functionality as CComDispatchDriver.
  • Added new class dynamic_dispatch to dispatch.h. Use dynamic_dispatch to dynamically implement IDispatch - adding methods and properties at runtime. (Sofus Mortensen)
  • Changed interface of sink_impl so that unadvise no longer takes an argument. Additionally the destructor will unadvise if necessary. (Sofus Mortensen)
  • Added new file uuid.h with GUID/UUID/CLSID wrapper called uuid_t. (Sofus Mortensen)
  • Changed tlb2h to support new wrapper uuid_t. (Sofus Mortensen)
  • Fixed potential thread safety problem regarding class factories. (Sofus Mortensen, Paul Hollingsworth)
Version 1 beta 11 (2001-11-16)
  • Major fix to tlb2h. tlb2h now supports properties in dispinterfaces. (Sofus Mortensen)
  • Module constants are now static. (Sofus Mortensen)
  • tlb2h now skips non-COM interfaces that do not derive (directly or transitively) from IUnknown. (Sofus Mortensen)
  • Fixed problem with error messages ending up as garbage in tlb2h. (Kyle Alons)
  • Various fixes regarding safearray_t. (Michael Geddes and Sofus Mortensen)
  • Various other minor fixes. (Sofus Mortensen)
Version 1 beta 10 (2001-10-17)
  • class coclass changed so that the 3, 4, ... template parameters specifify additional interfaces to implement. Example:
        template<> coclass_implementation<Foo> : public coclass<Foo, thread_model::Both, IBar> 
    (Sofus Mortensen)
  • Aggregating another component is now done by adding class aggregates to the type list of interfaces. First template argument of class aggregates is the coclass to aggregating. The 2, 4, ... template arguments specify which interfaces to aggregate. If no interfaces have been specified, all interfaces will be aggregated. Example:
        template<> coclass_implementation<Foo> : public coclass<Foo, thread_model::Both, aggregates<Bar, IBar> >
    (Sofus Mortensen)
  • Added cmp method to bstr_base which a.o.t. can be configured for case insensitive comparision. (Michael Geddes)
  • Added comparison functors based on cmp to bstr_base, less, less_equal, equal_to, etc. Example of usage:
                    std::set<bstr_t, bstr_t::less<cf_ignore_case> > mySet;
    (Sofus Mortensen)
  • Fixed bugs in assignment operators for datetime_t. (Sofus Mortensen, Mikael Lindgren)
  • In common.h added workaround for VARIANT_TRUE resulting in a level 4 warning. (Michael Geddes)
  • Changed server.h, so that a compiler error will occur if there are unimplemented coclasses. In case you deliberately want unimplemented coclass define COMET_ALLOW_UNIMPLEMENTED_COCLASSES in std.h. (Sofus Mortensen)
  • Added various helper functions to util.h. (Sofus Mortensen)
  • Added support for aggregating the free threaded marshaler. Example:
        template<> coclass_implementation<Foo> : public coclass<Foo, thread_model::Both, FTM> 
    (Sofus Mortensen)
  • Various bug fixes and changes. (Sofus Mortensen)
Version 1 beta 9 (2001-9-23)
  • Now wrapper properties and methods are only available through com_ptr::operator->. (Sofus Mortensen)
  • Added ostream<> outputting facility to both variant_t and bstr_t. (Sofus Mortensen)
  • Added std::string conversions to variant_t. (Sofus Mortensen)
  • Fixed various bugs in tlb2h regarding dispinterfaces. (Sofus Mortensen).
  • Fixed bug in com_ptr - try_cast'ing from variant_t to com_ptr did not throw an exception on error. (Sofus Mortensen)
  • Made com_ptr constructor from variant_t and assignment from variant_t private in com_ptr to prevent misuse. Use com_cast or try_cast. (Sofus Mortensen)
Version 1 beta 8 (2001-9-19)
  • Fixed bugs in tlb2h regarding datetime_t. (Sofus Mortensen)
  • Wrapper properties are now only available when accessing an interface through com_ptr::operator->. (Sofus Mortensen)
  • Classes currency_t and datetime_t are now exception safe. (Sofus Mortensen)
  • Added conversions for variant_t from/to currency_t and datetime_t. (Sofus Mortensen)
  • Added conversions for std::wstring to variant_t, solving various ambiguity problems. (Sofus Mortensen)
  • Re-arranged various header files, solving include problems. (Sofus Mortensen)
Version 1 beta 7 (2001-9-7)
  • Added support for locking to safearray_t. (Michael Geddes)
  • Improved support in tlb2h for methods taking arrays as argument. (Sofus Mortensen)
  • Fixed bug in tlb2h regarding methods that were the parameters were wrongly given a default value. (Sofus Mortensen)
  • Fixed bug in tlb2h regarding type "void *". (Sofus Mortensen)
  • Fixed various bugs in datetime.h. (Michael Geddes)
  • Added COMET_ASSERT - a replacement for _ASSERTE. (Sofus Mortensen)
Version 1 beta 6 take 2 (2001-8-20)
  • Fixed dumb, dumb _ASSERTE bug in tlb2h (Sofus Mortensen).
Version 1 beta 6 (2001-8-19)
  • Changed distribution package - now including scripts for generating docs and the source for both tlb2h and the Comet App. wizard (Sofus Mortensen).
  • Wrapped string constant in server.h with _T( ) for UNICODE compatibility (Sofus Mortensen).
  • Tlb2h.exe now generates vtable fillers to cater for interfaces with gaps in the vtable. Such are typically produced by VB (Michael Geddes and Sofus Mortensen).
  • Bug fixes to date_t (Michael Geddes).
  • Elimination of compiler warnings in safearray_t and registry.h (Michael Geddes).
Version 1 beta 5 (2001-8-14)
  • tlb2h.exe now generates corrects defaults for [optional] VARIANT. variant_t has been updated in order to support this (Sofus Mortensen).
  • Fixed problem in tlb2h.exe with using COMET_ALLOW_DECLSPEC_PROPERTY when importing msado20.tlb (Sofus Mortensen).
  • Fixed problem in tlb2h.exe with aliases being treated as records (Michael Geddes).
  • Several bug fixes to nutshell generation (Michael Geddes).
  • Changed tlb2h, so that the generated headers only #include the headers needed (Michael Geddes).
Version 1 beta 4 (2001-7-25)
  • datetime_t has been updated and support for datetime_t has been added to tlb2h.exe (Michael Geddes).
  • typelist::index_of bug fix (Michael Geddes, Sofus Mortensen, thanks to Eric Friedman for reporting this).
  • typelist::type_at bug fix (Michael Geddes).
  • create_reference added to safearray_t (Michael Geddes).
  • Experimental attach_from / attach_to added to safearray_t (Michael Geddes).
  • Bug fix in variant.h (Sofus Mortensen).
Version 1 beta 3 (2001-7-14)
  • MSVC7 beta 2 compatibility fixes (Sofus Mortensen).
  • Various bug fixes in tlb2h (Sofus Mortensen).
  • Added wizard option to tlb2h for generating skeleton implementation of coclasses (Michael Geddes).
  • Various bug fixes to safearray.h (Michael Geddes).
  • variant_t now supports converion to/from saferray_t (Michael Geddes, Sofus Mortensen)
  • com_ptr can now be used to wrap a pointer to coclass_implementation (Michael Geddes).
  • enum.h and cp.h has been updated to support the changes to com_ptr (Michael Geddes).
  • Preliminary version of datetime_t has been added (Michael Geddes).
Version 1 beta 2 (2001-7-04)
  • Major documentation update (Michael Geddes).
  • Bug fix in tlb2h.cpp (Michael Geddes).
  • Replaced operator bool in com_ptr with a more bullet proof alternative (Sofus Mortensen).
  • Updated functor.h to make use of partial specialisation for compilers that support it (Michael Geddes).
Version 1 beta 1 (2001-6-29)
  • Added currency support to variant_t (Michael Geddes).
  • Documentation update for server.h (Michael Geddes).
  • Various bug fixes to do with agg-objects (Michael Geddes).
  • Added GetClassObject implementation to atl_module (Michael Geddes).
Version 1 alpha 10 (2001-6-26):
  • CURRENCY wrapper updated by Michael Geddes.
  • tlb2h has been updated by Michael Geddes (again!). This time with options to specify which namespace to put wrappers in, and an options to emit symbols only for faster compilation.
  • atl_module.h documentation updated by Michael Geddes.
Version 1 alpha 9 (2001-6-21):
  • CURRENCY wrapper added by Michael Geddes.
  • Nutshell wrappers didn't work in alpha 8. Now fixed.
  • tlb2h has been updated by Michael Geddes for better command line handling. It now supports multiple files including wildcards, and support for specifying an output directory.
  • Server implementation updated by Michael Geddes to support loading type libraries that has not yet been registered.
  • try_cast no longer throws on null pointers, and comet::com_ptr::operator->() now throws on null pointers. (Michael Geddes)
Version 1 alpha 8 (2001-6-10):
  • Compatibility patches for GCC/MINGW submitted by Michael Geddes.
  • Updated com_error with methods for accessing wrapped HRESULT value and IErrorInfo (source, helpfile, etc).
  • Various minor bug fixes.
Version 1 alpha 7 take 3 (2001-3-31):
  • Added converters for CURRENCY to variant_t..
  • Updated functor.h.
Version 1 alpha 7 take 2 (2001-3-28):
  • Fixed bug concerning using com_cast and try_cast with raw interface pointers.
  • Fixed bug in bstr.h
  • Fixed dependency on comet/stl.h in comet/enum.h
Version 1 alpha 7 take 1 (2001-3-26):
  • Support for dispinterfaces has been added by Michael Geddes and Mikael Lindgren.
  • BCC compatibility patches contributed by Michael Geddes.
  • Support for multiple connection points added by Michael Geddes.
  • Added generalised functor library that works with MSVC (Not really COM related)
  • comet::make_list<> has changed behaviour. Instead of writing make_list<IFoo, IBar>, you have to write make_list<IFoo,IBar>::result . This has been done in order to shorten error messages relating typelists.
  • Added several helper classes to comet/typelist.h for manipulation of typelists.
  • Fixed various "ambiguous conversion" errors
Version 1 alpha 6 (2001-3-7):
  • Fixed disastrous bug in comet::com_ptr.
  • Re-organisation of header files.
  • Support for Intel C++ 5.0 added.
  • Fixed bug in regkey.
  • Various bugs fixes.
Version 1 alpha 5 take 2 (2001-1-26):
Version 1 alpha 5 (2001-1-16):
  • Support for implementing aggregateable components. (Michael Geddes)
  • comet::com_ptr is no longer using common base class.
  • Various bug fixes.
Version 1 alpha 4.2 (2000-12-17):
  • Fixed bug in critical_section.
Version 1 alpha 4.1 (2000-12-14):
  • Fixed bug in variant.h
  • Added support for DATE and CURRENCY to tlb2h. (We might need wrapper classes for those).
  • Fixed missing inline in common.h.
Version 1 alpha 4 (2000-12-12):
  • Generated wrappers, interfaces, etc are now placed in namespace corresponding to typelibrary name by tlb2h.
  • Fixed bugs in variant.h
  • The generated wrappers are no longer using .get_raw() and .get_raw_ptr(). Instead the wrapper methods .in(), .in_ptr(), .inout() and .out() are being used.
  • Support for constants placed in type library modules. (See Joav Kohn's posting on ATL discuss).
  • Support for version numbering for ProgID's. (Thanks to Mikael Lindgren).
  • Updated the wizard.
Version 1 alpha 3 (2000-11-29):
  • Added sanity checking to safearray_t to capture type mismatches.
  • Added in() method to all wrapper classes for use when calling raw interfaces.
  • The generated header files are now using a normal include guard instead of #pragma once.
  • Various minor fixes.
Version 1 alpha 2 (2000-11-20):
  • Nutshell generation added to tlb2h.exe.
  • Added STL compatible SAFEARRAY wrapper called comet::safearray_t<T>.
  • Updated registry class.
  • New BSTR wrapper, comet::bstr<boolean> with optional reference counting.
  • comet::bstr_t is now a typedef of comet::bstr<false>.
  • ATL support added.
Version 1 alpha 1 (2000-10-29):
  • First alpha release of Comet.
Version 0.9.7 (2000-10-19):
Version 0.9.6 (2000-10-19):
  • Documentation updates.
  • Misc. bug fixes.
Version 0.9.5 (2000-10-5):
  • Documentation updates.
  • Paul Hollingsworth has been busy minimising include dependencies in the header files.
  • Added [out] and [in, out] adapters for dealing with raw interfaces.
Version 0.9.4 (2000-10-4):
Version 0.9.3 (2000-9-26):
Version 0.9.2 (2000-9-25):
  • Updated tlb2h to use const where appropiate.
  • Added support for unions.
  • Added support for one-dimensional arrays in structs.
Version 0.9.1 (2000-9-21):
  • Experimental support in tlb2h.exe for optional method arguments (ie. attribue optional or defaultvalue).
Version 0.9.0 (2000-9-19):
  • Paul Hollingsworth has contributed automatic implementation of IProvideClassInfo.
  • Better support for [in, out] parameters.
  • Fixed bugs in tlb2h's generation of connection point wrapper.
  • Removed progid from template parameters, instead override function get_progid().
  • Added version metadata to coclass and typelibrary wrappers.
  • Fixed bug in variant_t::variant_t(const comet::bstr_t&).
Version 0.8.3 (2000-9-12):
  • Removed DLL dependency for tlb2h.exe.
Version 0.8.2 (2000-9-7):
  • com_error / raise_exception_t has been revised.
  • Fixed bug in com_ptr::operator=(int)
  • Rearranged header inclusion introducing error_fwd.h.
  • Added misc. utility classes not necessarily related to tlb2h to tlb2h/utility.h.
  • Updated tlb2h.exe with more types.
Version 0.8.1 (2000-9-3):
  • Type conversions to/from bstr_t has been changed/tweaked.
  • bstr_t now supports concatenation through operator+ and operator+=.
Version 0.8.0 (2000-8-31):
  • Fixed several bugs in tlb2h.exe.
  • Added misc. utility classes not necessarily related to tlb2h to tlb2h/utility.h.
Version 0.7.10 (2000-8-25):
  • Updated AppWizard to generate uuid for type library.
  • Added trait class to com_server for servers with no embedded type library.
Version 0.7.9 (2000-8-21):
  • bstr_t is now capable of converting to std::string as well.
  • Rearranged util.h into list.h, common.h and util.h.
Version 0.7.8 (2000-8-18):
  • Added simple AppWizard for creating DLL projects.
  • Removed untie. Instead embedded_object now has a release_from_owner method.
  • structs defined in type libraries now automatically use CoTaskMem when using new/delete.
Version 0.7.7 (2000-8-15):
  • Changes to lifetime of embedded_object. Introducing tlb2h::untie, breaks tie between owner and embedded_object, so that the embedded_object can be destroyed before the owner.
Version 0.7.6 (2000-8-15):
Version 0.7.5 (2000-8-13):
  • Interface inheritance problems solved.
  • Problem with [in] VARIANT arguments solved.
  • create_enum now works with embedded_objects.
  • comet::make_list now handles up to 40 elements.
  • Problem with IUnknown interfaces in coclasses solved.
  • Workaround for bug in Visual Studio editor causing VS to crash when editing certain template code.
Version 0.7.4 (2000-8-8):
  • Conversion from comet::com_ptr to comet::variant_t improved.
  • Updated example to demonstrate now working COM enumeration implementation on STL containers.
Version 0.7.3 (2000-8-8):
  • Nasty connection point bug fixed.
  • Added trivial VB client example program demonstrating connection point.
  • Added com_cast and try_cast for casting interface pointers. Implicit casting no longer allowed.
  • comet::com_error::what() is now working.
  • Misc. minor bug fixes/tweaks.
Version 0.7.2 (2000-8-3):
  • Updated the example with registration custom build.
  • Misc. bug fixes.