Hi, we add our own icon to the Notes client toolbar with a mechanism published by André Guirard in “The View” some years ago, via importing design elements dxl documents, signing agents and so on; we use bookmarks.nsf as a container for our temporary stuff.
Well, unfortunately this mechanism seems to be broken with the Notes Client 8.5.1 - maybe one of the fixes went wrong ?
Here is my “Toolbar setup” code - at least the beginning :
…std::string ServerName;
std::string DatabaseName = "bookmark.nsf";
// Importing the new Dxl Design Elements into the Corresponding Database
STATUS Status = NOERROR;
DebugHandler->Dbg( "I", "importing design element: " + pToolbarIconDxlFileName );
Status = ImportDXLDesignElement( ServerName, DatabaseName, pToolbarIconDxlFileName ); if ( Status != NOERROR ) { return Status; }
DebugHandler->Dbg( "I", "importing design element: " + pToolbarOutlineDxlFileName );
Status = ImportDXLDesignElement( ServerName, DatabaseName, pToolbarOutlineDxlFileName ); if ( Status != NOERROR ) { return Status; }
DebugHandler->Dbg( "I", "importing design element: " + pToolbarTempCopyAgentDxlFileName );
Status = ImportDXLDesignElement( ServerName, DatabaseName, pToolbarTempCopyAgentDxlFileName ); if ( Status != NOERROR ) { return Status; }
// Running the Temporary Lotus Script Copy Agent and Deleting it
DebugHandler->Dbg( "I", "running agent" );
//Status = RunLotusScriptAgent( ServerName, DatabaseName, pToolbarTempCopyAgentName, true ); if ( Status != NOERROR ) { return Status; }
Status = RunLotusScriptAgent( ServerName, DatabaseName, pToolbarTempCopyAgentName, false );
…
RunLotusScriptAgent :
…
Status = OpenDatabase( pServerName, pDatabaseName, DatabaseHandle ); if ( Status != NOERROR ) { return Status; }
// Signing the Lotus Script Agent
DebugHandler->Dbg( "D", "signing the Lotus Script Agent" );
DebugHandler->Dbg( "D", pDatabaseName ); //bookmark.nsf
NOTEID AgentNoteId;
NOTEHANDLE AgentNoteHandle;
HAGENT AgentHandle;
HAGENTCTX AgentContext;
char AgentName[MAXPATH] = {0};
strcat_s( AgentName, sizeof ( AgentName ), pAgentName.c_str() );
DebugHandler->Dbg( "D", AgentName ); //dialtoolbarupdateagent
Status = NIFFindDesignNote ( DatabaseHandle, AgentName, NOTE_CLASS_FILTER, &AgentNoteId );
if ( Status != NOERROR ) { Status = NIFFindPrivateDesignNote ( DatabaseHandle, AgentName, NOTE_CLASS_FILTER, &AgentNoteId ); }
And here I get the message :
“Entry not found in index” which IMHO means, the agent is not there.
But really, it used to, in all other client versions :-(.