📄 portcls.h
字号:
DECLARE_INTERFACE_(IPortMidi,IPort)
{
STDMETHOD_(void,Notify)
( THIS_
IN PSERVICEGROUP ServiceGroup OPTIONAL
) PURE;
STDMETHOD_(void,RegisterServiceGroup)
( THIS_
IN PSERVICEGROUP ServiceGroup
) PURE;
};
typedef IPortMidi *PPORTMIDI;
#ifdef PC_IMPLEMENTATION
#define IMP_IPortMidi\
IMP_IPort;\
STDMETHODIMP_(void) Notify\
( IN PSERVICEGROUP ServiceGroup OPTIONAL\
);\
STDMETHODIMP_(void) RegisterServiceGroup\
( IN PSERVICEGROUP ServiceGroup\
)
#endif
/*****************************************************************************
* IMiniportMidiStream
*****************************************************************************
* Interface for MIDI miniport streams.
*/
DECLARE_INTERFACE_(IMiniportMidiStream,IUnknown)
{
STDMETHOD(SetFormat)
( THIS_
IN PKSDATAFORMAT DataFormat
) PURE;
STDMETHOD(SetState)
( THIS_
IN KSSTATE State
) PURE;
STDMETHOD(Read)
( THIS_
IN PVOID BufferAddress,
IN ULONG BufferLength,
OUT PULONG BytesRead
) PURE;
STDMETHOD(Write)
( THIS_
IN PVOID BufferAddress,
IN ULONG BytesToWrite,
OUT PULONG BytesWritten
) PURE;
};
typedef IMiniportMidiStream *PMINIPORTMIDISTREAM;
#define IMP_IMiniportMidiStream\
STDMETHODIMP SetFormat\
( IN PKSDATAFORMAT DataFormat\
);\
STDMETHODIMP SetState\
( IN KSSTATE State\
);\
STDMETHODIMP Read\
( IN PVOID BufferAddress,\
IN ULONG BufferLength,\
OUT PULONG BytesRead\
);\
STDMETHODIMP Write\
( IN PVOID BufferAddress,\
IN ULONG BytesToWrite,\
OUT PULONG BytesWritten\
)
/*****************************************************************************
* IMiniportMidi
*****************************************************************************
* Interface for MIDI miniports.
*/
DECLARE_INTERFACE_(IMiniportMidi,IMiniport)
{
STDMETHOD(Init)
( THIS_
IN PUNKNOWN UnknownAdapter,
IN PRESOURCELIST ResourceList,
IN PPORTMIDI Port,
OUT PSERVICEGROUP * ServiceGroup
) PURE;
STDMETHOD_(void,Service)
( THIS
) PURE;
STDMETHOD(NewStream)
( THIS_
OUT PMINIPORTMIDISTREAM * Stream,
IN PUNKNOWN OuterUnknown OPTIONAL,
IN POOL_TYPE PoolType,
IN ULONG Pin,
IN BOOLEAN Capture,
IN PKSDATAFORMAT DataFormat,
OUT PSERVICEGROUP * ServiceGroup
) PURE;
};
typedef IMiniportMidi *PMINIPORTMIDI;
#define IMP_IMiniportMidi\
IMP_IMiniport;\
STDMETHODIMP Init\
( IN PUNKNOWN UnknownAdapter,\
IN PRESOURCELIST ResourceList,\
IN PPORTMIDI Port,\
OUT PSERVICEGROUP * ServiceGroup\
);\
STDMETHODIMP_(void) Service\
( void\
);\
STDMETHODIMP NewStream\
( OUT PMINIPORTMIDISTREAM * Stream,\
IN PUNKNOWN OuterUnknown OPTIONAL,\
IN POOL_TYPE PoolType,\
IN ULONG Pin,\
IN BOOLEAN Capture,\
IN PKSDATAFORMAT DataFormat,\
OUT PSERVICEGROUP * ServiceGroup\
)
/*****************************************************************************
* IPortDMus
*****************************************************************************
* See DMusicKS.h
*/
/*****************************************************************************
* IMXF
*****************************************************************************
* See DMusicKS.h
*/
/*****************************************************************************
* IAllocatorMXF
*****************************************************************************
* See DMusicKS.h
*/
/*****************************************************************************
* IMiniportDMus
*****************************************************************************
* See DMusicKS.h
*/
/*****************************************************************************
* IPortTopology
*****************************************************************************
* Interface for topology port lower edge.
*/
DECLARE_INTERFACE_(IPortTopology,IPort)
{
};
typedef IPortTopology *PPORTTOPOLOGY;
#ifdef PC_IMPLEMENTATION
#define IMP_IPortTopology IMP_IPort
#endif
/*****************************************************************************
* IMiniportTopology
*****************************************************************************
* Interface for topology miniports.
*/
DECLARE_INTERFACE_(IMiniportTopology,IMiniport)
{
STDMETHOD(Init)
( THIS_
IN PUNKNOWN UnknownAdapter,
IN PRESOURCELIST ResourceList,
IN PPORTTOPOLOGY Port
) PURE;
};
typedef IMiniportTopology *PMINIPORTTOPOLOGY;
#define IMP_IMiniportTopology\
IMP_IMiniport;\
STDMETHODIMP Init\
( IN PUNKNOWN UnknownAdapter,\
IN PRESOURCELIST ResourceList,\
IN PPORTTOPOLOGY Port\
)
/*****************************************************************************
* IPortWaveCyclic
*****************************************************************************
* Interface for cyclic wave port lower edge.
*/
DECLARE_INTERFACE_(IPortWaveCyclic,IPort)
{
STDMETHOD_(void,Notify)
( THIS_
IN PSERVICEGROUP ServiceGroup
) PURE;
STDMETHOD(NewSlaveDmaChannel)
( THIS_
OUT PDMACHANNELSLAVE * DmaChannel,
IN PUNKNOWN OuterUnknown,
IN PRESOURCELIST ResourceList,
IN ULONG DmaIndex,
IN ULONG MaximumLength,
IN BOOLEAN DemandMode,
IN DMA_SPEED DmaSpeed
) PURE;
STDMETHOD(NewMasterDmaChannel)
( THIS_
OUT PDMACHANNEL * DmaChannel,
IN PUNKNOWN OuterUnknown,
IN PRESOURCELIST ResourceList OPTIONAL,
IN ULONG MaximumLength,
IN BOOLEAN Dma32BitAddresses,
IN BOOLEAN Dma64BitAddresses,
IN DMA_WIDTH DmaWidth,
IN DMA_SPEED DmaSpeed
) PURE;
};
typedef IPortWaveCyclic *PPORTWAVECYCLIC;
#ifdef PC_IMPLEMENTATION
#define IMP_IPortWaveCyclic\
IMP_IPort;\
STDMETHODIMP_(void) Notify\
( IN PSERVICEGROUP ServiceGroup\
);\
STDMETHODIMP NewSlaveDmaChannel\
( OUT PDMACHANNELSLAVE * DmaChannel,\
IN PUNKNOWN OuterUnknown,\
IN PRESOURCELIST ResourceList,\
IN ULONG DmaIndex,\
IN ULONG MaximumLength,\
IN BOOLEAN DemandMode,\
IN DMA_SPEED DmaSpeed\
);\
STDMETHODIMP NewMasterDmaChannel\
( OUT PDMACHANNEL * DmaChannel,\
IN PUNKNOWN OuterUnknown,\
IN PRESOURCELIST ResourceList OPTIONAL,\
IN ULONG MaximumLength,\
IN BOOLEAN Dma32BitAddresses,\
IN BOOLEAN Dma64BitAddresses,\
IN DMA_WIDTH DmaWidth,\
IN DMA_SPEED DmaSpeed\
)
#endif
/*****************************************************************************
* IMiniportWaveCyclicStream
*****************************************************************************
* Interface for cyclic wave miniport streams.
*/
DECLARE_INTERFACE_(IMiniportWaveCyclicStream,IUnknown)
{
STDMETHOD(SetFormat)
( THIS_
IN PKSDATAFORMAT DataFormat
) PURE;
STDMETHOD_(ULONG,SetNotificationFreq)
( THIS_
IN ULONG Interval,
OUT PULONG FrameSize
) PURE;
STDMETHOD(SetState)
( THIS_
IN KSSTATE State
) PURE;
STDMETHOD(GetPosition)
( THIS_
OUT PULONG Position
) PURE;
STDMETHOD(NormalizePhysicalPosition)
( THIS_
IN OUT PLONGLONG PhysicalPosition
) PURE;
STDMETHOD_(void,Silence)
( THIS_
IN PVOID Buffer,
IN ULONG ByteCount
) PURE;
};
typedef IMiniportWaveCyclicStream *PMINIPORTWAVECYCLICSTREAM;
#define IMP_IMiniportWaveCyclicStream\
STDMETHODIMP SetFormat\
( IN PKSDATAFORMAT DataFormat\
);\
STDMETHODIMP_(ULONG) SetNotificationFreq\
( IN ULONG Interval,\
OUT PULONG FrameSize\
);\
STDMETHODIMP SetState\
( IN KSSTATE State\
);\
STDMETHODIMP GetPosition\
( OUT PULONG Position\
);\
STDMETHODIMP NormalizePhysicalPosition\
( IN OUT PLONGLONG PhysicalPosition\
);\
STDMETHODIMP_(void) Silence\
( IN PVOID Buffer,\
IN ULONG ByteCount\
)
/*****************************************************************************
* IMiniportWaveCyclic
*****************************************************************************
* Interface for cyclic wave miniports.
*/
DECLARE_INTERFACE_(IMiniportWaveCyclic,IMiniport)
{
STDMETHOD(Init)
( THIS_
IN PUNKNOWN UnknownAdapter,
IN PRESOURCELIST ResourceList,
IN PPORTWAVECYCLIC Port
) PURE;
STDMETHOD(NewStream)
( THIS_
OUT PMINIPORTWAVECYCLICSTREAM * Stream,
IN PUNKNOWN OuterUnknown OPTIONAL,
IN POOL_TYPE PoolType,
IN ULONG Pin,
IN BOOLEAN Capture,
IN PKSDATAFORMAT DataFormat,
OUT PDMACHANNEL * DmaChannel,
OUT PSERVICEGROUP * ServiceGroup
) PURE;
};
typedef IMiniportWaveCyclic *PMINIPORTWAVECYCLIC;
#define IMP_IMiniportWaveCyclic\
IMP_IMiniport;\
STDMETHODIMP Init\
( IN PUNKNOWN UnknownAdapter,\
IN PRESOURCELIST ResourceList,\
IN PPORTWAVECYCLIC Port\
);\
STDMETHODIMP NewStream\
( OUT PMINIPORTWAVECYCLICSTREAM * Stream,\
IN PUNKNOWN OuterUnknown OPTIONAL,\
IN POOL_TYPE PoolType,\
IN ULONG Pin,\
IN BOOLEAN Capture,\
IN PKSDATAFORMAT DataFormat,\
OUT PDMACHANNEL * DmaChannel,\
OUT PSERVICEGROUP * ServiceGroup\
)
/*****************************************************************************
* IPortWavePci
*****************************************************************************
* Interface for PCI wave port lower edge.
*/
DECLARE_INTERFACE_(IPortWavePci,IPort)
{
STDMETHOD_(void,Notify)
( THIS_
IN PSERVICEGROUP ServiceGroup
) PURE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -