RemoteImageBufferMessageHandler is supposed to be a message handler. However it actually manages the lifetime of the remote image buffer, by sending a CreateImageBuffer message in its constructor, and a ReleaseImageBuffer in its destructor. I think these operations should be explicit, and called from the actual class that represents the local version of the remote buffer (which is a subclass of RemoteImageBufferMessageHandler, but is really using that as a protocol, not for inheritance). The create and release operations should be methods on RemoteImageBufferMessageHandler.
<rdar://problem/60108973>