Mi truco para diferenciar entre el CD y el sujeto (que no sé si será válido en la oración "hay libros").
Mi truco:
Para hallar el sujeto:
"En este establecimiento no se engaña a los clientes"
Se pregunta al verbo, en primer lugar,
¿quién?
"¿Quién engaña?" No responde...
Se pregunta
¿Qué? al verbo
"¿Qué engaña?" Tampoco responde...
Por lo tanto, es impersonal.
La siguiente frase sí tiene sujeto:
"Esa mujer no llevaba zapatos"
¿Quién lleva zapatos? Esa mujer, por lo tanto, esa mujer es sujeto.
Para hallar el CD o CI:
Se pasa a pasiva el supuesto CD y si tiene sentido, es CD. Si no tiene sentido, es CI.
"En este establecimiento no se engaña a los clientes". Los clientes puede ser CD; vamos a comprobarlo:
"Los clientes no son engañados en este establecimiento". Tiene sentido, por lo tanto es CD.
Otro ejemplo para el CI:
"Me parece rídicula su actitud".
¿Quién me parece ridícula? No contesta... ¿Qué me parece ridícula? Su actitud; por lo tanto, sujeto.
"Me", si lo pasamos a pasiva, nos dice: "Yo soy parecido ridículo". Como no tiene sentido, es CI.
Espero haber servido de ayuda, saludos!