У меня есть компонент среды выполнения Windows, в котором все мои занятия нужно выставить ручку внутренне:Открытый класс исх реализует внутренний интерфейс в C++/CX
private interface class IHandleContainer {
IntPtr GetHandle();
}
namespace Foo {
public ref class Bar: IHandleContainer { ... }
public ref class Baz: IHandleContainer {
internal:
virtual IntPtr GetHandle() = IHandleContainer::GetHandle;
}
}
мне не нужно IHandleContainer быть публичным, но I do необходимо, чтобы IHandleContainer находился в списке интерфейсов, чтобы каждый из моих внутренних объектов мог быть safe_cast<IHandleContainer>
успешно.
Будучи находящимся за пределами пространства имен, IHandleContainer
не должно быть выбрано в метаданных, но должно иметь ассоциированный с ним идентификатор GUID и, указав его в списке интерфейсов класса ref, CX должен иметь возможность подключить правильный ответ к QueryInterface , Структурно все должно «просто работать». Но компилятор не сотрудничает: