AudRecordLib
AudRecordCLI/InterfaceWrap.h
Go to the documentation of this file.
00001 
00005 #ifndef AUDRECORDCLI_INTERFACEWRAP_H
00006 #define AUDRECORDCLI_INTERFACEWRAP_H
00007 
00008 #pragma once
00009 
00010 #include "DataBufferWrap.h"
00011 
00012 namespace AudRecordCLI
00013 {
00019         public delegate void OnDataUnitHandler(Object^ sender, IDataBuffer^ dataBuffer);
00020 
00027         public delegate void OnEndWritingHandler(Object^ sender);
00028 
00035         public delegate void OnHeaderHandler(Object^ sender, IDataBuffer^ headerBuffer);
00036 
00041         public ref struct ITargetSink abstract
00042         {
00047                 event OnHeaderHandler^ OnHeader;
00053                 virtual bool IsRealTime() = 0;
00060                 virtual IDataBuffer^ AllocateDataUnit(DWORD dataSize) = 0;
00064                 event OnDataUnitHandler^ OnDataUnit;
00070                 event OnEndWritingHandler^ OnEndWriting;
00071         internal:
00072                 void RaiseOnHeader(IDataBuffer^ pBuffer);
00073                 void RaiseOnDataUnit(IDataBuffer^ pBuffer);
00074                 void RaiseOnEndWriting();
00075         };
00076 }
00077 
00084 class TargetSinkWrap : public IWMWriterSink
00085 {
00089         gcroot<AudRecordCLI::ITargetSink^> pOrigSink;
00093         LONG refCount;
00094 public:
00095         TargetSinkWrap(AudRecordCLI::ITargetSink^ pOrigSink);
00096         // IUnknown
00097         STDMETHODIMP QueryInterface(REFIID riid, PVOID* ppv);
00098         STDMETHODIMP_(ULONG) AddRef();
00099         STDMETHODIMP_(ULONG) Release();
00100         // IWMWriterSink
00101         STDMETHODIMP OnHeader(INSSBuffer* pHeader);
00102         STDMETHODIMP IsRealTime(BOOL* pRealTime);
00103         STDMETHODIMP AllocateDataUnit(DWORD dataSize, INSSBuffer** ppBuffer);
00104         STDMETHODIMP OnDataUnit(INSSBuffer* pBuffer);
00105         STDMETHODIMP OnEndWriting();
00106 };
00107 
00110 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Defines