Control Foxtlib de Visual FoxPro
Visual FoxPro incluye el control ActiveX Foxtlib (Foxtlib.ocx, ubicado en la carpeta System de Windows), que puede agregar y distribuir con sus aplicaciones. Los controles ActiveX se agregan a un formulario de una aplicación mediante el control Contenedor OLE de Visual FoxPro.
El control ActiveX Foxtlib permite el acceso a la información de las bibliotecas de tipos desde una aplicación Visual FoxPro. Las bibliotecas de tipos almacenan información sobre clases (propiedades, métodos, etcétera) para servidores de Automatización que puede crear con Visual FoxPro o Visual Basic. Normalmente, las bibliotecas de tipos se visualizan con examinadores de objetos y se hace referencia a ellas en otras aplicaciones, como Visual Basic o Visual C++, para permitir hacer referencias directas a objetos y compilarlas en el código.
Al crear un servidor de Automatización en el Administrador de proyectos o con los comandos BUILD DLL o BUILD EXE, se genera un archivo de biblioteca de tipos (.tlb). El archivo de biblioteca de tipos contiene información sobre cada clase, como el número de parámetros que requiere y sus tipos de datos, los tipos que devuelve el control, referencias a temas o archivos de ayuda con más información sobre la clase, etcétera.
Typelib.vcx, un ejemplo de biblioteca de clase visual que utiliza el control ActiveX Foxtlib, se encuentra instalado en el directorio …\Samples\Classes de Visual FoxPro.
En la tabla siguiente se muestran los métodos disponibles con el control ActiveX Foxtlib. Si desea información adicional sobre estos métodos, consulte Microsoft Developers Network.
Método | Descripción |
---|---|
TLLoadTypeLib(cTypeLibName) | Carga el archivo de biblioteca de tipos especificado en cTypeLibName. CTypeLibName debe contener una ruta de acceso y un nombre de archivo válidos. Devuelve un controlador, entero positivo, que señala al archivo de biblioteca de tipos; o bien un valor 0 o negativo si no se puede cargar el archivo de biblioteca de tipos. |
TLRelease(nTypeLibHandle) | Libera la biblioteca de tipos cargada cuyo controlador especifica nTypeLibHandle. |
TLGetTypeInfoCount(nTypeLibHandle) | Devuelve el número de informaciones de tipos de la biblioteca de tipos cuyo controlador especifica nTypeLibHandle. |
TLGetDocumentation(nTypeLibHandle, aDocArray, nMemberID, nType) |
Crea una matriz de tres elementos con la información de la biblioteca de tipos cuyo controlador se especifica en nTypeLibHandle. ADocArray especifica el nombre de la matriz que se crea.
La matriz de tres elementos contiene el nombre, la cadena de documento y el archivo de ayuda correspondientes al miembro que especifica nMemberID. nType indica el tipo de miembro: 0 -TypeInfo o 1 - Member. |
TLGetTypeInfo(nTypeLibHandle, nTypeInfoNum) |
Devuelve un índice entero para utilizarlo en los métodos TLGetTypeAttr( ), TlGetNames( ) y TLGetFuncDesc( ). TLGetTypeInfo( ) devuelve 0 si el método falla.
Use TLGetTypeInfo( ) para enumerar (desde 0) todas las informaciones de tipos de la biblioteca de tipos cuyo controlador se especifica con nTypeLibHandle. NTypeInfoNum especifica la información de tipos para la que se devuelve el índice. |
TLGetTypeAttr(nTypeInfoIndex, aTypeArray) |
Crea una matriz de una dimensión con datos sobre una información de tipo. nTypeInfoIndex especifica el número de índice de la información de tipo. aTypeArray indica el nombre de la matriz creada.
La información contenida en cada elemento de la matriz es la siguiente: 1 GUID. |
TIGetFuncDesc(nTypeInfoIndex, aTypeArray, nFunctionIndex, aParmsArray) |
Devuelve información sobre una función especificada en una información de tipo.
La información de tipo se especifica mediante nTypeInfoIndex. nFunctionIndex contiene el índice de la función cuya información se devuelve. nFunctionIndex está comprendido entre 0 y el recuento de funciones que devuelve aTypeArray[9] con el método TLGetTypeAttr( ). TIGetFuncDesc( ) crea dos matrices, cuyos nombres se especifican con aTypeArray y aParmsArray. La matriz aTypeArray contiene información sobre la función. La matriz aParmsArray contiene una lista con los parámetros que la función utiliza. La información contenida en cada elemento de aTypeArray es la siguiente: 1 ID. Las siguientes son las clases de funciones: FUNC_PUREVIRTUAL FUNC_VIRTUAL FUNC_NONVIRTUAL FUNC_STATIC FUNC_DISPATCH Las siguientes son las clases de invocaciones: INVOKE_FUNC INVOKE_PROPERTYGET INVOKE_PROPERTYPUT INVOKE_PROPERTYPUTREF Los indicadores son los siguientes: FUNCFLAG_FRESTRICTED = 1 FUNCFLAG_FSOURCE = 0x2 FUNCFLAG_FBINDABLE = 0x4 FUNCFLAG_FDISPLAYBIND = 0x10 FUNCFLAG_FDEFAULTBIND = 0x20 FUNCFLAG_FHIDDEN= 0x40 |
TIGetNames(nTypeInfoIndex, aNameArray, aTypeArray[1]) |
Devuelve el número de funciones de una información de tipo y crea una matriz.
La información de tipo se especifica con nTypeInfoIndex y aNameArray indica el nombre de la matriz creada. aTypeArray[1] contiene el identificador obtenido de la matriz aTypeArray del método TIGetFuncDesc( ). |
Vea también
Introducción a los controles ActiveX | OLE Container (Control) | Crear servidores de automatización