[#399938] how to read arrary with an array — "Richard D." <lists@...>

Hello. I believe this is basic question, but I'm just starting to learn

19 messages 2012/10/02

[#400050] img src while sending email ruby cgi — Ferdous ara <lists@...>

Hi

16 messages 2012/10/05

[#400351] Drop 1st and last particular character — ajay paswan <lists@...>

What is the most efficient way to drop '#' from the first place and last

15 messages 2012/10/16

[#400374] database part of a desktop application — "Sebastjan H." <lists@...>

Hi,

14 messages 2012/10/16
[#400375] Re: database part of a desktop application — Chad Perrin <code@...> 2012/10/16

On Wed, Oct 17, 2012 at 05:28:39AM +0900, Sebastjan H. wrote:

[#400377] Re: database part of a desktop application — sto.mar@... 2012/10/17

Am 16.10.2012 23:24, schrieb Chad Perrin:

[#400389] Re: database part of a desktop application — Chad Perrin <code@...> 2012/10/17

On Wed, Oct 17, 2012 at 01:39:21PM +0900, sto.mar@web.de wrote:

[#400386] Unable to send attachment, and dealing with multiple attachment — ajay paswan <lists@...>

Hi,

11 messages 2012/10/17

[#400454] Hash with Integer key issue — Wayne Simmerson <lists@...>

Hi Im new to Ruby and am getting some unexpected results from a

18 messages 2012/10/19

[#400535] Name/symbol/object type clash? What is happening here? — Todd Benson <caduceass@...>

It's nonsense code, but I'm curious as to what is going on behind the scenes...

41 messages 2012/10/23

[#400556] Calling a method foo() or an object foo.method_call_here - both — Marc Heiler <lists@...>

Hello.

13 messages 2012/10/24

[#400650] OpenSSL ECDSA public key from private — Nokan Emiro <uzleepito@...>

Hi,

11 messages 2012/10/27

[#400680] Passing folder as argument ARGV? — Joz Private <lists@...>

Is there an easy way to pass multiple files on the command line?

15 messages 2012/10/28
[#400681] Re: Passing folder as argument ARGV? — brad smith <bradleydsmith@...> 2012/10/28

How are you traversing the directory you pass in on the command line ?

[#400697] File.readable? and /proc — Jeff Moore <lists@...>

root@nail:/projects/proc_fs# uname -a

13 messages 2012/10/28

[#400714] Marshal.load weird issue — "Pierre J." <lists@...>

Hi guys

12 messages 2012/10/28

[#400781] bug?: local variable created in if modifier not available in modified expression — "Mean L." <lists@...>

irb(main):001:0> local1 if local1 = "created"

21 messages 2012/10/30
[#400807] Re: bug?: local variable created in if modifier not available in modified expression — Bartosz Dziewoński <matma.rex@...> 2012/10/31

Oh, and in case it wasn't apparent: you can just add

[#400808] Re: bug?: local variable created in if modifier not available in modified expression — Eliezer Croitoru <eliezer@...> 2012/10/31

On 10/31/2012 4:52 PM, Bartosz Dziewoナгki wrote:

[#400809] Re: bug?: local variable created in if modifier not available in modified expression — Robert Klemme <shortcutter@...> 2012/10/31

On Wed, Oct 31, 2012 at 4:28 PM, Eliezer Croitoru <eliezer@ngtech.co.il>wrote:

[#400784] REXML & HTMLentities incorrectly map to UTF-8 — "Mark S." <lists@...>

I have some XML data (UTF 8) that I'm trying to convert into another XML

13 messages 2012/10/30

Creating a pointer to SAFEARRAY(BSTR) for COM object communication

From: Andreas Lundgren <lists@...>
Date: 2012-10-26 08:46:11 UTC
List: ruby-talk #400626
Hi!

I have a hardware driver in DLL format that I would like to invoke from
a Ruby script using the win32ole gem. One of the inputs is defined as a
"SAFEARRAY(BSTR)*" is it possible to create such a pointer in Ruby?

A BSTR type is defined on MSDN. Four byte header with length, then data
and then two null characters as a terminator.



=3D=3D=3D=3D=3D WORKING =3D=3D=3D=3D=3D
When I call another method defined like this:

HRESULT ICdfGetHandlerByName::GetHandlerByName([in] BSTR HandlerName,
[out, retval] IUnknown ** ppUnk)

I use this Ruby call:
light_i =3D my_handler_interface.GetHandlerByName("CdfLight")

Ruby solves this, I do not assemble the BSTR by hand, not introducing
the header, terminator or anything, not doing anything to get the output
from the double pointer to the result variable. Ot works!



=3D=3D=3D=3D=3D NOT WORKING =3D=3D=3D=3D=3D
This method however, I just cannot solve how to call:

HRESULT ICdfHandleManager::ListHandleTypes([in, out] long * Count,
[in, out, size_is(*Count)] SAFEARRAY(BSTR)* HandleTypes )

Anyone have any id=C3=A9a how to create a pointer ro a SAFEARRAY(BSTR)?

I constantly get "Type mismatch." and I have tried dussens of different
syntax.

straight_ruby_ldh_api.rb:30:in `method_missing':
ListHandleTypes(WIN32OLERuntimeError)
    OLE error code:0 in <Unknown>
      <No Description>
    HRESULT error code:0x80020005
      Type mismatch.
        from straight_ruby_ldh_api.rb:30


(I also tried to assemble the BSTR myself although the calls with
straigh usage of BSTR don't require me to take any action.

length =3D 512
data =3D "x"*(length+4+2)
#Header
length_hs =3D length.to_s(16)
if (4 < length_hs.length)
  raise "To Large Data"
end
for i in (0..3) do
  data[i+4-length_hs.length] =3D length_hs[(i)..(i)].to_i
end

In Python it is very smooth to use this DLL, works of the shelf. I
really need to solve this in order for us to keep Ruby! :-/

-- =

Posted via http://www.ruby-forum.com/.=

In This Thread

Prev Next