SHFileOperation : bug toujours pas corrigé ?

Signaler
Messages postés
64
Date d'inscription
dimanche 24 juillet 2005
Statut
Membre
Dernière intervention
29 septembre 2014
-
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
-
Bonjour

j'utilise SHFileOperation (depuis la DLL shell32.dll) sous Windows XP en VB.NET

Tout fonctionne correctement, sauf que le paramètre fAnyOperationsAborted n'est pas positionné à TRUE quand on annule la copie, en cliquant sur le bouton "Annuler" du progress dialog.

C'est bizarre car j'ai trouvé des liens sur ce forum, datant de 2000, et le problème existait déjà apparemment, mais pas de réponse satisfaisante en vue.

Quelqu'un at-il élucidé le mystère ?

INFORMATION IMPORTANTE : ca fonctionne bien avec VC++.NET !

J'ai trouvé quelque part un article qui dit que VC++ compacte les membres de la structure SHFILEOPSTRUCT, et que VB ne le ferait pas, et qu'à cause de ca il y aurait un décalage de 2 bits sur les membres de la structure situés après le membre 'flags'

Si ca branche quelqu'un je peux montrer mon code, c'est assez simple...

Chris

8 réponses

Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
21
salut,



montre un peu tes déclarations d'apis et de structure....

ShareVB
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
21
salut,



peut être avec
<Runtime.InteropServices.StructLayout(Runtime.InteropServices.LayoutKind.Sequential,
Pack:=1)> devant la structure....

ShareVB
Messages postés
64
Date d'inscription
dimanche 24 juillet 2005
Statut
Membre
Dernière intervention
29 septembre 2014

je vais essayer ca

je suis sur une autre piste : créer une Type Library, qui permet d'utiliser une déclarartion de type (par exemple une structure dans mon cas) ou d'API faite en C/C++, en passant par un fichier .IDL (voir MIDL) puis un fichier .TLB, puis de l'ajouter en référence dans le projet VB.

Je suis arrivé à ce stade vendredi soir, je testerai lundi matin si SHFileOperation fonctionne correctement avec ce mécanisme.

Si ca fonctionne bien, je posterai la méthode complète pour .NET; car on ne trouve des infos sur ce sujet que pour VB6 !


Chris
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
21
salut,



moi j'utiliserais plutôt mktyplib et l'option /align...que MIDL...

mais je pense aussi que les attributs permettent de se passer de typelib en .Net...

ShareVB
Messages postés
64
Date d'inscription
dimanche 24 juillet 2005
Statut
Membre
Dernière intervention
29 septembre 2014

mktyplib ? c'est un outils livré avec Visual Studio .NET ?
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
21
salut,



oui aussi avec VS.Net....

ShareVB
Messages postés
64
Date d'inscription
dimanche 24 juillet 2005
Statut
Membre
Dernière intervention
29 septembre 2014

problème de mktyplib : il lui faut un fichier .ODL en entrée, et pas .IDL
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
21
salut,



c'est très sensiblement la même syntaxe...mktyplib est une version
simplifiée de MIDL...mktyplib est plus "VB-Friendly" pour ces tlb...

ShareVB