我正在调试一个旧的应用程序,其中WndProc被覆盖。在那里我得到一条ID = 0xC1B0的消息,这意味着,这是根据此msdn article的系统范围唯一消息。
正如微软针对RegisterWindowMessage(...)
所描述的那样,相同的字符串s会导致相同的message-id。因此,message-id和参数之间存在唯一的链接。
我现在的问题是:如果我有message-id,是否有可能获得参数?如果是,这可以帮助我找到消息的来源。
答案 0 :(得分:1)
在blog中找不到直接的方法,但函数GetClipboardFormatName(...)
可以解决问题。
我用以下方式使用它:
[DllImport("user32.dll")]
static extern int GetClipboardFormatName(uint format, [Out] StringBuilder lpszFormatName, int cchMaxCount);
public string GetMessageName(uint msg)
{
return GetClipboardFormatName(msg);
}