Bonjour,
J'ai réalisé deux applications la première en C++, la seconde en C#.
La première envoie une structure COPYDATASTRUCT à la seconde à l'aide de SendMessage (message WM_COPYDATA).
Dans la méthode WndProc de la seconde, je récupère la structure sans problème à l'aide de Marshal.PtrToStructure.
...Jusque là tout va bien...
Mon souhait serait de modifier la struture reçu mais j'avoue que je sèche...
Quelqu'un a une idée ?
un petit bout du code coté C# :
La structure :
La méthode WndProc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [StructLayout(LayoutKind.Sequential)] public struct CopyDataStruct { public int dwData; public int cbData; [MarshalAs(UnmanagedType.LPStr)] public string lpData; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 protected override void WndProc(ref System.Windows.Forms.Message m) { if(m.Msg == WM_COPYDATA) { CopyDataStruct structData = (CopyDataStruct)Marshal.PtrToStructure(m.LParam,typeof(CopyDataStruct)); // ici : j'aimerais modifier les données se trouvant dans m.LParam } base.WndProc(ref m); }
Partager