Files
reactos/reactos/include/psdk/axcore.idl
T
Christoph von Wittich 1f121135ab update riched20,ole32,oleaut32 to latest wine versions
disable ks,portcls,wdm because of broken ks.h
updated psdk,ddk headers
updated uuid and wine libs
implement IdlHeader handling in rbuild
added new idl files and removed the old header files
TODO: get rid of the WINELIB_NAME_AW macros, fix ks.h

svn path=/trunk/; revision=26428
2007-04-20 02:30:53 +00:00

648 lines
14 KiB
Plaintext

/*
* Copyright (C) 2002 Robert Shearman
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#define CHARS_IN_GUID 39
cpp_quote("#define CHARS_IN_GUID 39")
/* GetTimeFormat is defined in winnls.h as
* either the W or A suffixed version */
cpp_quote("#undef GetTimeFormat")
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;
typedef enum _PinDirection
{
PINDIR_INPUT,
PINDIR_OUTPUT
} PIN_DIRECTION;
#define MAX_PIN_NAME 128
#define MAX_FILTER_NAME 128
cpp_quote("#define MAX_PIN_NAME 128")
cpp_quote("#define MAX_FILTER_NAME 128")
typedef LONGLONG REFERENCE_TIME;
typedef DOUBLE REFTIME;
typedef DWORD_PTR HSEMAPHORE;
typedef DWORD_PTR HEVENT;
typedef struct _AllocatorProperties
{
long cBuffers;
long cbBuffer;
long cbAlign;
long cbPrefix;
} ALLOCATOR_PROPERTIES;
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;
[
object,
uuid(56a86891-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IPin : IUnknown
{
typedef struct _PinInfo
{
IBaseFilter *pFilter;
PIN_DIRECTION dir;
WCHAR achName[MAX_PIN_NAME];
} PIN_INFO;
HRESULT Connect(
[in] IPin * pReceivePin,
[in] const AM_MEDIA_TYPE * pmt);
HRESULT ReceiveConnection(
[in] IPin * pConnector,
[in] const AM_MEDIA_TYPE *pmt);
HRESULT Disconnect(void);
HRESULT ConnectedTo(
[out] IPin **pPin);
HRESULT ConnectionMediaType(
[out] AM_MEDIA_TYPE *pmt);
HRESULT QueryPinInfo(
[out] PIN_INFO * pInfo);
HRESULT QueryDirection(
[out] PIN_DIRECTION *pPinDir);
HRESULT QueryId(
[out] LPWSTR * Id);
HRESULT QueryAccept(
[in] const AM_MEDIA_TYPE *pmt);
HRESULT EnumMediaTypes(
[out] IEnumMediaTypes **ppEnum);
HRESULT QueryInternalConnections(
[out] IPin* *apPin,
[in, out] ULONG *nPin);
HRESULT EndOfStream(void);
HRESULT BeginFlush(void);
HRESULT EndFlush(void);
HRESULT NewSegment(
[in] REFERENCE_TIME tStart,
[in] REFERENCE_TIME tStop,
[in] double dRate);
}
typedef IPin *PPIN;
[
object,
uuid(56a86892-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IEnumPins : IUnknown
{
HRESULT Next(
[in] ULONG cPins,
[out, size_is(cPins)] IPin ** ppPins,
[out] ULONG * pcFetched);
HRESULT Skip(
[in] ULONG cPins);
HRESULT Reset(void);
HRESULT Clone(
[out] IEnumPins **ppEnum);
}
typedef IEnumPins *PENUMPINS;
[
object,
uuid(89c31040-846b-11ce-97d3-00aa0055595a),
pointer_default(unique)
]
interface IEnumMediaTypes : IUnknown
{
HRESULT Next(
[in] ULONG cMediaTypes,
[out, size_is(cMediaTypes)]
AM_MEDIA_TYPE ** ppMediaTypes,
[out] ULONG * pcFetched
);
HRESULT Skip(
[in] ULONG cMediaTypes);
HRESULT Reset(void);
HRESULT Clone(
[out] IEnumMediaTypes **ppEnum
);
}
typedef IEnumMediaTypes *PENUMMEDIATYPES;
[
object,
uuid(56a8689f-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IFilterGraph : IUnknown
{
HRESULT AddFilter(
[in] IBaseFilter * pFilter,
[in, string] LPCWSTR pName);
HRESULT RemoveFilter(
[in] IBaseFilter * pFilter);
HRESULT EnumFilters(
[out] IEnumFilters **ppEnum);
HRESULT FindFilterByName(
[in, string] LPCWSTR pName,
[out] IBaseFilter ** ppFilter);
HRESULT ConnectDirect(
[in] IPin * ppinOut,
[in] IPin * ppinIn,
[in, unique] const AM_MEDIA_TYPE* pmt);
HRESULT Reconnect(
[in] IPin * ppin);
HRESULT Disconnect(
[in] IPin * ppin);
HRESULT SetDefaultSyncSource(void);
}
typedef IFilterGraph *PFILTERGRAPH;
[
object,
uuid(56a86893-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IEnumFilters : IUnknown
{
HRESULT Next(
[in] ULONG cFilters,
[out] IBaseFilter ** ppFilter,
[out] ULONG * pcFetched);
HRESULT Skip(
[in] ULONG cFilters);
HRESULT Reset(void);
HRESULT Clone(
[out] IEnumFilters **ppEnum);
}
typedef IEnumFilters *PENUMFILTERS;
[
object,
uuid(56a86899-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IMediaFilter : IPersist
{
typedef enum _FilterState
{
State_Stopped,
State_Paused,
State_Running
} FILTER_STATE;
HRESULT Stop(void);
HRESULT Pause(void);
HRESULT Run(REFERENCE_TIME tStart);
HRESULT GetState(
[in] DWORD dwMilliSecsTimeout,
[out] FILTER_STATE *State);
HRESULT SetSyncSource(
[in] IReferenceClock * pClock);
HRESULT GetSyncSource(
[out] IReferenceClock ** pClock);
}
typedef IMediaFilter *PMEDIAFILTER;
[
object,
uuid(56a86895-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IBaseFilter : IMediaFilter
{
typedef struct _FilterInfo
{
WCHAR achName[MAX_FILTER_NAME];
IFilterGraph * pGraph;
} FILTER_INFO;
HRESULT EnumPins(
[out] IEnumPins ** ppEnum);
HRESULT FindPin(
[in, string] LPCWSTR Id,
[out] IPin ** ppPin);
HRESULT QueryFilterInfo(
[out] FILTER_INFO * pInfo);
HRESULT JoinFilterGraph(
[in] IFilterGraph * pGraph,
[in, string] LPCWSTR pName);
HRESULT QueryVendorInfo(
[out, string] LPWSTR* pVendorInfo);
}
typedef IBaseFilter *PFILTER;
[
object,
uuid(56a86897-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IReferenceClock : IUnknown
{
HRESULT GetTime(
[out] REFERENCE_TIME *pTime);
HRESULT AdviseTime(
[in] REFERENCE_TIME baseTime,
[in] REFERENCE_TIME streamTime,
[in] HEVENT hEvent,
[out] DWORD_PTR * pdwAdviseCookie);
HRESULT AdvisePeriodic(
[in] REFERENCE_TIME startTime,
[in] REFERENCE_TIME periodTime,
[in] HSEMAPHORE hSemaphore,
[out] DWORD_PTR * pdwAdviseCookie);
HRESULT Unadvise(
[in] DWORD_PTR dwAdviseCookie);
}
typedef IReferenceClock *PREFERENCECLOCK;
/*
[
object,
uuid(36b73885-c2c8-11cf-8b46-00805f6cef60),
pointer_default(unique)
]
interface IReferenceClock2 : IReferenceClock
{
}
typedef IReferenceClock2 *PREFERENCECLOCK2;
*/
[
local,
object,
uuid(56a8689a-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IMediaSample : IUnknown
{
HRESULT GetPointer([out] BYTE ** ppBuffer);
long GetSize(void);
HRESULT GetTime(
[out] REFERENCE_TIME * pTimeStart,
[out] REFERENCE_TIME * pTimeEnd);
HRESULT SetTime(
[in] REFERENCE_TIME * pTimeStart,
[in] REFERENCE_TIME * pTimeEnd);
HRESULT IsSyncPoint(void);
HRESULT SetSyncPoint(BOOL bIsSyncPoint);
HRESULT IsPreroll(void);
HRESULT SetPreroll(BOOL bIsPreroll);
LONG GetActualDataLength(void);
HRESULT SetActualDataLength(LONG length);
HRESULT GetMediaType(AM_MEDIA_TYPE **ppMediaType);
HRESULT SetMediaType(AM_MEDIA_TYPE *pMediaType);
HRESULT IsDiscontinuity(void);
HRESULT SetDiscontinuity(BOOL bDiscontinuity);
HRESULT GetMediaTime(
[out] LONGLONG * pTimeStart,
[out] LONGLONG * pTimeEnd);
HRESULT SetMediaTime(
[in] LONGLONG * pTimeStart,
[in] LONGLONG * pTimeEnd);
}
typedef IMediaSample *PMEDIASAMPLE;
enum tagAM_SAMPLE_PROPERTY_FLAGS
{
AM_SAMPLE_SPLICEPOINT = 0x01,
AM_SAMPLE_PREROLL = 0x02,
AM_SAMPLE_DATADISCONTINUITY = 0x04,
AM_SAMPLE_TYPECHANGED = 0x08,
AM_SAMPLE_TIMEVALID = 0x10,
AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
AM_SAMPLE_STOPVALID = 0x100,
AM_SAMPLE_ENDOFSTREAM = 0x200,
AM_STREAM_MEDIA = 0,
AM_STREAM_CONTROL = 1
};
typedef struct tagAM_SAMPLE2_PROPERTIES
{
DWORD cbData;
DWORD dwTypeSpecificFlags;
DWORD dwSampleFlags;
LONG lActual;
REFERENCE_TIME tStart;
REFERENCE_TIME tStop;
DWORD dwStreamId;
AM_MEDIA_TYPE *pMediaType;
BYTE *pbBuffer;
LONG cbBuffer;
} AM_SAMPLE2_PROPERTIES;
[
local,
object,
uuid(36b73884-c2c8-11cf-8b46-00805f6cef60),
pointer_default(unique)
]
interface IMediaSample2 : IMediaSample
{
HRESULT GetProperties(
[in] DWORD cbProperties,
[out, size_is(cbProperties)] BYTE * pbProperties
);
HRESULT SetProperties(
[in] DWORD cbProperties,
[in, size_is(cbProperties)] const BYTE * pbProperties
);
}
typedef IMediaSample2 *PMEDIASAMPLE2;
#define AM_GBF_PREVFRAMESKIPPED 1
#define AM_GBF_NOTASYNCPOINT 2
cpp_quote("#define AM_GBF_PREVFRAMESKIPPED 1")
cpp_quote("#define AM_GBF_NOTASYNCPOINT 2")
cpp_quote("#define AM_GBF_NOWAIT 4")
[
object,
uuid(56a8689c-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IMemAllocator : IUnknown
{
HRESULT SetProperties(
[in] ALLOCATOR_PROPERTIES* pRequest,
[out] ALLOCATOR_PROPERTIES* pActual);
HRESULT GetProperties(
[out] ALLOCATOR_PROPERTIES* pProps);
HRESULT Commit(void);
HRESULT Decommit(void);
HRESULT GetBuffer(
[out] IMediaSample **ppBuffer,
[in] REFERENCE_TIME * pStartTime,
[in] REFERENCE_TIME * pEndTime,
[in] DWORD dwFlags);
HRESULT ReleaseBuffer(
[in] IMediaSample *pBuffer);
}
typedef IMemAllocator *PMEMALLOCATOR;
[
object,
uuid(379a0cf0-c1de-11d2-abf5-00a0c905f375),
pointer_default(unique)
]
interface IMemAllocatorCallbackTemp : IMemAllocator
{
HRESULT SetNotify(
[in] IMemAllocatorNotifyCallbackTemp *pNotify);
HRESULT GetFreeCount(
[out] LONG *plBuffersFree);
}
[
object,
uuid(92980b30-c1de-11d2-abf5-00a0c905f375),
pointer_default(unique)
]
interface IMemAllocatorNotifyCallbackTemp : IUnknown
{
HRESULT NotifyRelease();
}
[
object,
uuid(56a8689d-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IMemInputPin : IUnknown
{
HRESULT GetAllocator(
[out] IMemAllocator ** ppAllocator);
HRESULT NotifyAllocator(
[in] IMemAllocator * pAllocator,
[in] BOOL bReadOnly);
HRESULT GetAllocatorRequirements( [out] ALLOCATOR_PROPERTIES*pProps );
HRESULT Receive(
[in] IMediaSample * pSample);
HRESULT ReceiveMultiple(
[in, size_is(nSamples)] IMediaSample **pSamples,
[in] long nSamples,
[out] long *nSamplesProcessed);
HRESULT ReceiveCanBlock();
}
typedef IMemInputPin *PMEMINPUTPIN;
[
object,
uuid(a3d8cec0-7e5a-11cf-bbc5-00805f6cef20),
pointer_default(unique)
]
interface IAMovieSetup : IUnknown
{
HRESULT Register( );
HRESULT Unregister( );
}
typedef IAMovieSetup *PAMOVIESETUP;
typedef enum AM_SEEKING_SeekingFlags
{
AM_SEEKING_NoPositioning = 0x00,
AM_SEEKING_AbsolutePositioning = 0x01,
AM_SEEKING_RelativePositioning = 0x02,
AM_SEEKING_IncrementalPositioning = 0x03,
AM_SEEKING_PositioningBitsMask = 0x03,
AM_SEEKING_SeekToKeyFrame = 0x04,
AM_SEEKING_ReturnTime = 0x08,
AM_SEEKING_Segment = 0x10,
AM_SEEKING_NoFlush = 0x20
} AM_SEEKING_SEEKING_FLAGS;
typedef enum AM_SEEKING_SeekingCapabilities
{
AM_SEEKING_CanSeekAbsolute = 0x001,
AM_SEEKING_CanSeekForwards = 0x002,
AM_SEEKING_CanSeekBackwards = 0x004,
AM_SEEKING_CanGetCurrentPos = 0x008,
AM_SEEKING_CanGetStopPos = 0x010,
AM_SEEKING_CanGetDuration = 0x020,
AM_SEEKING_CanPlayBackwards = 0x040,
AM_SEEKING_CanDoSegments = 0x080,
AM_SEEKING_Source = 0x100
} AM_SEEKING_SEEKING_CAPABILITIES;
[
object,
uuid(36b73880-c2c8-11cf-8b46-00805f6cef60),
pointer_default(unique)
]
interface IMediaSeeking : IUnknown
{
HRESULT GetCapabilities( [out] DWORD * pCapabilities );
HRESULT CheckCapabilities( [in,out] DWORD * pCapabilities );
HRESULT IsFormatSupported([in] const GUID * pFormat);
HRESULT QueryPreferredFormat([out] GUID * pFormat);
HRESULT GetTimeFormat([out] GUID *pFormat);
HRESULT IsUsingTimeFormat([in] const GUID * pFormat);
HRESULT SetTimeFormat([in] const GUID * pFormat);
HRESULT GetDuration([out] LONGLONG *pDuration);
HRESULT GetStopPosition([out] LONGLONG *pStop);
HRESULT GetCurrentPosition([out] LONGLONG *pCurrent);
HRESULT ConvertTimeFormat([out] LONGLONG * pTarget, [in] const GUID * pTargetFormat,
[in] LONGLONG Source, [in] const GUID * pSourceFormat );
HRESULT SetPositions(
[in,out] LONGLONG * pCurrent,
[in] DWORD dwCurrentFlags,
[in,out] LONGLONG * pStop,
[in] DWORD dwStopFlags);
HRESULT GetPositions(
[out] LONGLONG * pCurrent,
[out] LONGLONG * pStop);
HRESULT GetAvailable(
[out] LONGLONG * pEarliest,
[out] LONGLONG * pLatest);
HRESULT SetRate([in] double dRate);
HRESULT GetRate([out] double * pdRate);
HRESULT GetPreroll([out] LONGLONG * pllPreroll);
}
typedef IMediaSeeking *PMEDIASEEKING;
enum tagAM_MEDIAEVENT_FLAGS
{
AM_MEDIAEVENT_NONOTIFY = 0x01
};