Hi,
The "AddIn" part of the argument should be the name of the Add-In. This is not the name of the main class, nor the project/solution, but the assembly name.
If you don't have the source handy you can check the menu under Extensions -- Manage Add-Ins, that should give you the correct name.
As to the method signature, strictly speaking the third argument should be an
object rather than a
string[] but I think it'll work either way. Still, declaring it as object and performing the cast explicitly is more robust, and robust code is the only code worth writing (sorry, that's what fifteen years in the defence industry does to you...).
A simple way to check whether the call is coming through is to add a line
repository.WriteOutput("System", "GetRelationships() called", -1);
to your method. Remember to open the output tab in your test project, or call repository.EnsureOutputVisible(). Ahhh, the days of fprintf() debugging...

Finally, not to knock Geert's samples, but I strongly recommend that you do not allow Visual Studio to register the assembly for COM interop, but instead create an installer. Otherwise, since Studio does not automatically de-register when rebuilding (but an installer will deregister when uninstalling) you'll soon find your dev machine registry lousy with old registrations which can make debugging a far bigger PITA than it needs to be.
Ayone who's ever seen the above dialog complaining "Error - AddIn not found" knows what I'm on about.
/Uffe