Je galère pour utiliser SHQueryRecycleBin de l'API Windows non implémentée directement dans Purebasic.
https://docs.microsoft.com/en-us/window ... ecyclebinw
Je passe donc par un prototype. Je pense que mon codage est correct, mais j'ai toujours un retour #E_INVALIDARG (argument invalide, mais lequel ???), que je lance avec une chaine vide (pour obtenir la corbeille complète) ou un disque ("C:\" par exemple, pour obtenir les infos sur ce disque uniquement.
Mon code est plutôt simple.
Code : Tout sélectionner
Structure Struct_SHQUERYRBINFO ; Structure de l'API windows non déclarée
taille_Structure.l
taille_corbeille.q
nbItem_corbeille.q
EndStructure
Prototype.i Proto_SHQueryRecycleBinW(rep.s,*ptr_struct)
Define adresse_fonction.Proto_SHQueryRecycleBinW
Define retour.i,
info_corbeille.Struct_SHQUERYRBINFO
Define rep$=""; "C:\"
info_corbeille\taille_Structure=SizeOf(Struct_SHQUERYRBINFO)
If OpenLibrary(0, "shell32.dll")
adresse_fonction = GetFunction(0,"SHQueryRecycleBinW")
If adresse_fonction
retour=adresse_fonction(rep$, @info_corbeille)
If retour <> #S_OK
Debug "Erreur fonction SHQueryRecycleBinW "+FormatNumber(retour,0,""," ") ; #E_INVALIDARG : 2 147 942 487
Else
Debug "Taille corbeille : "+Str(info_corbeille\taille_corbeille)+" Nb élements : "+Str(info_corbeille\nbItem_corbeille)
EndIf
Else
Debug "SHQueryRecycleBinW non trouvé dans shell32.dll"
EndIf
Else
Debug "Erreur OpenLibrary"
EndIf
La structure me semble conforme a la demande de l'API...
Bref, je sèche !
Si quelqu'un a une idée, je suis preneur...
Avec mes remerciements par avance.
Thierry