For anyone who still doesn't understand why the Cooks play was the correct ruling, this is the exact same situation, James ISN'T a runner, he hasn't made a football move, just like Cooks wasn't a runner because he never made a football move. If James was a runner, this would be a TD, regardless of the bobbling of the ball. Just carrying the ball across the goal line would have been good enough for a TD, no matter what happened after that.
If you're not a runner, having your knee down, elbow down, etc...is irrelevant, because without the football move, you're NOT considered to have possession of the ball. It's the exact same rule for fumbles. If a player catches a ball but doesn't make a football move and he gets the ball swatted out of his hands, it's an incomplete pass. If he makes a football move, and the ball is swatted, it's a fumble and a live ball.
James' catch didn't count because during the process of completing the catch he lost control of the ball. The process of completing the catch counts when the play is over, i.e the player isn't moving any longer. Cooks never completed his catch because he was still rolling on the ground when the ball was snatched from his arms.