K
Ken Slovak - [MVP - Outlook]
The AddInMon source isn't available but what it does is use Win32 API calls
to check for a window that is only present in the collection of windows for
the Outlook thread when Outlook has a UI.
It remains in memory checking for that window until it appears and then
reinitializes any COM addins that have an AddInMon DWORD in their registry
settings under addin.Connect.
You can use Spy++ to monitor and see what windows are in existence with and
without a UI and then write your own code to look for that window at
intervals you decide on.
Outlook.Application.COMAddIns is the collection you want. Each member is an
Office.COMAddIn object. Using code like this will toggle the Connect bit of
the COMAddIn object:
objOL.COMAddIns.Item("myAddin.Connect").Connect = True
"myAddin.Connect" would be the ProgID property of that specific COM addin.
You can iterate the COMAddIns collection and see the ProgID properties for
all installed addins if you want. In this case "objOL" would be an
Outlook.Application object.
to check for a window that is only present in the collection of windows for
the Outlook thread when Outlook has a UI.
It remains in memory checking for that window until it appears and then
reinitializes any COM addins that have an AddInMon DWORD in their registry
settings under addin.Connect.
You can use Spy++ to monitor and see what windows are in existence with and
without a UI and then write your own code to look for that window at
intervals you decide on.
Outlook.Application.COMAddIns is the collection you want. Each member is an
Office.COMAddIn object. Using code like this will toggle the Connect bit of
the COMAddIn object:
objOL.COMAddIns.Item("myAddin.Connect").Connect = True
"myAddin.Connect" would be the ProgID property of that specific COM addin.
You can iterate the COMAddIns collection and see the ProgID properties for
all installed addins if you want. In this case "objOL" would be an
Outlook.Application object.