I try to visit Ernies WEB but the link to this.is is not valid any longer,can anybody familiar with this subject recommend some working links on COM subject?
thx alot.
Posted on 2002-05-28 23:16:20 by Hume
Dont worry, COM is still alive in MASM ;)

Ernie's link: http://ourworld.compuserve.com/homepages/ernies_world/a.htm
Bill's Page: http://thunder.prohosting.com/~asm1/asm.shtml
Maurice's Tut's http://win32asm.com4me.net/

Well these are a start anyways...
Posted on 2002-05-29 00:53:10 by NaN
According to your SET_CALSS macro in objects.inc that INTERFACE shouldn't be initialized with the inherited CLASS,why? I can't understand that,Is there any Example on the usage of INTERFACE?

PS.Nan,you and Thomas really done great work,keep up!
Posted on 2002-05-29 02:29:18 by Hume
Sorry for the delay, didnt notice you replied...

The SET_INTERFACE macro is nothing more than a stripped down SET_CLASS macro. This is why you shouldnt use together.

One of the key things the SET_CLASS macro does is copy initial values into private variables, and sets up method pointers for use.

If your writing an interface, there is not "actual" method code, or initial values to set. (( At least in our version, to date ;) ))

Using Set Class in this case would certianly cause the macro errors....

The interface, as i designed it, was to provide a base class (interface class) to inherit from, and allow all that does, to realize there is *always* these methods within them. Doing so, allows different objects with different properties to code thier versions of a suported interface, while some collection object need not know what "type" of object it is, only that it will "at least" have these methods by name.

If that sounded confusing, here is an example:

    [*]Paint Interface: 1 method --> PaintMe, hDC:DWORD
    [*]Square Inherits Paint Interface
    [*]Circle Inherits Paint Interface
    [*]Square provides code and Overides the inherited "PaintMe" method name to point to this code, such that a square will be drawn.
    [*]Circle does the same, but with code to draw a circle.
    [*]Many intances of both are created, and stored in a collection object.
    [*]Somewhere else, this collection of random circle and square instances are to be drawn. Realizing they both suport the Paint Interface, their handles are gotten from the collection, and the Paint Method for each is called using only the "PaintInterface" class type in the Method call. Dont need to know what type of class it is!, but can trust that if its a square, it will point to square code, and circle to circle code. ;)

    I hope this helps...??
Posted on 2002-05-30 21:52:56 by NaN
much help,thx again
Posted on 2002-05-31 03:31:51 by Hume