[PATCH 01/12] vbscript: Implement ScriptTypeInfo_GetContainingTypeLib.

Gabriel Ivăncescu gabrielopcode at gmail.com
Wed Jan 29 06:43:36 CST 2020


On 29/01/2020 11:20, Jacek Caban wrote:
> 
> On 28/01/2020 16:41, Gabriel Ivăncescu wrote:
>> On 28/01/2020 17:34, Jacek Caban wrote:
>>> Hi Gabriel,
>>>
>>> On 27.01.2020 16:32, Gabriel Ivăncescu wrote:
>>>> Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
>>>> ---
>>>>   dlls/vbscript/vbdisp.c | 153 
>>>> ++++++++++++++++++++++++++++++++++++++++-
>>>
>>>
>>> Could we use CreateTypeLib/CreateTypeLib2 for that?
>>>
>>>
>>> Thanks,
>>>
>>> Jacek
>>>
>>
>> Hi Jacek,
>>
>> I'm not sure, is there a way to attach an existing TypeInfo to it?
> 
> 
> CreateTypeInfo could be used for TypeInfo.
> 
> 
>> We'll definitely need it for the FindName/IsName methods.
> 
> 
> What's special about FindName/IsName?
> 
> 

It can, but we already have the TypeInfo. CreateTypeInfo would need to 
create one from scratch, which seems silly to do just for the typelib. 
Also, not sure if it matters, but it would copy everything instead of 
ref-counting like currently, so it's a bit less efficient, too.

FindName/IsName aren't special, but they need access to the function and 
variable names. Using CreateTypeInfo means rewriting the whole thing or 
duplicating code just for the typelib, including each function and variable.

>> Also, it seems it requires a filename, to create on disk, so I don't 
>> think it will work as we don't do that.
> 
> 
> As far as I can see it just stores the file name so that you may (or may 
> not) save it later.
> 
> 
>> That said, most of it is quite straightforward currently compared to 
>> the TypeInfo, except for FindName.
> 
> 
> I tested it and it looks like ICreateTypeLib2 is exposed by native:
> 
> https://testbot.winehq.org/JobDetails.pl?Key=64042
> 
> And I'm sorry for not asking about it earlier. I assumed that we just 
> need a customized subset of ITypeInfo, not full implementation of all 
> related interfaces.
> 
> 
> Thanks,
> 
> Jacek
> 

Right, I didn't consider that interface important for now. Either way, 
if you don't like the current approach for the typelib, I guess I'll 
postpone it since it's not that important. I wrote it because it was 
somewhat trivial after the TypeLib patches, instead of having to rewrite 
all of it. :-)

Thanks,
Gabriel



More information about the wine-devel mailing list