// The real MemoryBuffer.h doesn't provide C definitions, so we need to provide those here // No pragma once, we might include this twice (once for the regular definitions, once for the workaround) #include #ifndef _IMEMORYBUFFERBYTEACCESS_DEFINED #define _IMEMORYBUFFERBYTEACCESS_DEFINED typedef interface IMemoryBufferByteAccess IMemoryBufferByteAccess; #endif typedef struct IMemoryBufferByteAccessVtbl { BEGIN_INTERFACE HRESULT (STDMETHODCALLTYPE* QueryInterface)(__RPC__in IMemoryBufferByteAccess* This, REFIID riid, _COM_Outptr_ void** ppvObject); ULONG (STDMETHODCALLTYPE* AddRef)(__RPC__in IMemoryBufferByteAccess* This); ULONG (STDMETHODCALLTYPE* Release)(__RPC__in IMemoryBufferByteAccess* This); HRESULT (STDMETHODCALLTYPE* GetBuffer)(__RPC__in IMemoryBufferByteAccess* This, BYTE** value, _Out_ UINT32* capacity); END_INTERFACE } IMemoryBufferByteAccessVtbl; interface IMemoryBufferByteAccess { CONST_VTBL struct IMemoryBufferByteAccessVtbl* lpVtbl; };