Intercepter message prive d'une DLL C++
Bonjour
Je suis newbie in C#
J'ai une fonction developpée en C++ nommé sendMsg qui prend en parametre un handle de fenetre et renvoi un resultat en envoyant un POSTMESSAGE par le handle avec en paramete une BSTR dans le LPARAM
j'ai besoin dans le cas d'une application d'intercepter le message et recuperer cette BSTR depuis une appli C# winForm.
pour cela j'ai cree un nouveau projet avec un bouton qui va alors des l'appui appeler cette fonction et tenter de recuperer le message
voila mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public partial class MainForm : Form
{
private const int WM_MSG = 0x0400; // valeur du message
[DllImport("MsgDLL.dll")]
public static extern bool SendMsg(IntPtr myhwnd);
public MainForm()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SendMsg(button1.Handle);
}
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_MSG)
{
string msg = m.LParam.ToString();
MessageBox.Show(msg);
}
base.WndProc(ref m);
} |
malheureusement je ne recoit rien et je ne suit pas sur d'envoyer le bon handle
mes questions : est ce que c'est la bonne facon de passer mon hande en le recuperant du bouton
est ce la bonne facon d'intercepter un message en c#
est ce la bonne maniere de convertir un LPARAM qui est une BSTR en string
Cordialement