bonjour à tous,
est ce que quelqu'un à reussi à utiliser la méthode "SetEventHandler" ( cf COMateObject class - SetEventHandler() method. ) avec l'objet COM Msxml2.XMLHTTP et tout particulièrement pour essayer de gérer le retour "onreadystatechange" .
Exemple en Vbscript :
Dim oXMLHTTP
Set oXMLHTTP = CreateObject("Msxml2.XMLHTTP")
oXMLHTTP.Open "POST", "http://*************************", False
oXMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oXMLHTTP.onreadystatechange = getref("HandleStateChange")
oXMLHTTP.send
Function HandleStateChange()
If (oXMLHTTP.readyState = 4) Then
Msgbox " ok "
End If
End Function
Extrait Purebasic :
IncludePath "..\"
XIncludeFile "COMatePLUS.pbi"
DisableExplicit
Global.COMateObject oXMLHTTP
Procedure myEventCallback(object.COMateObject, eventName.s, parameterCount, *result.VARIANT)
Debug eventName
EndProcedure
oXMLHTTP = COMate_CreateObject("Msxml2.XMLHTTP")
If oXMLHTTP
oXMLHTTP\Invoke("setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')")
oXMLHTTP\Invoke("Open('POST','http://google.fr', #False)")
oXMLHTTP\SetEventHandler(#COMate_CatchAllEvents ,0)
oXMLHTTP\SetEventHandler(#COMate_CatchAllEvents ,@myEventCallback(),#COMate_OtherReturn)
Debug COMate_GetLastErrorDescription()
Debug COMate_GetLastErrorCode()
oXMLHTTP\Invoke("Send()")
; Bout de code qui fonctionne mais pas trés élégant !!!
; je veux éviter ce genre de code
;Repeat
; Delay(10)
; Debug oXMLHTTP\GetIntegerProperty("ReadyState")
; Until oXMLHTTP\GetIntegerProperty("ReadyState") = 4
oXMLHTTP\Release()
EndIf
Merci d'avance .
LBS_71
COMatePLUS Event Handling
COMatePLUS Event Handling
Dernière modification par LBS_71 le lun. 23/sept./2013 13:18, modifié 1 fois.
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: COMatePLUS Event Handling
Bonjour et bienvenue. Une réponse sur le forum anglais http://forums.purebasic.com/english/vie ... f9#p324045
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: COMatePLUS Event Handling
Bonjour Falsam,falsam a écrit :Bonjour et bienvenue. Une réponse sur le forum anglais http://forums.purebasic.com/english/vie ... f9#p324045
merci pour ta réponse mais je vais préciser ma demande car elle ne semble pas claire.
je ne veux pas embarquer du vbs dans mon code PureBasic, mais je veux retranscrire l'écoute de l'événement "onreadystatechange" en Purebasic de la même manière que mon exemple VBS.
Cordialement LBS_71
Re: COMatePLUS Event Handling
T'as un exemple d'utilisation de SetEventHandler ici:
http://www.purebasic.fr/french/viewtopi ... entHandler
http://www.purebasic.fr/french/viewtopi ... entHandler