AudRecordLib
|
00001 00005 #ifndef AUDRECORDLIB_EXPORTS_H 00006 #define AUDRECORDLIB_EXPORTS_H 00007 00008 #pragma once 00009 00014 #ifdef AUDRECORD_EXPORTS 00015 #define AUDRECORD_API 00016 #else 00017 #define AUDRECORD_API __declspec(dllimport) 00018 #endif 00019 00020 #include <wmsdk.h> 00021 #include <mmdeviceapi.h> 00022 #include "IAudRecordInterface.h" 00023 00024 #ifdef __cplusplus 00025 extern "C" { 00026 #endif 00027 00029 typedef struct _CodecConfiguration 00030 { 00034 LPCWSTR pName; 00043 IWMStreamConfig* pConfig; 00044 } CodecConfiguration; 00045 00047 typedef struct _Codec 00048 { 00052 LPCWSTR name; 00055 DWORD numConfigs; 00059 CodecConfiguration configs[1]; 00060 } Codec; 00061 00063 typedef struct _CodecConfigs 00064 { 00066 DWORD num; 00068 Codec* pCodecs[1]; 00069 } CodecConfigs; 00070 00072 typedef struct _Endpoint 00073 { 00077 LPCWSTR pName; 00081 IMMDevice* pEndPoint; 00082 }Endpoint; 00083 00085 typedef struct _EndpointArray 00086 { 00088 DWORD num; 00090 Endpoint outputs[1]; 00091 }EndpointArray; 00092 00104 AUDRECORD_API STDMETHODIMP GetWMACodecConfigs(CodecConfigs** ppConfigs); 00105 00112 AUDRECORD_API STDMETHODIMP_(void) FreeWMACodecConfigs(CodecConfigs* pConfigs); 00113 00124 AUDRECORD_API STDMETHODIMP GetAudioEndpoints(EndpointArray** ppEndpoints); 00125 00131 AUDRECORD_API STDMETHODIMP_(void) FreeAudioEndpoints(EndpointArray* pEndpoints); 00132 00146 AUDRECORD_API STDMETHODIMP CreateAudRecordInterface(CodecConfiguration* pCodecConfig, IAudRecord** ppAudRecord); 00147 00148 00150 typedef PVOID (WINAPI*pfnAlloc)(PVOID pUserData, SIZE_T bytesRequired); 00152 typedef void (WINAPI*pfnFree)(PVOID pUserData, PVOID pMemory); 00161 AUDRECORD_API STDMETHODIMP_(PVOID) SetAllocFreeFunctions(pfnAlloc allocFn, pfnFree freeFn, PVOID pUserData); 00162 00169 AUDRECORD_API STDMETHODIMP_(void) DumpUnfreedAllocations(); 00170 00171 #ifdef __cplusplus 00172 } // end of extern C 00173 #endif 00174 00175 #endif