COMatePLUS Event Handling
Publié : lun. 23/sept./2013 12:23
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
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