Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# EaxMan.h

Go to the documentation of this file.

    00001 /*
    00002 */
    00003 #ifndef __EAXMANH
    00004 #define __EAXMANH
    00005
    00006 #define COM_NO_WINDOWS_H
    00007 #include <objbase.h>
    00008 #include "eax.h"
    00009
    00010 #ifdef __cplusplus
    00011 extern "C" {
    00012 #endif // __cplusplus
    00013
    00014 #define CLSID_EAXMANAGER CLSID_EAX20_Manager
    00015 #define IID_IEaxManager IID_EAX20_Manager
    00016 #define EM_MAX_NAME 32
    00017
    00018 #define EMFLAG_IDDEFAULT (-1)
    00019 #define EMFLAG_IDNONE (-2)
    00020 #define EMFLAG_LOCKPOSITION 1
    00021 #define EMFLAG_LOADFROMMEMORY 2
    00022 #define EMFLAG_NODIFFRACTION 4
    00023
    00024 typedef struct _EMPOINT {
    00025  float fX;
    00026  float fY;
    00027  float fZ;
    00028 } EMPOINT;
    00029 typedef EMPOINT FAR *LPEMPOINT;
    00030
    00031 typedef struct _LISTENERATTRIBUTES {
    00032  float fDistanceFactor;
    00033  float fRolloffFactor;
    00034  float fDopplerFactor;
    00035 } LISTENERATTRIBUTES;
    00036 typedef LISTENERATTRIBUTES FAR *LPLISTENERATTRIBUTES;
    00037
    00038 typedef struct _SOURCEATTRIBUTES {
    00039  EAXBUFFERPROPERTIES eaxAttributes;
    00040  unsigned long       ulInsideConeAngle;
    00041  unsigned long       ulOutsideConeAngle;
    00042  long                lConeOutsideVolume;
    00043  float               fConeXdir;
    00044  float               fConeYdir;
    00045  float               fConeZdir;
    00046  float               fMinDistance;
    00047  float               fMaxDistance;
    00048  long                lDupCount;
    00049  long                lPriority;
    00050 } SOURCEATTRIBUTES;
    00051 typedef SOURCEATTRIBUTES FAR *LPSOURCEATTRIBUTES;
    00052
    00053 typedef struct _MATERIALATTRIBUTES {
    00054  long  lLevel;
    00055  float fLFRatio;
    00056  float fRoomRatio;
    00057  DWORD dwFlags;
    00058 } MATERIALATTRIBUTES;
    00059 typedef MATERIALATTRIBUTES FAR *LPMATERIALATTRIBUTES;
    00060
    00061 #define EMMATERIAL_OBSTRUCTS 1
    00062 #define EMMATERIAL_OCCLUDES 3
    00063
    00064 typedef struct _DIFFRACTIONBOX {
    00065  long    lSubspaceID;
    00066  EMPOINT empMin;
    00067  EMPOINT empMax;
    00068 } DIFFRACTIONBOX;
    00069 typedef DIFFRACTIONBOX FAR *LPDIFFRACTIONBOX;
    00070
    00071 // {7CE4D6E6-562F-11d3-8812-005004062F83}
    00072 DEFINE_GUID(CLSID_EAXMANAGER, 0x60b721a1, 0xf7c8, 0x11d2, 0xa0, 0x2e, 0x0, 0x50, 0x4, 0x6, 0x18, 0xb8);
    00073
    00074 #ifdef __cplusplus
    00075 struct IEaxManager;
    00076 #endif // __cplusplus
    00077
    00078 typedef struct IEaxManager *LPEAXMANAGER;
    00079
    00080 // {7CE4D6E8-562F-11d3-8812-005004062F83}
    00081 DEFINE_GUID(IID_IEaxManager, 0x60b721a2, 0xf7c8, 0x11d2, 0xa0, 0x2e, 0x0, 0x50, 0x4, 0x6, 0x18, 0xb8);
    00082
    00083 #undef INTERFACE
    00084 #define INTERFACE IEaxManager
    00085
    00086 extern HRESULT __stdcall EaxManagerCreate(LPEAXMANAGER*);
    00087 typedef HRESULT (__stdcall *LPEAXMANAGERCREATE)(LPEAXMANAGER*);
    00088
    00089 DECLARE_INTERFACE_(IEaxManager, IUnknown)
    00090 {
    00091  // IUnknown methods
    00092  STDMETHOD(QueryInterface)       (THIS_ REFIID, LPVOID *) PURE;
    00093  STDMETHOD_(ULONG,AddRef)        (THIS) PURE;
    00094  STDMETHOD_(ULONG,Release)       (THIS) PURE;
    00095
    00096  STDMETHOD(GetDataSetSize) (THIS_ unsigned long*, DWORD) PURE;
    00097  STDMETHOD(LoadDataSet) (THIS_ char*, DWORD) PURE;
    00098  STDMETHOD(FreeDataSet) (THIS_ DWORD) PURE;
    00099  STDMETHOD(GetListenerAttributes) (THIS_ LPLISTENERATTRIBUTES) PURE;
    00100  STDMETHOD(GetSourceID) (THIS_ char*, long*) PURE;
    00101  STDMETHOD(GetSourceAttributes) (THIS_ long, LPSOURCEATTRIBUTES) PURE;
    00102  STDMETHOD(GetSourceNumInstances) (THIS_ long, long*) PURE;
    00103  STDMETHOD(GetSourceInstancePos) (THIS_ long, long, LPEMPOINT) PURE;
    00104  STDMETHOD(GetEnvironmentID) (THIS_ char*, long*) PURE;
    00105  STDMETHOD(GetEnvironmentAttributes) (THIS_ long, LPEAXLISTENERPROPERTIES) PURE;
    00106  STDMETHOD(GetMaterialID) (THIS_ char*, long*) PURE;
    00107  STDMETHOD(GetMaterialAttributes) (THIS_ long, LPMATERIALATTRIBUTES) PURE;
    00108  STDMETHOD(GetGeometrySetID) (THIS_ char*, long*) PURE;
    00109  STDMETHOD(GetListenerDynamicAttributes) (THIS_ long, LPEMPOINT, long*, DWORD) PURE;
    00110  STDMETHOD(GetSourceDynamicAttributes) (THIS_ long, LPEMPOINT, long*, float*, long*, float*, float*, LPEMPOINT, DWORD) PURE;
    00111 };
    00112
    00113 #if !defined(__cplusplus) || defined(CINTERFACE)
    00114 #define IEaxManager_QueryInterface(p,a,b)                           (p)->lpVtbl->QueryInterface(p,a,b)
    00115 #define IEaxManager_AddRef(p)                                       (p)->lpVtbl->AddRef(p)
    00116 #define IEaxManager_Release(p)                                      (p)->lpVtbl->Release(p)
    00117 #define IEaxManager_GetDataSetSize(p,a,b)                           (p)->lpVtbl->GetDataSetSize(p,a,b)
    00118 #define IEaxManager_LoadDataSet(p,a,b)                              (p)->lpVtbl->LoadDataSet(p,a,b)
    00119 #define IEaxManager_FreeDataSet(p,a)                                (p)->lpVtbl->FreeDataSet(p,a)
    00120 #define IEaxManager_GetListenerAttributes(p,a)                      (p)->lpVtbl->GetListenerAttributes(p,a)
    00121 #define IEaxManager_GetSourceID(p,a,b)                              (p)->lpVtbl->GetSourceID(p,a,b)
    00122 #define IEaxManager_GetSourceAttributes(p,a,b)                      (p)->lpVtbl->GetSourceAttributes(p,a,b)
    00123 #define IEaxManager_GetSourceNumInstances(p,a,b)                    (p)->lpVtbl->GetSourceNumInstances(p,a,b)
    00124 #define IEaxManager_GetSourceInstancePos(p,a,b,c)                   (p)->lpVtbl->GetSourceInstancePos(p,a,b,c)
    00125 #define IEaxManager_GetEnvironmentID(p,a,b)                         (p)->lpVtbl->GetEnvironmentID(p,a,b)
    00126 #define IEaxManager_GetEnvironmentAttributes(p,a,b)                 (p)->lpVtbl->GetEnvironmentAttributes(p,a,b)
    00127 #define IEaxManager_GetMaterialID(p,a,b)                            (p)->lpVtbl->GetMaterialID(p,a,b)
    00128 #define IEaxManager_GetMaterialAttributes(p,a,b)                    (p)->lpVtbl->GetMaterialAttributes(p,a,b)
    00129 #define IEaxManager_GetGeometrySetID(p,a,b)                         (p)->lpVtbl->GetGeometrySetID(p,a,b)
    00130 #define IEaxManager_GetListenerDynamicAttributes(p,a,b,c,d)         (p)->lpVtbl->GetListenerDynamicAttributes(p,a,b,c,d)
    00131 #define IEaxManager_GetSourceDynamicAttributes(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->GetSourceDynamicAttributes(p,a,b,c,d,e,f,g,h,i)
    00132 #else
    00133 #define IEaxManager_QueryInterface(p,a,b)                           (p)->QueryInterface(a,b)
    00134 #define IEaxManager_AddRef(p)                                       (p)->AddRef()
    00135 #define IEaxManager_Release(p)                                      (p)->Release()
    00136 #define IEaxManager_GetDataSetSize(p,a,b)                           (p)->GetDataSetSize(a,b)
    00137 #define IEaxManager_LoadDataSet(p,a,b)                              (p)->LoadDataSet(a,b)
    00138 #define IEaxManager_FreeDataSet(p,a)                                (p)->FreeDataSet(a)
    00139 #define IEaxManager_GetListenerAttributes(p,a)                      (p)->GetListenerAttributes(a)
    00140 #define IEaxManager_GetSourceID(p,a,b)                              (p)->GetSourceID(a,b)
    00141 #define IEaxManager_GetSourceAttributes(p,a,b)                      (p)->GetSourceAttributes(a,b)
    00142 #define IEaxManager_GetSourceNumInstances(p,a,b)                    (p)->GetSourceNumInstances(a,b)
    00143 #define IEaxManager_GetSourceInstancePos(p,a,b,c)                   (p)->GetSourceInstancePos(a,b,c)
    00144 #define IEaxManager_GetEnvironmentID(p,a,b)                         (p)->GetEnvironmentID(a,b)
    00145 #define IEaxManager_GetEnvironmentAttributes(p,a,b)                 (p)->GetEnvironmentAttributes(a,b)
    00146 #define IEaxManager_GetMaterialID(p,a,b)                            (p)->GetMaterialID(a,b)
    00147 #define IEaxManager_GetMaterialAttributes(p,a,b)                    (p)->GetMaterialAttributes(a,b)
    00148 #define IEaxManager_GetGeometrySetID(p,a,b)                         (p)->GetGeometrySetID(a,b)
    00149 #define IEaxManager_GetListenerDynamicAttributes(p,a,b,c,d)         (p)->GetListenerDynamicAttributes(a,b,c,d)
    00150 #define IEaxManager_GetSourceDynamicAttributes(p,a,b,c,d,e,f,g,h,i) (p)->GetSourceDynamicAttributes(a,b,c,d,e,f,g,h,i)
    00151 #endif
    00152
    00153 #define EM_OK 0
    00154 #define EM_INVALIDID        MAKE_HRESULT(1, FACILITY_ITF, 1)
    00155 #define EM_IDNOTFOUND       MAKE_HRESULT(1, FACILITY_ITF, 2)
    00156 #define EM_FILENOTFOUND     MAKE_HRESULT(1, FACILITY_ITF, 3)
    00157 #define EM_FILEINVALID      MAKE_HRESULT(1, FACILITY_ITF, 4)
    00158 #define EM_VERSIONINVALID   MAKE_HRESULT(1, FACILITY_ITF, 5)
    00159 #define EM_INSTANCENOTFOUND MAKE_HRESULT(1, FACILITY_ITF, 6)
    00160
    00161 #ifdef __cplusplus
    00162 };
    00163 #endif // __cplusplus
    00164
    00165 #endif