Hi Tomaz, Have you checked Win32WideString in Pharo7/8 and its users? You can do
aWindowsWideString := ‘a wide string’ asWin32WideString. And then check the senders of Win32WideString, you will find you can declare ffi signatures like this removeEnvironmentVariable: nameString ^ self ffiCall: #( int SetEnvironmentVariableW ( Win32WideString nameString, 0 ) ) Isn’t this working for you? If not, I’d like to have more details on why it does not work, so we can figure out a solution :) Cheers, Guille > El 13 sept 2019, a las 15:22, Tomaž Turk <tomaz.t...@ef.uni-lj.si> escribió: > > OK, I'm proceeding with the library that I mentioned > (http://disphelper.sourceforge.net/ <http://disphelper.sourceforge.net/>) and > I got nice results. Pablo's package goes directly into the core of OLE/COM > automation and it would be too hard to for me to study it and continue with > it at this stage. > > An example below loads Word for Windows, makes it visible, creates a new > document and writes some text: > > | w | > COMEngineAlpha initializeCOM . > w := COMEngineAlpha createObjectByName: 'Word.Application'. > COMEngineAlpha callObject: w setProperty: '.Visible = %b' withInteger: 1. > COMEngineAlpha callObject: w method: '.Documents.Add'. > COMEngineAlpha callObject: w method: '.Selection.TypeText(%S)' withString: > 'This is a message to appear in Word document.'. > COMEngineAlpha safeReleaseObject: w. > COMEngineAlpha uninitializeCOM. > > However, I'd like to marshall a WideString through uFFI so that I won't loose > UTF-8 support, of course the plain (String aString) signature doesn't work > ("Cannot coerce arguments"). Is there anything I can do myself (i.e. without > poking into Pharo virtual machine complexity) to solve this challenge? > > Best wishes, > Tomaz > > ------ Original Message ------ > From: "Torsten Bergmann" <asta...@gmx.de <mailto:asta...@gmx.de>> > To: tomaz.t...@ef.uni-lj.si <mailto:tomaz.t...@ef.uni-lj.si>; > pharo-users@lists.pharo.org <mailto:pharo-users@lists.pharo.org> > Cc: "Any question about pharo is welcome" <pharo-users@lists.pharo.org > <mailto:pharo-users@lists.pharo.org>> > Sent: 12. 09. 2019 12:07:34 > Subject: Aw: Re: [Pharo-users] uFFI ExternalAddress challenges > >> From your snippets it looks like you want to do COM Automation on Windows. >> >> Maybe you should have a look at: https://github.com/tesonep/pharo-com >> <https://github.com/tesonep/pharo-com> >> >> Bye >> T. >> >> Gesendet: Donnerstag, 12. September 2019 um 11:08 Uhr >> Von: "Tomaž Turk" <tomaz.t...@ef.uni-lj.si <mailto:tomaz.t...@ef.uni-lj.si>> >> An: "Any question about pharo is welcome" <pharo-users@lists.pharo.org >> <mailto:pharo-users@lists.pharo.org>> >> Betreff: Re: [Pharo-users] uFFI ExternalAddress challenges >> > We are interested in it <emoticon_smiley.png> >> > If I recall well Pablo got one version somewhere. >> >> Me too <emoticon_smiley.png> Unfortunately, I only have time for 'weekend' >> projects, and any help is appreciated <emoticon_smiley.png> >> >> Regarding the uFFI calls, is it possible to pass Win32WideString in a >> similar fashion as a String - or where to look to implement that? >> >> Best wishes, >> Tomaz