SHFileOperation : bug toujours pas corrigé ?

chris_brabant Messages postés 64 Date d'inscription dimanche 24 juillet 2005 Statut Membre Dernière intervention 29 septembre 2014 - 25 août 2005 à 15:51
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 30 août 2005 à 09:51
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

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
27 août 2005 à 15:26
salut,



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

ShareVB
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
27 août 2005 à 15:56
salut,



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

ShareVB
0
chris_brabant Messages postés 64 Date d'inscription dimanche 24 juillet 2005 Statut Membre Dernière intervention 29 septembre 2014
27 août 2005 à 21:23
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
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
27 août 2005 à 22:20
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chris_brabant Messages postés 64 Date d'inscription dimanche 24 juillet 2005 Statut Membre Dernière intervention 29 septembre 2014
28 août 2005 à 18:45
mktyplib ? c'est un outils livré avec Visual Studio .NET ?
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
29 août 2005 à 09:11
salut,



oui aussi avec VS.Net....

ShareVB
0
chris_brabant Messages postés 64 Date d'inscription dimanche 24 juillet 2005 Statut Membre Dernière intervention 29 septembre 2014
29 août 2005 à 10:16
problème de mktyplib : il lui faut un fichier .ODL en entrée, et pas .IDL
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
30 août 2005 à 09:51
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
0
Rejoignez-nous