Something is amiss... When I do SetWindowLong it fails, and I can't figure out why.

Here is the relevant code:
Code:
Sub SubClass(hWnd As Long)
    hPrevWndProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)
    If hPrevWndProc <> 0 Then
        bIsSubclassed = True
    End If
End Sub
Except hPrevWndProc always ends up as zero.

What is happening here?

Thanks,
--Josh