Documentation of window creation/destruction and it's details.
# Raw Notes
Each WM_* event bellow corresponds to:
1. Calling and then returning from `WH_CALLWNDPROC`
2. Calling and then returning from the `WNDPROC`. Child nodes indicate what the wndproc called before returning.
3. Calling and then returning from `WH_CALLWNDPROCRET`
* See SetWindowsHookExW for WH_\*
* Windows 10.0.19043.1526
### Typical call/event tree of calling create_window_ex_w
```text
create_window_ex_w
WH_CBT: HCBT_CREATEWND
WM_GETMINMAXINFO
WM_NCCREATE
WM_NCCALCSIZE
WM_CREATE
```
### Typical call/event tree of clicking `X`
```text
WM_NCLBUTTONDOWN
WM_CAPTURECHANGED
WM_SYSCOMMAND
WM_CLOSE
WH_CBT: HCBT_DESTROYWND
WM_UAHDESTROYWINDOW
WM_WINDOWPOSCHANGING
WM_WINDOWPOSCHANGED
WM_NCACTIVATE
WM_ACTIVATE
WM_ACTIVATEAPP
WM_KILLFOCUS
WM_IME_SETCONTEXT
WM_IME_NOTIFY
WM_DESTROY
WM_NCDESTROY
IsWindow finally starts to return FALSE
```
### `Alt`+`F4` instead of clicking, with a single recursive destroy inside WM_DESTROY
```diff
-WM_NCLBUTTONDOWN
- WM_CAPTURECHANGED
WM_SYSCOMMAND
WM_CLOSE
WH_CBT: HCBT_DESTROYWND
WM_UAHDESTROYWINDOW
WM_WINDOWPOSCHANGING
WM_WINDOWPOSCHANGED
WM_NCACTIVATE
WM_ACTIVATE
WM_ACTIVATEAPP
WM_KILLFOCUS
WM_IME_SETCONTEXT
WM_IME_NOTIFY
WM_DESTROY
+ WH_CBT: HCBT_DESTROYWND
+ WM_UAHDESTROYWINDOW
+ WM_DESTROY
+ WM_NCDESTROY
+ IsWindow finally starts to return FALSE
WM_NCDESTROY
- IsWindow finally starts to return FALSE
```