Announcement

Collapse
No announcement yet.

OBJECT CALL - err 99

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Thomas Udo Eichler
    replied
    Thanks for your help

    Hi folks,

    the code Thomas has published works fine. What I was not aware is, that the COM interface does not allow to specify a dedicated Notes environment. That for it would be necessary to user real CPP Notes API. Otherwise the notes.ini to be used cannot be specified. The COM interface works fine for backend tools but can as far as I could see not be used to create for instance a server addin. So my search con tinues here....

    But for all, it helped alot to getg at least a piece of code running and to make experiences with the COM interface.

    Many thanks, best regards & cheers,

    Thomas

    Leave a comment:


  • Dominic Mitchell
    replied
    If the last set of code posted by Thomas Tierney does not work on your system, send me an email if the version of your OS is Windows NT or greater. I have a component that might help you track down the problem.
    The code posted by Thomas Tierney does work.

    Leave a comment:


  • Thomas Tierney
    replied
    If the vb script worked fine then the classes are installed correctly. Did the vbs code work with the CSTR() and without? There must be an issue with early vs late binding.

    Try this

    Code:
    #Compile Exe
    #Include "Win32Api.Inc"
    
    
    Function PBMain
        '-----------------------------------------------------------------------
        'Author :   <your name here>
        'Purpose:   Main Entry Point into application
        'Date   :   <todays date>
        '-----------------------------------------------------------------------
        Dim oSession As Dispatch
        Dim sServer As String
        Dim sCommand As String
        Dim sPassword As String
        Dim vReturn As Variant
        Dim vServer As Variant
        Dim vCommand As Variant
        Dim vPassword As Variant
    
        sServer = "DOMINO1"
        sCommand = "sh stat"
        sPassword = "adelaide"
    
        Let vServer = sServer
        Let vCommand = sCommand
        Let vPassword = sPassword
    
        
        Set oSession = New Dispatch In "Lotus.NotesSession"
        If IsFalse(IsObject(oSession)) Or Err Then
           MsgBox "Couldnt Create Object"
           Exit Function
        Else
           Object Call oSession.Initialize(vPassword)
           MsgBox Str$(ObjResult)
           Object Call oSession.SendConsoleCommand(vServer, vCommand) To vReturn
           MsgBox Str$(ObjResult)
        End If
        Set oSession = Nothing
    
    End Function

    Leave a comment:


  • Thomas Udo Eichler
    replied
    Thank you Thomas for your help!

    the vbs worked fine so I suppose the classes are installed correctly. It seems my PBWIN code has another problem. Even if the initialization does not succeed.

    Maybe you have another idea about that ?

    Thanks in advance !

    Leave a comment:


  • Thomas Tierney
    replied
    Were you able to check the registry to see if the classes you are calling do exist there? It really sounds like the Automation Type is not supported. Another way to check this would be to do the same thing in VB Script.

    Try this in a VBS File
    Code:
    '--------------------------------------------------------------------
    On Error Resume Next
    Dim oSession 
    Dim sServer
    Dim sCommand
    Dim sPassword
    Dim oReturn
    
    sServer = "DOMINO1"
    sCommand = "sh stat"
    sPassword = "adelaide"
    
    Set oSession = CreateObject("Lotus.NotesSession")
    If oSession is nothing then
           Msgbox "Couldnt create session object"
    else
           oSession.Initialize(Cstr(sPassword))
           if err then
                Msgbox Err.Description
           else
                oReturn = oSession.SendConsoleCommand(CStr(sServer), Cstr(sCommand))
                Msgbox oReturn
           End if
    End if
    Give that a go, if it doesnt work Remove the CSTR() that wraps the strings and see if that doesnt help.

    Leave a comment:


  • Thomas Udo Eichler
    replied
    ... all three did no work...
    The failure must be in the somewhere else ...

    Leave a comment:


  • Thomas Tierney
    replied
    Try
    SET oSession = NEW LotusNotesSession IN "Lotus.NotesSession"

    or

    SET oSession = NEW LotusNotesSession IN "Notes.NotesSession.7.0"

    or

    SET oSession = NEW LotusNotesSession IN "Notes.NotesSession"

    If none of these work then look in the registry for Lotus.NotesSession in HK Classes Root for Lotus. or Notes. and see if they exist. My bet is either the names do not exist or may be an automation type not supported by PB.

    Leave a comment:


  • Thomas Udo Eichler
    replied
    Initialize also fails

    Hi Thomas,

    thanks for your hints! The initialization as an OBJECT CALL xxx.yyy does not work either. The Debugger shows an ERR 99 and the OBJRESULT gives the same number for all of these calls.

    I made a copy of the Domino.inc to show ProgID & Interface
    ' ------------------------------------------------------------
    ' Library Name: Lotus Domino Objects 1.2
    ' Library File: C:\notes\domobj.tlb
    ' ------------------------------------------------------------
    ' ProgID: Lotus.NotesSession.7.0
    ' Interface Name: LotusNotesSession
    '
    ' Interface Prefix: Lotus
    ' ------------------------------------------------------------
    $PROGID_LotusNotesSession70 = "Lotus.NotesSession.7.0"

    The include file was created with the com browser in PBWIN80. I suppose it must have to do with the call itself. Any more ideas ?

    Leave a comment:


  • Thomas Tierney
    replied
    Is it possible that the Session.Initialize is what is erroring out?

    Try
    OBJECT CALL oSession.Initialize(vPassword)
    MSGBOX STR$(OBJRESULT)
    OBJECT CALL oSession.SendConsoleCommand(vServer, vCommand) TO vReturn
    MSGBOX STR$(OBJRESULT)

    Just to see is intialize is working. Secondly I believe that
    "Notes.XXX" is for early binding
    "Lotus.XXX" is for late binding

    Also make sure that
    "Lotus.NotesSession.7.0" is what you are supposed to be calling
    or
    "Lotus.NotesSession" (should be this one)

    Leave a comment:


  • Thomas Udo Eichler
    started a topic OBJECT CALL - err 99

    OBJECT CALL - err 99

    Hi all,

    has anyonbe an idea why this does return an OBJRETURN value of
    -2147352567 while calling the method of the object?

    The original code was posted by Robert Mantovan but did not run either...

    ------------------------------------------------------------------------------
    #DIM ALL
    #COMPILE EXE "VIENNA"
    #INCLUDE "domino.inc"
    #INCLUDE "win32api.inc"

    '------------------------------------------------------------------------------
    ' Lotus Notes COM Sample to run a server console command
    '------------------------------------------------------------------------------

    FUNCTION PBMAIN
    CHDIR "\DOMINO"
    ' Object Variables
    DIM oSession AS LotusNotesSession
    DIM vServer AS VARIANT
    DIM vCommand AS VARIANT
    DIM vReturn AS VARIANT
    DIM vPassword AS VARIANT

    DIM A AS ASCIIZ * 1024

    ' Open an instance of Lotus Notes
    SET oSession = NEW LotusNotesSession IN "Lotus.NotesSession.7.0"
    IF ISFALSE ISOBJECT(oSession) OR ERR THEN
    MSGBOX "Notes could not be opened - Check notes.ini and directories."
    EXIT FUNCTION
    END IF

    'Send Console Command
    LET vServer = "DOMINO1"
    LET vCommand = "sh stat"
    LET vPassword = "adelaide"
    OBJECT CALL oSession.Initialize(vPassword)
    OBJECT CALL oSession.SendConsoleCommand(vServer, vCommand) TO vReturn
    MSGBOX VARIANT$(vReturn)
    MSGBOX STR$(OBJRESULT)
    SET oSession = NOTHING
    END FUNCTION
    Last edited by Thomas Udo Eichler; 23 Oct 2007, 12:44 PM. Reason: just to be complete ...
Working...
X