Why does C=O have a larger dipole moment than C-O? Why does $\ce{C=O}$ have a larger dipole moment than $\ce{C-O}$? 

According to me, dipole moment directly depends upon bond length and electronegativity difference. In $\ce{C=O}$ and $\ce{C-O}$, (I guess, please clear if I am wrong) the EN difference is same, and bond length of $\ce{C=O}$ is less than $\ce{C-O}$. So, $\ce{C=O}$ must have less dipole moment than $\ce{C-O}$ but it is not so. Why?
According to Wikipedia, bond dipole moment depends on:


Distance between atoms and 
Overall charge difference, not just electronegativity difference.   


Resonance tells us that there is some amount of charge separation in $\ce{C=O}$ bonds because of the $\ce{C+-O-}$ contributor. This difference in charge, in addition to the electronegativity difference, is more significant than the decrease in distance between atoms, hence the larger dipole moment for $\ce{C=O}$.