?? bdatif.idl
字號:
//---------------------------------------------------------------------
//
// Copyright (c) 1999-2002 Microsoft Corporation
//
// BDATIF.idl
//
//---------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2002.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#if ( _MSC_VER >= 800 )")
cpp_quote("#pragma warning(disable:4201) /* Nameless struct/union */")
cpp_quote("#endif")
cpp_quote("#if ( _MSC_VER >= 1020 )")
cpp_quote("#pragma once")
cpp_quote("#endif")
//---------------------------------------------------------------------
// IUnknown import idl
//---------------------------------------------------------------------
#ifndef DO_NO_IMPORTS
import "unknwn.idl";
import "strmif.idl";
import "tuner.idl";
import "bdaiface.idl";
#endif
interface IMPEG2_TIF_CONTROL;
interface IATSCChannelInfo;
interface IMPEG2PIDMap;
//******************************************************************************
//
// IBDA_TIF_REGISTRATION interface
//
// Implemented by the Microsoft ATSC/DVB BDA Network Provider
//
// Used by a transport information filter (TIF) to Register with the NP
// AND obtain an Interface to the Demux to set/ Remove PIDs.The TIF here passes
// IUNKNOWN of the pin it is connecting to and obtains the IMPEG2PIDMAP interface
// implemented by the NP to Map/ UnMap pids.
//
[
object,
uuid(DFEF4A68-EE61-415f-9CCB-CD95F2F98A3A),
helpstring("BDA Network Provider Registration Inteface for DVB/ATSC Transport Information Filters"),
pointer_default(unique)
]
interface IBDA_TIF_REGISTRATION : IUnknown
{
[helpstring("Used to register a transport analyzer with the Network Provider")]
HRESULT
RegisterTIFEx (
[in] IPin * pTIFInputPin,
[in, out] ULONG * ppvRegistrationContext,
[in, out] IUnknown ** ppMpeg2DataControl
);
[helpstring("Used to unregister TIF with the Network Provider")]
HRESULT
UnregisterTIF (
[in] ULONG pvRegistrationContext
);
}
//******************************************************************************
//
// IMPEG2_TIF_CONTROL interface
//
// Implemented by the Microsoft ATSC/DVB BDA Network Provider
//
// Used by a transport information filter (TIF) to request table
// sections carried on specific PIDs within the transport stream.
// The Network Provider Filter will, in turn, do the necessary
// control on the Demux Filter. All sections are delivered as comlete
// mpeg2 table sections via the TIF's connection to the Demux Filter.
//
[
object,
uuid(F9BAC2F9-4149-4916-B2EF-FAA202326862),
helpstring("BDA Network Provider Inteface for DVB/ATSC Transport Information Filters"),
pointer_default(unique)
]
interface IMPEG2_TIF_CONTROL : IUnknown
{
[helpstring("Used to register a transport analyzer with the Network Provider")]
HRESULT
RegisterTIF (
[in] IUnknown * pUnkTIF,
[in, out] ULONG * ppvRegistrationContext
);
[helpstring("Used to unregister TIF with the Network Provider")]
HRESULT
UnregisterTIF (
[in] ULONG pvRegistrationContext
);
[helpstring("Used to add PSI/SI MPEG2 packet IDs to the TIF's data stream")]
HRESULT
AddPIDs (
[in] ULONG ulcPIDs,
[in] ULONG * pulPIDs
);
[helpstring("Used to remove PSI/SI MPEG2 packet IDs from the TIF's data stream")]
HRESULT
DeletePIDs (
[in] ULONG ulcPIDs,
[in] ULONG * pulPIDs
);
[helpstring("Returns the number of MPEG2 Packet IDs being filtered into the TIF's input data.")]
HRESULT
GetPIDCount (
[out] ULONG * pulcPIDs
);
[helpstring("Returns the the list of MPEG2 Packet IDs being filtered into the TIF's input data.")]
HRESULT
GetPIDs (
[out] ULONG * pulcPIDs,
[out] ULONG * pulPIDs
);
}
//******************************************************************************
//
// ITuneRequestInfo interface
//
// Implemented by a BDA transport information filter (TIF)
//
// Used by the BDA Network Provider to obtain network specific
// information about locating transport streams and aquiring
// services.
//
//
// GetLocatorData -
//
// GetComponentData -
//
// CreateComponentList -
//
// GetNextService -
//
// GetPreviouService -
//
// GetNextLocator -
//
// GetPreviousLocator -
//
[
object,
uuid(A3B152DF-7A90-4218-AC54-9830BEE8C0B6),
helpstring("Interface provided by the Mpeg2 Transport Information Filter to supply tuning details."),
pointer_default(unique)
]
interface ITuneRequestInfo : IUnknown
{
[helpstring("TIF fills in channel/program locator information for the given tune request.")]
HRESULT
GetLocatorData (
[in] ITuneRequest *Request
);
[helpstring("TIF fills in all network specific component data for the existing component list on the given tune request.")]
HRESULT
GetComponentData (
[in] ITuneRequest *CurrentRequest
);
[helpstring("TIF creates a complete component list and fills in all network specific component data on the given tune request")]
HRESULT
CreateComponentList (
[in] ITuneRequest *CurrentRequest
);
[helpstring("TIF creates a new TuneRequest with channel/program locator information for the next service.")]
HRESULT
GetNextProgram (
[in] ITuneRequest *CurrentRequest,
[out, retval] ITuneRequest **TuneRequest
);
[helpstring("TIF creates a new TuneRequest with channel/program locator information for the previous service.")]
HRESULT
GetPreviousProgram (
[in] ITuneRequest *CurrentRequest,
[out, retval] ITuneRequest **TuneRequest
);
[helpstring("TIF creates a new TuneRequest with locator information for the next transport stream.")]
HRESULT
GetNextLocator (
[in] ITuneRequest *CurrentRequest,
[out, retval] ITuneRequest **TuneRequest
);
[helpstring("TIF creates a new TuneRequest with locator information for the previous transport stream.")]
HRESULT
GetPreviousLocator (
[in] ITuneRequest *CurrentRequest,
[out, retval] ITuneRequest **TuneRequest
);
}
//******************************************************************************
//
// IGuideDataEvent
//
// This is the guide data event notification callback interface. The
// callback interface is registered on a transport analyzer's
// IConnectionPoint by the event consumer.
//
// The event consumer MUST NOT BLOCK THE CALLING THREAD.
//
// If the consumer requires additional information about the event, it
// should queue the event to a separate thread.
//
// {EFDA0C80-F395-42c3-9B3C-56B37DEC7BB7}
//
[
object,
uuid(EFDA0C80-F395-42c3-9B3C-56B37DEC7BB7),
helpstring("Consumers of a guide data events must implement this callback interface."),
pointer_default(unique)
]
interface IGuideDataEvent : IUnknown
{
// Indicates that a complete set of guide data has been acquire from
// the current transport stream.
//
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
// it must supply this event.
//
HRESULT GuideDataAcquired(
);
// Indicates that information about one or more programs changed.
//
// If varProgramDescriptionID is NULL then the consumer
// must get properties for all programs to determine which ones
// changed.
//
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
// it must supply this event.
//
HRESULT ProgramChanged(
[in] VARIANT varProgramDescriptionID
);
// Indicates that information about one or more services changed.
//
// If varServiceDescriptionID is NULL then the consumer
// must get properties for all services to determine which ones
// changed.
//
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
// it must supply this event.
//
HRESULT ServiceChanged(
[in] VARIANT varServiceDescriptionID
);
// Indicates that information about one or more schedule entries
// changed.
//
// If varScheduleEntryDescriptionID is NULL then the consumer
// must get properties for all schedule entries to determine which ones
// changed.
//
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
// it must supply this event.
//
HRESULT ScheduleEntryChanged(
[in] VARIANT varScheduleEntryDescriptionID
);
// Indicates that the program with the given Description.ID
// has been deleted.
//
//
// Optional - Transport analyzer may supply this event. Consumer
// may return E_NOTIMPL.
//
HRESULT ProgramDeleted(
[in] VARIANT varProgramDescriptionID
);
// Indicates that the service with the given Description.ID
// has been deleted.
//
//
// Optional - Transport analyzer may supply this event. Consumer
// may return E_NOTIMPL.
//
HRESULT ServiceDeleted(
[in] VARIANT varServiceDescriptionID
);
// Indicates that the schedule entry with the given Description.ID
// has been deleted.
//
//
// Optional - Transport analyzer may supply this event. Consumer
// may return E_NOTIMPL.
//
HRESULT ScheduleDeleted(
[in] VARIANT varScheduleEntryDescriptionID
);
}
//******************************************************************************
//
// IGuideDataPropery
//
// {88EC5E58-BB73-41d6-99CE-66C524B8B591}
//
[
object,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -