⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bdatif.idl

📁 c语言编程软件vc6.0中文绿色版_vc6.0官方下载
💻 IDL
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------
//
//  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 + -