Ven 13/09/2013 - Intégration

Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Ven 13/09/2013 - Intégration

Message non lu par Xavier »

Intégration


Une première phase de l'intégration est prête.
Des options permettent d'associer dans la base de registre les deux extensions :
Options.png
(Afin d'avoir les privilèges nécessaires à la création de clés dans la registre, XT4 sera systématiquement livré avec son fichier Manifest.)


Une icône spécifique a été préparée puis injectée en tant que ressource dans le programme, Windows peut donc l'extraire pour afficher les fichiers de données :
FileIcon.png
La prochaine phase va consister à récupérer les fichiers ainsi envoyées par double-clic.
L'application étant déjà en mémoire, Windows va lancer une autre instance de XT4 et lui passer en paramètre le ou les fichiers.
Il y a un mécanisme qui empêche le lancement de plusieurs instances dans des répertoires différents : la seconde instance va trouver la signature (Mutex) du premier XT en mémoire, et va s'auto-terminer.
Il va falloir adapter ce mécanisme afin que:
  • L'instance appelée par Windows envoie à la première le ou les fichiers passés en paramètre avant de s'auto-terminer.
  • L'instance existante intercepte le message, et lance une fenêtre d'import en pré-sélectionnant le fichier envoyé.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Denis
Messages : 180
Enregistré le : jeu. 23 juin 2011 09:21

Re: Ven 13/09/2013 - Intégration

Message non lu par Denis »

facile, post message
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Re: Ven 13/09/2013 - Intégration

Message non lu par Xavier »

Oui, c'est aussi ce que je pensais, mais il a quand même fallu passer par l'envoi d'un message WM_CopyData avec sa structure dédiée, puis injecter des créations de logs externes (vers fichier) pour contourner l'impossibilité de debug de la seconde instance lancée par Windows au double-clic, avant de découvrir que WM_CopyData ne supportait pas l'asynchrone et que le PostMessage devait être remplacé par un SendMessage :
ERROR_MESSAGE_SYNC_ONLY
1159 (0x487)
The message can be used only with synchronous operations.
Denis
Messages : 180
Enregistré le : jeu. 23 juin 2011 09:21

Re: Ven 13/09/2013 - Intégration

Message non lu par Denis »

ah oui, sendMessage, possible. Je crois que j'avais déjà galéré avec SIMM ou Org pour gérer le SingleInstance (et encore, je ne transférais pas de data entre elles)
Répondre