C API Error: External function not found

I am in the midst of migrating some Domino R5 applications to a new Domino R6 server. A LotusScript agent that runs fine on R5 but not on R6 uses some C API calls to “W32_DesignRefresh” to refresh a database design.

The error I am getting is “External function not found” when the following line of code is executed:

rc% = W32_DesignRefresh( strTemplateServer, lngDBHandle, 0, 0, 0)

The declaration for the Win32 function is:

Declare Function W32_DesignRefresh Lib “nnotes.dll” Alias “DesignRefresh” _

( Byval server As String,Byval lnghNote As Long, Byval flags As Integer , Byval null0 As Long, Byval null1 As Long) As Integer

From the API documentation this function is still valid and has not been changed. The error message seems to indicate that “W32_DesignRefresh” does not exist in “nnotes.dll”.

There was a release note for Domino 6.0.1 CF2 that describes a problem with this function call, and was apparently fixed. I am running 6.0.1 CF3 so this should not be an issue.

  • Has anyone experienced a similar issue?

  • Maybe it has something to do with templates initially created in R5? I have tried compacting them to be R6 format, but that’s no good.

Anyone??

Subject: Answer to C API Error: External function not found

In my case I have tracked down the problem to a change in the C API in Domino R6 for the function “NSFDbInfoModify()”.

The documentation now states that “NSFDbInfoSet()” must be called afterwards. This would appear to not be a requirement when running on Domino R5.

I added the extra function call, and everything is working again. I think the error message “External function not found” was a red herring in this instance.

B