Parece que estou instanciando essa interface SpeechAPI. Como isso é possível

Estou usando o recurso Microsoft Text-to-Text Speech no meu projeto. Mas eu tenho uma pergunta sobre isso, na verdade não diretamente sobre isso. Então

Normalmente os programadores ao criar a Interface, eles colocam I como um prefixo do nome da interface como IRead, capaz, IEnumerator etc. Mas encontrei algo que realmente me choco

na DLL de fala de texto da Microsoft, existe algo como isto: SpVoice, que é interface (eles não o colocaram como prefixo por algum motivo e não sei por quê?) e SpVoiceClass. Então, qual é o problema que você pode perguntar, aqui:

SpVoice speak= new SpVoice(); //I created an object from SpVoice Interface
speak.Speak("Hello StackOverFlow"); //and it speaks and say exactly what I write.

SpVoiceClass speak =  new SpVoiceClass();
speak.Speak("Hello Kowanichi"); //and it does the same thing.

O que eu não entendo é como? Como o primeiro funciona, apesar de dizer que é uma interface com vários métodos não implementados etc.

Por favor, alguém me explique COMO?

Estou realmente confuso agora e talvez os desenvolvedores da Microsoft não tenham colocado o prefixo por esse motivo, ele pode ser instanciad

Desde já, obrigado. Espero poder descrever meu problema claramente.

Aqui está a imagem que eu quero que você veja: alt text http://www.pixelshack.us/images/dngpe9kzoq83obtiami.pn

questionAnswers(6)

yourAnswerToTheQuestion