Je veux extraire un fichier d'un pack.
ExtractFile me convient pas trop, parce que si on a deux packs du même programme dans des versions différentes, alors je suppose que si le pack de version inférieure est dans un répertoire situé avant celui qu'on veut via SymFindNext, le mauvais pack sera choisi.
ExtractFromPack demande un pointeur sur la signature du pack, et j'aime pas trop aller chercher cette adresse à la main, le kernel ne proposant aucune fonction d'accès. Et ça demande de trouver manuellement le pack archive, ce qui soulève un autre problème (cf ci-dessous).
ExtractFileFromPack me semble mieux, c'est de plus haut niveau, mais il reste un problème. Si le nom du pack a été changé (ou pire, si un autre pack porte le nom du pack d'origine), comment faire pour le trouver dans le répertoire courant ? Impossible d'utiliser kernel::Ptr2Hd, on aura le handle du fichier en cours d'exécution et non celui du pack (je fais ça à partir du premier fichier du pack, donc il aura été extrait et relogé si le pack est archivé).
Comment faire proprement, ie extraire le bon fichier du bon pack ?