Community Forums
Results 1 to 4 of 4

Thread: DEBUG: Error 2835: The control ErrorIcon was not found on dialog SetupError

  1. #1
    Join Date
    Feb 2002
    Location
    Herndon VA
    Posts
    52

    DEBUG: Error 2835: The control ErrorIcon was not found on dialog SetupError

    I am trying to return some error messages from a msi dll in a CA. I have set error number 25007 in the error table. When I encounter the error in the dll, I have this code in the dll:

    const int iTableError = 25007;
    PMSIHANDLE hRecErr = ::MsiCreateRecord(2);
    ::MsiRecordSetInteger (hRecErr, 1, iTableError);
    ::MsiRecordSetString (hRecErr, 2, szTable);
    ::MsiProcessMessage(hInstall, INSTALLMESSAGE_ERROR, hRecErr);


    This is what I get in the log:
    (SERVER) MSI (s) (8C:F8): Executing op: ActionStart(Name=ConvertDB,Description=Converting Database ,Template=Table: )
    (UNKNOWN) Action 11:47:05: ConvertDB. Converting Database
    (SERVER) MSI (s) (8C:F8): Executing op: CustomActionSchedule(Action=ConvertDB,ActionType=1025,Source=BinaryData,Target=Convert,)
    (SERVER) MSI (s) (8C:F8): Creating MSIHANDLE (67) of type 790536 for thread 3320
    (UNKNOWN) ConvertDB: Table: HomeNetwork
    (UNKNOWN) ConvertDB: Table: AccessGroup
    (UNKNOWN) ConvertDB: Table: Alarms
    (UNKNOWN) ConvertDB: Table: Client
    (UNKNOWN) ConvertDB: Table: ClientGroup
    (UNKNOWN) ConvertDB: Table: ClientConnections
    (UNKNOWN) ConvertDB: Table: ContactInfo
    (UNKNOWN) ConvertDB: Table: CryptoServer
    (UNKNOWN) DEBUG: Error 2835: The control ErrorIcon was not found on dialog SetupError


    NOTE: Look at few lines above for clues on error
    (ERROR) Internal Error 2835. ErrorIcon, SetupError
    (UNKNOWN) DEBUG: Error 2853: Dialog SetupError is a modeless dialog. The execute method should not be called on it
    (UNKNOWN) DEBUG: Error 2835: The control ErrorIcon was not found on dialog SetupError

    I have tried renaming WarningIcon to ErrorIcon in the SetupError dialog and nothing changed.

    As you can see from the log, the call to the functions in the dll is working so the name of the custom action is not a problem. This is a deferred action, if that makes any difference.

    Does anybody have any ideas how to solve this problem?

  2. #2
    Join Date
    Feb 2002
    Location
    Herndon VA
    Posts
    52
    Forgot to mention that there is an error in the "cryptoserver" table to generate an error for testing the dll.

  3. #3
    author Guest
    > (UNKNOWN) DEBUG: Error 2835: The control ErrorIcon was not found on dialog SetupError

    This is a bug already reported to InstallShield (work-order #1-CZ6ZG). Renaming the control WarningIcon to ErrorIcon in the Control table using DirectEditor fixes that issue for me.


    To do error reporting, I use VBScript similar to this (hopefully you can match it to MSI API equivalents in C++):


    Const idOK = 1
    Const idFail = 3

    Private Function XFail(ByVal sErr)
    Dim vRec: Set vRec = Nothing
    Dim vAns: vAns = vbAbort
    Set vRec = Session.Installer.CreateRecord(1)
    vRec.StringData(1) = sErr
    vRec.StringData(0) = "[1]."
    Call Session.Message(msiMessageTypeError Or vbCritical, vRec)
    vRec.ClearData
    Set vRec = Nothing
    XFail = idFail
    End Function

    Private Function XWarn(Byval sErr)
    Dim vRec: Set vRec = Nothing
    Set vRec = Session.Installer.CreateRecord(1)
    vRec.StringData(0) = "[1]"
    vRec.StringData(1) = sErr
    Call Session.Message(msiMessageTypeWarning Or vbExclamation, vRec)
    vRec.ClearData
    Set vRec = Nothing
    XWarn = idOK
    End Function

  4. #4
    Join Date
    Mar 2003
    Posts
    15
    Thank you very much for posting this thread: I just encountered the same problem with a build I'm working on, and this helped me along in the right direction!
    - Bill

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •