KarstenK answered question 2.
Your first question is a bit vague.
The return type of a ThreadProc is DWORD. It is not void.
ThreadProc callback function (Windows)[
^]
If you are referring to the ThreadProc parameter, it is a pointer to void. As long as your function's parameter is a pointer, you can type cast the function to a ThreadProc.