Ma se lo deregistri tramite l'handle

this->m_hWnd

vuol dire che prima era associato alla "tua" finestra.

In ogni caso, per capire meglio, prova ad eseguire la API

int er1 = GetLastError();

sia subito dopo la chiamata della prima API che dopo la seconda

int er2 = GetLastError();

e dicci quanto valgono er1 ed er2