Beginner COM problem (Windows)
Mark Hammond
MarkH at ActiveState.com
Mon Oct 22 06:37:41 EDT 2001
Kirby Urner wrote:
> I've written (actually downloaded [1]) a COM object in Visual FoxPro 5.
> I'd like Python to be its client.
>
> The object is registered, and when I write a macro in Excel, using VBA,
> the behavior works as advertized.
...
> However, when I try to do something similar in Python, with win32all
> installed, the following occurs:
>
> >>> import win32com.client
> >>> vfpole = win32com.client.Dispatch("VFP_OLE.VFP_OLE_Server")
> >>> vfpole
> <COMObject VFP_OLE.VFP_OLE_Server>
>
> >>> vfpole.FoxCommand ("Wait Window 'Executing Query' Nowait")
> Traceback (most recent call last):
> File "<pyshell#4>", line 1, in ?
> vfpole.FoxCommand ("Wait Window 'Executing Query' Nowait")
> File "D:\Program Files\Python21\win32com\client\dynamic.py",
> line 432, in __getattr__
> raise pythoncom.com_error, details
> com_error: (-2147352567, 'Exception occurred.', (99, 'Visual FoxPro
> for Windows', 'Procedure canceled.', None, 0, 0), None)
>
> Any ideas? I tried setting _unicode_to_string_ to 1, but that
> didn't make any difference.
>
> I actually get an error the second I hit a parenthesis key
> after vfpole.FoxCommand -- unless I move the (argument) out
> a space -- legal. That postpones the error message until after
> I hit enter. That behavior tells me something, but I'm not
> sure what.
My guess is that FoxPro is allowing "FoxCommand" to be used as either a property or a method. Try running makepy over the COM object and see if the behaviour corrects itself.
Mark.
More information about the Python-list
mailing list