First, many types of the
Microsoft.Office.Interop.Word
are technically the interfaces but are named not according to the naming conventions of interfaces. I just referenced and opened, out of curiosity,
Microsoft.Office.Interop.Word
v.12.0.0.0 and can confirm it. However, you should not be confused. Interfaces are interfaces, no matter how someone named them. Probably this is due to the style of original Word API, something existing by historical reasons.
Let's sort it out. Do you understand that, when it comes to objects, interface types can serve only as the compile-time types of objects, as interfaces cannot be instantiated; and run-time types of these objects represented by the interface references could be only classes or structures? Every time you work with any really existing interface reference during run time, you really work with an object which run time type is a class or a structure implementing the interface. There is nothing mysterious or unclear about it; this is the universal principle of using interfaces, as well as abstract classes, a very basic OOP principle.
[EDIT]
The right pattern is this:
interface IMyInterface {
void MyMethod();
}
class MyClass : IMyInterface {
void IMyInterface.MyMethod() {}
}
structure MyStructure : IMyInterface {
void IMyInterface.MyMethod() {}
}
IMyInterface objectOne = new MyClass();
IMyInterface objectTo = new MyStructure();
objectOne.MyMethod();
MyClass instance = (MyClass)objectOne;
instance.
[END EDIT]
As to the
TextBox
— no, there is no such type in the whole assembly, and it's hard to understand why would anyone would need such thing in Word interoperation.
However, there is the interface
Microsoft.Office.Interop.Word.TextInput
. Maybe, this is what you are looking for. Please see:
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.textinput%28v=office.14%29.aspx[
^],
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.textinput%28v=Office.11%29.aspx[
^].
—SA