Correct me if I am wrong... but Office 2010+ comes in 64-bit and 32-bit
versions. I know that 2019 definitely does.
Providing he matches his Python architecture (32 or 64) to his Office
application architecture (32 or 64), it should work unless that code has issues
working in 64-bit mode? I haven’t tried this myself in this particular case,
as I've always installed 32-bit Office apps.
As well, I just tried to run the addin code with my 64-bit python and it told
me " Library not registered".
C:\scripts>python outlookaddin.py
Traceback (most recent call last):
File "outlookaddin.py", line 38, in <module>
gencache.EnsureModule('{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}', 0, 2, 1,
bForDemand=True) # Office 9
File "C:\Python36\lib\site-packages\win32com\client\gencache.py", line 605,
in EnsureModule
bBuildHidden=bBuildHidden,
File "C:\Python36\lib\site-packages\win32com\client\gencache.py", line 319,
in MakeModuleForTypelib
bBuildHidden=bBuildHidden,
File "C:\Python36\lib\site-packages\win32com\client\makepy.py", line 257, in
GenerateFromTypeLibSpec
tlb = pythoncom.LoadRegTypeLib(typelibCLSID, major, minor, lcid)
pywintypes.com_error: (-2147319779, 'Library not registered.', None, None)
Its possible that my Office 2019 install doesn’t have the correct components or
APPIDs or CLSIDs installed (even if I matched the python and office
architectures) as I searched for them and couldn’t find them in the native x64
and x86 registry subkeys:
* HKEY_CLASSES_ROOT
* HKLM\Software\Classes
* OR HKLM\Software\Wow6432Node\Classes
These 2 IDs (Maybe only there in older office versions? Not Sure):
{00062FFF-0000-0000-C000-000000000046}
{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}
The Library Not registered is what I would expect if you were running into a
64-bit python and 32-bit application (or vice versa) problem as the script just
wouldn't find the needed library. I see this a lot with ODBC access to MS SQL
Server, Sybase, et al (not having the correct architecture's drivers installed
to perform the operation I am expecting to work) in VBScript, Perl and Python.
HTH
Steven
-----Original Message-----
From: python-win32 <[email protected]> On
Behalf Of Tim Roberts
Sent: Wednesday, December 08, 2021 1:43 PM
To: python-win32 <[email protected]>
Subject: Re: [python-win32] Outlook Add-In Demo Question ... A runtime error
occurred during the loading of the com add-in
Vernon D. Cole wrote:
> Most likely, you are running a 64 bit version of Python.
> Due to Windows restrictions, only 32 bit programs can talk to each other.
That comment demands clarification, because as stated it is quite misleading.
The issue here is that a 32-bit application can only load 32-bit DLLs. Outlook
2016 is a 32-bit application, so when it as a COM client tries to load an
in-process COM server (that is, his add-in), the COM server DLL must also be
32-bit.
There are many, many ways that 32-bit and 64-bit programs can talk to each
other. This is a very specific instance.
--
Tim Roberts, [email protected]
Providenza & Boekelheide, Inc.
_______________________________________________
python-win32 mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-win32