Domino邮箱工具挂在NAMELookup2上

时间:2019-03-13 16:20:41

标签: lotus-domino ibm-domino domino-appdev-pack

我们开发了一些工具,可以从Domino邮箱中读取电子邮件并将其写入本地磁盘中的单独文件中(它看起来像是备份文件)。最近,我们在实验室中创建了一个新的domino 9测试环境。但是,我们的工具无法在新的多米诺骨牌工作环境中正常工作。为了确定有关此问题的问题,我添加了一些调试日志,并且看起来该控件已被函数“ NAMELookup2”挂起。在这里,我添加了代码段,

DHANDLE  hLookup;
char   *pLookup;
if (NAMELookup2("Local", 0, 1, "$users", 1, dominoUser, 2, "FullName", &hLookup) == NOERROR) // hunged with this line
{
     pLookup = (char *) OSLockObject(hLookup);
}

同一工具可与我们的其他测试环境配合使用。因此,我认为代码没有问题。我怀疑这可能是我们新的工作环境设置创建过程中出现的问题,或者可能错过了向用户提供某种许可,或者可能错过了将邮箱添加到某处,等等。

注意:

  1. 我已经以管理员权限用户运行了该工具。

如果有人对此提供任何指导,那将是很好的。

谢谢

1 个答案:

答案 0 :(得分:0)

请参阅此NAMELookup2 page以供参考。该函数声明为:

STATUS LNPUBLIC NAMELookup2(const char far *ServerName, DWORD Flags,
    WORD NumNameSpaces, const char far *NameSpaces,
    WORD NumNames, const char far *Names,
    WORD NumItems, const char far *Items,
    DHANDLE far *rethBuffer);

其中NumItems是从Items地址开始的以空结尾的项目名称的数量。您问题中的代码段传递了单个项目名称("FullName"),但是将NumItems设置为2。这显然是错误的,并且可以解释挂起的原因。 NumItems应该为1。

我也怀疑ServerName的论点。该文档建议您在进行本地查找时传递NULL。传递"Local"可能是完成此操作的另一种方法,但是无论如何都需要更改代码。我建议将第一个参数更改为NULL