Hi,
Thanks for the response.
I tried that too, but I cannot seem to pass a pointer from javascript.
From what I read on Inet, Javascript can pass "references" if you pass a
non-basic type to a function (like an object). So If I have "int a" , I
should pass "a.value", which should be passed as a "reference" (whatever that
is in Javascript).
For an int * my c++ function does not receive a correct pointer.
So if anyone knows how to do this, please let me know.
Greetings,
Rob.
"Eliyahu Goldin" wrote:
> Try describing your interface method in IDL like this:
>
> HRESULT Testfunc1([out, retval] long *pResult);
>
> and in C++ :
>
> STDMETHODIMP Cwork::Testfunc1(long *pResult)
> {
> *pResult = 111;
> return S_OK;
> }
>
>
> --
> Eliyahu Goldin,
> Software Developer & Consultant
> Microsoft MVP [ASP.NET]
> http://msmvps.com/blogs/egoldin
>
>
> "Rob" <> wrote in message
> news:5FF4D402-603F-46B3-8025-...
> > Tried that, but the project (ATL activex) doesn't compile such a member.
> > It says that all interface members must return HRESULT.
> >
> > Error, returnvalue, whatever.... ( is S_OK an error? )
> > What matters to me is that Javascript seems unable to typecast the 4 byte
> > piece of memory (HRESULT==LONG in C++) that is returned to something
> usefull.
> >
> > Greetings,
> > Rob.
> >
> >
> > "bruce barker" wrote:
> >
> > > HResult is meant to return errors, and is not the return value of a
> > > interface. change the com interface to return an int value, then
> > > javascript can access it.
> > >
> > > -- bruce (sqlwork.com)
> > >
> > > Rob wrote:
> > > > Hi,
> > > > If I call my own DLL from Javascript, a HRESULT is returned.
> > > > Javascript cannot cast this to an integer.
> > > > Is there any other way of typecasting this returnvalue to integer,
> wihout
> > > > using the exception method which is described everywhere ?
> > > > Please note that I am unfamiliar with javascript, I am used to C/C++.
> > > >
> > > > My Javascript call looks like :
> > > >
> > > > var result;
> > > > result = Testfunc1();
> > > >
> > > > The function is called OK, but the returnvalue cannot be converted.
> > > > It is printed as "undefined".
> > > > I just need 0 or 1 to be returned (or 2 other values, one for OK, and
> one
> > > > for ERROR)
> > > > So I tried the following :
> > > >
> > > > result = (Testfunc1() & 255) ;
> > > >
> > > > But this always returns 0 for some reason....
> > > >
> > > > It seems unlogical and not neat, to throw exceptions when really
> nothing
> > > > serious happenned, just to convert the returnvalue. Also the
> clientcode will
> > > > be poluted with a lot of extra (rather poorly structured) lines.
> > > > So If I could just get the low-byte of the HRESULT, this would be
> enough for
> > > > me.
> > > >
> > > > Please Help !
> > > >
> > > > Greetings,
> > > > Rob.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
>
>
>