With a COM interface method declared as this:
[ object, uuid(....), ] interface IFoo : IUnknown { HRESULT Foo([in, out] CACLSID * items); }
With regards to marshalling, is the server allowed to reallocate the counted array? (I think it is, but I am not sure anymore)
Its current implementation only replaces the existing ID’s, but I’d like to implement a change (that would not break contract) that may return more items without introducing a new interface.
[edit] please note that CACLSID is already an array, containing a count and a pointer.
I have not done COM for a very long time but is it even possible to allocate a new array? In that case should it not be
CACLSID ** items?