Ну, я не совсем понимаю ваш вопрос здесь, но следующее должно помочь:
- Публичные определения enum должны иметь свои uuid , чтобы быть действительно публичными.
- Я видел, что эти определения enum не попадают в библиотеку типов, если они не используются в каком-либо методе интерфейса. Я не знаю причину этого, возможно, я пропустил что-то простое (например, добавление этого перечисления в библиотечный блок или что-то еще).
short
обычно означает короткое целое число, а не число с плавающей запятой одинарной точности.
- Эквивалент
float
- это single
в VB, но, как я видел по другим вашим вопросам, я подозреваю, что вы действительно имели в виду замену single
на float
.
Кстати, я бы рекомендовал опубликовать один минимальный (компилируемый) файл IDL (без большинства определений), который более или менее напоминает то, что вы пытаетесь скомпилировать. Это помогает избежать путаницы, так как вы, например, используете IS8Simulation
в тексте, но S8SimObject
в скопированном фрагменте IDL. И это также поможет, если вы укажете ожидаемый результат и неожиданную (для вас) ошибку.
Редактировать
Хорошо, эта ошибка компиляции, которую вы сейчас вставили, проста: S8SimObject
не определено. Вы всегда должны ссылаться на интерфейс в объявлениях методов (IS8Simulation
), а не на Coclass, который реализует интерфейс.
Как вы сказали, вы меняете существующий файл IDL: какова основная цель? Если исходный файл IDL всегда использует S8SimObject
, возможно, единственная проблема заключается в том, что определение S8SimObject
не включено в начало файла IDL? Если у вас есть библиотека типов, определяющая S8SimObject
, вы можете экспортировать IDL этого интерфейса с помощью OleView.