AudRecordLib
exports.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Defines