The Old English words for window were eagĢyrl, which literally means "eye-hole," and eagduru, "eye-door." The former has a better meaning for windows that are used to view through, as opposed to those that let air in. But, I didn't want to worry about having to type the "Ģ" (thorn) character, which is no longer in the English alphabet and not in ASCII.
All instances of concrete types derived from
message_tap, which is a base class of
eagduru, must use
new to create instances. The code within the class uses smart pointers
delete this object when the reference count drops to zero. So, you must
not create an instance on the stack or in static data.
Instances cannot be assigned or copied.
Instances use smart pointers to control their lifetime. As you would expect, the object is destroyed when the
last smart pointer holding it is dropped. However, the Windows primitive
HWND window also participates in the ownership
of this object. Effectively (though the actual implementation is more circuitous), the window contains a smart pointer to
this object. The interesting ramifications of this are: