Compartir a través de


GETINTERFACE( ) (Función)

Proporciona acceso a las propiedades, los métodos y los eventos de objetos COM mediante enlace en tiempo de compilación.

GETINTERFACE(oObject [, cIID | cInterface[, cTypelib | cProgID]])

Devuelve

Referencia de la interfaz de objetos COM

Parámetros

  • oObject
    Especifica el objeto COM de destino.
  • cIID
    Especifica el GUID de la interfaz de destino de oObject. cIID puede ser una interfaz tal como "IContextState" o un GUID, tal como "{94631BEC-EE81-479A-AE64-A6CFC37B4799}". Si es "IDispatch", GetInterface() devuelve una referencia IDispatch (de enlace en tiempo de ejecución) para el objeto. Si no se especifica cIID, GetInterface() devuelve la interfaz de tiempo de compilación para el objeto.
  • cInterface
    Especifica el nombre de la interfaz.
  • cTypelib
    Especifica el nombre de la biblioteca de tipos de la clase oObject.
  • cProgID
    Especifica el nombre del programa que se debe utilizar para realizar búsquedas en la biblioteca de tipos.

Observaciones

GetInterface( ) sólo puede aplicarse a objetos COM. Si utiliza objetos nativos de Visual FoxPro, GetInterface( ) generará un error. GetInterface( ) devuelve una referencia a objeto en tiempo de compilación.

Ejemplo

El siguiente miniprograma es un ejemplo de un método que se puede utilizar en un servidor COM de Visual FoxPro para controlar las transacciones de una aplicación COM+. Este ejemplo requiere, para recibir llamadas de un cliente, que el servidor COM que contenga el código se agregue a una aplicación COM+.

LOCAL oMTX, oContext, oContextState
LOCAL lTxnState, lGetTxnState, lDone, lGetDone
lGetDone = .F.     && initialize setting
lGetTxnState = 0  && initialize setting

oMTX = CREATEOBJECT("MTXAS.APPSERVER.1")
oContext = oMTX.GetObjectContext()
oContextState = GetInterface(oContext,"IContextState")

* Handle activation setting (Doneness)
* Values: .T. - Deactivate, .F. - Leave activated
lDone = .T.
oContextState.SetDeactivateOnReturn(lDone)
oContextState.GetDeactivateOnReturn(@lGetDone)
     
* Handle transaction setting (Consistency)
* Values: 0 - commit, 1 - abort
lTxnState = 1
oContextState.SetMyTransactionVote(lTxnState)
oContextState.GetMyTransactionVote(@lGetTxnState)

Vea también

CREATEOBJECTEX( ) | Enlace en tiempo de compilación (vtable) y en tiempo de ejecución (IDispatch) | GETOBJECT( ) | SYS(2333) - Soporte de interfaz dual de ActiveX | Ver información de bibliotecas de tipos