Call add-in method from macro?

Status
Not open for further replies.
D

Duncan McNiven

I am using Delphi (2009) to write my first add-in for Outlook (2007). I want to add a custom method to my add-in's class and call it from an Outlook macro, but I can't get it working.

My method in my Delphi class is public. It looks like this:

procedure MyMethod(const Index : integer); safecall;

I tried to call it from Outlook like this:

Sub Test_02()

Application.COMAddIns.Item("<My Add In>").Object.MyMethod (3)

End Sub

I get:

Run-time error '91':

Object variable or With block variable not set

I then tried:

Sub Test_01()

Dim MyAddIn As Office.COMAddIn

Set MyAddIn = Application.COMAddIns.Item("<My Add In>")

If Not (MyAddIn Is Nothing) Then

If MyAddIn.Connect = True Then

Dim MyObject As Object

Set MyObject = MyAddIn.Object

If Not (MyObject Is Nothing) Then

MyObject.MyMethod (3)

End If

End If

End If

End Sub

This fails because MyObject is Nothing, so the call to MyObject.MyMethod doesn't happen.

My next attempt was:

Sub Test_03()

Dim MyObject As Object

Set MyObject = CreateObject("<My Add In>")

If Not (MyObject Is Nothing) Then

MyObject.DoNewMail (Null)

End If

End Sub

The DoNewMail method is the handler for Outlooks OnNewMail event, and is called correctly when new mail is received. I guess CreateObject would create a new object rather than use the one already instantiated in my Add-In, which is not what I want, but I was trying everything at this stage. Anyway, this attempt failed with:

Run-time error '438':

Object doesn't support this property or method

So where am I going wrong?
 
Re: Call add-in method from macro? SOLVED

After being stuck on this for days I hit on a solution.

In my OnConnection event in the Delphi code I put something like:

var

SelfDisp : OleVariant;

begin

SelfDisp := Self as IMyClassDisp;

OleVariant(AddInInst).Object := SelfDisp;

(IMyClassDisp is a descendant of IDispatch).

Then the IMyClassDisp methods included in the type library can be called from a macro using the same syntax I had tried earlier.

Just thought I would post this note in case anyone else finds this thread whilst stuck on the same problem.
 
Status
Not open for further replies.
Similar threads
Thread starter Title Forum Replies Date
T exception when I call ActiveDocument.Range(0,0).Editors.Add(-1) Outlook VBA and Custom Forms 2
P Comcast IMAP broken but their second level support said to call "the Outlook company" Using Outlook 4
R Call a Public Sub when a Flag is clicked on in the Message Preview pane Outlook VBA and Custom Forms 1
CWM030 Call me old if you want. OL 2016 font size out of the box. Using Outlook 3
F Outlook 2016 call to Stop Timer Event Outlook VBA and Custom Forms 4
C Unchecking "Send immediately when connected" does not work on apps that call Outlook Using Outlook 1
M How to call custom email form when sender = x Using Outlook 3
D Create additional custom flag descriptions (other than Send E-Mail, Call etc.) Using Outlook 1
K call a help file when click on a button xml ribbon Outlook VBA and Custom Forms 1
C OL Sub through or by Excel Macro Call Outlook VBA and Custom Forms 1
S How to call a procedure from a custom command bar in Outlook 2007 Outlook VBA and Custom Forms 1
R Phone Call Start Date - Phone Log BCM (Business Contact Manager) 1
B Good Call Log Concept? Outlook VBA and Custom Forms 5
J Outlook custom form - VBS call VBA macro Outlook VBA and Custom Forms 3
M Phone Log Reminder to call back BCM (Business Contact Manager) 1
R Help, Outlook2003 won't quit after call OnDisconnection? Outlook VBA and Custom Forms 3
S Custom VBA forms in Outlook--how to call w/macro? Outlook VBA and Custom Forms 1
C How do you call a exe and interact with the output interactively Outlook VBA and Custom Forms 2
G Add Map It button to Custom Contacts Form in Outlook Outlook VBA and Custom Forms 1
G Outlook 2021 Add Picture to Custom Contact Form Outlook VBA and Custom Forms 2
P Can't add custom field to custom Outlook form, it always adds to the Folder instead Outlook VBA and Custom Forms 2
P VBA to add email address to Outlook 365 rule Outlook VBA and Custom Forms 0
S Outlook 2019 Custom outlook Add-in using Visual Studio Outlook VBA and Custom Forms 0
G automatically choosing "add to autocorrect" option Using Outlook 0
F Want to add second email to Outlook for business use Using Outlook 4
K Add an entry to a specific calendar Using Outlook 1
F Add a category before "Send an Email When You Add an Appointment to Your Calendar" Outlook VBA and Custom Forms 0
J Want to create a button on the nav bar (module add-in) to run code Outlook VBA and Custom Forms 2
M "Attachment Detacher for Outlook" add in, does it update the server copy of the email? Using Outlook 1
J Outlook 365 Add keywords from Listbox to the message body where cursor is placed Outlook VBA and Custom Forms 0
O Add Day Number of the year for 2023-2033 Outlook VBA and Custom Forms 5
J GoDaddy migrated to Office365 - Outlook Wont Add Account Exchange Server Administration 21
F Outlook 2019 Outlook 2019 Add and Sync to New computer Comcast server Using Outlook 2
Witzker Add a text line at the end of the note field in all selected Contacts Outlook VBA and Custom Forms 7
A iCloud Outlook Add In is causing Outlook 2021 to crash and got disabled Using Outlook 10
N How to add or delete items to Move dropdown Menu Using Outlook 0
G Add contacts birthday to calendar Using Outlook 4
V How to add 'Previous Item' and 'Next Item' to the Quick Access Toolbar Using Outlook 1
Commodore Safe way to add or update holidays; Windows Notifications issue Using Outlook 8
kkqq1122 How would I add Search for attachment name Outlook VBA and Custom Forms 3
L did MS ever add way to text via Outlook Using Outlook 5
P How to add a column named categories when searching in Outlook Using Outlook 0
M add new attendee to existing meetings with VBA Outlook VBA and Custom Forms 5
N Can't create NEW GROUP and add/remove a member from existing Group in Outlook Using Outlook 1
Witzker Outlook 2019 Pls. add a Prefix for OUTLOOK 2019 here Using Outlook 1
P Add inanimate objects to meetings? Using Outlook 1
O Outlook 2010 Add delete button to the side of the message list Using Outlook 1
BartH Add a string to the conditions in .Conditions.BodyOrSubject.Text Outlook VBA and Custom Forms 2
A "Get Add-Ins" - Which Version of Outlook to use Using Outlook 1
D Do I need Exchange Add-In? Using Outlook 6

Similar threads

Back
Top