Champ Inconnu dans une api "SetWindowsHookExA"But : Remplacer les _blank du web broswer (activeX)
Stagiaire WDF
Inscrit:
16/01/2011 23:39
Post(s): 1
Bonjour,

je cherche à empêcher lors de l'utilisation de l'ActiveX Navigateur Web l'ouverture de IE pour les liens en _blank

J'ai trouvé pour cela cet API :
// proédure locale dans ma fenetre contenant l'activex 
PROCEDURE mousehookproc(ncode est un entier SUR 4 octets, wparam est un entier SUR 4 octets, lparam est un entier SUR 4 octets) 
QUAND EXCEPTION 
RENVOYER API("user32","CallNextHookEx",hook ,ncode, wparam, lparam) 
FIN 
// cette procédure permet d'inhiber l'ouverture d'une autre fenêtre d'internet explorer et 
// permet donc de continuer à afficher dans la fenêtre Windev 

SI HTLM_RECH <> Null ALORS 
SI ncode>=0 ALORS 
SI wparam=0x202 ALORS 
winclass est une chaîne ASCIIZ DE 128 
API("user32","GetClassNameA",API("user32","GetFocus"),&winclass,128) 
SI winclass="Internet Explorer_Server" ALORS 
txtr est un objet Automation dynamique =HTLM_RECH>>document>>activeElement 
SI txtr<>Null ALORS 
SI txtr>>tagName = "FRAME" ALORS 
txtf est un objet Automation dynamique = HTLM_RECH>>document>>frames(txtr>>name)>>document>>activeElement 
SI txtf>>tagName="A" ALORS 
SI txtf>>target = "_blank" OU txtf>>target="droite" ALORS 
txtf>>target = "_parent" 
FIN 
FIN // si tagname=a 
Libérer txtf 
SINON 
SI txtr>>tagName="A" ALORS 
SI txtr>>target = "_blank" OU txtr>>target="droite" ALORS 
txtr>>target = "_parent" 
FIN 
FIN 
FIN // si tagname=frame 
FIN // si txtr<>null 
Libérer txtr 
FIN // si winclass 
FIN // si wparam=0x202 
FIN // si ncode>=0 
FIN 

RENVOYER API("user32","CallNextHookEx",hook ,ncode, wparam, lparam) 


J'ai bien initialisé le hook :
// Dans les déclarations globales de la fenetre : 
hook est un entier = API("user32","SetWindowsHookExA", 7 , &mousehookproc , 0 , API("kernel32","GetCurrentThreadId") )


J'ai un champ activeX nommé HTLM_RECH, mais j'ai toujours la même erreur (si je met l'exception en commentaire) :
Erreur A la ligne 9 du traitement PROCEDURE LOCALE mousehookproc. 
Le champ HTLM_RECH est inconnu. 

----- Informations techniques ----- 

Projet : XXX 

Appel WL : 
Traitement DE 'PROCEDURE LOCALE mousehookproc' (EXPRESS_FEN_NAVIGATEUR.PROCEDURE.mousehookproc), ligne 9, thread 0 

Que s'est-il passé ? 
Le champ HTLM_RECH est inconnu. 

Code Erreur : 1017 
Niveau : Erreur fatale (EL_FATAL) 

Dump DE l'Erreur du module 'WD150VM.DLL' (15.00Oy EXPRESS). 
Identifiant des informations détaillées (.err) : 1017 
Informations supplémentaires : 
EIT_PILEWL : 
PROCEDURE LOCALE mousehookproc (EXPRESS_FEN_NAVIGATEUR.PROCEDURE.mousehookproc), ligne 9 
EIT_DATEHEURE : 16/01/2011 22:44:49 


Merci d'avance si quelqu'un peut m'aider

Contribution le : 16/01/2011 23:43
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2