我正在编写一个自定义函数来枚举子窗口并返回一个窗口句柄列表。这是根据P / Invoke声明的函数。
[System.Runtime.InteropServices.DllImport("user32.Dll")]
public static extern bool EnumWindows (EnumWindowsCallback lpEnumCallbackFunc, int lParam);
[System.Runtime.InteropServices.DllImport("user32")]
public static extern bool EnumChildWindows (IntPtr hWnd, EnumWindowsCallback lpEnumCallbackFunc, int lParam);
问题是我需要能够在一个场景中传递Int32值,在另一个场景中传递IntPtr。
答案 0 :(得分:1)
您必须使用IntPtr
作为lParam
值,但始终保证足够大Int32
。
由于放入lParam
的值在您的控制之下(而不是其他窗口),您可以保证将值放入IntPtr,您可以再次读出。