[gmpi] Re: low level API - Abstract Factory summary

  • From: "Ron Kuper" <RonKuper@xxxxxxxxxxxx>
  • To: <gmpi@xxxxxxxxxxxxx>
  • Date: Thu, 10 Feb 2005 16:52:31 -0500

If we didn't want strict compatability with MS COM, could we omit the
_reserved #ifdef?  Or is the real issue that on OSX, this C declaration:

struct Foo
{
   t (*Method)(void*);
};

Does not layout identically to the C++

struct Foo
{
   virtual t Method(void*) = 0;
};

Maybe on the Mac the _reserved is for RTTI or something?
 

-----Original Message-----
From: gmpi-bounce@xxxxxxxxxxxxx [mailto:gmpi-bounce@xxxxxxxxxxxxx] On
Behalf Of Jeff McClintock
Sent: Thursday, February 10, 2005 4:34 PM
To: gmpi@xxxxxxxxxxxxx
Subject: [gmpi] Re: low level API - Abstract Factory summary

 > note that the vtable format is platform dependent. On Mac OS X
 > the first member of the vtable is a reserved void*

Thankyou, now looks like..

// GMPI_Plugin INTERFACE
typedef struct _IGMPI_Plugin
{
    struct IGMPI_PluginVtbl *Vtbl;
} IGMPI_Plugin;

struct IGMPI_PluginVtbl
{
     // IUnknown methods
     #ifdef MACOSX // or maybe just MACOS
           void *_reserved; /* part of COM binary standard on Mac */
     #endif

     GMPI_RESULT     (*QueryInterface) (IGMPI_Plugin *, const GMPI_GUID,

void **);
     int32_t   (*AddRef)         (IGMPI_Plugin *);
     int32_t   (*Release)        (IGMPI_Plugin *);

     // IGMPI_Plugin methods
     int32_t   (*Placeholder1)   (IGMPI_Plugin *, int32_t);
     int32_t   (*Placeholder2)   (IGMPI_Plugin *, int32_t *);
};


----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your
own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe


----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: