Dmitry Timoshkov dmitry@baikal.ru writes:
Alexandre Julliard julliard@winehq.org wrote:
The patch actually removes the casts, the only cast that remains is the cast on the caller's side for the vtable pointer (which is much cleaner IMO since every COM object implements IUnknown), but the implementation itself is cast free, and looks now as an actual COM object.
Not really. An actual COM object would contain a pointer to a vtable for the correct interface. IUnknown is not much better than void*.
enumx doesn't need anything else besides IUnknown interface, having right inteface definition won't change anything.
enumx is not a real interface. The real interfaces are IEnumSTATPROPSETSTG and IEnumSTATPROPSTG, and that's what the vtables should be, in the corresponding objects. The common code can be shared with helper functions.