Application for GSoc 2015 - Implement vbscript.dll builtins for Wine

Shuai Meng mengshuaicalendr at gmail.com
Thu Mar 26 04:14:52 CDT 2015


Hello everyone,
I'm Shuai Meng, a student from Beihang University of China, who have
attended Gosc 2014 for wine vbscript. I would like to continue to work on
this module this year: on one hand, I am familiar with it through last
year's experience; on the other hand, as I have studied it deeper and
deeper, I find it more difficult than imagined, and I think understanding
and fulfilling this interpreter of vbscript is very meaningful and
interesting.

Last year, the relatively simple built-in functions have been implemented
by my effort, with the generous help of many warm-hearted people. The left
functions are more challenging, I have to study more about COM and DLL in
order to understand the mechanism.

Now let's talk about the details of my plan, the functions unimplemented
can be sorted as below:

1.The first kind is the functions about date and time, they have not been
implemented because Wine's vbscript is not able to parse date constant in
the form of "#yy-mm-dd#" yet. The functions below can be hopefully
implemented as long as I sovle this problem: IsDate  CDate Day Month
Weekday Year Hour Minute Second DateValue TimeValue DateSerial TimeSerial
DateAdd DateDiff DatePart.

2.The second kind is about strings, they are LenB LeftB RightB MidB InStrB
Replace String StrComp. I have sent some patches to implement String, which
all failed. Then I realized that I have to solve the problem of locale
before I can implement them.

3.The third kind is about characters: Asc AscB ChrB ChrW Escape Unescape, I
have already sent patch for Asc, but due to the same problem as strings, it
didn't work. Again I have to implement GetLocale and SetLocale function,
however as Piotr pointed, these two functions are not registered in native
typelib, so I have to figure out another way to implement them, instead of
using idl files.

4.The fourth kind is about arrays: IsArray LBound UBound Array Filter Join
Split. Though haven't considered them seriously, but I can feel that they
harder than those listed before.

5.The fifth kind is about math, but only left Randomize and Rnd, they are a
little difficult, but I think it's unnecessary to implement them manually,
I mean there must be a wrapper function. I have found some samples in
jscript and other modules, I will learn from them.

6.The sixth kind is others: Eval Execute ExecuteGlobal GetRef LoadPicture
InputBox FormatNumber FormatCurrency FormatPercent FormatDateTime, they are
the most difficult, I am not sure whether I can implement them, but I will
try.

7.The remaining functions are about Error
handling: Err_Description Err_HelpContext   Err_HelpFile
 Err_Source Err_Raise. I haven't studied them yet, but sooner or later I
will meet them.

This is my idea for GSoC 2015, I appreciate for any comment.
Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20150326/d0bcf61a/attachment.html>


More information about the wine-devel mailing list