I do not think it is quite right, 1) it looks like a breach of existing design: protected destructor means that pointers to this class should not be explicitly deleted, and it shall remain 2) Please look at the life cycle of native windows currently applied, for instance Runtime does not own its 'window_' data member.