【发布时间】:2017-06-13 16:37:04
【问题描述】:
就像this question 的示例一样,我在 Web 上看到许多代码 sn-ps 在制作 ExtendedPropertyDefinition 时使用幻数。示例:
Dim PR_DELETED_ON As New ExtendedPropertyDefinition(26255, MapiPropertyType.SystemTime)
Dim PR_SEARCH_KEY As New ExtendedPropertyDefinition(12299, MapiPropertyType.Binary)
我有点找到了reference location for these on MSDN。我可以像在一张大桌子上一样单独查找它们。这是PR_DELETED_ON 的那个,就像上面的例子一样
+------------------------+---------------+ | Associated properties: | PR_SEARCH_KEY | +------------------------+---------------+ | Identifier: | 0x300B | +------------------------+---------------+ | Data type: | PT_BINARY | +------------------------+---------------+ | Area: | ID properties | +------------------------+---------------+
0x300b 是十进制的 12299
我讨厌幻数,所以我在 EWS API 中为此寻找一个枚举。我写这个 sn-p 是为了(希望)向我展示所有暴露的枚举。
$obj = [Reflection.Assembly]::LoadFile("C:\Program Files (x86)\EWSManagedAPI\Microsoft.Exchange.WebServices.dll")
$obj.GetTypes() | Where-object{$_.isenum -and ($_.ispublic -or $_.isnestedpublic)} | ForEach-Object{
$props = @{Name = $_.FullName}
[enum]::GetValues($_) | ForEach-Object{
$props.Integer = [int64]$_
$props.Text = $_
[pscustomobject]$props
}
}
我在输出中没有看到任何与我在上面看到的内容相匹配的内容。有谁知道这些属性是否存在预先存在的枚举?如果不是那很好。我只是假设那里会有一些东西。
不是世界末日,但我自己找不到它们。或许可以解释为什么代码 sn-ps 一直引用它们。
【问题讨论】:
-
我猜语义名称仅存在于 C++ 标头中,而编译的应用程序使用裸数字。虽然您可以尝试在 windows、outlook、office、公共文件夹中搜索 PR_SEARCH_KEY 等。
-
不知道有没有用,但在一些商业库中存在Aspose
标签: powershell enums exchangewebservices