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

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

?? axcore.idl

?? vc6.0完整版
?? 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一区二区三区免费野_久草精品视频
国产乱妇无码大片在线观看| 精品三级在线观看| 欧美精品一区二区在线播放| 亚洲免费伊人电影| 狠狠色狠狠色综合日日91app| 欧洲亚洲精品在线| 国产精品三级视频| 国产一区欧美日韩| 4438成人网| 亚洲一区二区精品3399| av不卡免费电影| 国产亚洲成aⅴ人片在线观看| 日韩在线a电影| 在线观看www91| 亚洲天天做日日做天天谢日日欢 | 欧美日韩精品一区二区三区四区 | 麻豆久久久久久| 欧美视频三区在线播放| 亚洲天堂免费看| 成人免费高清在线观看| 精品91自产拍在线观看一区| 日韩精品五月天| 在线电影欧美成精品| 一区二区三区四区五区视频在线观看| 成人av第一页| 国产精品卡一卡二| 99在线精品观看| 国产性做久久久久久| 国产一区二区视频在线| 欧美成人乱码一区二区三区| 欧美96一区二区免费视频| 欧美精品久久久久久久多人混战 | 亚洲视频你懂的| 99久久久久免费精品国产| 国产女同互慰高潮91漫画| 国产精品香蕉一区二区三区| 久久久久国产一区二区三区四区| 六月婷婷色综合| 欧美精品一区二区三| 久久国内精品视频| 国产午夜精品一区二区三区四区| 狠狠色伊人亚洲综合成人| 久久影院午夜论| 成人av网址在线| 亚洲精品视频观看| 欧美另类z0zxhd电影| 免费成人在线影院| 国产亚洲欧美一级| 91免费观看视频在线| 亚洲国产精品一区二区久久| 91精品国产一区二区三区| 精品在线免费视频| 国产精品成人网| 欧美色国产精品| 美女诱惑一区二区| 亚洲国产精品成人久久综合一区| 99精品视频一区| 性做久久久久久| 久久日一线二线三线suv| 成人av免费在线观看| 午夜国产不卡在线观看视频| 欧美电视剧免费观看| 99精品久久只有精品| 蜜臀av国产精品久久久久| 欧美激情一二三区| 欧美日韩亚洲不卡| 国产高清一区日本| 亚洲午夜久久久久| 国产亚洲一区二区三区| 欧美日韩国产美女| 成人午夜av在线| 日本网站在线观看一区二区三区| 久久久精品蜜桃| 欧美日韩一级二级| 成人黄页毛片网站| 美女一区二区在线观看| 亚洲三级电影网站| 精品剧情在线观看| 欧美日韩国产大片| 成人激情图片网| 久久成人精品无人区| 亚洲一区二区三区视频在线播放| 久久久亚洲午夜电影| 欧美午夜精品久久久久久孕妇 | 奇米影视一区二区三区| 亚洲视频免费在线| 国产亚洲一区字幕| 精品日产卡一卡二卡麻豆| 欧美日精品一区视频| a级精品国产片在线观看| 精品一区二区三区视频在线观看| 亚洲午夜激情av| 最新不卡av在线| 国产欧美一区二区在线| 日韩精品专区在线影院重磅| 欧美在线观看18| 99视频热这里只有精品免费| 寂寞少妇一区二区三区| 日韩精品五月天| 亚洲成人1区2区| 亚洲综合av网| 亚洲精品一卡二卡| 自拍偷自拍亚洲精品播放| 久久久久久久性| 久久综合色播五月| www国产精品av| 精品va天堂亚洲国产| 日韩精品一区二区三区在线播放 | 蜜臀av一级做a爰片久久| 午夜精品久久久久久久久久 | 欧美精品自拍偷拍| 欧美色手机在线观看| 色94色欧美sute亚洲线路一ni| 成人免费观看视频| 不卡av在线网| 成人免费福利片| 97超碰欧美中文字幕| 99riav一区二区三区| 91视频在线看| 欧美亚洲综合在线| 欧美疯狂性受xxxxx喷水图片| 欧美午夜一区二区三区 | 国产嫩草影院久久久久| 国产精品免费视频观看| 国产精品沙发午睡系列990531| 亚洲国产成人私人影院tom| 中文一区二区在线观看| 国产精品久久久久久久久快鸭| 国产精品久久夜| 亚洲卡通欧美制服中文| 亚洲chinese男男1069| 免费成人美女在线观看.| 久久精品国产免费看久久精品| 精品在线亚洲视频| 99久久久国产精品| 欧美日韩高清在线播放| 日韩视频一区二区在线观看| 久久精品亚洲精品国产欧美| 日韩一区欧美一区| 首页综合国产亚洲丝袜| 狠狠色丁香婷综合久久| 波多野结衣在线一区| 欧美亚洲免费在线一区| 日韩女优av电影| 国产精品久久久久久久久快鸭| 夜夜爽夜夜爽精品视频| 久久国产麻豆精品| 91亚洲精品久久久蜜桃网站| 在线成人av网站| 国产精品理伦片| 天堂精品中文字幕在线| 成人一级片在线观看| 欧美视频在线不卡| 欧美极品美女视频| 日韩精品一区第一页| 国产.精品.日韩.另类.中文.在线.播放| 色综合网色综合| 久久伊99综合婷婷久久伊| 亚洲最色的网站| 国产精品亚洲人在线观看| 欧美日韩在线播放三区四区| 国产欧美视频在线观看| 日韩1区2区日韩1区2区| aaa亚洲精品| 欧美精品一区二区三区蜜臀| 亚洲制服丝袜av| 国产99精品国产| 精品免费视频.| 亚洲国产中文字幕| 99国产精品久久久久久久久久久| 日韩欧美黄色影院| 亚洲第一在线综合网站| caoporm超碰国产精品| 亚洲精品一区二区精华| 性做久久久久久久免费看| 91小视频在线| 国产视频在线观看一区二区三区| 天涯成人国产亚洲精品一区av| 成人免费观看视频| 久久精品一区四区| 精品一区二区在线看| 91精品一区二区三区在线观看| 亚洲另类在线制服丝袜| www.欧美.com| 中文字幕成人网| 国产精品亚洲第一 | 欧美一区二区三区在线| 亚洲大片一区二区三区| 日本乱人伦一区| 亚洲精品国产一区二区精华液| 丁香六月综合激情| 国产欧美日本一区视频| 国产成人在线看| 国产亚洲女人久久久久毛片| 久久91精品国产91久久小草| 日韩写真欧美这视频| 美女网站视频久久| 日韩欧美国产1| 狠狠v欧美v日韩v亚洲ⅴ| 精品国产乱码久久久久久久 |