My thoughts on how to do it were more of a hack than a proper implementation. I would not recommend it as a sustainable solution.
The proper way to do it I think is as outlined. However, this is not very low hanging fruit and will require a lot of work. There are a lot of interdependencies and I thought an incremental approach would not work, but I'm happy if I'm wrong.
Note that I tried to get tests included. The biggest issue here is not the tests, it is that the ITextServices and ITextHost assume the use of the thiscall calling convention, even in C (!!). Check the patches sent by me to wine-patches earlier this year on how I thought it might be done. However, the goalposts kept moving on me and then I ran out of holiday time :(.
I was able to make a trivial ITextHost implementation. Again, written with hack like purposes in mind.
If someone could get unittests in (even if it only contains a test of one call) that cover the thiscall stuff then this would be good and a full test suite could be written and things can move forward fairly rapidly. This first step probably requires quite a bit of thinking but not much code.
My thoughts on how to do it were more of a hack than a proper implementation. I would not recommend it as a sustainable solution.
The proper way to do it I think is as outlined. However, this is not very low hanging fruit and will require a lot of work. There are a lot of interdependencies and I thought an incremental approach would not work, but I'm happy if I'm wrong.
Note that I tried to get tests included. The biggest issue here is not the tests, it is that the ITextServices and ITextHost assume the use of the thiscall calling convention, even in C (!!). Check the patches sent by me to wine-patches earlier this year on how I thought it might be done. However, the goalposts kept moving on me and then I ran out of holiday time :(.
I was able to make a trivial ITextHost implementation. Again, written with hack like purposes in mind.
If someone could get unittests in (even if it only contains a test of one call) that cover the thiscall stuff then this would be good and a full test suite could be written and things can move forward fairly rapidly. This first step probably requires quite a bit of thinking but not much code.