所以我正在构建一个 MSNP(windows live messenger)客户端。我有这个能力列表
public enum UserCapabilities : long
{
None = 0,
MobileOnline = 1 << 0,
MSN8User = 1 << 1,
RendersGif = 1 << 2,
....
MsgrVersion7 = 1 << 30,
MsgrVersion8 = 1 << 31,
MsgrVersion9 = 1 << 32,
}
完整列表在这里http://paste.pocoo.org/show/383240/
服务器将每个用户的能力作为长整数发送给客户端,我将其转换为 UserCapabilities
capabilities = Int64.Parse(e.Command.Args[3]);
user._capabilities = (UserCapabilities)capabilities;
这很好,并且至少有一个用户(能力值为 1879474220),我可以做到
Debug.WriteLine(_msgr.GetUser(usr).Capabilities);
这将输出
RendersGif, RendersIsf, SupportsChunking, IsBot, SupportsSChannel, SupportsSipInvite, MsgrVersion5, MsgrVersion6, MsgrVersion7
但是对于另一个具有(3055849760)能力值的用户,当我这样做时,我只会输出相同的数字
3055849760
我希望看到的是功能列表,就像其他用户一样。
我确信发生这种情况是有充分理由的,但无论我多么努力地向 Google 提出这个问题,我都找不到答案。
请帮我 :)