An uintptr *is not a pointer*, so 2. is false.
NOTHING at Go's side holds anything regarding MyAppHwnd, and it doesn't seem to be a pointer at all (just a number),
so converting that to an unsafe.Pointer is unsafe.
The rules about uintptr are there for a reason!
Only the allowed use cases are guaranteed to have the desired effect, by preventing any memory movement
int that block of code.
Tamas