This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/mmstream.h

231 lines
8.1 KiB
C

/*
* mmstream.h Multimedia streaming interfaces
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#include <rpc.h>
#include <rpcndr.h>
#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif
#ifndef __mmstream_h__
#define __mmstream_h__
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
typedef interface IMediaStream IMediaStream;
typedef interface IStreamSample IStreamSample;
/* Stream time data type */
typedef LONGLONG STREAM_TIME;
/* Media stream identifier data type */
typedef GUID MSPID;
typedef REFGUID REFMSPID;
/* Macros to manipulate multimedia streaming error codes */
#define MS_ERROR_CODE( x ) MAKE_HRESULT( 1, FACILITY_ITF, (x) + 0x0400 )
#define MS_SUCCESS_CODE( x ) MAKE_HRESULT( 0, FACILITY_ITF, x )
/* Multimedia streaming success codes */
#define MS_S_PENDING MS_SUCCESS_CODE( 1 )
#define MS_S_NOUPDATE MS_SUCCESS_CODE( 2 )
#define MS_S_ENDOFSTREAM MS_SUCCESS_CODE( 3 )
/* Multimedia streaming error codes */
#define MS_E_SAMPLEALLOC MS_ERROR_CODE( 1 )
#define MS_E_PURPOSEID MS_ERROR_CODE( 2 )
#define MS_E_NOSTREAM MS_ERROR_CODE( 3 )
#define MS_E_NOSEEKING MS_ERROR_CODE( 4 )
#define MS_E_INCOMPATIBLE MS_ERROR_CODE( 5 )
#define MS_E_BUSY MS_ERROR_CODE( 6 )
#define MS_E_NOTINIT MS_ERROR_CODE( 7 )
#define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE( 8 )
#define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE( 9 )
#define MS_E_NOTRUNNING MS_ERROR_CODE( 10 )
/* Stream types */
typedef enum {
STREAMTYPE_READ = 0,
STREAMTYPE_WRITE = 1,
STREAMTYPE_TRANSFORM = 2
} STREAM_TYPE;
/* Stream states */
typedef enum {
STREAMSTATE_STOP = 0,
STREAMSTATE_RUN = 1
} STREAM_STATE;
/* Completion status flags */
typedef enum {
COMPSTAT_NOUPDATEOK = 0x00000001,
COMPSTAT_WAIT = 0x00000002,
COMPSTAT_ABORT = 0x00000004
} COMPLETION_STATUS_FLAGS;
/* GetInformation() flags */
enum {
MMSSF_HASCLOCK = 0x00000001,
MMSSF_SUPPORTSEEK = 0x00000002,
MMSSF_ASYNCHRONOUS = 0x00000004
};
/* Update() flags */
enum {
SSUPDATE_ASYNC = 0x00000001,
SSUPDATE_CONTINUOUS = 0x00000002
};
/* Asynchronous procedure call function */
#if (_WIN32_WINNT < 0x0400)
typedef void (__stdcall *PAPCFUNC)( DWORD_PTR );
#endif
/* GUIDs */
EXTERN_C const IID IID_IMultiMediaStream;
EXTERN_C const IID IID_IMediaStream;
EXTERN_C const IID IID_IStreamSample;
/* IMultiMediaStream interface */
#undef INTERFACE
#define INTERFACE IMultiMediaStream
DECLARE_INTERFACE_( IMultiMediaStream, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMultiMediaStream interface */
STDMETHOD( GetInformation )( THIS_ DWORD *, STREAM_TYPE * ) PURE;
STDMETHOD( GetMediaStream )( THIS_ REFMSPID, IMediaStream ** ) PURE;
STDMETHOD( EnumMediaStream )( THIS_ long, IMediaStream ** ) PURE;
STDMETHOD( GetState )( THIS_ STREAM_STATE * ) PURE;
STDMETHOD( SetState )( THIS_ STREAM_STATE ) PURE;
STDMETHOD( GetTime )( THIS_ STREAM_TIME * ) PURE;
STDMETHOD( GetDuration )( THIS_ STREAM_TIME * ) PURE;
STDMETHOD( Seek )( THIS_ STREAM_TIME ) PURE;
STDMETHOD( GetEndOfStreamEventHandle )( THIS_ HANDLE * ) PURE;
};
/* IMediaStream interface */
#undef INTERFACE
#define INTERFACE IMediaStream
DECLARE_INTERFACE_( IMediaStream, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMediaStream methods */
STDMETHOD( GetMultiMediaStream )( THIS_ IMultiMediaStream ** ) PURE;
STDMETHOD( GetInformation )( THIS_ MSPID *, STREAM_TYPE * ) PURE;
STDMETHOD( SetSameFormat )( THIS_ IMediaStream *, DWORD ) PURE;
STDMETHOD( AllocateSample )( THIS_ DWORD, IStreamSample ** ) PURE;
STDMETHOD( CreateSharedSample )( THIS_ IStreamSample *, DWORD, IStreamSample ** ) PURE;
STDMETHOD( SendEndOfStream )( THIS_ DWORD ) PURE;
};
/* IStreamSample interface */
#undef INTERFACE
#define INTERFACE IStreamSample
DECLARE_INTERFACE_( IStreamSample, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IStreamSample methods */
STDMETHOD( GetMediaStream )( THIS_ IMediaStream ** ) PURE;
STDMETHOD( GetSampleTimes )( THIS_ STREAM_TIME *, STREAM_TIME *, STREAM_TIME * ) PURE;
STDMETHOD( SetSampleTimes )( THIS_ const STREAM_TIME *, const STREAM_TIME * ) PURE;
STDMETHOD( Update )( THIS_ DWORD, HANDLE, PAPCFUNC, DWORD_PTR ) PURE;
STDMETHOD( CompletionStatus )( DWORD, DWORD ) PURE;
};
/* C object macros */
#if (!defined( __cplusplus ) || defined( CINTERFACE )) && defined( COBJMACROS )
#define IMultiMediaStream_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMultiMediaStream_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMultiMediaStream_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMultiMediaStream_GetInformation( x, p1, p2 ) \
(x)->lpVtbl->GetInformation( x, p1, p2 )
#define IMultiMediaStream_GetMediaStream( x, p1, p2 ) \
(x)->lpVtbl->GetMediaStream( x, p1, p2 )
#define IMultiMediaStream_EnumMediaStream( x, p1, p2 ) \
(x)->lpVtbl->EnumMediaStream( x, p1, p2 )
#define IMultiMediaStream_GetState( x, p ) \
(x)->lpVtbl->GetState( x, p )
#define IMultiMediaStream_SetState( x, p ) \
(x)->lpVtbl->SetState( x, p )
#define IMultiMediaStream_GetTime( x, p ) \
(x)->lpVtbl->GetTime( x, p )
#define IMultiMediaStream_GetDuration( x, p ) \
(x)->lpVtbl->GetDuration( x, p )
#define IMultiMediaStream_Seek( x, p ) \
(x)->lpVtbl->Seek( x, p )
#define IMultiMediaStream_GetEndOfStreamEventHandle( x, p ) \
(x)->lpVtbl->GetEndOfStreamEventHandle( x, p )
#define IMediaStream_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMediaStream_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMediaStream_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMediaStream_GetMultiMediaStream( x, p ) \
(x)->lpVtbl->GetMultiMediaStream( x, p )
#define IMediaStream_GetInformation( x, p1, p2 ) \
(x)->lpVtbl->GetInformation( x, p1, p2 )
#define IMediaStream_SetSameFormat( x, p1, p2 ) \
(x)->lpVtbl->SetSameFormat( x, p1, p2 )
#define IMediaStream_AllocateSample( x, p1, p2 ) \
(x)->lpVtbl->AllocateSample( x, p1, p2 )
#define IMediaStream_CreateSharedSample( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateSharedSample( x, p1, p2, p3 )
#define IMediaStream_SendEndOfStream( x, p ) \
(x)->lpVtbl->SendEndOfStream( x, p )
#define IStreamSample_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IStreamSample_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IStreamSample_Release( x ) \
(x)->lpVtbl->Release( x )
#define IStreamSample_GetMediaStream( x, p ) \
(x)->lpVtbl->GetMediaStream( x, p )
#define IStreamSample_GetSampleTimes( x, p1, p2, p3 ) \
(x)->lpVtbl->GetSampleTimes( x, p1, p2, p3 )
#define IStreamSample_SetSampleTimes( x, p1, p2 ) \
(x)->lpVtbl->SetSampleTimes( x, p1, p2 ) \
#define IStreamSample_Update( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->Update( x, p1, p2, p3, p4 )
#define IStreamSample_CompletionStatus( x, p1, p2 ) \
(x)->lpVtbl->CompletionStatus( x, p1, p2 )
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __mmstream_h__ */