Make `cBlockEntityWithItems` inherit from `cBlockEntityWindowOwner` (and remove the window owner from all subclasses - chest, dropspenser, enderchest, furnace, hopper); then you'll have the windowing stuff.