Предоставляет доступ к свойствам, методам и события объекта 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

Указывает имя программы, которая будет использования для поиска в библиотеке типов.

Expand imageВозвраты

Ссылка на COM Object Interface

Expand imageПримечания

GetInterface( ) применяется только к COM объектам. Если вы используете родные объекты Visual FoxPro, GetInterface( ) сгенерирует ошибку. GetInterface( ) возвращает ссылку на объект раннего связывания.

Когда DLL построена на платформах Windows 95, Windows 98 или Windows Me, Visual FoxPro не включает библиотеку типов внутри DLL. Когда вы используете GETINTERFACE( ) и ссылаетесь на DLL построенную на одной из этих платформ, вы должны использовать имя Type Library вместо имени DLL, как это показано в приведенном ниже коде:

  CopyCode imageСкопировать код
oX = GETINTERFACE(x, "Imyclass", "myclass1.TLB")

Вы можете использовать приведенный ниже код для DLL построенных на Windows XP, Windows 2000 или Windows NT:

  CopyCode imageСкопировать код
oX = GETINTERFACE(x, "Imyclass", "myclass1.DLL")

Expand imageПример

Приведенный код примера предоставляет метод, который вы можете использовать в  ваших Visual FoxPro COM серверах для обработки таранзакций в COM+ приложениях. Этот пример требует, чтобы вы добавили COM сервер, содержащий этот код в COM+ приложение, до вызова его клиентом.

  CopyCode imageСкопировать код
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)

Expand image Смотрите также