Предоставляет доступ к свойствам, методам и события объекта COM посредством раннего связывания.
GETINTERFACE(oObject [, cIID | cInterface[, cTypelib | cProgID]]) |
Параметры
- oObject
-
Указывает целевой COM объект.
- cIID
-
Определяет GUID целевого интрефейса oObject. cIID может быть интрефейсом, таким как "IContextState" или он может быть GUID, таким как "{94631BEC-EE81-479A-AE64-A6CFC37B4799}". Если он является интрефейсом "IDispatch", тогда GetInterface() возвразает IDispatch (позднее связывание) ссылку на объект. Если cIID не указан, тогда GetInterface() возвратит интерфейс раннего связыания для объекта.
- cInterface
-
Указывает имя интрефейса.
- cTypelib
-
Указывает имя библиотеки типов, содержащей класс oObject.
- cProgID
-
Указывает имя программы, которая будет использования для поиска в библиотеке типов.
Возвраты
Ссылка на COM Object Interface
Примечания
GetInterface( ) применяется только к COM объектам. Если вы используете родные объекты Visual FoxPro, GetInterface( ) сгенерирует ошибку. GetInterface( ) возвращает ссылку на объект раннего связывания.
Когда DLL построена на платформах Windows 95, Windows 98 или Windows Me, Visual FoxPro не включает библиотеку типов внутри DLL. Когда вы используете GETINTERFACE( ) и ссылаетесь на DLL построенную на одной из этих платформ, вы должны использовать имя Type Library вместо имени DLL, как это показано в приведенном ниже коде:
![]() | |
---|---|
oX = GETINTERFACE(x, "Imyclass", "myclass1.TLB") |
Вы можете использовать приведенный ниже код для DLL построенных на Windows XP, Windows 2000 или Windows NT:
![]() | |
---|---|
oX = GETINTERFACE(x, "Imyclass", "myclass1.DLL") |
Пример
Приведенный код примера предоставляет метод, который вы можете использовать в ваших Visual FoxPro COM серверах для обработки таранзакций в COM+ приложениях. Этот пример требует, чтобы вы добавили COM сервер, содержащий этот код в COM+ приложение, до вызова его клиентом.
![]() | |
---|---|
LOCAL oMTX, oContext, oContextState
LOCAL lTxnState, lGetTxnState, lDone, lGetDone
lGetDone = .F. && инициализация установки
lGetTxnState = 0 && инициализация установки
oMTX = CREATEOBJECT("MTXAS.APPSERVER.1")
oContext = oMTX.GetObjectContext()
oContextState = GetInterface(oContext,"IContextState")
* Обработка установок активации (Doneness)
* Значения: .T. - деактивировать, .F. - оставить активной
lDone = .T.
oContextState.SetDeactivateOnReturn(lDone)
oContextState.GetDeactivateOnReturn(@lGetDone)
* Обработка установок транзакции (Consistency)
* Values: 0 - подписать, 1 - прекратить
lTxnState = 1
oContextState.SetMyTransactionVote(lTxnState)
oContextState.GetMyTransactionVote(@lGetTxnState) |