On Mon, 28 Apr 2008 06:21:10 -0700 (PDT), "news@[EMAIL PROTECTED]
"
<news@[EMAIL PROTECTED]
> wrote:
>On Apr 28, 1:38 pm, ArarghMail804NOS...@[EMAIL PROTECTED]
wrote:
>> I presume that the %'s refer to 32-bit things, not 16-bit.
>> I also presume that the "get_Width" entry point is 24 bytes past
>> "IPicture" or thereabouts.
>
>Yes, correct on both counts.
>
>> BTW, what does
>> !(^IPicture{}+4) = !gpPicture%
>> mean?
>
>The ! is equivalent to C's * (indirection) operator, and ^ is
>equivalent to C's & (address-of) operator. What it is doing is
>modifying the address of the IPicture structure, so that instead of
>pointing to memory allocated by BASIC it's pointing to the COM
>interface's Vtable. It's really only a cheat that allows you to use
>IPicture.get_Width rather than IPicture!24, so not fundamental to
>accessing the COM interface.
>
OK. I have never actually ever called a COM interface routine. Would
the reference to "IPicture" be an actual routine entry point or a
pointer to a Vtable? Or something else? If not an actual entry
point, then the DECLARE I wrote won't work. I would have to run a
sample thru a C++ compiler to see what kind of code it generates.
Assuming the result is even readable. :-)
--
ArarghMail804 at [drop the 'http://www.'
from ->] http://www.arargh.com
BCET Basic Compiler Page: http://www.arargh.com/basic/index.html
To reply by email, remove the extra stuff from the reply address.


|