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