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

Reply via email to