Dmitry Timoshkov <dmi...@baikal.ru> writes: > Alexandre Julliard <julli...@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. -- Alexandre Julliard julli...@winehq.org