Window handles can't actually be pointers, because they are shared with other processes. Also they have values like -1, 0, 1, 2, etc. So I always thought of them as numbers, which they logically are. Forcing the ambiguity to be resolved, when they were intentionally ambiguous, doesn't seem right to me.