re: Anyone actively working on ITypeInfo_fnInvoke and VariantChangeType?

2006-05-02 Thread Dan Kegel

Rob wrote:

Does this patch fix both issues for you?


Oh, man, that patch is great. It lets me start the VB6 IDE
(i.e. it fixes http://bugs.winehq.org/show_bug.cgi?id=4448 )
Please submit it.  Yum!
- Dan

--
Wine for Windows ISVs: http://kegel.com/wine/isv




Re: Anyone actively working on ITypeInfo_fnInvoke and VariantChangeType?

2006-05-02 Thread Bill Medland
On May 2, 2006 11:44 am, Robert Shearman wrote:
> Bill Medland wrote:
> >before I start trying to get up to speed on it.
> >

> >
> >Anyway; if someone is already working on that sort of thing
> > then there is probably little point in me trying to learn it
> > all. However if no-one is then I guess I will start trying
> > to learn it.
> >
> >Comments?
>
> I had hoped others would continue development on typelib
> stuff, picking up from where I left off after the rewrite to
> use more of VariantChangeType, but unfortunately this isn't
> the case and I don't have enough time to work on this area too
> much. Fortunately, I don't think there are too many issues
> left to fix and already the new code in ITypeInfo::Invoke gets
> some programs working that wouldn't work with the old code.
>
> Does this patch fix both issues for you?

Yes, thanks Rob.

Are you going to submit it?

(Now onto why it jumbs into the debugger in libkrb of all 
places!)
-- 
Bill Medland
mailto:[EMAIL PROTECTED]
http://webhome.idirect.com/~kbmed




Re: Anyone actively working on ITypeInfo_fnInvoke and VariantChangeType?

2006-05-02 Thread Robert Shearman

Bill Medland wrote:


before I start trying to get up to speed on it.

Congratulations.  My company's program now gets somewhere with 
the builtin ole dlls (thanks to fixes in the out-of-process COM) 
so I am interested in trying to get it to work completely with 
them (especially since the native ones no longer work)


What I have just fallen over is some VB that calls a method that 
results in 
ITypeInfo_fnInvoke failed to convert param 0 to VT_VARIANT|

VT_BYREF from VT_I2.

So I changed the VB and ended up with 
ITypeInfo_fnInvoke failed to convert param 0 to VT_VARIANT|

VT_BYREF from VT_VARIANT|VT_BYREF.

Now it seems to me that it ought at least to handle the second 
case, but that probably demonstrates that I don't know what I am 
talking about.


Anyway; if someone is already working on that sort of thing then 
there is probably little point in me trying to learn it all.  
However if no-one is then I guess I will start trying to learn 
it.


Comments?
 



I had hoped others would continue development on typelib stuff, picking 
up from where I left off after the rewrite to use more of 
VariantChangeType, but unfortunately this isn't the case and I don't 
have enough time to work on this area too much. Fortunately, I don't 
think there are too many issues left to fix and already the new code in 
ITypeInfo::Invoke gets some programs working that wouldn't work with the 
old code.


Does this patch fix both issues for you?

--
Rob Shearman

diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 43dfb73..4b88a18 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -5238,8 +5238,15 @@ static HRESULT WINAPI ITypeInfo_fnInvoke
 VARIANTARG *src_arg = &pDispParams->rgvarg[pDispParams->cArgs - 1 - i];
 dump_Variant(src_arg);
 
-if (rgvt[i] == VT_VARIANT)
+if ((rgvt[i] == VT_VARIANT) || (rgvt[i] == V_VT(src_arg)))
 VariantCopy(&rgvarg[i], src_arg);
+else if (rgvt[i] == (VT_VARIANT | VT_BYREF))
+{
+VARIANTARG *missing_arg = INVBUF_GET_MISSING_ARG_ARRAY(buffer, func_desc->cParams);
+VariantCopy(&missing_arg[i], src_arg);
+V_VARIANTREF(&rgvarg[i]) = &missing_arg[i];
+V_VT(&rgvarg[i]) = rgvt[i];
+}
 else if ((rgvt[i] & VT_BYREF) && !V_ISBYREF(src_arg))
 {
 VARIANTARG *missing_arg = INVBUF_GET_MISSING_ARG_ARRAY(buffer, func_desc->cParams);



Re: Anyone actively working on ITypeInfo_fnInvoke and VariantChangeType?

2006-05-02 Thread Alex Villací­s Lasso

Bill Medland wrote:

before I start trying to get up to speed on it.

Congratulations.  My company's program now gets somewhere with 
the builtin ole dlls (thanks to fixes in the out-of-process COM) 
so I am interested in trying to get it to work completely with 
them (especially since the native ones no longer work)


What I have just fallen over is some VB that calls a method that 
results in 
ITypeInfo_fnInvoke failed to convert param 0 to VT_VARIANT|

VT_BYREF from VT_I2.

So I changed the VB and ended up with 
ITypeInfo_fnInvoke failed to convert param 0 to VT_VARIANT|

VT_BYREF from VT_VARIANT|VT_BYREF.

Now it seems to me that it ought at least to handle the second 
case, but that probably demonstrates that I don't know what I am 
talking about.


Anyway; if someone is already working on that sort of thing then 
there is probably little point in me trying to learn it all.  
However if no-one is then I guess I will start trying to learn 
it.


Comments?
  


You might be interested in this bug report:

http://bugs.winehq.org/show_bug.cgi?id=4370

Alex Villacís Lasso





Re: Anyone actively working on ITypeInfo_fnInvoke and VariantChangeType?

2006-05-02 Thread Tony Lambregts

Bill Medland wrote:

before I start trying to get up to speed on it.

Congratulations.  My company's program now gets somewhere with 
the builtin ole dlls (thanks to fixes in the out-of-process COM) 
so I am interested in trying to get it to work completely with 
them (especially since the native ones no longer work)


What I have just fallen over is some VB that calls a method that 
results in 
ITypeInfo_fnInvoke failed to convert param 0 to VT_VARIANT|

VT_BYREF from VT_I2.

So I changed the VB and ended up with 
ITypeInfo_fnInvoke failed to convert param 0 to VT_VARIANT|

VT_BYREF from VT_VARIANT|VT_BYREF.

Now it seems to me that it ought at least to handle the second 
case, but that probably demonstrates that I don't know what I am 
talking about.


Anyway; if someone is already working on that sort of thing then 
there is probably little point in me trying to learn it all.  
However if no-one is then I guess I will start trying to learn 
it.


Comments?


AFAICT I think that bug 4370 http://bugs.winehq.org/show_bug.cgi?id=4370 
is relevant to this problem. If not sorry for the noise.


--

Tony Lambregts




Anyone actively working on ITypeInfo_fnInvoke and VariantChangeType?

2006-05-02 Thread Bill Medland
before I start trying to get up to speed on it.

Congratulations.  My company's program now gets somewhere with 
the builtin ole dlls (thanks to fixes in the out-of-process COM) 
so I am interested in trying to get it to work completely with 
them (especially since the native ones no longer work)

What I have just fallen over is some VB that calls a method that 
results in 
ITypeInfo_fnInvoke failed to convert param 0 to VT_VARIANT|
VT_BYREF from VT_I2.

So I changed the VB and ended up with 
ITypeInfo_fnInvoke failed to convert param 0 to VT_VARIANT|
VT_BYREF from VT_VARIANT|VT_BYREF.

Now it seems to me that it ought at least to handle the second 
case, but that probably demonstrates that I don't know what I am 
talking about.

Anyway; if someone is already working on that sort of thing then 
there is probably little point in me trying to learn it all.  
However if no-one is then I guess I will start trying to learn 
it.

Comments?
-- 
Bill Medland
mailto:[EMAIL PROTECTED]
http://webhome.idirect.com/~kbmed