Estoy empleando un componente ActiveX que implementa entre otras la interface IUnidad, que a su vez cuenta con el siguiente método.
Cita:
Método IUnit::GetTextField
Devuelve el texto de un campo de texto. HRESULT GetTextField( int code, BSTR* text ); Argumentos
code [in] Código del campo.
text [out, retval] Texto del campo Valor de retorno
En caso de que todo vaya bien devuelve S_OK. Comentarios
Este método devuelve el texto de un campo de texto dado su código. Si el campo no existe devuelve la cadena vacía
|
Por algún motivo han lo han modificado, ahora es GetTextField(int code) y devuelve el texto.
El código que empleo es similar a:
Código Delphi
[-]
var
Error: String;
i, h, j, code: Integer;
wstr: WideString;
begin
...
wstr:= '';
...
with (Unidad as IUnit) do
begin
code:= GetTextPos(i); if code > -1 then
begin
wstr:= GetTextField(code);
ModDatos.Textos.Texto.AsString:= wstr; (Modificacion)
...
(*) Esta línea entre otras cosas verifica que para el valor obtendio para code existe un texto.
Bien el problema surge cuando en determinadas circustancias el valor asignado a wstr en la línea
wstr:= GetTextField(code) es un "Inaccessible value", y además no se produce ningún error.
Alguna idea de porqué el valor es inaccesible.
¿Qué podría hacer para comprobar si el valor es inaccesible?
Saludos