Указывает на наследование интерфейса из другого COM компонента.
[IMPLEMENTS cInterfaceName [EXCLUDE] IN TypeLib | TypeLibGUID | ProgID ] |
Параметры
- [IMPLEMENTS cInterfaceName [EXCLUDE] IN TypeLib | TypeLibGUID | ProgID]
-
Определяет, что определение класса наследует интерфейс или определение класса другого COM компонен. Вы можете включить множество предложений IMPLEMENTS.
Замечание
Определенные технологии, такие как Microsoft COM+ события, require the COM component to implement the interface of the event class being bound to.
Ключевое слово EXCLUDE исключает реализацию интерфейса из библиотеки типа.
Опция IN определяет местонахождение интерфейса для COM компонента. Вы можете указать библиотеку типов COM объекта с помощью TypeLib, GUID библиотеки типов с помощью TypeLibGUID или ProgID программы, которая инициализирует COM объект. Когда вы используете TypeLibGUID, укажите обозначение версии major и minor, как это сделано в приведенном ниже примере:
Скопировать код
IMPLEMENTS IDict1 IN {04BCEF93-7A77-11D0-9AED-CE3E5F000000}#1.0
Совет
Параметр TypeLib представляет собой наименее рекомендуемый путь указания библиотеки типов, поскольку для этого требуется указать имя файла, чей путь может различаться на разных компьютерах. Если вы распространяете вашу .dll, подумайте об использовании TypeLibGUID или ProgID вместо TypeLib.
Замечание
Когда вы используете опцию IMPLEMENTS, вы должны включить все методы этого интерфейса в определение класса. Вы должны использовать имя интерфейса строго также, как он показано в библиотеке типов. Однако, для имен интерфейсов, начинаяющихся с символа подчеркивания (_), таких, как класс ADODB RecordSet, символ подчеркивания необязателен. Предваряйте имя метода именем интерфейса, например
Publisher_ShowPrice
. Это соглашение поможет избежать конфликта между двумя интерфейсами, содержащими методы с одинаковыми именами в случае, когда вы включаете в определение класса множество предложений IMPLEMENTS. Свойства, по существу, хранятся в виде двух методов внутри библиотеки типов, например, Put и Get, и определение класса должно включать в себя оба метода.Совет
С целью экономии времени, вы можете использовать Visual FoxPro Object Browser и перетащить определения интерфейсов в ваш код. Вместе с предложением IMPLEMENTS для вам будут автоматически прописаны все инструментальные метожы с их параметрами. Для получения более подробной информации, смотрите Окно "Object Browser".
Примечания
В приведенном ниже процедурном коде показана сводка главных опций команды DEFINE CLASS:
![]() | |
---|---|
DEFINE CLASS Clause [Property_Definition_Clause] [PEMName_COMATTRIB Clause] [ADD OBJECT Clause] [IMPLEMENTS Clause] [Function_Procedure_Definition_Clause] ENDDEFINE |
Для получения более подробной информации о полном синтаксисе команды, смотрите описание DEFINE CLASS. Для получения более подробной информации о конкретных опциях команды DEFINE CLASS, смотрите приведенные ниже статьи справки:
Пример
В приведенном ниже примере создается класс с именем MyPublisherClass, на базе класса Custom, с использованием ключевого слова OLEPUBLIC с тем, чтобы клиенты автоматизации могли иметь доступ к классу, когда он будет включен в сервер автоматизации, с использованием оператора IMPLEMENTS для наследования определения класса, наследуемого, в свою очередь из определения класса Publisher в библиотеке типов MyBookStore.dll, и включением метода ShowPrice из интерфейса Publisher.
![]() | |
---|---|
DEFINE CLASS MyPublisherClass AS Custom OLEPUBLIC IMPLEMENTS Publisher IN "MyBookStore.dll" PROCEDURE Publisher_ShowPrice(cGetID AS Long) AS Short ENDPROC ENDDEFINE |