typedef ULONG_PTR (__cdecl * CDECL_FUNC)( ... ); 

on its own gives lots of syntax errors (has to have at least one formal argument), so I can break it down to CDECL_FUNC(VOID), CDECL_FUNC(ULONG_PTR), CDECL_FUNC(ULONG_PTR, ...)

Now to test...