Todas las declaraciones que se detallan a continuacio'n, que son las funciones que exporta la dll a los usuarios de Visual Basic, se encuentran en el mo'dulo Tol.bas que aparece en la carpeta VBasic ------------------------------------------------------------------------------- Declare Sub TolInit Lib "VBTol.dll" (ByVal addr As Long, ByVal vmode As String, _ ByVal initlib As Integer) Esta funcio'n es la que realiza la inicializacio'n de Tol incluyendo entre otras cosas la carga de InitLibrary. Para'metros: addr - la direccio'n de una funcio'n VB que sera' llamada toda vez que Tol requiera la salida de algu'n texto, ya sea la impresio'n de un resultado, un mensaje de error, etc., asi' estos mensajes sera'n filtrados por la aplicacio'n VB para ser tratados de la manera que desee. vmode - cadena de texto que especifica cua'les mensajes sera'n emitidos o no, su sintaxis se puede expresar asi': {v/m}[X...X] -> X={A,E,W,S,U,T} El indicador en minu'sculas 'v' implica habilitacio'n de mensajes y 'm' deshabilitacio'n. El indicador en mayu'sculas X={E,W,S,U,T} especifica el tipo de mensaje al que modifica el indicador anterior: A: Todos los mensajes (All) E: Mensajes de Error W: Mensajes de aviso (Warning) S: Mensajes normales del Sistema como 'Ha sido incluido el fichero ...' U: Mensajes de Usuario, es decir, los lanzados por las funciones Write/WriteLn/View T: Mensajes de Trazado para la depuracio'n de problemas Por razones de compatibilidad hacia atra's se permiten las siguientes formas simplificadas: v: Habilita todos los mensajes salvo los de trazado. Es lo mismo que mT m: Deshabilita todos los mensajes salvo los errores. Es lo mismo que vE Si no se pasa ningu'n argumento de verbosidad a TOL se usara'n los valores por defecto: vEU: Habilita so'lo los mensajes de error y de usuario y deshabilita el resto initlib - si su valor es diferente de cero se incluira'n las funciones de la InitLibrary ------------------------------------------------------------------------------- Declare Function TolEval Lib "VBTol.dll" (ByVal expr As String, ByRef nerror As Integer, _ ByRef nwarning As Integer) As Integer Es la funcio'n que nos permite evaluar expresiones Tol. Para'metros: expr - texto que contiene la expresio'n Tol a evaluar. nerror - nu'mero de errores que hubo durante la evaluacio'n. nwarning - nu'mero de warnings que hubo durante la evaluacio'n. Retorna: 1 o' 0, si se crearon o no, objetos Tol como resultado de la evaluacio'n. ------------------------------------------------------------------------------- Declare Function TolDecompile Lib "VBTol.dll" (ByVal name As String) As Integer A trave's de esta funcio'n podemos decompilar objectos Tol que hayan sido creados con la funcio'n TolEval o con la familia de funciones TolCreateX, liberando asi' la memoria asignada a los mismos. Para'metros: name - cadena que contiene el nombre del objeto. Retorna: 1 si un objeto con ese nombre fue encontrado y decompilado, de lo contrario retorna 0. Declare Function TolDecompileAll Lib "VBTol.dll" () As Integer Decompila todos los objectos Tol que hayan sido creados con la funcio'n TolEval o con la familia de funciones TolCreateX, es muy u'til sobre todo para la decompilacio'n de los objetos que fueron creados sin nombre. Retorna: 1 si fue decompilado algu'n objeto, sino retorna 0. ------------------------------------------------------------------------------- Declare Function TolGetText Lib "VBTol.dll" (ByVal lvalue As String, ByRef retvalue As String) As Integer Obtiene el valor de un objeto TOL de tipo Text. Para'metros: lvalue - Nombre del objeto TOL, como el nombre del para'metro indica no necesariamente tiene que ser el nombre de un objeto, sino que puede ser adema's cualquier expresio'n de tipo Text que pueda estar en la parte izquierda de una sentencia de asignacio'n. retvalue - Variable de Visual Basic donde el valor del objeto sera' retornado. Retorna: 1 si el objeto fue encontrado y su valor retornado, sino retorna 0. Declare Function TolCreateText Lib "VBTol.dll" (ByVal name As String, ByVal value As String) As Integer Crea un objeto TOL de tipo Text. Para'metros: name - Nombre del objeto TOL. value - Valor que contendra' el objeto TOL creado. Retorna: 1 si el objeto fue creado, de lo contrario retorna 0. ------------------------------------------------------------------------------- Const Known As Integer = 0 Const Unknown As Integer = 1 Const PosInf As Integer = 2 Const NegInf As Integer = 3 Type TolReal kind As Integer value As Double End Type Estructura para representar un objeto Tol de tipo Real, y Valores que puede tomar el campo 'kind' para contemplar los casos especiales como desconocido e infinito. Declare Function TolGetReal Lib "VBTol.dll" (ByVal lvalue As String, ByRef retvalue As TolReal) As Integer Obtiene el valor de un objeto TOL de tipo Real. Para'metros: lvalue - Nombre del objeto TOL. retvalue - Variable de Visual Basic donde el valor del objeto sera' retornado. Retorna: 1 si el objeto fue encontrado y su valor retornado, sino retorna 0. Declare Function TolCreateReal Lib "VBTol.dll" (ByVal name As String, ByRef retvalue As TolReal) As Integer Crea un objeto TOL de tipo Real. Para'metros: name - Nombre del objeto TOL. value - Valor que contendra' el objeto TOL creado, es importante no olvidar valorizar el campo 'kind' de la estructura para que el objeto tol sea creado correctamente. Retorna: 1 si el objeto fue creado, de lo contrario retorna 0. ------------------------------------------------------------------------------- Type MaskCell row As Long col As Long kind As Integer End Type Estructura para representar una ma'scara que indique las celdas de la matriz que contienen valores especiales, row,col es la posicio'n de la celda y kind indica el valor especial usando las mismas constantes que para el tipo Real. Declare Function TolGetMatrix Lib "VBTol.dll" (ByVal lvalue As String, ByRef retvalue() As Double, _ ByRef retmask() As MaskCell) As Integer Obtiene el valor de un objeto TOL de tipo Matrix. Para'metros: lvalue - Nombre del objeto TOL. retvalue - Variable de Visual Basic donde el valor del objeto sera' retornado. retmask - Variable donde la ma'scara para las celdas con valores especiales sera' retornado, si la matriz no contiene ningu'n valor especial este arreglo se retornara' vaci'o. Retorna: 1 si el objeto fue encontrado y su valor retornado, sino retorna 0, adema's retorna -1 si ocurre un error cri'tico como un error de reservacio'n de memoria o que se haya declarado el para'metro retmask con un tipo incorrecto, consulte el ejemplo para ver la declaracio'n correcta. Declare Function TolCreateMatrix Lib "VBTol.dll" (ByVal name As String, ByRef value() As Double, _ ByRef mask() As MaskCell) As Integer Crea un objeto TOL de tipo Matrix. Para'metros: name - Nombre del objeto TOL. value - Valor que contendra' el objeto TOL creado, value no es ma's que un arreglo de dos dimensiones que contiene los valores de las celdas de la matriz, en caso de haber valores especiales como desconocido o infinito, e'stos sera'n especificados en el para'metro mask, es bueno aclarar que independientemente del rango de los i'ndices del para'metro value, los i'ndices de la matriz de tol creada comenzara'n siempre por 1, es buena pra'ctica por tanto comenzar estos i'ndices en 1, aunque la funcio'n acepta cualquier rango. mask - Arreglo que contiene la ma'scara para las celdas con valores especiales en la matriz, mask no es ma's que un arreglo de una dimensio'n del tipo MaskCell que contiene tantos elementos como valores especiales tenga el arreglo value, los valores de row y col se refieren a las posiciones relativas segu'n los i'ndices del arreglo value y sera'n ajustados a los i'ndices correctos en la matriz de Tol en caso necesario, si la matriz no contiene ningu'n valor especial este arreglo se declarari'a sin rango alguno. Retorna: 1 si el objeto fue creado, de lo contrario retorna 0, adema's retorna -1 si ocurre un error cri'tico como que se haya declarado algu'n para'metro con un tipo o dimensio'n incorrecta, consulte el ejemplo para ver las declaraciones correctas. Declare Function TolGetRange Lib "VBTol.dll" (ByVal lvalue As String, _ ByVal frow As Long, ByVal lrow As Long, ByVal fcol As Long, ByVal fcol As Long, _ ByRef retvalue() As Double, ByRef retmask() As MaskCell) As Integer Declare Function TolGetRow Lib "VBTol.dll" (ByVal lvalue As String, ByVal row As Long, _ ByRef retvalue() As Double, ByRef retmask() As MaskCell) As Integer Declare Function TolGetColumn Lib "VBTol.dll" (ByVal lvalue As String, ByVal col As Long, _ ByRef retvalue() As Double, ByRef retmask() As MaskCell) As Integer Declare Function TolGetCell Lib "VBTol.dll" (ByVal lvalue As String, ByVal row As Long, ByVal col As Long, _ ByRef retvalue As TolReal) As Integer Estas funciones obtienen los valores de un rango, una fila, una columna o una celda de un objeto TOL de tipo Matrix. Para'metros: lvalue - Nombre del objeto TOL. retvalue - Variable de Visual Basic donde los valores del rango, fila, columna o celda del objeto sera'n retornados. Para la funcio'n TolGetRange() los rangos de la variable sera'n las del rango especificado, en el caso de TolGetRow() y TolGetColumn() el arreglo devuelto siempre tendra' dos dimensiones aunque el rango de uno de ellos sera' 1, y para TolGetCell() este para'metro es simplemente del tipo TolReal. retmask - Variable donde la ma'scara para las celdas con valores especiales sera' retornado, si la matriz no contiene ningu'n valor especial este arreglo se retornara' vaci'o. La funcio'n TolGetCell() como es lo'gico no tendra' este para'metro. frow, lrow, fcol, lcol (TolGetRange) - primera y u'ltima filas y columnas que definen el rango. row (TolGetRow) - i'ndice de la fila a obtener. col (TolGetColumn) - i'ndice de la columna a obtener. row, col (TolGetCell) - posicio'n de la celda a obtener. Retorna: 1 si el objeto fue encontrado, el rango, fila, columna o celda especificado fue correcto y su valor retornado, sino retorna 0; para todas las funciones excepto TolGetCell() tambie'n retorna -1 si ocurre un error cri'tico como un error de reservacio'n de memoria o que se haya declarado el para'metro retmask con un tipo incorrecto, consulte el ejemplo para ver la declaracio'n correcta. Declare Function TolPutRange Lib "VBTol.dll" (ByVal lvalue As String, ByVal row As Long, ByVal col As Long, _ ByRef value() As Double, ByRef mask() As MaskCell) As Integer Declare Function TolPutRow Lib "VBTol.dll" (ByVal lvalue As String, ByVal row As Long, _ ByRef value() As Double, ByRef mask() As MaskCell) As Integer Declare Function TolPutColumn Lib "VBTol.dll" (ByVal lvalue As String, ByVal col As Long, _ ByRef value() As Double, ByRef mask() As MaskCell) As Integer Declare Function TolPutCell Lib "VBTol.dll" (ByVal lvalue As String, ByVal row As Long, ByVal col As Long, _ ByRef value As TolReal) As Integer Estas funciones cambian los valores de un rango, una fila, una columna o una celda de un objeto TOL de tipo Matrix. Para'metros: lvalue - Nombre del objeto TOL. value - Nuevos valores del rango, fila, columna o celda que sera'n cambiados en la matriz de Tol. Para las funciones TolPutRange(), TolPutRow() y TolPutColumn() el arreglo que contiene los valores debe tener dos dimensiones aunque el rango de alguno de ellos sea 1, y para TolPutCell() este para'metro es simplemente del tipo TolReal. mask - Arreglo que contiene la ma'scara para las celdas con valores especiales en el rango, fila o columna, los valores row y col de cada elemento del arreglo se refieren a las posiciones relativas segu'n los i'ndices del arreglo value, si el rango, fila o columna no contienen ningu'n valor especial este arreglo se declarari'a sin rango alguno. La funcio'n TolPutCell() como es lo'gico no tendra' este para'metro. row, row (TolPutRange) - fila y columna donde comienza el rango a cambiar. row (TolPutRow) - i'ndice de la fila a cambiar. col (TolPutColumn) - i'ndice de la columna a cambiar. row, col (TolPutCell) - posicio'n de la celda a cambiar. Retorna: 1 si el objeto fue encontrado, el rango, fila, columna o celda especificado fue correcto y sus valores cambiados, sino retorna 0; para todas las funciones excepto TolGetCell() tambie'n para todas las funciones excepto TolGetCell() tambie'n retorna -1 si ocurre un error cri'tico como un error de reservacio'n de memoria o que se haya declarado el para'metro retmask con un tipo incorrecto, consulte el ejemplo para ver la declaracio'n correcta.