I prefer where the numbers being tested are incremented by two, since no even number can be prime. Why test them at all? Only testing the odd numbers, cuts the work in half, straightaway.
Also, I prefer a more concise coding. Not
rem = *num % *div; /* Calculate the remainder */
if(rem == 0) /* If the remainder is 0, then num is not prime */
*isPrime = FALSE;
//but:
if(*num % *div)
*isPrime=FALSE;
else
*isPrime=TRUE; The comments are too verbose - the obvious code we need no comments on, imo. It's distracting, actually.
Nothing wrong with doing the testing in another function, but it does slow things down when you have to work through a pointer, time after time. With a very large number to be tested (or several very large numbers), the run-time jumps considerably.
I realize you're not coding for some Cryptographic endeavor, but after accuracy, I start putting a lot of emphasis on clarity and faster run-time/efficiency. Your code is easy to read, which is good.
I didn't catch the reason for TEST_EVEN being a test for even integers, when it's a floating point number.