RE-Decoded

A technical look at the Raiser’s Edge API from Blackbaud

Changing Raiser’s Edge skin part 2

September 24th, 2007 by David Zeidman

When you are supplied all the dlls that an application uses and these are all COM object it is possible to discover things about the application that you would otherwise not normally be able to do. Some people may call this “hacking” but others like myself would prefer the less confrontational description of “investigating”

In any event one area of the API that is available to all is something that is so well hidden and yet potentially is very powerful to exploit. The SessionContext object very discreetly has the property MainForm.

Seeing something like this I could not resist investigating. Blackbaud do not give too much away here. The return object is of type Object but like most forms the basics can be determined (and changed) The code below is a very simple example of this.

Private Sub NewSkin()
       

    Dim objForm As Object
    Dim objControl As Object       

    Set objForm = RE7.Application.SessionContext.MainForm     

    objForm.Caption = "Raiser's Edge brought to you by XXX Foundation"
    objForm.Left = 0
    objForm.Top = 0   

End Sub

This is very simple and self explanatory. You could try to put this in some VBA code so that when the application opens the name changes and the window is moved to the top left of the screen (unfortunately it does not work but it does work if you run this as a macro). This is not very exciting stuff but there is certainly room for improvement here.

What is interesting is that the main window has a hidden text field with the current page on it. In the code above add the following:

    
   

For Each objControl In objForm .Controls
        If objControl.Name = "Text1" Then
            objControl.Visible = True
            objControl.Left = 5000
            objControl.Width = 5000
        End If
 Next objControl1

Using this you can enter your own pages just as you would a regular browser.

If you investigate further you will see that there are a few other controls including a menu control and a BBElastic control. If you make this visible you will be able to see some slightly less than useful information (no doubt used for testing purposes)

I shall leave it up to you to investigate more…

Related posts:

  1. Changing Raiser’s Edge skin If only we could change Raiser's Edge in the same...
  2. The Full Address I wanted to be able to get a constituent's address...

Posted in Advanced |

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.