Ajout, suppression et remplacement de ressources
Les applications doivent souvent ajouter, supprimer ou remplacer des ressources dans des fichiers exécutables. Deux méthodes peuvent être utilisées pour accomplir ces tâches. La première consiste à modifier le fichier de définition de ressource, à recompiler les ressources et à ajouter les ressources recompilées au fichier exécutable de l’application. La deuxième méthode consiste à copier les données de ressource directement dans le fichier exécutable de l’application.
Par exemple, pour localiser une application en langue anglaise à utiliser en Norvège, il peut être nécessaire de remplacer la boîte de dialogue anglais par une boîte de dialogue utilisant le norvégien. Un développeur crée une boîte de dialogue appropriée à l’aide d’un éditeur de boîte de dialogue ou en écrivant un modèle dans le fichier de définition de ressource. Le développeur recompile ensuite les ressources et ajoute les nouvelles ressources au fichier exécutable de l’application.
Toutefois, si une boîte de dialogue appropriée existe sous forme binaire, le développeur peut copier les données directement dans le fichier exécutable en cours de localisation à l’aide des fonctions suivantes. La fonction BeginUpdateResource crée un handle de mise à jour pour le fichier exécutable dont les ressources doivent être modifiées. La fonction UpdateResource utilise ce handle pour ajouter, supprimer ou remplacer une ressource dans le fichier exécutable. La fonction EndUpdateResource ferme le handle.
Une fois qu’un handle de mise à jour dans un fichier exécutable a été créé par BeginUpdateResource, une application peut utiliser UpdateResource à plusieurs reprises pour apporter des modifications aux données de ressource. Chaque appel à UpdateResource contribue à une liste interne d’ajouts, de suppressions et de remplacements, mais n’écrit pas réellement les données dans le fichier exécutable. Immédiatement avant de fermer le handle de mise à jour, EndUpdateResource écrit les modifications accumulées dans le fichier exécutable.
Parfois, une application doit copier des ressources à partir d’un autre fichier. La mise à jour des ressources montre un exemple d’obtention des données de ressource et de leur taille à partir d’un fichier.