fleshed out the connection point implementation, especially the enumerations part
This commit is contained in:
@@ -46,10 +46,10 @@
|
||||
|
||||
typedef struct tagRAWHEAPDATA
|
||||
{
|
||||
UINT32 opaque[8];
|
||||
UINT32 opaque[32]; /* opaque data, do not modify */
|
||||
} RAWHEAPDATA, *PRAWHEAPDATA;
|
||||
|
||||
typedef void (*PFNRAWHEAPDATAFREE)(PRAWHEAPDATA prhd);
|
||||
typedef void (*PFNRAWHEAPDATAFREE)(PRAWHEAPDATA prhd); /* function that optionally frees the heap data */
|
||||
|
||||
/*--------------------
|
||||
* External functions
|
||||
|
||||
@@ -51,8 +51,9 @@ typedef struct tagFIXEDCPDATA
|
||||
PUNKNOWN punkOuter; /* outer unknown used for reference counts */
|
||||
REFIID riidConnection; /* IID of outgoing interface for this connection point */
|
||||
IUnknown **ppSlots; /* pointer to actual slots used for connection point storage */
|
||||
INT32 ncpSize; /* number of connection points actually connected */
|
||||
INT32 ncpCapacity; /* maximum number of connection points connectable */
|
||||
UINT32 ncpSize; /* number of connection points actually connected */
|
||||
UINT32 ncpCapacity; /* maximum number of connection points connectable */
|
||||
IMalloc *pAllocator; /* pointer to allocator */
|
||||
} FIXEDCPDATA, *PFIXEDCPDATA;
|
||||
|
||||
/*---------------------
|
||||
@@ -64,6 +65,7 @@ CDECL_BEGIN
|
||||
|
||||
/* QueryInterface helpers */
|
||||
extern HRESULT ObjHlpStandardQueryInterface_IConnectionPoint(IUnknown *pThis, REFIID riid, PPVOID ppvObject);
|
||||
extern HRESULT ObjHlpStandardQueryInterface_IEnumConnections(IUnknown *pThis, REFIID riid, PPVOID ppvObject);
|
||||
extern HRESULT ObjHlpStandardQueryInterface_IMalloc(IUnknown *pThis, REFIID riid, PPVOID ppvObject);
|
||||
extern HRESULT ObjHlpStandardQueryInterface_ISequentialStream(IUnknown *pThis, REFIID riid, PPVOID ppvObject);
|
||||
|
||||
@@ -72,7 +74,7 @@ extern UINT32 ObjHlpStaticAddRefRelease(IUnknown *pThis);
|
||||
|
||||
/* Connection point helpers */
|
||||
extern void ObjHlpFixedCpSetup(PFIXEDCPDATA pData, PUNKNOWN punkOuter, REFIID riidConnection,
|
||||
IUnknown **ppSlots, INT32 nSlots);
|
||||
IUnknown **ppSlots, UINT32 nSlots, IMalloc *pAllocator);
|
||||
extern void ObjHlpFixedCpTeardown(PFIXEDCPDATA pData);
|
||||
|
||||
/* Other helpers */
|
||||
|
||||
@@ -93,6 +93,10 @@
|
||||
#define STG_S_CONSOLIDATIONFAILED SCODE_CAST(0x00030205) /* consolidation failed but commit OK */
|
||||
#define STG_S_CANNOTCONSOLIDATE SCODE_CAST(0x00030206) /* cannot consolidate but commit OK */
|
||||
|
||||
/* Connection success codes */
|
||||
#define CONNECT_S_FIRST SCODE_CAST(0x00040200) /* first connection success code */
|
||||
#define CONNECT_S_LAST SCODE_CAST(0x0004020F) /* last connection success code */
|
||||
|
||||
/* Memory manager success codes */
|
||||
#define MEMMGR_S_NONZEROED SCODE_CAST(0x06010001) /* returned memory is non-zeroed */
|
||||
|
||||
@@ -158,6 +162,15 @@
|
||||
#define STG_E_CSSINVALIDREGION SCODE_CAST(0x8003030A) /* region identifier mismatch */
|
||||
#define STG_E_NOMOREREGIONRESETS SCODE_CAST(0x8003030B) /* can't reset drive region anymore */
|
||||
|
||||
/* Connection error codes */
|
||||
#define CONNECT_E_FIRST SCODE_CAST(0x80040200) /* first connection error code */
|
||||
#define CONNECT_E_LAST SCODE_CAST(0x8004020F) /* last connection error code */
|
||||
|
||||
#define CONNECT_E_NOCONNECTION (CONNECT_E_FIRST+0) /* no connection found */
|
||||
#define CONNECT_E_ADVISELIMIT (CONNECT_E_FIRST+1) /* limit for number of connections reached */
|
||||
#define CONNECT_E_CANNOTCONNECT (CONNECT_E_FIRST+2) /* connection attempt failed */
|
||||
#define CONNECT_E_OVERRIDDEN (CONNECT_E_FIRST+3) /* interface overridden, must use derived */
|
||||
|
||||
/* Memory manager error codes */
|
||||
#define MEMMGR_E_NOPGTBL SCODE_CAST(0x86010001) /* no page tables available */
|
||||
#define MEMMGR_E_BADTTBFLG SCODE_CAST(0x86010002) /* bad TTB flags encountered */
|
||||
|
||||
Reference in New Issue
Block a user