亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? axcore.idl

?? 墨香最新私服
?? IDL
?? 第 1 頁 / 共 4 頁
字號:
//------------------------------------------------------------------------------
// File: AXCore.idl
//
// Desc: Core streaming interfaces.  Other ActiveMovie-only interfaces
//       are in AXExtend.idl.
//
// Copyright (c) 1992-2002, Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------------------------


// include unknwn.idl and objidl.idl first

#define CHARS_IN_GUID 39  // 128 bits, plus { - } punctuation and terminal null
                          // chars NOT BYTES in the standard representation
                          // e.g. {D3588AB0-0781-11ce-B03A-0020AF0BA770} + null

cpp_quote("#define CHARS_IN_GUID     39")


//=====================================================================
//=====================================================================
// media types & formats
//=====================================================================
//=====================================================================

// There is a high-level media type (audio, compressed video,
// mpeg video, midi). Within each type, there is a subtype (cinepak, pcm)
// and a length+untyped data block defining the format in a
// type-specific manner. EG for video/cinepak, the data block would be
// a bitmapinfo.
// The contents of the format block are defined by the formattype GUID.
// For example, FORMAT_VideoInfo, FORMAT_WaveFormatEx. In the future, this
// may be a pointer to an object supporting property style interfaces
// in which case the GUID may be something like FORMAT_IUnknown. When
// you are passed a media type you should check the format type, if
// it isn't a type you recognize, then don't touch the format block

typedef struct _AMMediaType {
    GUID     majortype;
    GUID     subtype;
    BOOL     bFixedSizeSamples;
    BOOL     bTemporalCompression;
    ULONG    lSampleSize;
    GUID     formattype;
    IUnknown *pUnk;
    ULONG    cbFormat;
    [size_is(cbFormat)] BYTE * pbFormat;
} AM_MEDIA_TYPE;

//=====================================================================
//=====================================================================
// pin information
//=====================================================================
//=====================================================================

// is this an input or output pin
typedef enum _PinDirection {
    PINDIR_INPUT,
    PINDIR_OUTPUT
} PIN_DIRECTION;

// other types that need defining
#define MAX_PIN_NAME     128
cpp_quote("#define MAX_PIN_NAME     128")
cpp_quote("#define MAX_FILTER_NAME  128")
#define MAX_FILTER_NAME  128


//=====================================================================
//=====================================================================
// time information
//
// This represents a time (either reference or stream) in 100ns units.
// The class library contains a CRefTime helper class
// that supports simple comparison and arithmetic operations
//=====================================================================
//=====================================================================

typedef LONGLONG REFERENCE_TIME;
typedef double REFTIME;

// Win32 HANDLEs have to be cast to these as the MIDL compiler doesn't
// like the HANDLE type or in fact anything remotely associated with
// them. If this ever gets ported to a MAC environment then these will
// have to become an alertable synchronisation object that it supports

typedef DWORD_PTR HSEMAPHORE;
typedef DWORD_PTR HEVENT;

//=====================================================================
//=====================================================================
// Allocator properties
//
// Used to describe the actual properties of an allocator,
// and used to request properties from an allocator or from an upstream
// filter that could create an allocator. See IMemAllocator and
// IMemInputPin.
//=====================================================================
//=====================================================================
typedef struct _AllocatorProperties {
        long cBuffers;  // count of buffers at this allocator
        long cbBuffer;  // size of each buffer, excluding any prefix

        // alignment of the buffer - buffer start will be aligned on a multiple of
        // this amount
        long cbAlign;

        // prefix amount. Each buffer is immediately preceeded by cbPrefix bytes.
        // note that GetPointer points to the beginning of the buffer proper.
        // the prefix is aligned, i.e. (GetPointer() - cbPrefix) is aligned on cbAlign.
        long cbPrefix;
} ALLOCATOR_PROPERTIES;





// forward declarations (in alphabetical order - we were getting duplicates)
interface IAMovieSetup;
interface IEnumFilters;
interface IEnumMediaTypes;
interface IEnumPins;
interface IBaseFilter;
interface IFilterGraph;
interface IMediaFilter;
interface IMediaSample;
interface IMemAllocator;
interface IMemAllocatorCallbackTemp;
interface IMemAllocatorNotifyCallbackTemp;
interface IMemInputPin;
interface IPin;
interface IReferenceClock;



//=====================================================================
//=====================================================================
// Defines IPin interface
//
// interface representing a single, unidirection connection point on a
// filter. A Pin will connect to exactly one other pin on another filter.
// This interface represents the interface other objects can call on
// this pin. The interface between the filter and the pin is private to
// the implementation of a specific filter.
//
// During the connection process, one pin will be instructed to take
// the lead: the connect interface on this pin will be calling, passing
// the IPin* for the other pin. This connecting pin will call the
// ReceiveConnection member function on the other pin, as well as presumably
// other format-enumeration and queryinterface calls to establish whether
// the connection is possible.
//=====================================================================
//=====================================================================

[
object,
uuid(56a86891-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IPin : IUnknown {

    // initiate a connection to another pin. calls ReceiveConnection on the
    // other pin. Verifies that the connection is possible and may reject
    // it.
    // The mediatype parameter is optional. If it is not null, the pin must
    // connect using that media type if possible. The subtype and/or format
    // type can be GUID_NULL, meaning that the pin can fill them in as desired.
    // This allows an application to partially specify the media type to be
    // used for the connection, insisting on eg YUV 422 but leaving details
    // (such as the image size) to be negotiated between the pins.
    HRESULT Connect(
        [in] IPin * pReceivePin,        // connect yourself to this pin
        [in] const AM_MEDIA_TYPE * pmt  // (optional) connect using this type
    );

    // called by a connecting pin to make a connection
    HRESULT ReceiveConnection(
        [in] IPin * pConnector,
        [in] const AM_MEDIA_TYPE *pmt   // this is the media type we will exchange
    );

    // break a connection - no params since there is only one connection
    // possible on this pin
    HRESULT Disconnect(void);

    // Find the pin this pin is connected to (if any)
    // The pointer returned is AddRef()d
    // Fails if the pin is not connected
    HRESULT ConnectedTo(
        [out] IPin **pPin
    );

    // Return the media type of a connection if the pin is connected
    HRESULT ConnectionMediaType(
        [out] AM_MEDIA_TYPE *pmt
    );

    // get information about the pin itself
    typedef struct _PinInfo {
    IBaseFilter *pFilter;   // the filter this pin is on
    PIN_DIRECTION dir;  // am I an input or output pin?
    WCHAR achName[MAX_PIN_NAME];    // the name of this pin within this filter
    } PIN_INFO;

    HRESULT QueryPinInfo(
        [out] PIN_INFO * pInfo
    );

    // We often want to know the direction.  Rather than use the
    // relatively expensive QueryPinInfo, use this
    HRESULT QueryDirection(
        [out] PIN_DIRECTION *pPinDir
    );

    // Get an identifier for the pin (allows connections to be saved).
    // The storage will be allocated by the filter using CoTaskMemAlloc
    // The caller should free it using CoTaskMemFree
    HRESULT QueryId(
        [out] LPWSTR * Id
    );

    // will the pin accept the format type, S_OK yes, S_FALSE no
    HRESULT QueryAccept(
        [in] const AM_MEDIA_TYPE *pmt
    );

    // return an enumerator for this pin's preferred media types
    HRESULT EnumMediaTypes(
        [out] IEnumMediaTypes **ppEnum
    );

    // return an array of IPin* - the pins that this pin internally connects to
    // All pins put in the array must be AddReffed (but no others)
    // Errors: "Can't say" - FAIL; not enough slots - return S_FALSE
    // Default: return E_NOTIMPL
    // The filter graph will interpret E_NOTIMPL as any input pin connects to
    // all visible output pins and vise versa.
    // apPin can be NULL if nPin==0 (not otherwise).
    HRESULT QueryInternalConnections(
        [out] IPin* *apPin,     // array of IPin*
        [in, out] ULONG *nPin   // on input, the number of slots
                                // on output  the number of pins
    );

    // notify the pin that no more data is expected until a new run
    // command is issued. End of stream should be queued and delivered after
    // all queued data is delivered. Pass through if there is no queued data.
    // Flush should flush any queued EOS.
    // returns S_OK unless there is some error.
    // input pins only: output pins will normally return E_UNEXPECTED.
    HRESULT EndOfStream(void);

    // Flush

    // Enter flush state: do the following steps (in order)
    // -- prevent any more Receives succeeding (set a flushing flag)
    // -- discard any queued data
    // -- free anyone blocked on Receive in your filter
    // -- pass BeginFlush to any downstream pins
    HRESULT BeginFlush(void);

    // End flush state: do the following steps in order
    // -- ensure no more data will be pushed by your filter
    //    (sync with thread if you have one, stop it pushing and
    //     discard any queued data)
    // -- re-enable Receive (clear internal flushing flag)
    // -- pass EndFlush to any downstream pins
    HRESULT EndFlush(void);

    // informational: all data arriving after this call is part of a segment
    // from StartTime to StopTime, played at rate. This allows filters that
    // process buffers containing more than one sample to clip the rendering
    // to within the start and stop times.
    //
    // A source pin will call a destination pin on this method after completing
    // delivery of any previous data, and before any Receive calls for the
    // new data
    HRESULT NewSegment(
                [in] REFERENCE_TIME tStart,
                [in] REFERENCE_TIME tStop,
                [in] double dRate);
}

typedef IPin *PPIN;


//=====================================================================
//=====================================================================
// Defines IEnumPins interface
//
// interface returned from IBaseFilter::EnumPins(). based on IEnumXXXX
//=====================================================================
//=====================================================================

[
object,
uuid(56a86892-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IEnumPins : IUnknown {

    HRESULT Next(
        [in] ULONG cPins,                       // place this many pins...
        [out, size_is(cPins)] IPin ** ppPins,   // ...in this array
        [out] ULONG * pcFetched                 // actual count passed
    );

    HRESULT Skip(
        [in] ULONG cPins);

    HRESULT Reset(void);

    HRESULT Clone(
        [out] IEnumPins **ppEnum
    );
}

typedef IEnumPins *PENUMPINS;


//=====================================================================
//=====================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久不见久久见免费视频7| 成人高清在线视频| 成人小视频在线| 欧美久久久久久久久| 中文成人av在线| 久久精品国内一区二区三区| 色94色欧美sute亚洲线路二| 日韩一级大片在线| 亚洲在线视频免费观看| 国产成a人无v码亚洲福利| 日韩一级视频免费观看在线| 亚洲精品久久久久久国产精华液| 国产真实精品久久二三区| 欧美三级午夜理伦三级中视频| 日本一区二区视频在线观看| 免费人成在线不卡| 欧美人体做爰大胆视频| 久久99国产精品麻豆| 91精品欧美久久久久久动漫| 亚洲精品日日夜夜| 成人性生交大合| 欧美国产日产图区| 国产最新精品免费| 精品国产污网站| 美女任你摸久久| 678五月天丁香亚洲综合网| 亚洲精选视频在线| 91在线视频在线| 国产精品免费aⅴ片在线观看| 国产精品影音先锋| 久久午夜羞羞影院免费观看| 激情综合五月天| 欧美一区二区黄色| 日本欧美加勒比视频| 欧美日本一道本| 午夜伊人狠狠久久| 欧美日韩国产精品成人| 亚洲成人综合视频| 欧美一区二区三区在线观看| 日韩精品一级中文字幕精品视频免费观看 | 在线观看日韩精品| 亚洲精品国产无天堂网2021| 91女人视频在线观看| 亚洲欧美视频在线观看| 色偷偷88欧美精品久久久| 亚洲精品一二三四区| 91免费看片在线观看| 一区二区三区加勒比av| 欧美日韩免费高清一区色橹橹 | 亚洲成人自拍偷拍| 欧美日韩三级在线| 久热成人在线视频| 国产嫩草影院久久久久| 91视视频在线观看入口直接观看www | 欧美日韩精品免费观看视频| 午夜不卡av免费| 日韩美女在线视频| 粉嫩av一区二区三区在线播放| 国产精品麻豆欧美日韩ww| 色噜噜狠狠成人中文综合| 盗摄精品av一区二区三区| 成人欧美一区二区三区黑人麻豆| 91美女福利视频| 日韩精品乱码免费| 中文字幕精品在线不卡| 欧洲精品中文字幕| 韩国女主播一区| 亚洲天堂精品在线观看| 这里是久久伊人| 高清av一区二区| 午夜亚洲福利老司机| 国产网站一区二区三区| 色综合久久天天综合网| 久久激情五月婷婷| 亚洲精品亚洲人成人网 | 性做久久久久久久免费看| 欧美电影免费观看高清完整版在 | 欧美精品一区二区久久婷婷| www.激情成人| 精品亚洲成a人在线观看| 亚洲人精品一区| 精品理论电影在线观看| 久久一二三国产| 色视频一区二区| 国产麻豆精品一区二区| 亚洲成人av中文| 国产精品不卡一区| 精品国产三级电影在线观看| 欧美日韩一区二区三区不卡| 国产一区二区三区| 免费成人美女在线观看| 亚洲地区一二三色| 国产精品日韩成人| 26uuu精品一区二区| 欧美精品在欧美一区二区少妇| 北条麻妃国产九九精品视频| 久久精品国产久精国产爱| 亚洲午夜电影在线| 中文字幕一区日韩精品欧美| 亚洲精品一线二线三线| 欧美一区三区四区| 在线视频欧美精品| 99视频精品免费视频| 国产精品99久| 国产一区高清在线| 精品制服美女久久| 美女mm1313爽爽久久久蜜臀| 午夜精品在线看| 亚欧色一区w666天堂| 亚洲一区在线观看视频| 亚洲精品中文字幕乱码三区| 中文字幕亚洲电影| 国产精品乱码一区二区三区软件| 亚洲精品在线一区二区| 欧美精品一区二区三区很污很色的| 日韩一卡二卡三卡| 欧美成人精品福利| 精品国产免费一区二区三区四区| 日韩视频永久免费| 精品成人一区二区三区| 精品国产一区二区三区忘忧草| 欧美理论片在线| 欧美高清精品3d| 欧美一区二区三区免费| 日韩欧美国产小视频| 精品国产亚洲在线| 日本一区二区不卡视频| 亚洲欧洲在线观看av| 亚洲免费三区一区二区| 亚洲一区二区三区四区五区黄| 亚洲尤物在线视频观看| 日本亚洲一区二区| 精品亚洲免费视频| 成人成人成人在线视频| 欧美自拍偷拍午夜视频| 91精品婷婷国产综合久久竹菊| 日韩精品中文字幕在线一区| 欧美国产日韩在线观看| 亚洲色图丝袜美腿| 日韩成人一区二区三区在线观看| 久久99精品久久久| 成人午夜免费视频| 欧洲av一区二区嗯嗯嗯啊| 91麻豆精品国产91久久久 | 麻豆精品一区二区综合av| 国产中文字幕精品| 色婷婷精品久久二区二区蜜臂av| 欧美在线不卡视频| 欧美tickle裸体挠脚心vk| 国产精品美女久久久久久久久| 一区二区在线看| 精品一区二区在线视频| 91在线视频免费观看| 制服丝袜国产精品| 国产人成一区二区三区影院| 一区二区久久久久久| 精品一区二区三区久久| 色综合久久99| 欧美一级欧美一级在线播放| 国产精品剧情在线亚洲| 日本美女一区二区| 99精品桃花视频在线观看| 欧美一区二区美女| 亚洲色图欧美偷拍| 国产一区二区三区在线观看免费视频 | 日韩二区在线观看| av午夜一区麻豆| 精品播放一区二区| 亚洲图片欧美综合| 99久久国产综合精品麻豆| 日韩一区二区在线观看视频播放| 中文字幕一区二区不卡 | 99久久久久久99| 日韩欧美国产1| 一区二区三区欧美在线观看| 国产伦精品一区二区三区免费 | 国产久卡久卡久卡久卡视频精品| 色久优优欧美色久优优| 国产欧美一二三区| 久久国产精品无码网站| 欧美日韩精品欧美日韩精品 | 亚洲国产精品精华液网站| 成人污视频在线观看| 精品奇米国产一区二区三区| 午夜精品免费在线| 欧洲精品在线观看| 亚洲日本护士毛茸茸| 成人国产精品免费网站| 国产天堂亚洲国产碰碰| 久久激情五月婷婷| 日韩一区二区免费在线电影| 亚洲第一电影网| 欧美午夜不卡视频| 亚洲激情在线激情| 91免费在线看| 亚洲精品成人天堂一二三| 99久久精品费精品国产一区二区| 国产精品久久久久影院| 国产 欧美在线| 国产精品区一区二区三|