mais j'ai lu sur le net que si la taille du buffer était trop petite, on
pouvait récupérer la valeur de CommDlgExtendedError()
qui doit alors être à FNERR_BUFFERTOOSMALL ...
j'ai donc essayé ?? en mettant une taille plus petite
mais ça fonctionne pas chez moi ?? j'ai toujours une valeur de retour =0
pour CommDlgExtendedError
j'ai ausis lu qu'il fallait subclasser la fenêtre parent (c'est ça ? :-)
pour intercepter le message ....
j'ai mis en place un hook ... qui doit fonctionner, puisque j'arrive par ce
hook à changer le titre de la fenêtre GetOpenFileName
mais je ne sais pas comment intercepter le message d'erreur pour buffer trop
petit ??
c'est pas que ce soit vraiment vital; mais j'ai merais bien comprendre ?
:-)
merci d'avance
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
scraper
mais j'ai lu sur le net que si la taille du buffer était trop petite, on
pouvait récupérer la valeur de CommDlgExtendedError()
qui doit alors être à FNERR_BUFFERTOOSMALL ...
j'ai donc essayé ?? en mettant une taille plus petite
mais ça fonctionne pas chez moi ?? j'ai toujours une valeur de retour =0
pour CommDlgExtendedError
j'ai ausis lu qu'il fallait subclasser la fenêtre parent (c'est ça ? :-)
pour intercepter le message ....
j'ai mis en place un hook ... qui doit fonctionner, puisque j'arrive par ce
hook à changer le titre de la fenêtre GetOpenFileName
mais je ne sais pas comment intercepter le message d'erreur pour buffer trop
petit ??
c'est pas que ce soit vraiment vital; mais j'ai merais bien comprendre ?
:-)
merci d'avance
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
scraper
mais j'ai lu sur le net que si la taille du buffer était trop petite, on
pouvait récupérer la valeur de CommDlgExtendedError()
qui doit alors être à FNERR_BUFFERTOOSMALL ...
j'ai donc essayé ?? en mettant une taille plus petite
mais ça fonctionne pas chez moi ?? j'ai toujours une valeur de retour =0
pour CommDlgExtendedError
j'ai ausis lu qu'il fallait subclasser la fenêtre parent (c'est ça ? :-)
pour intercepter le message ....
j'ai mis en place un hook ... qui doit fonctionner, puisque j'arrive par ce
hook à changer le titre de la fenêtre GetOpenFileName
mais je ne sais pas comment intercepter le message d'erreur pour buffer trop
petit ??
c'est pas que ce soit vraiment vital; mais j'ai merais bien comprendre ?
:-)
merci d'avance
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
scraper
Bonjour.
Pas besoin de subclasser pour obtenir ce renseignement.
Private Const FNERR_BUFFERTOOSMALL As Long = &H3003
If GetOpenFileNameA(OFN) Then
--Traitement si OK
Else
If CommDlgExtendedError = FNERR_BUFFERTOOSMALL then Msgbox "Buffer
too small" End If
Bonjour.
Pas besoin de subclasser pour obtenir ce renseignement.
Private Const FNERR_BUFFERTOOSMALL As Long = &H3003
If GetOpenFileNameA(OFN) Then
--Traitement si OK
Else
If CommDlgExtendedError = FNERR_BUFFERTOOSMALL then Msgbox "Buffer
too small" End If
Bonjour.
Pas besoin de subclasser pour obtenir ce renseignement.
Private Const FNERR_BUFFERTOOSMALL As Long = &H3003
If GetOpenFileNameA(OFN) Then
--Traitement si OK
Else
If CommDlgExtendedError = FNERR_BUFFERTOOSMALL then Msgbox "Buffer
too small" End If
Bonjour.
Ton code ne fonctionne pas chez moi.
Le coupable est le + &H100 dans le paramètre flags qui correspond a :
OFN_NOVALIDATE = &H100
Ma Doc me dit ça
OFN_NOVALIDATE
If the hook procedure returns a nonzero value, the Open or Save As dialog
Bonjour.
Ton code ne fonctionne pas chez moi.
Le coupable est le + &H100 dans le paramètre flags qui correspond a :
OFN_NOVALIDATE = &H100
Ma Doc me dit ça
OFN_NOVALIDATE
If the hook procedure returns a nonzero value, the Open or Save As dialog
Bonjour.
Ton code ne fonctionne pas chez moi.
Le coupable est le + &H100 dans le paramètre flags qui correspond a :
OFN_NOVALIDATE = &H100
Ma Doc me dit ça
OFN_NOVALIDATE
If the hook procedure returns a nonzero value, the Open or Save As dialog
bon, voila, j'ai un peu avancé !
donc, je résume :
je cherche à récupérer le message généré par un buffer trop petit, lors
d'une multisélection dans la fenêtre GetOpenFileName
j'ai installé un hook .... maintenant, j'arrive bien à récupérer ce message
mais plusieurs problèmes subsistent :
- au delà d'un certain nombre de fichiers sélectionnés, ça fonctionne plus,
et si je clique sur ouvrir, rien ne se passe .... je clique 1 fois dans la
fenêtre "Nom de fichiers " puis sur ouvrir, et là je reçois des signes
cabalistiques
- je ne sais pas comment interceper le message envoyé par la fenêtre
lorsqu'on clique sur ouvrir ?
- je ne sais pas envoyer à la fenêtre la nouvelle valeur du buffer que j'ai
déterminée ??
si vous avez des infos ...
merci
le source est en PJ car j'ai eu peur qu'il soit trop volumineux pour le
message (longueur du texte)
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
scraper
bon, voila, j'ai un peu avancé !
donc, je résume :
je cherche à récupérer le message généré par un buffer trop petit, lors
d'une multisélection dans la fenêtre GetOpenFileName
j'ai installé un hook .... maintenant, j'arrive bien à récupérer ce message
mais plusieurs problèmes subsistent :
- au delà d'un certain nombre de fichiers sélectionnés, ça fonctionne plus,
et si je clique sur ouvrir, rien ne se passe .... je clique 1 fois dans la
fenêtre "Nom de fichiers " puis sur ouvrir, et là je reçois des signes
cabalistiques
- je ne sais pas comment interceper le message envoyé par la fenêtre
lorsqu'on clique sur ouvrir ?
- je ne sais pas envoyer à la fenêtre la nouvelle valeur du buffer que j'ai
déterminée ??
si vous avez des infos ...
merci
le source est en PJ car j'ai eu peur qu'il soit trop volumineux pour le
message (longueur du texte)
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
scraper
bon, voila, j'ai un peu avancé !
donc, je résume :
je cherche à récupérer le message généré par un buffer trop petit, lors
d'une multisélection dans la fenêtre GetOpenFileName
j'ai installé un hook .... maintenant, j'arrive bien à récupérer ce message
mais plusieurs problèmes subsistent :
- au delà d'un certain nombre de fichiers sélectionnés, ça fonctionne plus,
et si je clique sur ouvrir, rien ne se passe .... je clique 1 fois dans la
fenêtre "Nom de fichiers " puis sur ouvrir, et là je reçois des signes
cabalistiques
- je ne sais pas comment interceper le message envoyé par la fenêtre
lorsqu'on clique sur ouvrir ?
- je ne sais pas envoyer à la fenêtre la nouvelle valeur du buffer que j'ai
déterminée ??
si vous avez des infos ...
merci
le source est en PJ car j'ai eu peur qu'il soit trop volumineux pour le
message (longueur du texte)
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
scraper
Bonjour scraper
J'ai un peu regardé ton code et je pense que ce que tu veux faire est
impossible.
La structure ofname que tu initialise au départ correspond au
paramètre de création de la boite de dialogue.
Cette structure doit être copiée quelque part en mémoire dans une
zone que la boite de dialogue se réserve.
Une fois que cette boite de dialogue est affichée, un certain nombres
de ses paramètres ne "peuvent" pas être modifiés, notamment ceux
contenus dans la structure ofname d'initialisation, par contre,
certain peuvent l'être comme le titre de la fenêtre mais en utilisant
une fonction extérieure SetWindowText.
Si tu essaye de modifier le paramètre du titre de la fenêtre dans la
structure ofname, il ne se passe rien.
La structure ofname dont tu disposes peut être modifiée mais ceci
n'aura aucune influence puisque la boite de dialogue travaille sur
une copie(elle connaît donc la taille des buffers, les filtres,
etc...). Cette structure ofname dont tu dispose ne sera remplie par
la boite de dialogue que lorsque celle ci se décharge de la mémoire
par l'appuis du bouton OK pour que le programme puisse connaître les
choix effectués.
La référence que tu as donnés sur FILEOKSTRING m'a semblé plutôt
confuse.
Le paramètre OFN_NOVALIDATE = &H100 te permet d'intercepter dans le
hook l'appuis sur le bouton ok.
Pour cela , il faut intercepter CDN_FILEOK défini par Private Const
CDN_FILEOK As Long = (CDN_FIRST - &H5)
par exemple en reprenant ton code :
Case CDN_FILEOK
FolderBuff = SendMessage(hWndParent,
CDM_GETFOLDERPATH, 0, ByVal 0&) FileBuff > SendMessage(hWndParent, CDM_GETSPEC, 0, ByVal
0&) If (FolderBuff + FileBuff) > OFName.nMaxFile Then ' Si tu décides
de ne pas valider donc ne pas fermer la boite de dialogue ' Const
DWL_MSGRESULT As Long = 0 OFNHookProc > True SetWindowLong hwnd, DWL_MSGRESULT, 1&
Exit Function
' Si tu décides de valider ofname.lpstrFile contient la taille du
buffer nécessaire OFNHookProc = False
MsgBox Asc(OFName.lpstrFile)
End If
End Select
Bonjour scraper
J'ai un peu regardé ton code et je pense que ce que tu veux faire est
impossible.
La structure ofname que tu initialise au départ correspond au
paramètre de création de la boite de dialogue.
Cette structure doit être copiée quelque part en mémoire dans une
zone que la boite de dialogue se réserve.
Une fois que cette boite de dialogue est affichée, un certain nombres
de ses paramètres ne "peuvent" pas être modifiés, notamment ceux
contenus dans la structure ofname d'initialisation, par contre,
certain peuvent l'être comme le titre de la fenêtre mais en utilisant
une fonction extérieure SetWindowText.
Si tu essaye de modifier le paramètre du titre de la fenêtre dans la
structure ofname, il ne se passe rien.
La structure ofname dont tu disposes peut être modifiée mais ceci
n'aura aucune influence puisque la boite de dialogue travaille sur
une copie(elle connaît donc la taille des buffers, les filtres,
etc...). Cette structure ofname dont tu dispose ne sera remplie par
la boite de dialogue que lorsque celle ci se décharge de la mémoire
par l'appuis du bouton OK pour que le programme puisse connaître les
choix effectués.
La référence que tu as donnés sur FILEOKSTRING m'a semblé plutôt
confuse.
Le paramètre OFN_NOVALIDATE = &H100 te permet d'intercepter dans le
hook l'appuis sur le bouton ok.
Pour cela , il faut intercepter CDN_FILEOK défini par Private Const
CDN_FILEOK As Long = (CDN_FIRST - &H5)
par exemple en reprenant ton code :
Case CDN_FILEOK
FolderBuff = SendMessage(hWndParent,
CDM_GETFOLDERPATH, 0, ByVal 0&) FileBuff > SendMessage(hWndParent, CDM_GETSPEC, 0, ByVal
0&) If (FolderBuff + FileBuff) > OFName.nMaxFile Then ' Si tu décides
de ne pas valider donc ne pas fermer la boite de dialogue ' Const
DWL_MSGRESULT As Long = 0 OFNHookProc > True SetWindowLong hwnd, DWL_MSGRESULT, 1&
Exit Function
' Si tu décides de valider ofname.lpstrFile contient la taille du
buffer nécessaire OFNHookProc = False
MsgBox Asc(OFName.lpstrFile)
End If
End Select
Bonjour scraper
J'ai un peu regardé ton code et je pense que ce que tu veux faire est
impossible.
La structure ofname que tu initialise au départ correspond au
paramètre de création de la boite de dialogue.
Cette structure doit être copiée quelque part en mémoire dans une
zone que la boite de dialogue se réserve.
Une fois que cette boite de dialogue est affichée, un certain nombres
de ses paramètres ne "peuvent" pas être modifiés, notamment ceux
contenus dans la structure ofname d'initialisation, par contre,
certain peuvent l'être comme le titre de la fenêtre mais en utilisant
une fonction extérieure SetWindowText.
Si tu essaye de modifier le paramètre du titre de la fenêtre dans la
structure ofname, il ne se passe rien.
La structure ofname dont tu disposes peut être modifiée mais ceci
n'aura aucune influence puisque la boite de dialogue travaille sur
une copie(elle connaît donc la taille des buffers, les filtres,
etc...). Cette structure ofname dont tu dispose ne sera remplie par
la boite de dialogue que lorsque celle ci se décharge de la mémoire
par l'appuis du bouton OK pour que le programme puisse connaître les
choix effectués.
La référence que tu as donnés sur FILEOKSTRING m'a semblé plutôt
confuse.
Le paramètre OFN_NOVALIDATE = &H100 te permet d'intercepter dans le
hook l'appuis sur le bouton ok.
Pour cela , il faut intercepter CDN_FILEOK défini par Private Const
CDN_FILEOK As Long = (CDN_FIRST - &H5)
par exemple en reprenant ton code :
Case CDN_FILEOK
FolderBuff = SendMessage(hWndParent,
CDM_GETFOLDERPATH, 0, ByVal 0&) FileBuff > SendMessage(hWndParent, CDM_GETSPEC, 0, ByVal
0&) If (FolderBuff + FileBuff) > OFName.nMaxFile Then ' Si tu décides
de ne pas valider donc ne pas fermer la boite de dialogue ' Const
DWL_MSGRESULT As Long = 0 OFNHookProc > True SetWindowLong hwnd, DWL_MSGRESULT, 1&
Exit Function
' Si tu décides de valider ofname.lpstrFile contient la taille du
buffer nécessaire OFNHookProc = False
MsgBox Asc(OFName.lpstrFile)
End If
End Select
si j'ai du neuf, je reposterai .... mais sinon, ben je crois malheureusement
avoir fait un peu le tour ...
si j'ai du neuf, je reposterai .... mais sinon, ben je crois malheureusement
avoir fait un peu le tour ...
si j'ai du neuf, je reposterai .... mais sinon, ben je crois malheureusement
avoir fait un peu le tour ...
Bonjour scraper.si j'ai du neuf, je reposterai .... mais sinon, ben je crois
malheureusement avoir fait un peu le tour ...
Voila un petit tour supplémentaire.
Bonjour scraper.
si j'ai du neuf, je reposterai .... mais sinon, ben je crois
malheureusement avoir fait un peu le tour ...
Voila un petit tour supplémentaire.
Bonjour scraper.si j'ai du neuf, je reposterai .... mais sinon, ben je crois
malheureusement avoir fait un peu le tour ...
Voila un petit tour supplémentaire.