2025-11-28 00:35:46 +09:00

97 lines
2.5 KiB
C++

/*++
Copyright (c) 1999 - 2000 Microsoft Corporation
Module Name:
sampcall.h
Abstract:
Declaration of the CSampleMSPCall
--*/
#ifndef __SAMPCALL_H_
#define __SAMPCALL_H_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
/////////////////////////////////////////////////////////////////////////////
// CSampleMSPCall
/////////////////////////////////////////////////////////////////////////////
class CSampleMSPCall : public CMSPCallMultiGraph
// if you want to allow your object to be used in scripting apps
// it has to expose IObjectSafety interface. if your object is safe for
// scripting on all of its interfaces, you can use the implementation
// of IObjectSafety from MSPUtils.h
//, public CMSPObjectSafetyImpl
{
public:
// DECLARE_POLY_AGGREGATABLE(CSampleMSP)
// To add extra interfaces to this class, use the following:
// BEGIN_COM_MAP(CSampleMSPCall)
// COM_INTERFACE_ENTRY( YOUR_INTERFACE_HERE )
// // if you want to allow your object to be used in scripting apps
// // it has to expose IObjectSafety interface
// // COM_INTERFACE_ENTRY( IObjectSafety )
// COM_INTERFACE_ENTRY_CHAIN(CMSPCallMultiGraph)
// END_COM_MAP()
public:
CSampleMSPCall();
virtual ~CSampleMSPCall();
virtual ULONG MSPCallAddRef(void);
virtual ULONG MSPCallRelease(void);
virtual HRESULT Init(
IN CMSPAddress * pMSPAddress,
IN MSP_HANDLE htCall,
IN DWORD dwReserved,
IN DWORD dwMediaType
);
virtual HRESULT CreateStreamObject(
IN DWORD dwMediaType,
IN TERMINAL_DIRECTION Direction,
IN IMediaEvent * pGraph,
IN ITStream ** ppStream
);
virtual HRESULT ReceiveTSPCallData(
IN PBYTE pBuffer,
IN DWORD dwSize
);
//
// We override these to make sure the number of
// streams we have is constant.
//
STDMETHOD (CreateStream) (
IN DWORD dwMediaType,
IN TERMINAL_DIRECTION Direction,
IN OUT ITStream ** ppStream
);
STDMETHOD (RemoveStream) (
IN ITStream * pStream
);
protected:
//
// Protected data members.
//
CSampleMSPStream * m_pRenderStream;
CSampleMSPStream * m_pCaptureStream;
};
#endif //__SAMPCALL_H_