Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Operacion Interface de Usuario no permitida
Message
De
15/04/2003 17:00:07
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
COM/DCOM et OLE Automation
Titre:
Operacion Interface de Usuario no permitida
Divers
Thread ID:
00778066
Message ID:
00778066
Vues:
58
Tengo una clase asi:

DEFINE CLASS Proxy AS SESSION OLEPUBLIC
FUNCTION Do(cCommand,cProgramFile )
IF TYPE("cProgramFile")<>'L'
IF '.PRG' $ UPPER(cProgramFile )
SET PROCEDURE TO &cProgramFile
ENDIF
ENDIF
xRetVal = &cCommand
* Clear the PRG from memory so
* we can replace it later on.
IF TYPE("cProgramFile")<>'L'
SET PROCEDURE TO
CLEAR PROGRAM &cProgramFile
ENDIF
RETURN xRetVal
**-------------------------------------------
FUNCTION Init()
SET RESOURCE OFF
SET EXCLUSIVE OFF
SET CPDIALOG OFF
SET DELETED ON
SET SAFETY OFF
RETURN DODEFAULT()
**-------------------------------------------
ENDDEFINE

Un programa llamado OtrosProg.prog asi:

FUNCTION Mensaje
=MESSAGEBOX('Un COM+ MotorFox, en la Web.. este es un PROCEDURE')
RETURN
**--------------------------------------
FUNCTION xx
a=13
RETURN a

Si eres observador te daras cuenta que la clase lo unico que hace es ejecutar
cualquier funcion foxpro, o un procedimiento que este en alguna libreria espesificada en cProgramFile.

Bueno, cuando llamo a cualquier funcion (Mensaje(), o xx()), no hay problema.
es decir:

obj = newobject("Proxy","c:\tmp\proxy\proxy.prg") &&-- Creo la Intancia
?obj.do("xx()","c:\tmp\proxy\otrosprog.prg")
?obj.do("mensaje()","c:\tmp\proxy\otrosprog.prg")
release o

El problema esta cuando creo la DLL Multithread, y configuro el componente en Sistema operativo, me lanza un error al ajecutar la funcion mensaje() es decir:

?o.do("xx()","c:\tmp\proxy\otrosprog.prg") && bien!!
?o.do("mensaje()","c:\tmp\proxy\otrosprog.prg") && Mal y lanza el error

El error es:

"OLE IDispatch exeption code 2031 operacion de interface de usuario no permitida en este momento 2031"


Ayuda!!
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform