bfosterjr: changed to __cdecl