Зачем tlbimp конвертировать интерфейсы в коклассы?

Фактически это функция, которая в большинстве случаев преобразует интерфейс в кокласс. Конкретно если в IDL у меня есть

interface IFirst {
}
interface ISecond {
    HRESULT GetFirst( IFirst** );
}

coclass First {
   interface IFirst;
}

тогда tlbimp увидит, что First единственный класс для реализации IFirst, поэтому он создает интерфейс.NET, где interface IFirst заменяется на class First

interface ISecond {
    First GetFirst(); // co-class returned, not interface
}

что, по-видимому, полезно в некотором роде.

Как это может быть полезно? Я имею в виду class First будет иметь те же методы, что и interface IFirst во всяком случае, так что это ничего не добавляет, поэтому без этого преобразования я мог бы просто передать interface IFirst везде и получай точно такой же эффект. Какая польза от этого преобразования?

0 ответов

Другие вопросы по тегам