在测试Microsoft UIAutomationClient的AutomationElements时,我发现AutomationElementInformation NativeWindowHandle getter按照spec返回int,如下例所示:
var ae = AutomationElement.FromHandle(new IntPtr(0x35100C));
MessageBox.Show(ae.Current.NativeWindowHandle.ToString("X8"));
在我的上面的示例中,我只使用了我在x64系统中找到的最大的随机句柄。目前,这些值足够低以适合int类型(32位)。基于我的研究,它应该实际返回IntPtr,因为IntPtr可以处理x64系统中的更大值。
现在提出我的问题:
更新#1: 任何权威链接(即MSDN等)与@HansPassant提到的关于Windows保持处理的兼容性低于int.MaxValue的兼容性原因都很棒。