Function cGetAgentAssistRunLogInfo(AgentName As String) As String
On Error Goto Errh
Dim rv As String
If AgentName = "" Then Exit Function
Dim AgentAlias As String
AgentAlias = GetAlias(AgentName)
Dim retAgentNoteID As Long
Me.ErrorCode = NIFFindDesignNote(Me.Handle, AgentAlias, NOTE_CLASS_FILTER, retAgentNoteID)
If Me.ErrorCode <> NOERROR Then Goto Final
Dim AgentNodeHandle As Long
Me.ErrorCode = NSFNoteOpen(Me.Handle, retAgentNoteID, 0, AgentNodeHandle)
If Me.ErrorCode <> NOERROR Then Goto Final
Dim ItemBID As BLOCKID
Dim ValueBID As BLOCKID
Dim ValueType As Integer
Dim ValueLength As Long
Me.ErrorCode = NSFItemInfo(AgentNodeHandle, "$AssistRunInfo", Len("$AssistRunInfo"), ItemBID, ValueType, ValueBID, ValueLength)
If Me.ErrorCode = NOERROR Then
Dim pData As Long
pData = OSLockObject(ValueBID.pool) + ValueBID.block
Const ODS_TYPE_WORD = 0
pData = pData + ODSLength(ODS_TYPE_WORD)
Dim ObjDsc As OBJECT_DESCRIPTOR
Call MoveMemory(ObjDsc.ObjectType, Byval pData, 2)
Call MoveMemory(ObjDsc.RRV, Byval pData + 2, 4)
Dim retSize As Long
Dim retClass As Integer
Dim retPrivileges As Integer
Me.ErrorCode = NSFDbGetObjectSize(Me.Handle, ObjDsc.RRV, OBJECT_ASSIST_RUNDATA, retSize, retClass, retPrivileges)
If Me.ErrorCode = NOERROR Then
Dim hBuffer As Long
Me.ErrorCode = NSFDbReadObject(Me.Handle, ObjDsc.RRV, 0, retSize, hBuffer)
If Me.ErrorCode = NOERROR Then
Dim pBuffer As Long
pBuffer = OSLockObject(hBuffer)
Dim Offset As Long
Dim objChunk As Long
Dim memChunk As Long
Dim Chunk As Long
Dim ObjStr As String
Dim i As Integer
Dim Char As String
Const MAXCHUNK = 32000
While Offset < retSize
Chunk = retSize - Offset
If (retSize - Offset) > MAXCHUNK Then Chunk = MAXCHUNK
ObjStr = String(Chunk, "X")
CopyMemory ObjStr, pBuffer, Len(ObjStr)
For i = 1 To Len(ObjStr)
Char = Mid$(ObjStr, i, 1)
If (Asc(Char) <32) Or (Asc(Char) > 128) Then Char = " " 'Only available symbols
rv = rv + Char
Next
pBuffer = pBuffer + Chunk
Offset = Offset + Chunk
Wend
Call OSUnlockObject(hBuffer)
Call OSMemFree(hBuffer)
End If
End If
rv = Fulltrim(rv)
Call OSUnlockObject(ValueBID.pool)
End If
Final:
If AgentNodeHandle <> 0 Then Call NSFNoteClose(AgentNodeHandle)
' If Me.ErrorCode <> NOERROR Then Print GetCAPIErrorMsg(Me.ErrorCode)
cGetAgentAssistRunLogInfo = rv
Exit Function
Errh:
Call ErrHandler
Exit Function
End Function