You don't call OnXYZ type functions, they are called by the framework upon receiving messages. These functions are called message handlers, because they handle messages for specific types of windows events.
For more info check
the documentation on Message Handlers[
^]
On a sidenote, OnCreate isn't supposed to fill in the passed struct - it is provided by the framework, who got all the parameters from the function that created the new window, e. g.
CreateWindow()[
^]