From: <he...@or...> - 2005-04-12 14:35:00
|
Hi! Please, apologize if my question is offtopic but I don't know what to do next to debug and find the problem. I've wrote a COM server in python (gdsHMF.py) that is a plugin for Google Desktop Search. Right now it's more a sample rather than an actual application. I'm able to register the COM server using the command line and the plugin works ok along GDS (ie: "gdsHMF.py --register") (If you want to have a look the plugin is in: http://www.orgmf.com.ar/condor/gdsHMF.py ) After playing around with the plugin I wrote a minimal py2exe script for it: # setup.py from distutils.core import setup import py2exe py2exe_options = { "typelibs" : [('{3D056FE7-EA8E-481A-B18F-0B02EBF6B3C1}', 0, 1, 0)], } setup( com_server = ["gdsHMF"], options = { "py2exe" : py2exe_options }, ) (The said GUID corresponds to Google Desktop Search.) When I tried to register the exe made by the setup the following traceback is dumped to the log file: Traceback (most recent call last): File "boot_com_servers.py", line 96, in ? File "boot_com_servers.py", line 66, in DllRegisterServer File "gdsHMF.pyc", line 87, in DllRegisterServer File "win32com\gen_py\3D056FE7-EA8E-481A-B18F-0B02EBF6B3C1x0x1x0.pyc", line 64, in RegisterExtension pywintypes.com_error: (-2147352567, 'Ocurri\xf3 una excepci\xf3n.', (0, 'GoogleDesktopSearch.Register.1', 'Component cannot be instantiated', None, 0, -2147221164), None) I understand that the error message in spanish is produced by my localized version of Windows and that error number -2147221164 comes from GDS. No doc from GDS mentions error code 340 though. Has anyone seen different behaviours between a COM server script and the exe/dll from py2exe? Did I forget something evident? Thanks, -Hernán. |
From: Thomas H. <th...@py...> - 2005-04-13 14:16:16
|
Hernán Martínez Foffani <he...@or...> writes: > Hi! > Please, apologize if my question is offtopic but > I don't know what to do next to debug and find the > problem. > > I've wrote a COM server in python (gdsHMF.py) that > is a plugin for Google Desktop Search. Right now it's more > a sample rather than an actual application. I'm able to > register the COM server using the command line and the > plugin works ok along GDS (ie: "gdsHMF.py --register") > > (If you want to have a look the plugin is in: > http://www.orgmf.com.ar/condor/gdsHMF.py > ) > > After playing around with the plugin I wrote a > minimal py2exe script for it: > > # setup.py > from distutils.core import setup > import py2exe > > py2exe_options = { > "typelibs" : [('{3D056FE7-EA8E-481A-B18F-0B02EBF6B3C1}', 0, 1, 0)], > } > > setup( > com_server = ["gdsHMF"], > options = { "py2exe" : py2exe_options }, > ) > > (The said GUID corresponds to Google Desktop Search.) > > When I tried to register the exe made by the setup the following traceback > is dumped to the log file: > > Traceback (most recent call last): > File "boot_com_servers.py", line 96, in ? > File "boot_com_servers.py", line 66, in DllRegisterServer > File "gdsHMF.pyc", line 87, in DllRegisterServer > File "win32com\gen_py\3D056FE7-EA8E-481A-B18F-0B02EBF6B3C1x0x1x0.pyc", > line 64, in RegisterExtension > pywintypes.com_error: (-2147352567, 'Ocurri\xf3 una excepci\xf3n.', (0, > 'GoogleDesktopSearch.Register.1', 'Component cannot be instantiated', None, > 0, -2147221164), None) > > I understand that the error message in spanish is produced by > my localized version of Windows and that error number -2147221164 > comes from GDS. No doc from GDS mentions error code 340 though. What do you mean with 340? Where does this come from? Concerning the two error code you get: -2147352567 = 0x80020009: Ausnahmefehler aufgetreten (exception occurred) -2147221164 = 0x80040154: Klasse nicht registriert (class not registered) Doesn't this look like google desktop search is not registered (although it makes me wonder why the script works - did you test both on the same machine)? Thomas |
From: <he...@or...> - 2005-04-13 16:57:54
|
>> I've wrote a COM server in python (gdsHMF.py) that >> is a plugin for Google Desktop Search. Right now it's more >> a sample rather than an actual application. I'm able to >> register the COM server using the command line and the >> plugin works ok along GDS (ie: "gdsHMF.py --register") >> >> (If you want to have a look the plugin is in: >> http://www.orgmf.com.ar/condor/gdsHMF.py >> ) >> >> After playing around with the plugin I wrote a >> minimal py2exe script for it: >> >> # setup.py >> from distutils.core import setup >> import py2exe >> >> py2exe_options = { >> "typelibs" : [('{3D056FE7-EA8E-481A-B18F-0B02EBF6B3C1}', 0, 1, >> 0)], } >> >> setup( >> com_server = ["gdsHMF"], >> options = { "py2exe" : py2exe_options }, >> ) >> >> (The said GUID corresponds to Google Desktop Search.) >> >> When I tried to register the exe made by the setup the following >> traceback is dumped to the log file: >> >> Traceback (most recent call last): >> File "boot_com_servers.py", line 96, in ? >> File "boot_com_servers.py", line 66, in DllRegisterServer >> File "gdsHMF.pyc", line 87, in DllRegisterServer >> File >> "win32com\gen_py\3D056FE7-EA8E-481A-B18F-0B02EBF6B3C1x0x1x0.pyc", >> line 64, in RegisterExtension pywintypes.com_error: (-2147352567, >> 'Ocurri\xf3 una excepci\xf3n.', (0, >> 'GoogleDesktopSearch.Register.1', 'Component cannot be >> instantiated', None, 0, -2147221164), None) >> >> I understand that the error message in spanish is produced by >> my localized version of Windows and that error number -2147221164 >> comes from GDS. No doc from GDS mentions error code 340 though. > > What do you mean with 340? Where does this come from? > Concerning the two error code you get: > > -2147352567 = 0x80020009: Ausnahmefehler aufgetreten (exception > occurred) > -2147221164 = 0x80040154: Klasse nicht registriert (class not > registered) > > Doesn't this look like google desktop search is not registered > (although it makes me wonder why the script works - did you test both > on the same machine)? > 340 is: >>> import winerror >>> winerror.HRESULT_CODE(-2147221164) 340 >>> I thought that the error number came from GDS. Its published error list is organized by CODE numbers so I looked it up on the chance that it may tell something. I've made the same test on a couple of PCs. In both of them the script works but the exe fails. Registering a plugin in GDS has two phases. 1. Advise GDS of a new COM server. 2. Tell GDS the file extension type the plugin indexes. # COM server says hello to Google Desktop Search def DllRegisterServer(): reg = gds.GoogleDesktopSearchRegister() compDesc = ["Title",TITLE, "Description",DESCRIPTION, "Icon",GDS_ICON] registration = reg.RegisterComponent(MYGUID, compDesc) ret = registration.RegisterExtension(GDS_FEXT) The first call [reg = gds.GoogleDesktopSearchRegister()] works (GDS opens a dialog box telling the user that someone is trying to install a new plugin) It's the second one [registration = reg.RegisterComponent(MYGUID, compDesc)] that fires the exception. Unregistering the COM server works for the script and the exe. Regards, -Hernán. |
From: Thomas H. <th...@py...> - 2005-04-13 17:47:03
|
Hernán Martínez Foffani <he...@or...> writes: >>> When I tried to register the exe made by the setup the following >>> traceback is dumped to the log file: >>> >>> Traceback (most recent call last): >>> File "boot_com_servers.py", line 96, in ? >>> File "boot_com_servers.py", line 66, in DllRegisterServer >>> File "gdsHMF.pyc", line 87, in DllRegisterServer >>> File >>> "win32com\gen_py\3D056FE7-EA8E-481A-B18F-0B02EBF6B3C1x0x1x0.pyc", >>> line 64, in RegisterExtension pywintypes.com_error: (-2147352567, >>> 'Ocurri\xf3 una excepci\xf3n.', (0, >>> 'GoogleDesktopSearch.Register.1', 'Component cannot be >>> instantiated', None, 0, -2147221164), None) >>> > > # COM server says hello to Google Desktop Search > def DllRegisterServer(): > reg = gds.GoogleDesktopSearchRegister() > compDesc = ["Title",TITLE, "Description",DESCRIPTION, > "Icon",GDS_ICON] > registration = reg.RegisterComponent(MYGUID, compDesc) > ret = registration.RegisterExtension(GDS_FEXT) > > The first call [reg = gds.GoogleDesktopSearchRegister()] works > (GDS opens a dialog box telling the user that someone is trying > to install a new plugin) It's the second one > [registration = reg.RegisterComponent(MYGUID, compDesc)] > that fires the exception. > > Unregistering the COM server works for the script and the exe. I think I found it - when you try to register GDS tries to instantiate the COM component, but maybe it only supports INPROC servers, not local servers. Registering the gdsHMF.dll seems to work fine (I installed GDS and tried it out). Remember that registering the python *script* writes registry entries for both the inproc and local server, registering the EXE/DLL that py2exe creates only registers one of them. Thomas |
From: <he...@or...> - 2005-04-13 22:09:16
|
>>>> When I tried to register the exe made by the setup the following >>>> traceback is dumped to the log file: >>>> >>>> Traceback (most recent call last): >>>> File "boot_com_servers.py", line 96, in ? >>>> File "boot_com_servers.py", line 66, in DllRegisterServer >>>> File "gdsHMF.pyc", line 87, in DllRegisterServer >>>> File >>>> "win32com\gen_py\3D056FE7-EA8E-481A-B18F-0B02EBF6B3C1x0x1x0.pyc", >>>> line 64, in RegisterExtension pywintypes.com_error: (-2147352567, >>>> 'Ocurri\xf3 una excepci\xf3n.', (0, >>>> 'GoogleDesktopSearch.Register.1', 'Component cannot be >>>> instantiated', None, 0, -2147221164), None) >>>> >> >> # COM server says hello to Google Desktop Search def >> DllRegisterServer(): reg = gds.GoogleDesktopSearchRegister() >> compDesc = ["Title",TITLE, "Description",DESCRIPTION, >> "Icon",GDS_ICON] registration = >> reg.RegisterComponent(MYGUID, compDesc) ret = >> registration.RegisterExtension(GDS_FEXT) >> >> The first call [reg = gds.GoogleDesktopSearchRegister()] works >> (GDS opens a dialog box telling the user that someone is trying >> to install a new plugin) It's the second one >> [registration = reg.RegisterComponent(MYGUID, compDesc)] that fires >> the exception. >> >> Unregistering the COM server works for the script and the exe. > > I think I found it - when you try to register GDS tries to instantiate > the COM component, but maybe it only supports INPROC servers, not > local servers. Registering the gdsHMF.dll seems to work fine (I > installed GDS and tried it out). > > Remember that registering the python *script* writes registry entries > for both the inproc and local server, registering the EXE/DLL that > py2exe creates only registers one of them. Thanks, Thomas. You are correct. I recognize that I'm still learning some COM basics. Best regards, -Hernán. |
From: <mi...@pc...> - 2005-04-14 08:28:16
|
Quoting Hernan Martínez Foffani <he...@or...>: [snip..] > >> The first call [reg = gds.GoogleDesktopSearchRegister()] works > >> (GDS opens a dialog box telling the user that someone is trying > >> to install a new plugin) It's the second one > >> [registration = reg.RegisterComponent(MYGUID, compDesc)] that fires > >> the exception. > >> > >> Unregistering the COM server works for the script and the exe. > > > > I think I found it - when you try to register GDS tries to instantiate > > the COM component, but maybe it only supports INPROC servers, not > > local servers. Registering the gdsHMF.dll seems to work fine (I > > installed GDS and tried it out). > > > > Remember that registering the python *script* writes registry entries > > for both the inproc and local server, registering the EXE/DLL that > > py2exe creates only registers one of them. > > Thanks, Thomas. You are correct. > I recognize that I'm still learning some COM basics. > Hello Hernán, If you get a python API to the desktop search working (and documented ?), I'd be interested. (As would others I guess). Best Regards, Fuzzy http://www.voidspace.org.uk/python > Best regards, > -Hernán. > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Py2exe-users mailing list > Py2...@li... > https://lists.sourceforge.net/lists/listinfo/py2exe-users > |
From: <he...@or...> - 2005-04-14 18:23:23
|
> If you get a python API to the desktop search working (and documented > ?), I'd be interested. (As would others I guess). A minimal example with many comments in the code: http://www.orgmf.com.ar/condor/gdsPlugin.py A minimal py2exe setup script for it: http://www.orgmf.com.ar/condor/setup.py To register the resulting DLL run c:> regsvr32 gdsPlugin.dll Haven't done many tests yet and error traps are missing. When I feel more confident I'll write a web page explaining the bits. (This is now offtopic so please let's follow up privately.) Regards, -Hernán. |