The simplest way is just to check if the current animation's name if it is Null
spAnimationState_getCurrent(animState,trackNo)
(how do I make the code tags not make a new line, anyone)
if the function above returns NULL it means there are no animations currently playing on the track, if it is the "runandshoot" that animation is currently playing. I am unsure how queuing animations work with this, but I believe it might just return the next animation in the queue, even if there is a delay (i.e. no animation currently being played).
Although this method assumes that you know what track your animation(s) are playing on. I would recommend using a enum to list your tracks anyway i.e. movement_track =1 attacking_track =2 damage_track = 3
The other option is to use callbacks (assuming it is supported)
viewtopic.php?f=7&t=3929&p=18992#p18992
Although looking at your code, do you really need two animations for that? you could just have a 'run' animation, and a 'shoot' animation, and merge them together, by using different tracks