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