Hi,
Just thought I'd bump this to
see if I could get a response...
Brian
>
> I am new to COM programming and have a question about
function
> parameters when implementing a COM object in Python.
>
> After reading "Python Programming on Win32", I have managed to create a
> working COM object, where "working" is defined as "I can use it from
> Excel VBA".
>
> I have a function like this:
>
> def func(self, in1, inout1, in2, inout2)
>
> where the in* parameters are input only and inout* are input and output.
> At the end of the function I return an error code and new values for the
> in/out parameters. I.e.:
>
> return( errorCode, new_inout1, new_inout2 )
>
> This seems to work fine if it is called from VBA as
>
> errorCode = object.func( CONSTANT_1, var1, CONSTANT_2, var2 )
>
> or
>
> errorCode = object.func( 42, var1, 7.4, var2 )
>
> but it breaks if the VB program does this:
>
> c1 = CONSTANT_1 ' c1 is a previously declared variable
> c2 = 7.4 ' c2 is a previously declared variable
> errorCode = object.func( c1, var1, c2, var2 )
>
> because c1 will then be assigned new_inout1 and var1 will be assigned
> new_inout2, while c2 and var2 will not be assigned anything.
>
> Short of telling the VB programmer "Don't do that", how do I prevent
> this problem?
>
> Thanks,
> Brian
> parameters when implementing a COM object in Python.
>
> After reading "Python Programming on Win32", I have managed to create a
> working COM object, where "working" is defined as "I can use it from
> Excel VBA".
>
> I have a function like this:
>
> def func(self, in1, inout1, in2, inout2)
>
> where the in* parameters are input only and inout* are input and output.
> At the end of the function I return an error code and new values for the
> in/out parameters. I.e.:
>
> return( errorCode, new_inout1, new_inout2 )
>
> This seems to work fine if it is called from VBA as
>
> errorCode = object.func( CONSTANT_1, var1, CONSTANT_2, var2 )
>
> or
>
> errorCode = object.func( 42, var1, 7.4, var2 )
>
> but it breaks if the VB program does this:
>
> c1 = CONSTANT_1 ' c1 is a previously declared variable
> c2 = 7.4 ' c2 is a previously declared variable
> errorCode = object.func( c1, var1, c2, var2 )
>
> because c1 will then be assigned new_inout1 and var1 will be assigned
> new_inout2, while c2 and var2 will not be assigned anything.
>
> Short of telling the VB programmer "Don't do that", how do I prevent
> this problem?
>
> Thanks,
> Brian
CONFIDENTIAL AND PRIVILEGED INFORMATION NOTICE This e-mail, and any attachments, may contain information that is confidential, subject to copyright, or exempt from disclosure. Any unauthorized review, disclosure, retransmission, dissemination or other use of or reliance on this information may be unlawful and is strictly prohibited. AVIS D'INFORMATION CONFIDENTIELLE ET PRIVILÉGIÉE Le présent courriel, et toute pièce jointe, peut contenir de l'information qui est confidentielle, régie par les droits d'auteur, ou interdite de divulgation. Tout examen, divulgation, retransmission, diffusion ou autres utilisations non autorisées de l'information ou dépendance non autorisée envers celle-ci peut être illégale et est strictement interdite. |
_______________________________________________ Python-win32 mailing list Python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32