2025-04-27 07:49:33 -04:00

74 lines
2.1 KiB
C

/*==========================================================================
*
* Copyright (C) 2000 Microsoft Corporation. All Rights Reserved.
*
* File: comstuff.h
* Content: COM interface and object definition header file
*@@BEGIN_MSINTERNAL
* History:
* Date By Reason
* ==== == ======
* ??/??/00 mjn Created
* 05/04/00 mjn Changed dwRefCount's to lRefCount's to use InterlockedIncrement/Decrement
*@@END_MSINTERNAL
*
***************************************************************************/
#ifndef COMSTUFF_H
#define COMSTUFF_H
//**********************************************************************
// Constant definitions
//**********************************************************************
//**********************************************************************
// Macro definitions
//**********************************************************************
#define GET_OBJECT_FROM_INTERFACE(a) ((INTERFACE_LIST*)(a))->pObject->pvData
#if !defined(__cplusplus) && !defined(CINTERFACE)
#ifdef THIS_
#undef THIS_
#define THIS_ LPVOID this,
#endif
#ifdef THIS
#undef THIS
#define THIS LPVOID this
#endif
#endif
//**********************************************************************
// Structure definitions
//**********************************************************************
typedef struct _INTERFACE_LIST INTERFACE_LIST;
typedef struct _OBJECT_DATA OBJECT_DATA;
typedef struct _INTERFACE_LIST {
void *lpVtbl;
LONG lRefCount;
IID iid;
INTERFACE_LIST *pIntNext;
OBJECT_DATA *pObject;
} INTERFACE_LIST;
typedef struct _OBJECT_DATA {
LONG lRefCount;
void *pvData;
INTERFACE_LIST *pIntList;
} OBJECT_DATA;
//**********************************************************************
// Variable definitions
//**********************************************************************
//**********************************************************************
// Function prototypes
//**********************************************************************
#endif // COMSTUFF_H