Hello Dalighiery !
The COD, or Complément d'Objet Direct, is a member of the verbal group, as is the COI, or Complément d'Objet Indirect.
There is a simple way to figure out if a Object Complement is 'direct' or 'indirect' : the COD is the answer to the question 'Quoi ?', whereas the COI is the answer of the question 'A quoi/A qui ?' or 'De qui ?/De quoi?'
Eg :
- "Le chat mange la souris." => Le chat mange quoi ? => 'la souris' is a COD
- "Le renard parle au corbeau" => A qui parle le renard ? => 'le corbeau' is a COI
"Le renard parle du corbeau" => De quoi parle le renard ? => 'le corbeau' is a COI
I think it is the simplest way.
I hope it helps.