最近闲着无聊,想实现一下后台监控鼠标,msdn中查了raw input之后,遇到一个问题:msdn中RAWMOUSE结构定义如下:
//------------------------RAWMOUSE------------------------
typedef struct tagRAWMOUSE {
USHORT usFlags;
//----问题----
union {
ULONG ulButtons;
struct {
USHORT usButtonFlags;
USHORT usButtonData;
};
};
//----问题----
ULONG ulRawButtons;
LONG lLastX;
LONG lLastY;
ULONG ulExtraInformation;
} RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE;
//------------------------RAWMOUSE------------------------问题:这个结构中有一个union,不知道这个东西在c#中应如何处理?怎样把RAWMOUSE修改成c#版本的?
//------------------------RAWMOUSE------------------------
typedef struct tagRAWMOUSE {
USHORT usFlags;
//----问题----
union {
ULONG ulButtons;
struct {
USHORT usButtonFlags;
USHORT usButtonData;
};
};
//----问题----
ULONG ulRawButtons;
LONG lLastX;
LONG lLastY;
ULONG ulExtraInformation;
} RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE;
//------------------------RAWMOUSE------------------------问题:这个结构中有一个union,不知道这个东西在c#中应如何处理?怎样把RAWMOUSE修改成c#版本的?
解决方案 »
- C#读取Excel文件显示到Datagird控件中 ,读取Execl过程有问题,请教
- 请问下 豆丁网的下载器 实现的原理是什么?
- 求查询结果统计
- tcp/ip通信 读取数据时,如何判断是超时?
- connectionString属性未初始化
- XML
- 要一个真正的递归获取所有控件
- Listview ColumnHeader Image Icon .net2002
- 请问,有.NET在,COM,COM+还是那么重要么?
- 各位大侠帮我看看 一个简单问题 ,在线等待,有了答案马上结帖 并给分
- 关于foreach()的困惑
- Visual Studio 2005连接SQL Server 2005 Express的问题~~~解决有高分~~
[StructLayoutAttribute(LayoutKind.Explicit, CharSet = CharSet.Ansi, Pack = 1)]
struct RawMouse
{
[FieldOffset(0)]
ushort usFlags;
//因为要进行内存对齐,在C/C++中,usFlags占4个字节
[FieldOffset(4)]
uint ulButtons;
[FieldOffset(4)]
ushort usButtonFlags;
[FieldOffset(6)]
ushort usButtonData;
[FieldOffset(8)]
uint ulRawButtons;
[FieldOffset(12)]
int lLastX;
[FieldOffset(16)]
int lLastY;
[FieldOffset(20)]
uint ulExtraInformation;
};