Upgrade to DirectX 8.1.

If we're stuck on an older version of DirectX, we might as well use the latest revision ;)
This commit is contained in:
Luke Usher 2017-07-29 20:05:54 +01:00
parent a5252ec5e7
commit e3a19a2a3d
146 changed files with 55232 additions and 6389 deletions

File diff suppressed because it is too large Load Diff

View File

@ -23,6 +23,10 @@ Supports visualization of alpha channel as a greyscale image or via a user-
selectable background color
Supports easy visual comparison of image quality between formats
Note: DxTex does not currently support textures with surface formats that
do not contain at least an R, G, and B texture (such as D3DFMT_G16R16 and
D3DFMT_A8), although D3DX can load and save such textures in DDS format.
User Interface
--------------

Binary file not shown.

Binary file not shown.

View File

@ -1,9 +1,10 @@
///////////////////////////////////////////////////////////////////////////
// Copyright (C) 2000 Microsoft Corporation. All Right Reserved.
//------------------------------------------------------------------------------
// File: DShow.h
//
// File: dshow.h
// Content: DirectShow top-level include file
///////////////////////////////////////////////////////////////////////////
// Desc: DirectShow top-level include file
//
// Copyright (c) 2000-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#ifndef __DSHOW_INCLUDED__
#define __DSHOW_INCLUDED__
@ -11,8 +12,8 @@
///////////////////////////////////////////////////////////////////////////
// Set up constants & pragmas for the compiler
///////////////////////////////////////////////////////////////////////////
#ifdef _MSC_VER
// disable some level-4 warnings, use #pragma warning(enable:###) to re-enable
#ifdef _MSC_VER
// disable some level-4 warnings, use #pragma warning(default:###) to re-enable
#pragma warning(disable:4100) // warning C4100: unreferenced formal parameter
#pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
#pragma warning(disable:4511) // warning C4511: copy constructor could not be generated
@ -24,7 +25,7 @@
#else
#define AM_NOVTABLE
#endif
#endif // MSC_VER
#endif // MSC_VER
///////////////////////////////////////////////////////////////////////////
// Include standard Windows files

View File

@ -3,7 +3,7 @@
//
// Desc:
//
// Copyright (c) 1998 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -93,34 +93,34 @@ pointer_default(unique)
]
interface IAMMultiMediaStream : IMultiMediaStream
{
HRESULT Initialize(
[in] STREAM_TYPE StreamType,
[in] DWORD dwFlags,
[in] IGraphBuilder *pFilterGraph);
HRESULT Initialize(
[in] STREAM_TYPE StreamType,
[in] DWORD dwFlags,
[in] IGraphBuilder *pFilterGraph);
HRESULT GetFilterGraph(
[out] IGraphBuilder **ppGraphBuilder);
HRESULT GetFilterGraph(
[out] IGraphBuilder **ppGraphBuilder);
HRESULT GetFilter(
[out] IMediaStreamFilter **ppFilter);
HRESULT GetFilter(
[out] IMediaStreamFilter **ppFilter);
HRESULT AddMediaStream(
[in] IUnknown *pStreamObject,
[in] const MSPID *PurposeId,
[in] DWORD dwFlags,
[out] IMediaStream **ppNewStream);
HRESULT AddMediaStream(
[in] IUnknown *pStreamObject,
[in] const MSPID *PurposeId,
[in] DWORD dwFlags,
[out] IMediaStream **ppNewStream);
HRESULT OpenFile(
[in] LPCWSTR pszFileName,
[in] DWORD dwFlags);
HRESULT OpenFile(
[in] LPCWSTR pszFileName,
[in] DWORD dwFlags);
HRESULT OpenMoniker(
[in] IBindCtx *pCtx,
[in] IMoniker *pMoniker,
[in] DWORD dwFlags);
HRESULT OpenMoniker(
[in] IBindCtx *pCtx,
[in] IMoniker *pMoniker,
[in] DWORD dwFlags);
HRESULT Render(
[in] DWORD dwFlags);
HRESULT Render(
[in] DWORD dwFlags);
}
@ -132,23 +132,23 @@ pointer_default(unique)
]
interface IAMMediaStream : IMediaStream
{
HRESULT Initialize(
[in] IUnknown *pSourceObject,
[in] DWORD dwFlags,
[in] REFMSPID PurposeId,
[in] const STREAM_TYPE StreamType);
HRESULT Initialize(
[in] IUnknown *pSourceObject,
[in] DWORD dwFlags,
[in] REFMSPID PurposeId,
[in] const STREAM_TYPE StreamType);
HRESULT SetState(
[in] FILTER_STATE State);
HRESULT SetState(
[in] FILTER_STATE State);
HRESULT JoinAMMultiMediaStream(
[in] IAMMultiMediaStream *pAMMultiMediaStream);
HRESULT JoinAMMultiMediaStream(
[in] IAMMultiMediaStream *pAMMultiMediaStream);
HRESULT JoinFilter(
[in] IMediaStreamFilter *pMediaStreamFilter);
HRESULT JoinFilter(
[in] IMediaStreamFilter *pMediaStreamFilter);
HRESULT JoinFilterGraph(
[in] IFilterGraph *pFilterGraph);
HRESULT JoinFilterGraph(
[in] IFilterGraph *pFilterGraph);
};
@ -163,33 +163,33 @@ pointer_default(unique)
]
interface IMediaStreamFilter : IBaseFilter
{
HRESULT AddMediaStream(
[in] IAMMediaStream *pAMMediaStream);
HRESULT AddMediaStream(
[in] IAMMediaStream *pAMMediaStream);
HRESULT GetMediaStream(
[in] REFMSPID idPurpose,
[out] IMediaStream **ppMediaStream);
HRESULT GetMediaStream(
[in] REFMSPID idPurpose,
[out] IMediaStream **ppMediaStream);
HRESULT EnumMediaStreams(
[in] long Index,
[out] IMediaStream **ppMediaStream);
HRESULT EnumMediaStreams(
[in] long Index,
[out] IMediaStream **ppMediaStream);
HRESULT SupportSeeking(
[in] BOOL bRenderer);
[in] BOOL bRenderer);
HRESULT ReferenceTimeToStreamTime(
[in] [out] REFERENCE_TIME *pTime);
HRESULT ReferenceTimeToStreamTime(
[in] [out] REFERENCE_TIME *pTime);
HRESULT GetCurrentStreamTime(
[out] REFERENCE_TIME *pCurrentStreamTime);
HRESULT GetCurrentStreamTime(
[out] REFERENCE_TIME *pCurrentStreamTime);
HRESULT WaitUntil(
[in] REFERENCE_TIME WaitStreamTime);
HRESULT WaitUntil(
[in] REFERENCE_TIME WaitStreamTime);
HRESULT Flush(
[in] BOOL bCancelEOS);
HRESULT Flush(
[in] BOOL bCancelEOS);
HRESULT EndOfStream();
HRESULT EndOfStream();
};
@ -224,8 +224,6 @@ interface IDirectDrawMediaSample : IUnknown
[
object,
local,
@ -244,11 +242,11 @@ interface IAMMediaTypeStream : IMediaStream
[in] DWORD dwFlags);
HRESULT CreateSample(
[in] long lSampleSize,
[in] long lSampleSize,
[in] BYTE * pbBuffer,
[in] DWORD dwFlags,
[in] DWORD dwFlags,
[in] IUnknown *pUnkOuter,
[out] IAMMediaTypeSample ** ppAMMediaTypeSample);
[out] IAMMediaTypeSample ** ppAMMediaTypeSample);
HRESULT GetStreamAllocatorRequirements(
[out] ALLOCATOR_PROPERTIES *pProps);
@ -294,31 +292,31 @@ interface IAMMediaTypeSample : IStreamSample
[
uuid(4E6CDE29-C0C4-11d0-8FF1-00C04FD9189D),
version(1.0),
helpstring("DirectShowStream 1.0 Type Library")
uuid(4E6CDE29-C0C4-11d0-8FF1-00C04FD9189D),
version(1.0),
helpstring("DirectShowStream 1.0 Type Library")
]
library DirectShowStreamLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(49c47ce5-9ba4-11d0-8212-00c04fc32c45),
helpstring("DirectShow Multi Media Stream")
]
coclass AMMultiMediaStream
{
[default] dispinterface IDirectShowStream;
};
[
uuid(49c47ce5-9ba4-11d0-8212-00c04fc32c45),
helpstring("DirectShow Multi Media Stream")
]
coclass AMMultiMediaStream
{
[default] dispinterface IDirectShowStream;
};
};
//
// The MIDL compiler wants to produce a CLSID for everything defined in
// our type library, but it also wants to generate huge, fat proxy code
// our type library, but it also wants to generate huge proxy code,
// so we use DEFINE_GUID for all other classes. It has another interesting
// bug in that it defines CLSID_AMMultiMediaStream within a #ifdef __cplusplus
// block, so we need to define it outside of that scope.

View File

@ -3,12 +3,12 @@
//
// Desc:
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
import "objidl.idl"; // for IPersist (IFilter's root)
import "objidl.idl"; // for IPersist (IFilter's root)
/*
@ -16,13 +16,13 @@ import "objidl.idl"; // for IPersist (IFilter's root)
*/
typedef struct _VIDEOSIGNALINFO
{
DWORD dwSize; // Size of the structure
DWORD dwVREFHeight; // Specifies the number of lines of data in the vref
BOOL bDoubleClock; // videoport should enable double clocking
BOOL bVACT; // videoport should use an external VACT signal
BOOL bInterlaced; // Indicates that the signal is interlaced
BOOL bHalfline; // Device will write half lines into the frame buffer
BOOL bInvertedPolarity; // Devoce inverts the polarity by default
DWORD dwSize; // Size of the structure
DWORD dwVREFHeight; // Specifies the number of lines of data in the vref
BOOL bDoubleClock; // videoport should enable double clocking
BOOL bVACT; // videoport should use an external VACT signal
BOOL bInterlaced; // Indicates that the signal is interlaced
BOOL bHalfline; // Device will write half lines into the frame buffer
BOOL bInvertedPolarity; // Devoce inverts the polarity by default
} AMVIDEOSIGNALINFO;
typedef struct AMVIDEOSIGNALINFO *LPAMVIDEOSIGNALINFO;
@ -37,10 +37,10 @@ interface IVPE;
*/
typedef struct _DDVIDEOPORTCONNECT
{
DWORD dwSize; // size of the DDVIDEOPORTCONNECT structure
GUID guidTypeID; // Description of video port connection
DWORD dwPortWidth; // Width of the video port
DWORD dwFlags; // Connection flags
DWORD dwSize; // size of the DDVIDEOPORTCONNECT structure
GUID guidTypeID; // Description of video port connection
DWORD dwPortWidth; // Width of the video port
DWORD dwFlags; // Connection flags
} DDVIDEOPORTCONNECT;
typedef DDVIDEOPORTCONNECT *LPDDVIDEOPORTCONNECT;
@ -52,37 +52,37 @@ typedef DDVIDEOPORTCONNECT *LPDDVIDEOPORTCONNECT;
*/
typedef struct _DDPIXELFORMAT
{
DWORD dwSize; // size of structure
DWORD dwFlags; // pixel format flags
DWORD dwFourCC; // (FOURCC code)
DWORD dwSize; // size of structure
DWORD dwFlags; // pixel format flags
DWORD dwFourCC; // (FOURCC code)
union
{
DWORD dwRGBBitCount; // how many bits per pixel (BD_1,2,4,8,16,24,32)
DWORD dwYUVBitCount; // how many bits per pixel (BD_4,8,16,24,32)
DWORD dwZBufferBitDepth; // how many bits for z buffers (BD_8,16,24,32)
DWORD dwAlphaBitDepth; // how many bits for alpha channels (BD_1,2,4,8)
DWORD dwRGBBitCount; // how many bits per pixel (BD_1,2,4,8,16,24,32)
DWORD dwYUVBitCount; // how many bits per pixel (BD_4,8,16,24,32)
DWORD dwZBufferBitDepth; // how many bits for z buffers (BD_8,16,24,32)
DWORD dwAlphaBitDepth; // how many bits for alpha channels (BD_1,2,4,8)
};
union
{
DWORD dwRBitMask; // mask for red bit
DWORD dwYBitMask; // mask for Y bits
DWORD dwRBitMask; // mask for red bit
DWORD dwYBitMask; // mask for Y bits
};
union
{
DWORD dwGBitMask; // mask for green bits
DWORD dwUBitMask; // mask for U bits
DWORD dwGBitMask; // mask for green bits
DWORD dwUBitMask; // mask for U bits
};
union
{
DWORD dwBBitMask; // mask for blue bits
DWORD dwVBitMask; // mask for V bits
DWORD dwBBitMask; // mask for blue bits
DWORD dwVBitMask; // mask for V bits
};
union
{
DWORD dwRGBAlphaBitMask; // mask for alpha channel
DWORD dwYUVAlphaBitMask; // mask for alpha channel
DWORD dwRGBZBitMask; // mask for Z channel
DWORD dwYUVZBitMask; // mask for Z channel
DWORD dwRGBAlphaBitMask; // mask for alpha channel
DWORD dwYUVAlphaBitMask; // mask for alpha channel
DWORD dwRGBZBitMask; // mask for Z channel
DWORD dwYUVZBitMask; // mask for Z channel
};
} DDPIXELFORMAT;
@ -97,59 +97,59 @@ pointer_default(unique)
interface IVPEConfig : IUnknown {
// gets the various connection information structures (guid, portwidth)
// in an array of structures. If the pointer to the array is NULL, first
// parameter returns the total number of formats supported.
HRESULT GetConnectInfo(
[in,out] LPDWORD lpNumConnectInfo,
[out] LPDDVIDEOPORTCONNECT lpddvpConnectInfo
);
// gets the various connection information structures (guid, portwidth)
// in an array of structures. If the pointer to the array is NULL, first
// parameter returns the total number of formats supported.
HRESULT GetConnectInfo(
[in,out] LPDWORD lpNumConnectInfo,
[out] LPDDVIDEOPORTCONNECT lpddvpConnectInfo
);
HRESULT SetConnectInfo(
[in] DDVIDEOPORTCONNECT ddvpConnectInfo
);
HRESULT SetConnectInfo(
[in] DDVIDEOPORTCONNECT ddvpConnectInfo
);
// gets the various formats supported by the decoder in an array
// of structures. If the pointer to the array is NULL, first parameter
// returns the total number of formats supported.
HRESULT GetVideoFormats(
[in,out] LPDWORD lpNumFormats,
[out] LPDDPIXELFORMAT lpddpfFormats
);
// gets the various formats supported by the decoder in an array
// of structures. If the pointer to the array is NULL, first parameter
// returns the total number of formats supported.
HRESULT GetVideoFormats(
[in,out] LPDWORD lpNumFormats,
[out] LPDDPIXELFORMAT lpddpfFormats
);
// retrives maximum pixels per second rate expected for a given
// format and a given scaling factor. If decoder does not support
// those scaling factors, then it gives the rate and the nearest
// scaling factors.
HRESULT GetMaxPixelRate(
[in] DDPIXELFORMAT ddpfFormat,
[in,out] LPDWORD lpdwZoomHeight,
[in,out] LPDWORD lpdwZoomWidth,
[out] LPDWORD lpdwMaxPixelsPerSecond
);
// retrives maximum pixels per second rate expected for a given
// format and a given scaling factor. If decoder does not support
// those scaling factors, then it gives the rate and the nearest
// scaling factors.
HRESULT GetMaxPixelRate(
[in] DDPIXELFORMAT ddpfFormat,
[in,out] LPDWORD lpdwZoomHeight,
[in,out] LPDWORD lpdwZoomWidth,
[out] LPDWORD lpdwMaxPixelsPerSecond
);
// retrives various properties of the decoder for a given format
HRESULT GetVideoSignalInfo(
[in] DDPIXELFORMAT ddpfFormat,
[out] LPAMVIDEOSIGNALINFO lpAMVideoSignalInfo
);
// asks the decoder to ouput in this format. Return value should give
// appropriate error code
HRESULT SetVideoFormat(
[in] DDPIXELFORMAT ddpfFormat
);
// retrives various properties of the decoder for a given format
HRESULT GetVideoSignalInfo(
[in] DDPIXELFORMAT ddpfFormat,
[out] LPAMVIDEOSIGNALINFO lpAMVideoSignalInfo
);
// asks the decoder to ouput in this format. Return value should give
// appropriate error code
HRESULT SetVideoFormat(
[in] DDPIXELFORMAT ddpfFormat
);
// asks the decoder to treat even fields like odd fields and visa versa
HRESULT SetInvertPolarity(
);
// asks the decoder to treat even fields like odd fields and visa versa
HRESULT SetInvertPolarity(
);
// sets the scaling factors. If decoder does not support these,
// then it sets the values to the nearest factors it can support
HRESULT SetScalingFactors(
[in,out] LPDWORD lpdwZoomHeight,
[in,out] LPDWORD lpdwZoomWidth
);
// sets the scaling factors. If decoder does not support these,
// then it sets the values to the nearest factors it can support
HRESULT SetScalingFactors(
[in,out] LPDWORD lpdwZoomHeight,
[in,out] LPDWORD lpdwZoomWidth
);
}
@ -162,10 +162,9 @@ pointer_default(unique)
]
interface IVPE : IUnknown {
HRESULT SetOverlaySurface(
// [in] LPDIRECTDRAWSURFACE lpOverlaySurface,
HRESULT SetOverlaySurface(
[in] LPUNKNOWN lpOverlaySurface,
[in] INT iNumBackBuffers
);
[in] INT iNumBackBuffers
);
}

View File

@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// File: AuStream.idl
//
// Desc:
// Desc: Used by MIDL tool to generate austream.h
//
// Copyright (c) 1998 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -11,8 +11,8 @@ import "unknwn.idl";
import "mmstream.idl";
cpp_quote("//")
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
cpp_quote("// the ddstream.idl file build. The actual definitions are contained in DDRAW.H")
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
cpp_quote("// the ddstream.idl file build. The actual definitions are contained in DDRAW.H")
cpp_quote("//")
cpp_quote("#if 0")
typedef struct tWAVEFORMATEX WAVEFORMATEX;
@ -35,18 +35,18 @@ pointer_default(unique)
interface IAudioMediaStream : IMediaStream
{
HRESULT GetFormat(
[out] WAVEFORMATEX *pWaveFormatCurrent
);
HRESULT GetFormat(
[out] WAVEFORMATEX *pWaveFormatCurrent
);
HRESULT SetFormat(
[in] const WAVEFORMATEX *lpWaveFormat);
HRESULT SetFormat(
[in] const WAVEFORMATEX *lpWaveFormat);
HRESULT CreateSample(
[in] IAudioData *pAudioData,
[in] DWORD dwFlags,
[out] IAudioStreamSample **ppSample
);
HRESULT CreateSample(
[in] IAudioData *pAudioData,
[in] DWORD dwFlags,
[out] IAudioStreamSample **ppSample
);
}
[
@ -57,9 +57,9 @@ pointer_default(unique)
]
interface IAudioStreamSample : IStreamSample
{
HRESULT GetAudioData(
[out] IAudioData **ppAudio
);
HRESULT GetAudioData(
[out] IAudioData **ppAudio
);
}
@ -71,20 +71,20 @@ pointer_default(unique)
]
interface IMemoryData : IUnknown
{
HRESULT SetBuffer(
[in] DWORD cbSize,
[in] BYTE *pbData,
[in] DWORD dwFlags
);
HRESULT SetBuffer(
[in] DWORD cbSize,
[in] BYTE *pbData,
[in] DWORD dwFlags
);
HRESULT GetInfo(
[out] DWORD *pdwLength,
[out] BYTE **ppbData,
[out] DWORD *pcbActualData
);
HRESULT SetActual(
[in] DWORD cbDataValid
);
HRESULT GetInfo(
[out] DWORD *pdwLength,
[out] BYTE **ppbData,
[out] DWORD *pcbActualData
);
HRESULT SetActual(
[in] DWORD cbDataValid
);
}
[
@ -95,12 +95,12 @@ pointer_default(unique)
]
interface IAudioData : IMemoryData
{
HRESULT GetFormat(
[out] WAVEFORMATEX *pWaveFormatCurrent
);
HRESULT GetFormat(
[out] WAVEFORMATEX *pWaveFormatCurrent
);
HRESULT SetFormat(
[in] const WAVEFORMATEX *lpWaveFormat
);
HRESULT SetFormat(
[in] const WAVEFORMATEX *lpWaveFormat
);
}

View File

@ -4,16 +4,16 @@
// Desc: Core streaming interfaces. Other ActiveMovie-only interfaces
// are in AXExtend.idl.
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, 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")
@ -23,17 +23,17 @@ cpp_quote("#define CHARS_IN_GUID 39")
//=====================================================================
//=====================================================================
// there is a high-level media type (audio, compressed video,
// 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 is defined by the formattype GUID
// for example FORMAT_VideoInfo, FORMAT_WaveFormatEx. In the future this
// 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 recognise then don't touch the format block
// it isn't a type you recognize, then don't touch the format block
typedef struct _AMMediaType {
GUID majortype;
@ -70,7 +70,7 @@ cpp_quote("#define MAX_FILTER_NAME 128")
//=====================================================================
// time information
//
// This represents a time (either reference or stream) in 100ns units
// 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
//=====================================================================
@ -98,17 +98,17 @@ typedef DWORD_PTR HEVENT;
//=====================================================================
//=====================================================================
typedef struct _AllocatorProperties {
long cBuffers; // count of buffers at this allocator
long cbBuffer; // size of each buffer, excluding any prefix
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
// alignment of the buffer - buffer start will be aligned on a multiple of
// this amount
long cbAlign;
long cbAlign;
// prefix amount. Each buffer is immediately preceeded by cbPrefix bytes.
// note that GetPointer points to the beginning of the buffer proper.
// 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;
long cbPrefix;
} ALLOCATOR_PROPERTIES;
@ -197,9 +197,9 @@ interface IPin : IUnknown {
// 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
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(
@ -561,7 +561,7 @@ interface IMediaFilter : IPersist {
typedef enum _FilterState {
State_Stopped, // not in use
State_Paused, // holding resources, ready to go
State_Running // actively processing media stream
State_Running // actively processing media stream
} FILTER_STATE;
// find out what state the filter is in.
@ -650,8 +650,8 @@ interface IBaseFilter : IMediaFilter {
// find out information about this filter
typedef struct _FilterInfo {
WCHAR achName[MAX_FILTER_NAME]; // maybe null if not part of graph
IFilterGraph * pGraph; // null if not part of graph
WCHAR achName[MAX_FILTER_NAME]; // maybe null if not part of graph
IFilterGraph * pGraph; // null if not part of graph
} FILTER_INFO;
HRESULT QueryFilterInfo(
@ -699,23 +699,23 @@ interface IReferenceClock : IUnknown {
// get the time now
HRESULT GetTime(
[out] REFERENCE_TIME *pTime
[out] REFERENCE_TIME *pTime
);
// ask for an async notification that a time has elapsed
HRESULT AdviseTime(
[in] REFERENCE_TIME baseTime, // base reference time
[in] REFERENCE_TIME streamTime, // stream offset time
[in] HEVENT hEvent, // advise via this event
[out] DWORD_PTR * pdwAdviseCookie // where your cookie goes
[in] REFERENCE_TIME baseTime, // base reference time
[in] REFERENCE_TIME streamTime, // stream offset time
[in] HEVENT hEvent, // advise via this event
[out] DWORD_PTR * pdwAdviseCookie // where your cookie goes
);
// ask for an async periodic notification that a time has elapsed
HRESULT AdvisePeriodic(
[in] REFERENCE_TIME startTime, // starting at this time
[in] REFERENCE_TIME periodTime, // time between notifications
[in] REFERENCE_TIME startTime, // starting at this time
[in] REFERENCE_TIME periodTime, // time between notifications
[in] HSEMAPHORE hSemaphore, // advise via a semaphore
[out] DWORD_PTR * pdwAdviseCookie // where your cookie goes
[out] DWORD_PTR * pdwAdviseCookie // where your cookie goes
);
// cancel a request for notification
@ -772,16 +772,16 @@ interface IMediaSample : IUnknown {
// get the stream time at which this sample should start and finish.
HRESULT GetTime(
[out] REFERENCE_TIME * pTimeStart, // put time here
[out] REFERENCE_TIME * pTimeEnd
[out] REFERENCE_TIME * pTimeStart, // put time here
[out] REFERENCE_TIME * pTimeEnd
);
// Set the stream time at which this sample should start and finish.
// pTimeStart==pTimeEnd==NULL will invalidate the time stamps in
// this sample
HRESULT SetTime(
[in] REFERENCE_TIME * pTimeStart, // put time here
[in] REFERENCE_TIME * pTimeEnd
[in] REFERENCE_TIME * pTimeStart, // put time here
[in] REFERENCE_TIME * pTimeEnd
);
// sync-point property. If true, then the beginning of this
@ -816,16 +816,16 @@ interface IMediaSample : IUnknown {
// get the media times for this sample
HRESULT GetMediaTime(
[out] LONGLONG * pTimeStart,
[out] LONGLONG * pTimeEnd
[out] LONGLONG * pTimeStart,
[out] LONGLONG * pTimeEnd
);
// Set the media times for this sample
// pTimeStart==pTimeEnd==NULL will invalidate the media time stamps in
// this sample
HRESULT SetMediaTime(
[in] LONGLONG * pTimeStart,
[in] LONGLONG * pTimeEnd
[in] LONGLONG * pTimeStart,
[in] LONGLONG * pTimeEnd
);
}
@ -956,14 +956,21 @@ typedef IMediaSample2 *PMEDIASAMPLE2;
// (keyframe) so now would be a bad time to return a buffer with a dynamic
// format change, because you will be unable to switch to the new format without
// waiting for the next sync point, causing some frames to be dropped.
#define AM_GBF_PREVFRAMESKIPPED 1
#define AM_GBF_NOTASYNCPOINT 2
#define AM_GBF_PREVFRAMESKIPPED 1
#define AM_GBF_NOTASYNCPOINT 2
cpp_quote("#define AM_GBF_PREVFRAMESKIPPED 1")
cpp_quote("#define AM_GBF_NOTASYNCPOINT 2")
// This may not be supported by allocators
cpp_quote("#define AM_GBF_NOWAIT 4")
// This flag is supported by the VMR's surface allocator
// When set the DDraw surface used for the media sample
// is returned is an un-locked state. Calls the GetPointer on
// the returned media sample will fail and return a NULL pointer
//
cpp_quote("#define AM_GBF_NODDSURFACELOCK 8")
//=====================================================================
//=====================================================================
// Defines IMemAllocator interface
@ -988,12 +995,12 @@ interface IMemAllocator : IUnknown {
// Cannot be called unless the allocator is decommitted.
// Calls to GetBuffer need not succeed until Commit is called.
HRESULT SetProperties(
[in] ALLOCATOR_PROPERTIES* pRequest,
[out] ALLOCATOR_PROPERTIES* pActual);
[in] ALLOCATOR_PROPERTIES* pRequest,
[out] ALLOCATOR_PROPERTIES* pActual);
// return the properties actually being used on this allocator
HRESULT GetProperties(
[out] ALLOCATOR_PROPERTIES* pProps);
[out] ALLOCATOR_PROPERTIES* pProps);
// commit the memory for the agreed buffers
@ -1035,7 +1042,7 @@ typedef IMemAllocator *PMEMALLOCATOR;
//
// If the allocator supports IMemAllocator2 then callbacks are
// available
//
//
//=====================================================================
//=====================================================================
[
@ -1121,6 +1128,7 @@ interface IMemInputPin : IUnknown {
// it may use the caller's thread to wait until it can.
HRESULT Receive(
[in] IMediaSample * pSample);
// Same as Receive but with multiple samples. Useful for
// fragmented streams
HRESULT ReceiveMultiple(
@ -1152,8 +1160,7 @@ pointer_default(unique)
]
interface IAMovieSetup : IUnknown {
// methods to register and unregister
// filter, etc.
// methods to register and unregister filter, etc.
HRESULT Register( );
HRESULT Unregister( );
@ -1172,18 +1179,18 @@ typedef IAMovieSetup *PAMOVIESETUP;
typedef enum AM_SEEKING_SeekingFlags
{
AM_SEEKING_NoPositioning = 0x00, // No change
AM_SEEKING_AbsolutePositioning = 0x01, // Position is supplied and is absolute
AM_SEEKING_RelativePositioning = 0x02, // Position is supplied and is relative
AM_SEEKING_IncrementalPositioning = 0x03, // (Stop) position relative to current
// Useful for seeking when paused (use +1)
AM_SEEKING_PositioningBitsMask = 0x03, // Useful mask
AM_SEEKING_SeekToKeyFrame = 0x04, // Just seek to key frame (performance gain)
AM_SEEKING_ReturnTime = 0x08, // Plug the media time equivalents back into the supplied LONGLONGs
AM_SEEKING_NoPositioning = 0x00, // No change
AM_SEEKING_AbsolutePositioning = 0x01, // Position is supplied and is absolute
AM_SEEKING_RelativePositioning = 0x02, // Position is supplied and is relative
AM_SEEKING_IncrementalPositioning = 0x03, // (Stop) position relative to current
// Useful for seeking when paused (use +1)
AM_SEEKING_PositioningBitsMask = 0x03, // Useful mask
AM_SEEKING_SeekToKeyFrame = 0x04, // Just seek to key frame (performance gain)
AM_SEEKING_ReturnTime = 0x08, // Plug the media time equivalents back into the supplied LONGLONGs
AM_SEEKING_Segment = 0x10, // At end just do EC_ENDOFSEGMENT,
// don't do EndOfStream
AM_SEEKING_NoFlush = 0x20 // Don't flush
AM_SEEKING_Segment = 0x10, // At end just do EC_ENDOFSEGMENT,
// don't do EndOfStream
AM_SEEKING_NoFlush = 0x20 // Don't flush
} AM_SEEKING_SEEKING_FLAGS;
typedef enum AM_SEEKING_SeekingCapabilities
@ -1244,7 +1251,7 @@ interface IMediaSeeking : IUnknown {
// Set current and end positions in one operation
// Either pointer may be null, implying no change
HRESULT SetPositions( [in,out] LONGLONG * pCurrent, [in] DWORD dwCurrentFlags
, [in,out] LONGLONG * pStop, [in] DWORD dwStopFlags );
, [in,out] LONGLONG * pStop, [in] DWORD dwStopFlags );
// Get CurrentPosition & StopTime
// Either pointer may be null, implying not interested

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,10 @@
//==========================================================================;
//------------------------------------------------------------------------------
// File: Control.odl
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
// Desc:
//
// Copyright (c) 1992 - 1999 Microsoft Corporation. All Rights Reserved.
//
//--------------------------------------------------------------------------;
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// Neutral/English language type library for basic Quartz control interfaces
@ -186,13 +183,13 @@ library QuartzTypeLib
// cancelled by CancelDefaultHandling().
HRESULT RestoreDefaultHandling( [in] long lEvCode);
// Free any resources associated with the parameters to an event.
// Free any resources associated with the parameters to an event.
// Event parameters may be LONGs, IUnknown* or BSTR. No action
// is taken with LONGs. IUnknown are passed addrefed and need a
// Release call. BSTR are allocated by the task allocator and will be
// freed by calling the task allocator.
HRESULT FreeEventParams(
[in] long lEvCode,
[in] long lEvCode,
[in] LONG_PTR lParam1,
[in] LONG_PTR lParam2
);
@ -212,7 +209,7 @@ library QuartzTypeLib
// hwnd - handle of window to notify -
// pass NULL to stop notification
// lMsg - Message id to pass messages with
// lInstanceData - will come back in lParam
// lInstanceData - will come back in lParam
//
// The event information must still be retrived by a call
// to GetEvent when the window message is received.
@ -222,7 +219,7 @@ library QuartzTypeLib
HRESULT SetNotifyWindow(
[in] OAHWND hwnd,
[in] long lMsg,
[in] LONG_PTR lInstanceData
[in] LONG_PTR lInstanceData
);
// Turn events notification on or off
@ -464,8 +461,8 @@ library QuartzTypeLib
[out] long *pWidth,
[out] long *pHeight);
// show and hide cursors useful when fullscreen
HRESULT HideCursor([in] long HideCursor);
// show and hide cursors useful when fullscreen
HRESULT HideCursor([in] long HideCursor);
HRESULT IsCursorHidden([out] long *CursorHidden);
}

View File

@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// File: DDStream.idl
//
// Desc:
// Desc: Used by MIDL tool to generate ddstream.h
//
// Copyright (c) 1998 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -11,8 +11,8 @@ import "unknwn.idl";
import "mmstream.idl";
cpp_quote("//")
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
cpp_quote("// the ddstream.idl file build. The actual definitions are contained in DDRAW.H")
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
cpp_quote("// the ddstream.idl file build. The actual definitions are contained in DDRAW.H")
cpp_quote("//")
cpp_quote("#if 0")
typedef void * LPDDSURFACEDESC;
@ -21,7 +21,7 @@ cpp_quote("#endif")
cpp_quote("#include <ddraw.h>")
enum {
DDSFF_PROGRESSIVERENDER = 0x00000001
DDSFF_PROGRESSIVERENDER = 0x00000001
};
interface IDirectDraw;
@ -40,30 +40,30 @@ pointer_default(unique)
]
interface IDirectDrawMediaStream : IMediaStream
{
HRESULT GetFormat(
[out] DDSURFACEDESC *pDDSDCurrent,
[out] IDirectDrawPalette **ppDirectDrawPalette,
[out] DDSURFACEDESC *pDDSDDesired,
[out] DWORD *pdwFlags);
HRESULT GetFormat(
[out] DDSURFACEDESC *pDDSDCurrent,
[out] IDirectDrawPalette **ppDirectDrawPalette,
[out] DDSURFACEDESC *pDDSDDesired,
[out] DWORD *pdwFlags);
HRESULT SetFormat(
[in] const DDSURFACEDESC *pDDSurfaceDesc,
[in] IDirectDrawPalette *pDirectDrawPalette);
HRESULT SetFormat(
[in] const DDSURFACEDESC *pDDSurfaceDesc,
[in] IDirectDrawPalette *pDirectDrawPalette);
HRESULT GetDirectDraw(
[out] IDirectDraw **ppDirectDraw);
HRESULT GetDirectDraw(
[out] IDirectDraw **ppDirectDraw);
HRESULT SetDirectDraw(
[in] IDirectDraw *pDirectDraw);
HRESULT SetDirectDraw(
[in] IDirectDraw *pDirectDraw);
HRESULT CreateSample(
[in] IDirectDrawSurface *pSurface,
[in] const RECT *pRect,
[in] DWORD dwFlags,
[out]IDirectDrawStreamSample **ppSample);
HRESULT CreateSample(
[in] IDirectDrawSurface *pSurface,
[in] const RECT *pRect,
[in] DWORD dwFlags,
[out]IDirectDrawStreamSample **ppSample);
HRESULT GetTimePerFrame(
[out] STREAM_TIME *pFrameTime);
HRESULT GetTimePerFrame(
[out] STREAM_TIME *pFrameTime);
};
@ -76,11 +76,11 @@ pointer_default(unique)
]
interface IDirectDrawStreamSample : IStreamSample
{
HRESULT GetSurface(
[out] IDirectDrawSurface ** ppDirectDrawSurface,
[out] RECT * pRect);
HRESULT GetSurface(
[out] IDirectDrawSurface ** ppDirectDrawSurface,
[out] RECT * pRect);
HRESULT SetRect(
[in] const RECT * pRect);
HRESULT SetRect(
[in] const RECT * pRect);
};

View File

@ -5,15 +5,23 @@
// MIDL tool to produce the type library (devenum.tlb) and marshalling
// code.
//
// Copyright (c) 1998 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
cpp_quote("#define CDEF_CLASS_DEFAULT 0x0001")
cpp_quote("#define CDEF_BYPASS_CLASS_MANAGER 0x0002")
//cpp_quote("#define CDEF_CLASS_LEGACY 0x0004")
cpp_quote("#define CDEF_CLASS_DEFAULT 0x0001")
cpp_quote("#define CDEF_BYPASS_CLASS_MANAGER 0x0002")
//cpp_quote("#define CDEF_CLASS_LEGACY 0x0004")
cpp_quote("#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008")
// If any of these flags are set, then only the types specified
// by the flags are enumerated
cpp_quote("#define CDEF_DEVMON_CMGR_DEVICE 0x0010")
cpp_quote("#define CDEF_DEVMON_DMO 0x0020")
cpp_quote("#define CDEF_DEVMON_PNP_DEVICE 0x0040")
cpp_quote("#define CDEF_DEVMON_FILTER 0x0080")
cpp_quote("#define CDEF_DEVMON_SELECTIVE_MASK 0x00f0")
[
object,
uuid(29840822-5B84-11D0-BD3B-00A0C911CE86),
@ -24,7 +32,7 @@ interface ICreateDevEnum : IUnknown
import "oaidl.idl";
HRESULT CreateClassEnumerator(
[in] REFCLSID clsidDeviceClass,
[out] IEnumMoniker ** ppEnumMoniker,
[in] DWORD dwFlags);
[in] REFCLSID clsidDeviceClass,
[out] IEnumMoniker ** ppEnumMoniker,
[in] DWORD dwFlags);
}

View File

@ -1,9 +1,10 @@
//------------------------------------------------------------------------------
// File: DMODShow.idl
//
// Desc:
// Desc: This file will be processed by the MIDL tool to
// produce dmodshow.h and proxy-stub code.
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -13,6 +14,7 @@ import "mediaobj.idl";
// 94297043-bd82-4dfd-b0de-8177739c6d20
cpp_quote("DEFINE_GUID(CLSID_DMOWrapperFilter, 0x94297043,0xbd82,0x4dfd,0xb0,0xde,0x81,0x77,0x73,0x9c,0x6d,0x20);")
// bcd5796c-bd52-4d30-ab76-70f975b89199
cpp_quote("DEFINE_GUID(CLSID_DMOFilterCategory,0xbcd5796c,0xbd52,0x4d30,0xab,0x76,0x70,0xf9,0x75,0xb8,0x91,0x99);")
@ -24,9 +26,9 @@ cpp_quote("DEFINE_GUID(CLSID_DMOFilterCategory,0xbcd5796c,0xbd52,0x4d30,0xab,0x7
interface IDMOWrapperFilter : IUnknown
{
// Init is passed in the clsid (so it can call CoCreateInstance)
// and the catgory under which the DMO lives
// Note that catDMO can be CLSID_NULL in which case no special
// category-specific processing will be invoked in the wrapper filter
// and the catgory under which the DMO lives.
// Note that catDMO can be CLSID_NULL, in which case no special
// category-specific processing will be invoked in the wrapper filter.
HRESULT Init(REFCLSID clsidDMO, REFCLSID catDMO);
}

View File

@ -3,13 +3,13 @@
//
// Desc:
//
// Copyright (c) 1992-2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
import "objidl.idl";
import "strmif.idl"; // for media type and time definitions
import "unknwn.idl";
import "objidl.idl";
import "strmif.idl"; // for media type and time definitions
import "wmsdkidl.idl";
cpp_quote( "EXTERN_GUID( IID_IConfigAsfWriter,0x45086030,0xF7E4,0x486a,0xB5,0x04,0x82,0x6B,0xB5,0x79,0x2A,0x3B );" )

View File

@ -3,7 +3,7 @@
//
// Desc: DirectShow interfaces to control playback of a DVD filter graph.
//
// Copyright (c) 1992-2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -1493,8 +1493,8 @@ interface IDvdControl2 : IUnknown {
// DVD_HMSF_TimeCodeEvents
//
// Lets the application specify to the Navigator if it wants to get the new time
// event EC_DVD_CURRENT_HMSF_TIME with the HMSF format rather than the older
// EC_DVD_CURRENT_TIME events.
// event EC_DVD_CURRENT_HMSF_TIME with the HMSF format rather than the older
// EC_DVD_CURRENT_TIME events.
//
// FALSE - disable (default). Older EC_DVD_CURRENT_TIME events are returned.
// TRUE - enable. Navigator will send the app EC_DVD_CURRENT_HMSF_TIME events.
@ -1660,11 +1660,11 @@ enum DVD_TextCharSet {
DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
};
cpp_quote ("#define DVD_TITLE_MENU 0x000")
cpp_quote ("#define DVD_TITLE_MENU 0x000")
cpp_quote ("#define DVD_STREAM_DATA_CURRENT 0x800")
cpp_quote ("#define DVD_STREAM_DATA_VMGM 0x400")
cpp_quote ("#define DVD_STREAM_DATA_VTSM 0x401")
cpp_quote ("#define DVD_DEFAULT_AUDIO_STREAM 0x0f")
cpp_quote ("#define DVD_DEFAULT_AUDIO_STREAM 0x0f")
// DVD Decoder Caps data
typedef struct tagDVD_DECODER_CAPS
@ -1684,11 +1684,11 @@ typedef struct tagDVD_DECODER_CAPS
} DVD_DECODER_CAPS ;
// Bits for decoder's audio format support
cpp_quote ("#define DVD_AUDIO_CAPS_AC3 0x00000001")
cpp_quote ("#define DVD_AUDIO_CAPS_MPEG2 0x00000002")
cpp_quote ("#define DVD_AUDIO_CAPS_LPCM 0x00000004")
cpp_quote ("#define DVD_AUDIO_CAPS_DTS 0x00000008")
cpp_quote ("#define DVD_AUDIO_CAPS_SDDS 0x00000010")
cpp_quote ("#define DVD_AUDIO_CAPS_AC3 0x00000001")
cpp_quote ("#define DVD_AUDIO_CAPS_MPEG2 0x00000002")
cpp_quote ("#define DVD_AUDIO_CAPS_LPCM 0x00000004")
cpp_quote ("#define DVD_AUDIO_CAPS_DTS 0x00000008")
cpp_quote ("#define DVD_AUDIO_CAPS_SDDS 0x00000010")
[

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// File: DynGraph.idl
//
// Desc: Dynamic graph interfaces.
// Desc: Dynamic graph interfaces
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -98,9 +98,9 @@ interface IGraphConfig : IUnknown {
[in] DWORD dwFlags);
HRESULT Reconfigure([in] IGraphConfigCallback *pCallback,
[in] PVOID pvContext,
[in] DWORD dwFlags,
[in] HANDLE hAbortEvent);
[in] PVOID pvContext,
[in] DWORD dwFlags,
[in] HANDLE hAbortEvent);
HRESULT AddFilterToCache([in] IBaseFilter *pFilter);

View File

@ -3,7 +3,7 @@
//
// Desc:
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -120,25 +120,25 @@ interface IAMovie : IFilterGraph
HRESULT get_Rate(
[out] double * pdRate);
/* New methods */
HRESULT RemoveAllFilters();
HRESULT Play();
HRESULT PlayFile([in] LPCWSTR strFilename);
HRESULT EnumFiltersByInterface( [in] REFIID riid, [out] IEnumFilters ** ppEnum );
HRESULT EnumPins( [out] IEnumPins ** ppEnum );
HRESULT EnumPinsIn( [out] IEnumPins ** ppEnum );
HRESULT EnumPinsOut( [out] IEnumPins ** ppEnum );
HRESULT RenderAll();
HRESULT RenderNewFile( [in] LPCWSTR strFilename);
/* New methods */
HRESULT RemoveAllFilters();
HRESULT Play();
HRESULT PlayFile([in] LPCWSTR strFilename);
HRESULT EnumFiltersByInterface( [in] REFIID riid, [out] IEnumFilters ** ppEnum );
HRESULT EnumPins( [out] IEnumPins ** ppEnum );
HRESULT EnumPinsIn( [out] IEnumPins ** ppEnum );
HRESULT EnumPinsOut( [out] IEnumPins ** ppEnum );
HRESULT RenderAll();
HRESULT RenderNewFile( [in] LPCWSTR strFilename);
// Free any resources associated with the parameters to an event.
// Free any resources associated with the parameters to an event.
// Event parameters may be LONGs, IUnknown* or BSTR. No action
// is taken with LONGs. IUnknown are passed addrefed and need a
// Release call. BSTR are allocated by the task allocator and will be
// freed by calling the task allocator.
HRESULT FreeEventParams(
[in] long lEvCode,
[in] long lParam1,
[in] long lParam2);
[in] long lEvCode,
[in] long lParam1,
[in] long lParam2);
}

View File

@ -1,11 +1,10 @@
//------------------------------------------------------------------------------
// File: MediaObj.idl
//
// Desc: Define the interfaces for DirectX Media Objects. This file will
// be processed by the MIDL tool to produce mediaobj.h and proxy-stub
// code.
// Desc: Define the interfaces for DirectX Media Objects. This file will be
// processed by the MIDL tool to produce mediaobj.h and proxy-stub code.
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -290,10 +289,10 @@ interface IMediaObject : IUnknown
HRESULT ProcessOutput(
DWORD dwFlags, // DMO_PROCESS_OUTPUT_FLAGS
DWORD cOutputBufferCount, // # returned by GetStreamCount()
[in,out,size_is(cOutputBufferCount)]
DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, // one per stream
[out] DWORD *pdwStatus // TBD, must be set to 0
);
[in,out,size_is(cOutputBufferCount)]
DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, // one per stream
[out] DWORD *pdwStatus // TBD, must be set to 0
);
// Locking - lock if bLock is TRUE, otherwise unlock
HRESULT Lock(LONG bLock);
@ -349,7 +348,7 @@ interface IMediaObjectInPlace : IUnknown {
// for very fast initialization of a number of In-Place objects
// in a known state.
HRESULT Clone(
[out] IMediaObjectInPlace **ppMediaObject
[out] IMediaObjectInPlace **ppMediaObject
);
// GetLatency - Returns a REFERENCE_TIME value
@ -357,7 +356,7 @@ interface IMediaObjectInPlace : IUnknown {
// processing this effect will add to the graph. This assumes
// the effect cost per buffer is a constant.
HRESULT GetLatency(
[out] REFERENCE_TIME *pLatencyTime
[out] REFERENCE_TIME *pLatencyTime
);
}
@ -393,20 +392,20 @@ uuid(be8f4f4e-5b16-4d29-b350-7f6b5d9298ac)
]
interface IDMOVideoOutputOptimizations : IUnknown {
HRESULT QueryOperationModePreferences (
ULONG ulOutputStreamIndex,
DWORD *pdwRequestedCapabilities
ULONG ulOutputStreamIndex,
DWORD *pdwRequestedCapabilities
);
HRESULT SetOperationMode (
ULONG ulOutputStreamIndex,
DWORD dwEnabledFeatures
ULONG ulOutputStreamIndex,
DWORD dwEnabledFeatures
);
HRESULT GetCurrentOperationMode (
ULONG ulOutputStreamIndex,
DWORD *pdwEnabledFeatures
ULONG ulOutputStreamIndex,
DWORD *pdwEnabledFeatures
);
HRESULT GetCurrentSampleRequirements (
ULONG ulOutputStreamIndex,
DWORD *pdwRequestedFeatures
ULONG ulOutputStreamIndex,
DWORD *pdwRequestedFeatures
);
}

View File

@ -4,12 +4,12 @@
// Desc: Definition of the IMediaParams and associated interfaces. These
// interfaces are designed to allow communication of curve-following
// behaviors for parameters of objects which require dynamic changes
// to their parameters at run time. All changes are specified by
// to their parameters at run time. All changes are specified by
// timestamp and curve type to ensure the parameters can be set
// at sufficient accuracy with predictable behavior on subsequent
// playback of the same curves.
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -19,9 +19,9 @@ import "strmif.idl";
//------------------------------------------------------------------------------
// Define the semantic type to be used for each parameter. All values passed
// Define the semantic type to be used for each parameter. All values passed
// into this interface are 32-bit floats, but the interface can specify that
// the values must be integer, or booleans or enumerated types
// the values must be integer, booleans, or enumerated types
//------------------------------------------------------------------------------
typedef float MP_DATA; // All data is 32-bit floats
@ -136,10 +136,10 @@ const MP_FLAGS MPF_PUNCHIN_STOPPED = 0x0002; // Return change notifications duri
//------------------------------------------------------------------------------
// IMediaParamInfo - Interface used to determine the names, data types and
// units of the parameters which are exposed by the object. This interface
// units of the parameters which are exposed by the object. This interface
// is used at discovery time, and is not required during run-time since the
// objects parameters are a fixed set and this data can be cached by the
// calling applicaiton
// calling applicaiton.
//------------------------------------------------------------------------------
[
object,

View File

@ -1,9 +1,10 @@
//------------------------------------------------------------------------------
// File: MMStream.idl
//
// Desc: MultiMedia streaming interface IDL file.
// Desc: MultiMedia streaming interface IDL file. Used by MIDL tool
// to generate mmstream.h.
//
// Copyright (c) 1998 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -11,20 +12,20 @@ import "unknwn.idl";
cpp_quote("#define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)")
cpp_quote("#define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)")
cpp_quote("#define MS_S_PENDING MS_SUCCESS_CODE(1)")
cpp_quote("#define MS_S_NOUPDATE MS_SUCCESS_CODE(2)")
cpp_quote("#define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)")
cpp_quote("#define MS_S_PENDING MS_SUCCESS_CODE(1)")
cpp_quote("#define MS_S_NOUPDATE MS_SUCCESS_CODE(2)")
cpp_quote("#define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)")
cpp_quote("#define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)")
cpp_quote("#define MS_E_PURPOSEID MS_ERROR_CODE(2)")
cpp_quote("#define MS_E_NOSTREAM MS_ERROR_CODE(3)")
cpp_quote("#define MS_E_NOSEEKING MS_ERROR_CODE(4)")
cpp_quote("#define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)")
cpp_quote("#define MS_E_BUSY MS_ERROR_CODE(6)")
cpp_quote("#define MS_E_NOTINIT MS_ERROR_CODE(7)")
cpp_quote("#define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)")
cpp_quote("#define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)")
cpp_quote("#define MS_E_NOTRUNNING MS_ERROR_CODE(10)")
cpp_quote("#define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)")
cpp_quote("#define MS_E_PURPOSEID MS_ERROR_CODE(2)")
cpp_quote("#define MS_E_NOSTREAM MS_ERROR_CODE(3)")
cpp_quote("#define MS_E_NOSEEKING MS_ERROR_CODE(4)")
cpp_quote("#define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)")
cpp_quote("#define MS_E_BUSY MS_ERROR_CODE(6)")
cpp_quote("#define MS_E_NOTINIT MS_ERROR_CODE(7)")
cpp_quote("#define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)")
cpp_quote("#define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)")
cpp_quote("#define MS_E_NOTRUNNING MS_ERROR_CODE(10)")
cpp_quote("// {A35FF56A-9FDA-11d0-8FDF-00C04FD9189D}")
cpp_quote("DEFINE_GUID(MSPID_PrimaryVideo, ")
@ -44,34 +45,34 @@ typedef GUID MSPID;
typedef REFGUID REFMSPID;
typedef enum {
STREAMTYPE_READ = 0,
STREAMTYPE_WRITE = 1,
STREAMTYPE_TRANSFORM= 2
STREAMTYPE_READ = 0,
STREAMTYPE_WRITE = 1,
STREAMTYPE_TRANSFORM= 2
} STREAM_TYPE;
typedef enum {
STREAMSTATE_STOP = 0,
STREAMSTATE_RUN = 1
STREAMSTATE_STOP = 0,
STREAMSTATE_RUN = 1
} STREAM_STATE;
typedef enum {
COMPSTAT_NOUPDATEOK = 0x00000001,
COMPSTAT_WAIT = 0x00000002,
COMPSTAT_ABORT = 0x00000004
COMPSTAT_NOUPDATEOK = 0x00000001,
COMPSTAT_WAIT = 0x00000002,
COMPSTAT_ABORT = 0x00000004
} COMPLETION_STATUS_FLAGS;
// Flags for GetInformation
enum {
MMSSF_HASCLOCK = 0x00000001,
MMSSF_SUPPORTSEEK = 0x00000002,
MMSSF_ASYNCHRONOUS = 0x00000004
MMSSF_HASCLOCK = 0x00000001,
MMSSF_SUPPORTSEEK = 0x00000002,
MMSSF_ASYNCHRONOUS = 0x00000004
};
// Flags for StreamSample::Update
enum {
SSUPDATE_ASYNC = 0x00000001,
SSUPDATE_CONTINUOUS = 0x00000002
SSUPDATE_ASYNC = 0x00000001,
SSUPDATE_CONTINUOUS = 0x00000002
};
interface IMultiMediaStream;
@ -87,35 +88,35 @@ pointer_default(unique)
]
interface IMultiMediaStream : IUnknown {
HRESULT GetInformation(
[out] DWORD *pdwFlags,
[out] STREAM_TYPE *pStreamType);
HRESULT GetInformation(
[out] DWORD *pdwFlags,
[out] STREAM_TYPE *pStreamType);
HRESULT GetMediaStream(
[in] REFMSPID idPurpose,
[out] IMediaStream **ppMediaStream);
HRESULT GetMediaStream(
[in] REFMSPID idPurpose,
[out] IMediaStream **ppMediaStream);
HRESULT EnumMediaStreams(
[in] long Index,
[out] IMediaStream **ppMediaStream);
HRESULT EnumMediaStreams(
[in] long Index,
[out] IMediaStream **ppMediaStream);
HRESULT GetState(
[out] STREAM_STATE *pCurrentState);
HRESULT GetState(
[out] STREAM_STATE *pCurrentState);
HRESULT SetState(
[in] STREAM_STATE NewState);
HRESULT SetState(
[in] STREAM_STATE NewState);
HRESULT GetTime(
[out] STREAM_TIME *pCurrentTime);
HRESULT GetTime(
[out] STREAM_TIME *pCurrentTime);
HRESULT GetDuration(
[out] STREAM_TIME *pDuration);
HRESULT GetDuration(
[out] STREAM_TIME *pDuration);
HRESULT Seek(
[in] STREAM_TIME SeekTime);
HRESULT Seek(
[in] STREAM_TIME SeekTime);
HRESULT GetEndOfStreamEventHandle(
[out] HANDLE *phEOS);
HRESULT GetEndOfStreamEventHandle(
[out] HANDLE *phEOS);
};
@ -126,29 +127,29 @@ uuid(B502D1BD-9A57-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IMediaStream : IUnknown {
HRESULT GetMultiMediaStream(
[out] IMultiMediaStream **ppMultiMediaStream);
HRESULT GetMultiMediaStream(
[out] IMultiMediaStream **ppMultiMediaStream);
HRESULT GetInformation(
[out] MSPID *pPurposeId,
[out] STREAM_TYPE *pType);
HRESULT GetInformation(
[out] MSPID *pPurposeId,
[out] STREAM_TYPE *pType);
HRESULT SetSameFormat(
[in] IMediaStream *pStreamThatHasDesiredFormat,
[in] DWORD dwFlags);
HRESULT SetSameFormat(
[in] IMediaStream *pStreamThatHasDesiredFormat,
[in] DWORD dwFlags);
HRESULT AllocateSample(
[in] DWORD dwFlags,
[out] IStreamSample **ppSample);
HRESULT AllocateSample(
[in] DWORD dwFlags,
[out] IStreamSample **ppSample);
HRESULT CreateSharedSample(
[in] IStreamSample *pExistingSample,
[in] DWORD dwFlags,
[out] IStreamSample **ppNewSample);
HRESULT CreateSharedSample(
[in] IStreamSample *pExistingSample,
[in] DWORD dwFlags,
[out] IStreamSample **ppNewSample);
HRESULT SendEndOfStream(DWORD dwFlags);
HRESULT SendEndOfStream(DWORD dwFlags);
};
@ -160,28 +161,28 @@ uuid(B502D1BE-9A57-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IStreamSample : IUnknown {
HRESULT GetMediaStream(
[in] IMediaStream **ppMediaStream);
HRESULT GetMediaStream(
[in] IMediaStream **ppMediaStream);
HRESULT GetSampleTimes(
[out] STREAM_TIME * pStartTime,
[out] STREAM_TIME * pEndTime,
[out] STREAM_TIME * pCurrentTime);
HRESULT GetSampleTimes(
[out] STREAM_TIME * pStartTime,
[out] STREAM_TIME * pEndTime,
[out] STREAM_TIME * pCurrentTime);
HRESULT SetSampleTimes(
[in] const STREAM_TIME *pStartTime,
[in] const STREAM_TIME *pEndTime);
HRESULT SetSampleTimes(
[in] const STREAM_TIME *pStartTime,
[in] const STREAM_TIME *pEndTime);
HRESULT Update(
[in] DWORD dwFlags,
[in] HANDLE hEvent,
[in] PAPCFUNC pfnAPC,
[in] DWORD_PTR dwAPCData);
HRESULT Update(
[in] DWORD dwFlags,
[in] HANDLE hEvent,
[in] PAPCFUNC pfnAPC,
[in] DWORD_PTR dwAPCData);
HRESULT CompletionStatus(
[in] DWORD dwFlags,
[in] DWORD dwMilliseconds);
HRESULT CompletionStatus(
[in] DWORD dwFlags,
[in] DWORD dwMilliseconds);
};

View File

@ -3,7 +3,7 @@
//
// Desc:
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -59,9 +59,9 @@ enum
// used to set volumes on the mixer and mixer pins
typedef struct
{
REFERENCE_TIME rtEnd; //end Time
double dLevel; //end Volume Level
BOOL bMethod; //jump or interpolate
REFERENCE_TIME rtEnd; //end Time
double dLevel; //end Volume Level
BOOL bMethod; //jump or interpolate
} DEXTER_AUDIO_VOLUMEENVELOPE ;
// used in IAMTimeline::Get(Set)InsertMode
@ -1596,40 +1596,40 @@ enum
// Filename doesn't exist, or DShow doesn't recognize the filetype
// EXTRA - filename
cpp_quote("#define DEX_IDS_BAD_SOURCE_NAME 1400")
cpp_quote("#define DEX_IDS_BAD_SOURCE_NAME 1400")
// Filename doesn't exist or contains unknown data
// EXTRA - filename (maybe no codec?)
cpp_quote("#define DEX_IDS_BAD_SOURCE_NAME2 1401")
// filename was required, but wasn't given
cpp_quote("#define DEX_IDS_MISSING_SOURCE_NAME 1402")
cpp_quote("#define DEX_IDS_MISSING_SOURCE_NAME 1402")
// cannot parse data provided by this source
// !!! what source?
cpp_quote("#define DEX_IDS_UNKNOWN_SOURCE 1403")
cpp_quote("#define DEX_IDS_UNKNOWN_SOURCE 1403")
// unexpected error - some DShow component not installed correctly
cpp_quote("#define DEX_IDS_INSTALL_PROBLEM 1404")
cpp_quote("#define DEX_IDS_INSTALL_PROBLEM 1404")
// Source filter does not accept filenames
// !!! What source?
cpp_quote("#define DEX_IDS_NO_SOURCE_NAMES 1405")
cpp_quote("#define DEX_IDS_NO_SOURCE_NAMES 1405")
// The group's mediatype is not supported
// EXTRA - gives you an integer group number
cpp_quote("#define DEX_IDS_BAD_MEDIATYPE 1406")
cpp_quote("#define DEX_IDS_BAD_MEDIATYPE 1406")
// Invalid stream number for a source
// EXTRA - gives the stream number !!! should identify which source!
cpp_quote("#define DEX_IDS_STREAM_NUMBER 1407")
cpp_quote("#define DEX_IDS_STREAM_NUMBER 1407")
// You ran out of memory
cpp_quote("#define DEX_IDS_OUTOFMEMORY 1408")
cpp_quote("#define DEX_IDS_OUTOFMEMORY 1408")
// One bitmap in a sequence was not the same type as the others
// EXTRA - gives the bitmap name
cpp_quote("#define DEX_IDS_DIBSEQ_NOTALLSAME 1409")
cpp_quote("#define DEX_IDS_DIBSEQ_NOTALLSAME 1409")
// Clip's mediatimes are invalid, or DibSeq too short, or a previous error caused this
// !!! Needs to give the clip name
@ -1637,19 +1637,19 @@ cpp_quote("#define DEX_IDS_CLIPTOOSHORT 1410")
// Clsid of FX/Transition is not a DirectX Transform
// EXTRA - gives the CLSID
cpp_quote("#define DEX_IDS_INVALID_DXT 1411")
cpp_quote("#define DEX_IDS_INVALID_DXT 1411")
// Default FX/Transition Clsid is not a DirectX Transform"
// EXTRA - gives the CLSID
cpp_quote("#define DEX_IDS_INVALID_DEFAULT_DXT 1412")
cpp_quote("#define DEX_IDS_INVALID_DEFAULT_DXT 1412")
// Your version of DX doesn't support 3D transforms"
// EXTRA - gives the CLSID of the 3D transform you tried to use
cpp_quote("#define DEX_IDS_NO_3D 1413")
cpp_quote("#define DEX_IDS_NO_3D 1413")
// This DirectX Transform is not the right kind, or is broken
// EXTRA - gives the CLSID of the broken transform
cpp_quote("#define DEX_IDS_BROKEN_DXT 1414")
cpp_quote("#define DEX_IDS_BROKEN_DXT 1414")
// No such property exists on an object
// EXTRA - gives the name of the property (if given as a string)
@ -1657,11 +1657,11 @@ cpp_quote("#define DEX_IDS_NO_SUCH_PROPERTY 1415")
// Illegal value for a property
// EXTRA - gives the VARIANT value that was illegal
cpp_quote("#define DEX_IDS_ILLEGAL_PROPERTY_VAL 1416")
cpp_quote("#define DEX_IDS_ILLEGAL_PROPERTY_VAL 1416")
// Syntax error in XML file at line:
// EXTRA - gives I4 line number, if available
cpp_quote("#define DEX_IDS_INVALID_XML 1417")
cpp_quote("#define DEX_IDS_INVALID_XML 1417")
// Can't find filter specified in XML by Category and Instance
// EXTRA - gives friendly name (instance)
@ -1682,14 +1682,14 @@ cpp_quote("#define DEX_IDS_CANT_FIND_COMPRESSOR 1421")
// !!! Here go problems hooking up sources or finding codecs
// THE FOLLOWING SHOULD NEVER HAPPEN - please call me if they do
// THE FOLLOWING SHOULD NEVER HAPPEN - please email directx@microsoft.com if they do
// Unexpected error in parsing the timeline
cpp_quote("#define DEX_IDS_TIMELINE_PARSE 1426")
cpp_quote("#define DEX_IDS_TIMELINE_PARSE 1426")
// Unexpected error building the filtergraph
cpp_quote("#define DEX_IDS_GRAPH_ERROR 1427")
// Unexpected error with the internal grid
cpp_quote("#define DEX_IDS_GRID_ERROR 1428")
cpp_quote("#define DEX_IDS_GRID_ERROR 1428")
// Unexpected error getting an interface
cpp_quote("#define DEX_IDS_INTERFACE_ERROR 1429")

View File

@ -3,14 +3,23 @@
//
// Desc: IDL source for RegBag.dll.
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2001.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#pragma once")
#ifndef DO_NO_IMPORTS
import "objidl.idl";
import "oaidl.idl";
import "ocidl.idl";
#endif
//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////
@ -23,21 +32,21 @@ import "ocidl.idl";
//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////////////
[object,
hidden, restricted,
uuid(8A674B48-1F63-11d3-B64C-00C04F79498E),
helpstring("Create property bag backed by registry"),
pointer_default(unique),
local
hidden, restricted,
uuid(8A674B48-1F63-11d3-B64C-00C04F79498E),
helpstring("Create property bag backed by registry"),
pointer_default(unique),
local
]
interface ICreatePropBagOnRegKey : IUnknown {
// NOTE: it is up to the caller to set the correct registry access based on the interface
// and methods the caller intends to use
// IPropertyBag2::GetPropertyInfo and CountProperties require both KEY_QUERY_VALUE and KEY_ENUMERATE_SUBKEYS
// IPropertyBagXXX::Read requires KEY_READ
// IPropertyBagXXX::Write requires KEY_WRITE
// also, you must CoTaskMemFree the name string from GetPropertyInfo
// if you write a value of VT_EMPTY or VT_NULL the property will be removed from the bag and the corresponding
// registry info will be deleted.
HRESULT Create([in] HKEY hkey, [in] LPCOLESTR subkey, [in] DWORD ulOptions, [in] DWORD samDesired, REFIID iid, [out] LPVOID *ppBag);
// NOTE: it is up to the caller to set the correct registry access based on the interface
// and methods the caller intends to use
// IPropertyBag2::GetPropertyInfo and CountProperties require both KEY_QUERY_VALUE and KEY_ENUMERATE_SUBKEYS
// IPropertyBagXXX::Read requires KEY_READ
// IPropertyBagXXX::Write requires KEY_WRITE
// also, you must CoTaskMemFree the name string from GetPropertyInfo
// if you write a value of VT_EMPTY or VT_NULL the property will be removed from the bag and the corresponding
// registry info will be deleted.
HRESULT Create([in] HKEY hkey, [in] LPCOLESTR subkey, [in] DWORD ulOptions, [in] DWORD samDesired, REFIID iid, [out] LPVOID *ppBag);
};

View File

@ -3,26 +3,54 @@
//
// Desc: ActiveMovie interface definitions.
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
//
// Temporarily disable the /W4 compiler warning C4201, which will be
// reported by all apps which include streams.h or dshow.h, which both
// include the strmif.h generated by this IDL file.
//
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2001.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("// Disable /W4 compiler warning C4201: nameless struct/union")
cpp_quote("#pragma warning(disable:4201) // Disable C4201: nameless struct/union")
cpp_quote(" ") // Blank space
import "unknwn.idl";
import "objidl.idl"; // for IPersist (IFilter's root)
import "objidl.idl"; // for IPersist (IFilter's root)
#include "devenum.idl"
// core interfaces
// Core interfaces
#include "axcore.idl"
// extended, ActiveMovie-only interfaces
// Extended, ActiveMovie-only interfaces
#include "axextend.idl"
// ActiveMovie-only sample plug-in distributor interface
#include "IAMovie.idl"
#if (WINVER < 0x501)
#include "IAMovie.idl"
#endif
// application interfaces for DVD
// Application interfaces for DVD
#include "dvdif.idl"
// Dynamic graph stuff
#include "dyngraph.idl"
// This include is only valid when building for Windows XP
#if (WINVER >= 0x501)
// Video Mixing Renderer
#include "VMRender.idl"
#endif
//
// Restore the previous setting for C4201 compiler warning
//
cpp_quote("// Restore the previous setting for C4201 compiler warning")
cpp_quote("#pragma warning(default:4201)")

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
// Desc: An interface exposed by the overlay mixer to help decode samples
// using hardware video acceleration.
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------

View File

@ -4,7 +4,7 @@
// Desc: Contains the data formats for the transfer of VfW4 filters via the
// clipboard.
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -13,6 +13,7 @@
typedef struct tagVFW_FILTERLIST{
UINT cFilters; // number of CLSIDs in aClsId
CLSID aClsId[1]; // ClsId of each filter
} VFW_FILTERLIST;

View File

@ -3,7 +3,7 @@
//
// Desc: Audio related definitions and interfaces for ActiveMovie.
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -18,9 +18,9 @@ extern "C" {
#include <dsound.h>
// This is the interface the audio renderer supports to give the application
// access to the direct sound object and buffers it is using, to allow the
// access to the direct sound object and the buffers it is using, to allow the
// application to use things like the 3D features of Direct Sound for the
// soundtrack of a movie being played with Active Movie
// soundtrack of a movie being played with Active Movie.
// be nice to our friends in C
#undef INTERFACE

View File

@ -4,7 +4,7 @@
// Desc: Interface to the parser to get current time. This is useful for
// multifile playback.
//
// Copyright (c) 1996 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1996-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------

View File

@ -4,10 +4,10 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 6.00.0338 */
/* File created by MIDL compiler version 6.00.0347 */
/* Compiler settings for amstream.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
@ -18,7 +18,7 @@
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include "rpc.h"
@ -2258,7 +2258,7 @@ AMMultiMediaStream;
#endif
#endif /* __DirectShowStreamLib_LIBRARY_DEFINED__ */
/* interface __MIDL_itf_amstream_0387 */
/* interface __MIDL_itf_amstream_0410 */
/* [local] */
#ifndef __cplusplus
@ -2274,8 +2274,8 @@ DEFINE_GUID(CLSID_AMMediaTypeStream, /* CF0F2F7C-F7BF-11d0-900D-00C04FD9189D */
0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0xd, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
extern RPC_IF_HANDLE __MIDL_itf_amstream_0387_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_amstream_0387_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_amstream_0410_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_amstream_0410_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */

View File

@ -3,7 +3,7 @@
//
// Desc: DirectShowMotionComp include file.
//
// Copyright (c) 1997 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1997-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -24,32 +24,32 @@ extern "C" {
typedef struct _tag_AMVAUncompBufferInfo
{
DWORD dwMinNumSurfaces; // IN min number of surfaces to be allocated
DWORD dwMaxNumSurfaces; // IN max number of surfaces to be allocated
DDPIXELFORMAT ddUncompPixelFormat; // IN pixel format of surfaces to be allocated
DWORD dwMinNumSurfaces; // IN min number of surfaces to be allocated
DWORD dwMaxNumSurfaces; // IN max number of surfaces to be allocated
DDPIXELFORMAT ddUncompPixelFormat; // IN pixel format of surfaces to be allocated
} AMVAUncompBufferInfo, *LPAMVAUncompBufferInfo;
typedef struct _tag_AMVAUncompDataInfo
{
DWORD dwUncompWidth; // [in] width of uncompressed data
DWORD dwUncompHeight; // [in] height of uncompressed data
DDPIXELFORMAT ddUncompPixelFormat; // [in] pixel-format of uncompressed data
DWORD dwUncompWidth; // [in] width of uncompressed data
DWORD dwUncompHeight; // [in] height of uncompressed data
DDPIXELFORMAT ddUncompPixelFormat; // [in] pixel-format of uncompressed data
} AMVAUncompDataInfo, *LPAMVAUncompDataInfo;
typedef struct _tag_AMVAInternalMemInfo
{
DWORD dwScratchMemAlloc; // [out] amount of scratch memory will the hal allocate for its private use
DWORD dwScratchMemAlloc; // [out] amount of scratch memory will the hal allocate for its private use
} AMVAInternalMemInfo, *LPAMVAInternalMemInfo;
typedef struct _tag_AMVACompBufferInfo
{
DWORD dwNumCompBuffers; // [out] number of buffers reqd for compressed data
DWORD dwWidthToCreate; // [out] Width of surface to create
DWORD dwHeightToCreate; // [out] Height of surface to create
DWORD dwBytesToAllocate; // [out] Total number of bytes used by each surface
DDSCAPS2 ddCompCaps; // [out] caps to create surfaces to store compressed data
DDPIXELFORMAT ddPixelFormat; // [out] fourcc to create surfaces to store compressed data
DWORD dwNumCompBuffers; // [out] number of buffers reqd for compressed data
DWORD dwWidthToCreate; // [out] Width of surface to create
DWORD dwHeightToCreate; // [out] Height of surface to create
DWORD dwBytesToAllocate; // [out] Total number of bytes used by each surface
DDSCAPS2 ddCompCaps; // [out] caps to create surfaces to store compressed data
DDPIXELFORMAT ddPixelFormat; // [out] fourcc to create surfaces to store compressed data
} AMVACompBufferInfo, *LPAMVACompBufferInfo;
@ -66,16 +66,16 @@ typedef struct _tag_AMVABeginFrameInfo
// Note that you are NOT allowed to store any pointer in pMiscData
typedef struct _tag_AMVAEndFrameInfo
{
DWORD dwSizeMiscData; // [in] size of other misc data to begin frame
LPVOID pMiscData; // [in] pointer to misc data
DWORD dwSizeMiscData; // [in] size of other misc data to begin frame
LPVOID pMiscData; // [in] pointer to misc data
} AMVAEndFrameInfo, *LPAMVAEndFrameInfo;
typedef struct _tag_AMVABUFFERINFO
{
DWORD dwTypeIndex; // [in] Type of buffer
DWORD dwBufferIndex; // [in] Buffer index
DWORD dwDataOffset; // [in] offset of relevant data from the beginning of buffer
DWORD dwDataSize; // [in] size of relevant data
DWORD dwTypeIndex; // [in] Type of buffer
DWORD dwBufferIndex; // [in] Buffer index
DWORD dwDataOffset; // [in] offset of relevant data from the beginning of buffer
DWORD dwDataSize; // [in] size of relevant data
} AMVABUFFERINFO, *LPAMVABUFFERINFO;
#ifdef __cplusplus

View File

@ -3,7 +3,7 @@
//
// Desc: Video related definitions and interfaces for ActiveMovie.
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
//
// Desc: Broadcast Driver Architecture Media Definitions for ATSC
//
// Copyright (c) 1996 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1996-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
//
// Desc: List of Audio device error event codes and the expected params.
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------

View File

@ -4,10 +4,10 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 6.00.0338 */
/* File created by MIDL compiler version 6.00.0347 */
/* Compiler settings for austream.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
@ -18,7 +18,7 @@
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include "rpc.h"

View File

@ -4,10 +4,10 @@
// Desc: Structures and defines for the RIFF AVI file format extended to
// handle very large/long files.
//
// Copyright (c) 1996 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1996-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// Disable some compiler warnings
#pragma warning(disable: 4097 4511 4512 4514 4705)
@ -252,11 +252,11 @@ typedef struct _timecodedata {
// index subtype codes
//
#define AVI_INDEX_SUB_DEFAULT 0x00
#define AVI_INDEX_SUB_DEFAULT 0x00
// INDEX_OF_CHUNKS subtype codes
//
#define AVI_INDEX_SUB_2FIELD 0x01
#define AVI_INDEX_SUB_2FIELD 0x01
// meta structure of all avi indexes
//

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
// Desc: Typedefs and enums needed by both the WDM drivers and the user mode
// COM interfaces.
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -12,14 +12,32 @@
#define _BDATYPES_ 1
/////////////////////////////////////////////////////////////////////////////
//
// Windows XP vs. DirectX 8.0 header merge
//
// Separate the updated Windows XP version of this header from the downlevel
// version that shipped with the DirectX 8.0 SDK. Since development
// on BDA technology continued for Windows XP, some changes were made to
// this file in order to improve the interface and functionality.
//
// To maintain compatibility with older applications which rely on the
// DirectX 8.0 versions of these files, the DirectX 8.1 version includes
// both the Windows XP content and the DirectX 8.0 content, which are
// separated by the #if (WINVER >= 0x501) preprocessor directive.
//
// Therefore, if you define WINVER to be 0x501 to specify Windows XP,
// the revised content will be compiled. Otherwise, the original
// DirectX 8.0 content will be used.
//
/////////////////////////////////////////////////////////////////////////////
#if (WINVER >= 0x501) // Windows XP content
/* Utility Macros */
#define MIN_DIMENSION 1
#define NATURAL 4
#define CACHE_LINE 128
#define PAGE 4096
#define ALIGN( pointer, size) (((ULONG)(pointer) + (ULONG)(size) - 1) & ~((ULONG)(size) - 1))
#define BDA_STRING_CONST(x) {sizeof(L##x)-2, sizeof(L##x), L##x}
#ifdef __midl
@ -253,74 +271,18 @@ typedef struct _BDANODE_DESCRIPTOR
//------------------------------------------------------------
//
//
// BDA PmtProcessor Property Set
// BDA Table Section Property Set
//
// {516B99C5-971C-4aaf-B3F3-D9FDA8A15E16}
//
typedef struct _BDA_PMT
typedef struct _BDA_TABLE_SECTION
{
ULONG ulTableID;
ULONG ulPrimarySectionId;
ULONG ulSecondarySectionId;
ULONG ulcbSectionLength;
ULONG argbSectionData[MIN_DIMENSION];
} BDA_PMT, *PBDA_PMT;
//------------------------------------------------------------
//
//
// BDA Descriptor Property Set
//
// {DE6A1C9E-87DF-48aa-95AA-289B7AA4F49F}
//
typedef struct _BDA_CAT_DESCRIPTOR
{
ULONG ulTag;
ULONG ulcbLength;
ULONG argbData[MIN_DIMENSION];
} BDA_CAT_DESCRIPTOR, *PBDA_CAT_DESCRIPTOR;
typedef struct _BDA_ES_DESCRIPTOR
{
ULONG ulProgramNum;
ULONG ulContentPID;
ULONG ulTag;
ULONG ulcbLength;
ULONG argbData[MIN_DIMENSION];
} BDA_ES_DESCRIPTOR, *PBDA_ES_DESCRIPTOR;
typedef struct _BDA_PROGRAM_DESCRIPTOR
{
ULONG ulProgramNum;
ULONG ulTag;
ULONG ulcbLength;
ULONG argbData[MIN_DIMENSION];
} BDA_PROGRAM_DESCRIPTOR, *PBDA_PROGRAM_DESCRIPTOR;
//------------------------------------------------------------
//
//
// BDA EsMap Property Set
//
// {FA14A8B3-6068-48ef-96DD-53010B985A7D}
//
typedef enum
{
ES_MAP_STATE_GOOD_FLOW = 0,
ES_MAP_STATE_NO_CONTENT,
ES_MAP_STATE_NO_ECM,
ES_MAP_STATE_BAD_MAP
} BDA_ES_MAP_STATE, *PBDA_ES_MAP_STATE;
typedef struct _BDA_ES_MAP
{
ULONG ulContentPID;
ULONG ulProgramNum;
ULONG ulStreamType;
BDA_ES_MAP_STATE mapState;
} BDA_ES_MAP, *PBDA_ES_MAP;
} BDA_TABLE_SECTION, *PBDA_TABLE_SECTION;
//------------------------------------------------------------
@ -375,6 +337,13 @@ typedef struct _BDA_CA_MODULE_UI
ULONG ulDesc[MIN_DIMENSION];
} BDA_CA_MODULE_UI, *PBDA_CA_MODULE_UI;
typedef struct _BDA_PROGRAM_PID_LIST
{
ULONG ulProgramNumber;
ULONG ulcPIDs;
ULONG ulPID[MIN_DIMENSION];
} BDA_PROGRAM_PID_LIST, *PBDA_PROGRAM_PID_LIST;
//------------------------------------------------------------
//
@ -460,6 +429,19 @@ typedef V1_ENUM enum MPEG2StreamType {
USER_PRIVATE = ISO_IEC_13818_1_RESERVED + 1
} MPEG2StreamType;
//------------------------------------------------------------
//
// mpeg-2 transport stride format block; associated with media
// types MEDIATYPE_Stream/MEDIASUBTYPE_MPEG2_TRANSPORT_STRIDE;
// *all* format blocks associated with above media type *must*
// start with the MPEG2_TRANSPORT_STRIDE structure
//
typedef struct _MPEG2_TRANSPORT_STRIDE {
DWORD dwOffset ;
DWORD dwPacketLength ;
DWORD dwStride ;
} MPEG2_TRANSPORT_STRIDE, *PMPEG2_TRANSPORT_STRIDE ;
//------------------------------------------------------------
//
@ -580,6 +562,615 @@ typedef V1_ENUM enum TransmissionMode {
BDA_XMIT_MODE_MAX,
} TransmissionMode;
// Settings for Tuner Frequency
//
#define BDA_FREQUENCY_NOT_SET -1
#define BDA_FREQUENCY_NOT_DEFINED 0
// Settings for Tuner Range
//
// Tuner range refers to the setting of LNB High/Low as well as the
// selection of a satellite on a multiple satellite switch.
//
#define BDA_RANGE_NOT_SET -1
#define BDA_RANGE_NOT_DEFINED 0
// Settings for Tuner Channel Bandwidth
//
#define BDA_CHAN_BANDWITH_NOT_SET -1
#define BDA_CHAN_BANDWITH_NOT_DEFINED 0
// Settings for Tuner Frequency Multiplier
//
#define BDA_FREQUENCY_MULTIPLIER_NOT_SET -1
#define BDA_FREQUENCY_MULTIPLIER_NOT_DEFINED 0
/////////////////////////////////////////////////////////////////////////////
//
// Windows XP vs. DirectX 8.0 header merge
//
// The following is the original contents of this header from
// the DirectX 8.0 SDK.
//
/////////////////////////////////////////////////////////////////////////////
#else // DirectX 8.0 content
/* Utility Macros */
#define MIN_DIMENSION 1
#define NATURAL 4
#define CACHE_LINE 128
#define PAGE 4096
#define ALIGN( pointer, size) (((ULONG)(pointer) + (ULONG)(size) - 1) & ~((ULONG)(size) - 1))
#define BDA_STRING_CONST(x) {sizeof(L##x)-2, sizeof(L##x), L##x}
#ifdef __midl
#define V1_ENUM [v1_enum]
#else
#define V1_ENUM
#endif
//===========================================================================
//
// BDA Topology Structures
//
//===========================================================================
typedef struct _BDA_TEMPLATE_CONNECTION
{
ULONG FromNodeType;
ULONG FromNodePinType;
ULONG ToNodeType;
ULONG ToNodePinType;
}BDA_TEMPLATE_CONNECTION, *PBDA_TEMPLATE_CONNECTION;
typedef struct _BDA_TEMPLATE_PIN_JOINT
{
ULONG uliTemplateConnection;
ULONG ulcInstancesMax;
}BDA_TEMPLATE_PIN_JOINT, *PBDA_TEMPLATE_PIN_JOINT;
//===========================================================================
//
// BDA Events
//
//===========================================================================
// In-band Event IDs
//
typedef enum {
BDA_EVENT_SIGNAL_LOSS = 0,
BDA_EVENT_SIGNAL_LOCK,
BDA_EVENT_DATA_START,
BDA_EVENT_DATA_STOP,
BDA_EVENT_CHANNEL_ACQUIRED,
BDA_EVENT_CHANNEL_LOST,
BDA_EVENT_CHANNEL_SOURCE_CHANGED,
BDA_EVENT_CHANNEL_ACTIVATED,
BDA_EVENT_CHANNEL_DEACTIVATED,
BDA_EVENT_SUBCHANNEL_ACQUIRED,
BDA_EVENT_SUBCHANNEL_LOST,
BDA_EVENT_SUBCHANNEL_SOURCE_CHANGED,
BDA_EVENT_SUBCHANNEL_ACTIVATED,
BDA_EVENT_SUBCHANNEL_DEACTIVATED,
BDA_EVENT_ACCESS_GRANTED,
BDA_EVENT_ACCESS_DENIED,
BDA_EVENT_OFFER_EXTENDED,
BDA_EVENT_PURCHASE_COMPLETED,
BDA_EVENT_SMART_CARD_INSERTED,
BDA_EVENT_SMART_CARD_REMOVED
} BDA_EVENT_ID, *PBDA_EVENT_ID;
//===========================================================================
//
// KSSTREAM_HEADER extensions for BDA
//
//===========================================================================
typedef struct tagKS_BDA_FRAME_INFO {
ULONG ExtendedHeaderSize; // Size of this extended header
DWORD dwFrameFlags; //
ULONG ulEvent; //
ULONG ulChannelNumber; //
ULONG ulSubchannelNumber; //
ULONG ulReason; //
} KS_BDA_FRAME_INFO, *PKS_BDA_FRAME_INFO;
//------------------------------------------------------------
//
// BDA Network Ethernet Filter Property Set
//
// {71985F43-1CA1-11d3-9CC8-00C04F7971E0}
//
typedef struct _BDA_ETHERNET_ADDRESS {
BYTE rgbAddress[6];
} BDA_ETHERNET_ADDRESS, *PBDA_ETHERNET_ADDRESS;
typedef struct _BDA_ETHERNET_ADDRESS_LIST {
ULONG ulcAddresses;
BDA_ETHERNET_ADDRESS rgAddressl[MIN_DIMENSION];
} BDA_ETHERNET_ADDRESS_LIST, * PBDA_ETHERNET_ADDRESS_LIST;
typedef enum {
BDA_PROMISCUOUS_MULTICAST = 0,
BDA_FILTERED_MULTICAST,
BDA_NO_MULTICAST
} BDA_MULTICAST_MODE, *PBDA_MULTICAST_MODE;
//------------------------------------------------------------
//
// BDA Network IPv4 Filter Property Set
//
// {71985F44-1CA1-11d3-9CC8-00C04F7971E0}
//
typedef struct _BDA_IPv4_ADDRESS {
BYTE rgbAddress[4];
} BDA_IPv4_ADDRESS, *PBDA_IPv4_ADDRESS;
typedef struct _BDA_IPv4_ADDRESS_LIST {
ULONG ulcAddresses;
BDA_IPv4_ADDRESS rgAddressl[MIN_DIMENSION];
} BDA_IPv4_ADDRESS_LIST, * PBDA_IPv4_ADDRESS_LIST;
//------------------------------------------------------------
//
// BDA Network IPv4 Filter Property Set
//
// {E1785A74-2A23-4fb3-9245-A8F88017EF33}
//
typedef struct _BDA_IPv6_ADDRESS {
BYTE rgbAddress[6];
} BDA_IPv6_ADDRESS, *PBDA_IPv6_ADDRESS;
typedef struct _BDA_IPv6_ADDRESS_LIST {
ULONG ulcAddresses;
BDA_IPv6_ADDRESS rgAddressl[MIN_DIMENSION];
} BDA_IPv6_ADDRESS_LIST, * PBDA_IPv6_ADDRESS_LIST;
//------------------------------------------------------------
//
//
// BDA Signal Property Set
//
// {D2F1644B-B409-11d2-BC69-00A0C9EE9E16}
//
typedef enum {
BDA_SIGNAL_UNAVAILABLE = 0,
BDA_SIGNAL_INACTIVE,
BDA_SIGNAL_ACTIVE
} BDA_SIGNAL_STATE, * PBDA_SIGNAL_STATE;
//------------------------------------------------------------
//
//
// BDA Change Sync Method Set
//
// {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
//
typedef enum
{
BDA_CHANGES_COMPLETE = 0,
BDA_CHANGES_PENDING
} BDA_CHANGE_STATE, * PBDA_CHANGE_STATE;
//------------------------------------------------------------
//
//
// BDA Device Configuration Method Set
//
// {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
//
//------------------------------------------------------------
//
//
// BDA Topology Property Set
//
// {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
//
typedef struct _BDANODE_DESCRIPTOR
{
ULONG ulBdaNodeType; // The node type as it is used
// in the BDA template topology
GUID guidFunction; // GUID from BdaMedia.h describing
// the node's function (e.g.
// KSNODE_BDA_RF_TUNER)
GUID guidName; // GUID that can be use to look up
// a displayable name for the node.
} BDANODE_DESCRIPTOR, *PBDANODE_DESCRIPTOR;
//------------------------------------------------------------
//
//
// BDA Void Transform Property Set
//
// {71985F46-1CA1-11d3-9CC8-00C04F7971E0}
//
//------------------------------------------------------------
//
//
// BDA Null Transform Property Set
//
// {DDF15B0D-BD25-11d2-9CA0-00C04F7971E0}
//
//------------------------------------------------------------
//
//
// BDA Frequency Filter Property Set
//
// {71985F47-1CA1-11d3-9CC8-00C04F7971E0}
//
//------------------------------------------------------------
//
//
// BDA Autodemodulate Property Set
//
// {DDF15B12-BD25-11d2-9CA0-00C04F7971E0}
//
//------------------------------------------------------------
//
//
// BDA PmtProcessor Property Set
//
// {516B99C5-971C-4aaf-B3F3-D9FDA8A15E16}
//
typedef struct _BDA_PMT
{
ULONG ulTableID;
ULONG ulcbSectionLength;
ULONG argbSectionData[MIN_DIMENSION];
} BDA_PMT, *PBDA_PMT;
//------------------------------------------------------------
//
//
// BDA Descriptor Property Set
//
// {DE6A1C9E-87DF-48aa-95AA-289B7AA4F49F}
//
typedef struct _BDA_CAT_DESCRIPTOR
{
ULONG ulTag;
ULONG ulcbLength;
ULONG argbData[MIN_DIMENSION];
} BDA_CAT_DESCRIPTOR, *PBDA_CAT_DESCRIPTOR;
typedef struct _BDA_ES_DESCRIPTOR
{
ULONG ulProgramNum;
ULONG ulContentPID;
ULONG ulTag;
ULONG ulcbLength;
ULONG argbData[MIN_DIMENSION];
} BDA_ES_DESCRIPTOR, *PBDA_ES_DESCRIPTOR;
typedef struct _BDA_PROGRAM_DESCRIPTOR
{
ULONG ulProgramNum;
ULONG ulTag;
ULONG ulcbLength;
ULONG argbData[MIN_DIMENSION];
} BDA_PROGRAM_DESCRIPTOR, *PBDA_PROGRAM_DESCRIPTOR;
//------------------------------------------------------------
//
//
// BDA EsMap Property Set
//
// {FA14A8B3-6068-48ef-96DD-53010B985A7D}
//
typedef enum
{
ES_MAP_STATE_GOOD_FLOW = 0,
ES_MAP_STATE_NO_CONTENT,
ES_MAP_STATE_NO_ECM,
ES_MAP_STATE_BAD_MAP
} BDA_ES_MAP_STATE, *PBDA_ES_MAP_STATE;
typedef struct _BDA_ES_MAP
{
ULONG ulContentPID;
ULONG ulProgramNum;
ULONG ulStreamType;
BDA_ES_MAP_STATE mapState;
} BDA_ES_MAP, *PBDA_ES_MAP;
//------------------------------------------------------------
//
//
// BDA PID Filter Property Set
//
// {D0A67D65-08DF-4fec-8533-E5B550410B85}
//
//---------------------------------------------------------------------
// From IEnumPIDMap interface
//---------------------------------------------------------------------
typedef enum {
MEDIA_TRANSPORT_PACKET, // complete TS packet e.g. pass-through mode
MEDIA_ELEMENTARY_STREAM, // PES payloads; audio/video only
MEDIA_MPEG2_PSI, // PAT, PMT, CAT, Private
MEDIA_TRANSPORT_PAYLOAD // gathered TS packet payloads (PES packets, etc...)
} MEDIA_SAMPLE_CONTENT ;
typedef struct {
ULONG ulPID ;
MEDIA_SAMPLE_CONTENT MediaSampleContent ;
} PID_MAP ;
typedef struct _BDA_PID_MAP
{
MEDIA_SAMPLE_CONTENT MediaSampleContent;
ULONG ulcPIDs;
ULONG aulPIDs[MIN_DIMENSION];
} BDA_PID_MAP, *PBDA_PID_MAP;
typedef struct _BDA_PID_UNMAP
{
ULONG ulcPIDs;
ULONG aulPIDs[MIN_DIMENSION];
} BDA_PID_UNMAP, *PBDA_PID_UNMAP;
//------------------------------------------------------------
//
//
// BDA CA Property Set
//
// {B0693766-5278-4ec6-B9E1-3CE40560EF5A}
//
typedef struct _BDA_CA_MODULE_UI
{
ULONG ulFormat;
ULONG ulbcDesc;
ULONG ulDesc[MIN_DIMENSION];
} BDA_CA_MODULE_UI, *PBDA_CA_MODULE_UI;
//------------------------------------------------------------
//
//
// BDA CA Event Set
//
// {488C4CCC-B768-4129-8EB1-B00A071F9068}
//
//=============================================================
//
//
// BDA Tuning Model enumerations
//
//
//=============================================================
// system type for particular DVB Tuning Space instance
typedef enum DVBSystemType {
DVB_Cable,
DVB_Terrestrial,
DVB_Satellite,
} DVBSystemType;
//------------------------------------------------------------
//
// BDA Channel Tune Request
V1_ENUM enum {
BDA_UNDEFINED_CHANNEL = -1,
};
//------------------------------------------------------------
//
// BDA Component(substream)
//
typedef V1_ENUM enum ComponentCategory
{
CategoryNotSet = -1,
CategoryOther = 0,
CategoryVideo,
CategoryAudio,
CategoryText,
CategoryData,
} ComponentCategory;
// Component Status
typedef enum ComponentStatus
{
StatusActive,
StatusInactive,
StatusUnavailable,
} ComponentStatus;
//------------------------------------------------------------
//
// BDA MPEG2 Component Type
//
// from the MPEG2 specification
typedef V1_ENUM enum MPEG2StreamType {
BDA_UNITIALIZED_MPEG2STREAMTYPE = -1,
Reserved1 = 0x0,
ISO_IEC_11172_2_VIDEO = Reserved1 + 1,
ISO_IEC_13818_2_VIDEO = ISO_IEC_11172_2_VIDEO + 1,
ISO_IEC_11172_3_AUDIO = ISO_IEC_13818_2_VIDEO + 1,
ISO_IEC_13818_3_AUDIO = ISO_IEC_11172_3_AUDIO + 1,
ISO_IEC_13818_1_PRIVATE_SECTION = ISO_IEC_13818_3_AUDIO + 1,
ISO_IEC_13818_1_PES = ISO_IEC_13818_1_PRIVATE_SECTION + 1,
ISO_IEC_13522_MHEG = ISO_IEC_13818_1_PES + 1,
ANNEX_A_DSM_CC = ISO_IEC_13522_MHEG + 1,
ITU_T_REC_H_222_1 = ANNEX_A_DSM_CC + 1,
ISO_IEC_13818_6_TYPE_A = ITU_T_REC_H_222_1 + 1,
ISO_IEC_13818_6_TYPE_B = ISO_IEC_13818_6_TYPE_A + 1,
ISO_IEC_13818_6_TYPE_C = ISO_IEC_13818_6_TYPE_B + 1,
ISO_IEC_13818_6_TYPE_D = ISO_IEC_13818_6_TYPE_C + 1,
ISO_IEC_13818_1_AUXILIARY = ISO_IEC_13818_6_TYPE_D + 1,
ISO_IEC_13818_1_RESERVED = ISO_IEC_13818_1_AUXILIARY + 1,
USER_PRIVATE = ISO_IEC_13818_1_RESERVED + 1
} MPEG2StreamType;
//------------------------------------------------------------
//
// BDA ATSC Component Type
//
//
// ATSC made AC3 Audio a descriptor instead of
// defining a user private stream type.
typedef enum ATSCComponentTypeFlags {
// bit flags for various component type properties
ATSCCT_AC3 = 0x00000001,
} ATSCComponentTypeFlags;
//------------------------------------------------------------
//
// BDA Locators
//
typedef V1_ENUM enum BinaryConvolutionCodeRate {
BDA_BCC_RATE_NOT_SET = -1,
BDA_BCC_RATE_NOT_DEFINED = 0,
BDA_BCC_RATE_1_2 = 1, // 1/2
BDA_BCC_RATE_2_3, // 2/3
BDA_BCC_RATE_3_4, // 3/4
BDA_BCC_RATE_3_5,
BDA_BCC_RATE_4_5,
BDA_BCC_RATE_5_6, // 5/6
BDA_BCC_RATE_5_11,
BDA_BCC_RATE_7_8, // 7/8
BDA_BCC_RATE_MAX,
} BinaryConvolutionCodeRate;
typedef V1_ENUM enum FECMethod {
BDA_FEC_METHOD_NOT_SET = -1,
BDA_FEC_METHOD_NOT_DEFINED = 0,
BDA_FEC_VITERBI = 1, // FEC is a Viterbi Binary Convolution.
BDA_FEC_RS_204_188, // The FEC is Reed-Solomon 204/188 (outer FEC)
BDA_FEC_MAX,
} FECMethod;
typedef V1_ENUM enum ModulationType {
BDA_MOD_NOT_SET = -1,
BDA_MOD_NOT_DEFINED = 0,
BDA_MOD_16QAM = 1,
BDA_MOD_32QAM,
BDA_MOD_64QAM,
BDA_MOD_80QAM,
BDA_MOD_96QAM,
BDA_MOD_112QAM,
BDA_MOD_128QAM,
BDA_MOD_160QAM,
BDA_MOD_192QAM,
BDA_MOD_224QAM,
BDA_MOD_256QAM,
BDA_MOD_320QAM,
BDA_MOD_384QAM,
BDA_MOD_448QAM,
BDA_MOD_512QAM,
BDA_MOD_640QAM,
BDA_MOD_768QAM,
BDA_MOD_896QAM,
BDA_MOD_1024QAM,
BDA_MOD_QPSK,
BDA_MOD_BPSK,
BDA_MOD_OQPSK,
BDA_MOD_8VSB,
BDA_MOD_16VSB,
BDA_MOD_ANALOG_AMPLITUDE, // std am
BDA_MOD_ANALOG_FREQUENCY, // std fm
BDA_MOD_MAX,
} ModulationType;
typedef V1_ENUM enum SpectralInversion {
BDA_SPECTRAL_INVERSION_NOT_SET = -1,
BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
BDA_SPECTRAL_INVERSION_NORMAL,
BDA_SPECTRAL_INVERSION_INVERTED,
BDA_SPECTRAL_INVERSION_MAX
} SpectralInversion;
typedef V1_ENUM enum Polarisation {
BDA_POLARISATION_NOT_SET = -1,
BDA_POLARISATION_NOT_DEFINED = 0,
BDA_POLARISATION_LINEAR_H = 1, // Linear horizontal polarisation
BDA_POLARISATION_LINEAR_V, // Linear vertical polarisation
BDA_POLARISATION_CIRCULAR_L, // Circular left polarisation
BDA_POLARISATION_CIRCULAR_R, // Circular right polarisation
BDA_POLARISATION_MAX,
} Polarisation;
typedef V1_ENUM enum GuardInterval {
BDA_GUARD_NOT_SET = -1,
BDA_GUARD_NOT_DEFINED = 0,
BDA_GUARD_1_32 = 1, // Guard interval is 1/32
BDA_GUARD_1_16, // Guard interval is 1/16
BDA_GUARD_1_8, // Guard interval is 1/8
BDA_GUARD_1_4, // Guard interval is 1/4
BDA_GUARD_MAX,
} GuardInterval;
typedef V1_ENUM enum HierarchyAlpha {
BDA_HALPHA_NOT_SET = -1,
BDA_HALPHA_NOT_DEFINED = 0,
BDA_HALPHA_1 = 1, // Hierarchy alpha is 1.
BDA_HALPHA_2, // Hierarchy alpha is 2.
BDA_HALPHA_4, // Hierarchy alpha is 4.
BDA_HALPHA_MAX,
} HierarchyAlpha;
typedef V1_ENUM enum TransmissionMode {
BDA_XMIT_MODE_NOT_SET = -1,
BDA_XMIT_MODE_NOT_DEFINED = 0,
BDA_XMIT_MODE_2K = 1, // Transmission uses 1705 carriers (use a 2K FFT)
BDA_XMIT_MODE_8K, // Transmission uses 6817 carriers (use an 8K FFT)
BDA_XMIT_MODE_MAX,
} TransmissionMode;
#endif // DirectX 8.0 content
#endif // not defined _BDATYPES_
// end of file -- bdatypes.h

View File

@ -4,7 +4,7 @@
// Desc: This header file is to provide a migration path for users of
// ActiveMovie betas 1 and 2.
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------

View File

@ -4,10 +4,10 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 6.00.0338 */
/* File created by MIDL compiler version 6.00.0347 */
/* Compiler settings for control.odl:
Oicf, W0, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
@ -18,12 +18,17 @@
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef __control_h__
#define __control_h__

View File

@ -1,5 +1,6 @@
/*==========================================================================;
*
* Copyright (C) Microsoft Corporation. All Rights Reserved.
*
* File: d3d.h
* Content: Direct3D include file

View File

@ -1,5 +1,6 @@
/*==========================================================================;
*
* Copyright (C) Microsoft Corporation. All Rights Reserved.
*
* File: d3d8.h
* Content: Direct3D include file
@ -23,7 +24,7 @@
* to be rebuilt. If the version doesn't match, Direct3DCreate8 will fail.
* (The number itself has no meaning.)*/
#define D3D_SDK_VERSION 120
#define D3D_SDK_VERSION 220
#include <stdlib.h>
@ -1183,6 +1184,8 @@ typedef struct IDirect3DVolume8 *LPDIRECT3DVOLUME8, *PDIRECT3DVOLUME8;
#define D3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040L
#define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080L
#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT 0x00000100L
/****************************************************************************
*

View File

@ -1,6 +1,6 @@
/*==========================================================================;
*
* Copyright (C) 1995-2000 Microsoft Corporation. All Rights Reserved.
* Copyright (C) Microsoft Corporation. All Rights Reserved.
*
* File: d3d8caps.h
* Content: Direct3D capabilities include file
@ -112,12 +112,19 @@ typedef struct _D3DCAPS8
#define D3DCAPS2_CANRENDERWINDOWED 0x00080000L
#define D3DCAPS2_CANCALIBRATEGAMMA 0x00100000L
#define D3DCAPS2_RESERVED 0x02000000L
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000L
#define D3DCAPS2_DYNAMICTEXTURES 0x20000000L
//
// Caps3
//
#define D3DCAPS3_RESERVED 0x8000001fL
// Indicates that the device can respect the ALPHABLENDENABLE render state
// when fullscreen while using the FLIP or DISCARD swap effect.
// COPY and COPYVSYNC swap effects work whether or not this flag is set.
#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020L
//
// PresentationIntervals
//
@ -173,6 +180,7 @@ typedef struct _D3DCAPS8
#define D3DPMISCCAPS_CLIPTLVERTS 0x00000200L /* device will clip post-transformed vertex primitives */
#define D3DPMISCCAPS_TSSARGTEMP 0x00000400L /* device supports D3DTA_TEMP for temporary register */
#define D3DPMISCCAPS_BLENDOP 0x00000800L /* device supports D3DRS_BLENDOP */
#define D3DPMISCCAPS_NULLREFERENCE 0x00001000L /* Reference Device that doesnt render */
//
// LineCaps

View File

@ -1,6 +1,6 @@
/*==========================================================================;
*
* Copyright (C) 1995-2000 Microsoft Corporation. All Rights Reserved.
* Copyright (C) Microsoft Corporation. All Rights Reserved.
*
* File: d3d8types.h
* Content: Direct3D capabilities include file
@ -126,18 +126,18 @@ typedef struct _D3DVIEWPORT8 {
#define D3DCS_PLANE4 0x00000400L
#define D3DCS_PLANE5 0x00000800L
#define D3DCS_ALL D3DCS_LEFT | \
D3DCS_RIGHT | \
D3DCS_TOP | \
D3DCS_BOTTOM | \
D3DCS_FRONT | \
D3DCS_BACK | \
D3DCS_PLANE0 | \
D3DCS_PLANE1 | \
D3DCS_PLANE2 | \
D3DCS_PLANE3 | \
D3DCS_PLANE4 | \
D3DCS_PLANE5;
#define D3DCS_ALL (D3DCS_LEFT | \
D3DCS_RIGHT | \
D3DCS_TOP | \
D3DCS_BOTTOM | \
D3DCS_FRONT | \
D3DCS_BACK | \
D3DCS_PLANE0 | \
D3DCS_PLANE1 | \
D3DCS_PLANE2 | \
D3DCS_PLANE3 | \
D3DCS_PLANE4 | \
D3DCS_PLANE5)
typedef struct _D3DCLIPSTATUS8 {
DWORD ClipUnion;
@ -319,7 +319,7 @@ typedef enum _D3DTRANSFORMSTATETYPE {
typedef enum _D3DRENDERSTATETYPE {
D3DRS_ZENABLE = 7, /* D3DZBUFFERTYPE (or TRUE/FALSE for legacy) */
D3DRS_FILLMODE = 8, /* D3DFILL_MODE */
D3DRS_FILLMODE = 8, /* D3DFILLMODE */
D3DRS_SHADEMODE = 9, /* D3DSHADEMODE */
D3DRS_LINEPATTERN = 10, /* D3DLINEPATTERN */
D3DRS_ZWRITEENABLE = 14, /* TRUE to enable z writes */
@ -392,6 +392,8 @@ typedef enum _D3DRENDERSTATETYPE {
D3DRS_COLORWRITEENABLE = 168, // per-channel write enable
D3DRS_TWEENFACTOR = 170, // float tween factor
D3DRS_BLENDOP = 171, // D3DBLENDOP setting
D3DRS_POSITIONORDER = 172, // NPatch position interpolation order. D3DORDER_LINEAR or D3DORDER_CUBIC (default)
D3DRS_NORMALORDER = 173, // NPatch normal interpolation order. D3DORDER_LINEAR (default) or D3DORDER_QUADRATIC
D3DRS_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
} D3DRENDERSTATETYPE;
@ -471,7 +473,7 @@ typedef enum _D3DTEXTURESTAGESTATETYPE
/*
* Enumerations for COLOROP and ALPHAOP texture blending operations set in
* texture processing stage controls in D3DRENDERSTATE.
* texture processing stage controls in D3DTSS.
*/
typedef enum _D3DTEXTUREOP
{
@ -497,7 +499,7 @@ typedef enum _D3DTEXTUREOP
// Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha)
D3DTOP_BLENDDIFFUSEALPHA = 12, // iterated alpha
D3DTOP_BLENDTEXTUREALPHA = 13, // texture alpha
D3DTOP_BLENDFACTORALPHA = 14, // alpha from D3DRENDERSTATE_TEXTUREFACTOR
D3DTOP_BLENDFACTORALPHA = 14, // alpha from D3DRS_TEXTUREFACTOR
// Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha)
D3DTOP_BLENDTEXTUREALPHAPM = 15, // texture alpha
@ -540,7 +542,7 @@ typedef enum _D3DTEXTUREOP
#define D3DTA_DIFFUSE 0x00000000 // select diffuse color (read only)
#define D3DTA_CURRENT 0x00000001 // select stage destination register (read/write)
#define D3DTA_TEXTURE 0x00000002 // select texture color (read only)
#define D3DTA_TFACTOR 0x00000003 // select RENDERSTATE_TEXTUREFACTOR (read only)
#define D3DTA_TFACTOR 0x00000003 // select D3DRS_TEXTUREFACTOR (read only)
#define D3DTA_SPECULAR 0x00000004 // select specular color (read only)
#define D3DTA_TEMP 0x00000005 // select temporary register color (read/write)
#define D3DTA_COMPLEMENT 0x00000010 // take 1.0 - x (read modifier)
@ -914,6 +916,16 @@ typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE
D3DSIO_LOGP , // VS
D3DSIO_CND , // PS
D3DSIO_DEF , // PS
D3DSIO_TEXREG2RGB , // PS
D3DSIO_TEXDP3TEX , // PS
D3DSIO_TEXM3x2DEPTH , // PS
D3DSIO_TEXDP3 , // PS
D3DSIO_TEXM3x3 , // PS
D3DSIO_TEXDEPTH , // PS
D3DSIO_CMP , // PS
D3DSIO_BEM , // PS
D3DSIO_PHASE = 0xFFFD,
D3DSIO_COMMENT = 0xFFFE,
D3DSIO_END = 0xFFFF,
@ -930,7 +942,7 @@ typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE
//
// Parameter Token Bit Definitions
//
#define D3DSP_REGNUM_MASK 0x00000FFF
#define D3DSP_REGNUM_MASK 0x00001FFF
// destination parameter write mask
#define D3DSP_WRITEMASK_0 0x00010000 // Component 0 (X;Red)
@ -998,28 +1010,28 @@ typedef enum _D3DVS_ADDRESSMODE_TYPE
#define D3DVS_SWIZZLE_SHIFT 16
#define D3DVS_SWIZZLE_MASK 0x00FF0000
// The following bits define where to take component X:
// The following bits define where to take component X from:
#define D3DVS_X_X (0 << D3DVS_SWIZZLE_SHIFT)
#define D3DVS_X_Y (1 << D3DVS_SWIZZLE_SHIFT)
#define D3DVS_X_Z (2 << D3DVS_SWIZZLE_SHIFT)
#define D3DVS_X_W (3 << D3DVS_SWIZZLE_SHIFT)
// The following bits define where to take component Y:
// The following bits define where to take component Y from:
#define D3DVS_Y_X (0 << (D3DVS_SWIZZLE_SHIFT + 2))
#define D3DVS_Y_Y (1 << (D3DVS_SWIZZLE_SHIFT + 2))
#define D3DVS_Y_Z (2 << (D3DVS_SWIZZLE_SHIFT + 2))
#define D3DVS_Y_W (3 << (D3DVS_SWIZZLE_SHIFT + 2))
// The following bits define where to take component Z:
// The following bits define where to take component Z from:
#define D3DVS_Z_X (0 << (D3DVS_SWIZZLE_SHIFT + 4))
#define D3DVS_Z_Y (1 << (D3DVS_SWIZZLE_SHIFT + 4))
#define D3DVS_Z_Z (2 << (D3DVS_SWIZZLE_SHIFT + 4))
#define D3DVS_Z_W (3 << (D3DVS_SWIZZLE_SHIFT + 4))
// The following bits define where to take component W:
// The following bits define where to take component W from:
#define D3DVS_W_X (0 << (D3DVS_SWIZZLE_SHIFT + 6))
#define D3DVS_W_Y (1 << (D3DVS_SWIZZLE_SHIFT + 6))
@ -1042,6 +1054,24 @@ typedef enum _D3DVS_ADDRESSMODE_TYPE
(3 << (D3DSP_SWIZZLE_SHIFT + 6)) )
// pixel-shader swizzle ops
#define D3DSP_REPLICATERED \
( (0 << (D3DSP_SWIZZLE_SHIFT + 0)) | \
(0 << (D3DSP_SWIZZLE_SHIFT + 2)) | \
(0 << (D3DSP_SWIZZLE_SHIFT + 4)) | \
(0 << (D3DSP_SWIZZLE_SHIFT + 6)) )
#define D3DSP_REPLICATEGREEN \
( (1 << (D3DSP_SWIZZLE_SHIFT + 0)) | \
(1 << (D3DSP_SWIZZLE_SHIFT + 2)) | \
(1 << (D3DSP_SWIZZLE_SHIFT + 4)) | \
(1 << (D3DSP_SWIZZLE_SHIFT + 6)) )
#define D3DSP_REPLICATEBLUE \
( (2 << (D3DSP_SWIZZLE_SHIFT + 0)) | \
(2 << (D3DSP_SWIZZLE_SHIFT + 2)) | \
(2 << (D3DSP_SWIZZLE_SHIFT + 4)) | \
(2 << (D3DSP_SWIZZLE_SHIFT + 6)) )
#define D3DSP_REPLICATEALPHA \
( (3 << (D3DSP_SWIZZLE_SHIFT + 0)) | \
(3 << (D3DSP_SWIZZLE_SHIFT + 2)) | \
@ -1061,6 +1091,10 @@ typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE
D3DSPSM_SIGN = 4<<D3DSP_SRCMOD_SHIFT, // sign
D3DSPSM_SIGNNEG = 5<<D3DSP_SRCMOD_SHIFT, // sign and negate
D3DSPSM_COMP = 6<<D3DSP_SRCMOD_SHIFT, // complement
D3DSPSM_X2 = 7<<D3DSP_SRCMOD_SHIFT, // *2
D3DSPSM_X2NEG = 8<<D3DSP_SRCMOD_SHIFT, // *2 and negate
D3DSPSM_DZ = 9<<D3DSP_SRCMOD_SHIFT, // divide through by z component
D3DSPSM_DW = 10<<D3DSP_SRCMOD_SHIFT, // divide through by w component
D3DSPSM_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum
} D3DSHADER_PARAM_SRCMOD_TYPE;
@ -1099,6 +1133,7 @@ typedef enum _D3DBASISTYPE
typedef enum _D3DORDERTYPE
{
D3DORDER_LINEAR = 1,
D3DORDER_QUADRATIC = 2,
D3DORDER_CUBIC = 3,
D3DORDER_QUINTIC = 5,
D3DORDER_FORCE_DWORD = 0x7fffffff,
@ -1240,6 +1275,8 @@ typedef enum _D3DFORMAT
D3DFMT_A8 = 28,
D3DFMT_A8R3G3B2 = 29,
D3DFMT_X4R4G4B4 = 30,
D3DFMT_A2B10G10R10 = 31,
D3DFMT_G16R16 = 34,
D3DFMT_A8P8 = 40,
D3DFMT_P8 = 41,
@ -1254,6 +1291,7 @@ typedef enum _D3DFORMAT
D3DFMT_Q8W8V8U8 = 63,
D3DFMT_V16U16 = 64,
D3DFMT_W11V11U10 = 65,
D3DFMT_A2W10V10U10 = 67,
D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'),
@ -1314,6 +1352,7 @@ typedef enum _D3DPOOL {
D3DPOOL_DEFAULT = 0,
D3DPOOL_MANAGED = 1,
D3DPOOL_SYSTEMMEM = 2,
D3DPOOL_SCRATCH = 3,
D3DPOOL_FORCE_DWORD = 0x7fffffff
} D3DPOOL;
@ -1592,6 +1631,42 @@ typedef enum _D3DDEBUGMONITORTOKENS {
D3DDMT_FORCE_DWORD = 0x7fffffff,
} D3DDEBUGMONITORTOKENS;
// GetInfo IDs
#define D3DDEVINFOID_RESOURCEMANAGER 5 /* Used with D3DDEVINFO_RESOURCEMANAGER */
#define D3DDEVINFOID_VERTEXSTATS 6 /* Used with D3DDEVINFO_D3DVERTEXSTATS */
typedef struct _D3DRESOURCESTATS
{
// Data collected since last Present()
BOOL bThrashing; /* indicates if thrashing */
DWORD ApproxBytesDownloaded; /* Approximate number of bytes downloaded by resource manager */
DWORD NumEvicts; /* number of objects evicted */
DWORD NumVidCreates; /* number of objects created in video memory */
DWORD LastPri; /* priority of last object evicted */
DWORD NumUsed; /* number of objects set to the device */
DWORD NumUsedInVidMem; /* number of objects set to the device, which are already in video memory */
// Persistent data
DWORD WorkingSet; /* number of objects in video memory */
DWORD WorkingSetBytes; /* number of bytes in video memory */
DWORD TotalManaged; /* total number of managed objects */
DWORD TotalBytes; /* total number of bytes of managed objects */
} D3DRESOURCESTATS;
#define D3DRTYPECOUNT (D3DRTYPE_INDEXBUFFER+1)
typedef struct _D3DDEVINFO_RESOURCEMANAGER
{
D3DRESOURCESTATS stats[D3DRTYPECOUNT];
} D3DDEVINFO_RESOURCEMANAGER, *LPD3DDEVINFO_RESOURCEMANAGER;
typedef struct _D3DDEVINFO_D3DVERTEXSTATS
{
DWORD NumRenderedTriangles; /* total number of triangles that are not clipped in this frame */
DWORD NumExtraClippingTriangles; /* Number of new triangles generated by clipping */
} D3DDEVINFO_D3DVERTEXSTATS, *LPD3DDEVINFO_D3DVERTEXSTATS;
#pragma pack()
#pragma warning(default:4201)

View File

@ -1,5 +1,6 @@
/*==========================================================================;
*
* Copyright (C) Microsoft Corporation. All Rights Reserved.
*
* File: d3dcaps.h
* Content: Direct3D capabilities include file

View File

@ -1,6 +1,6 @@
/*==========================================================================;
*
* Copyright (C) 1995-1998 Microsoft Corporation. All Rights Reserved.
* Copyright (C) Microsoft Corporation. All Rights Reserved.
*
* File: d3dtypes.h
* Content: Direct3D types include file

View File

@ -5,7 +5,7 @@
* *
* Float-valued 3D vector class for Direct3D. *
* *
* Copyright (c) 1996-1998 Microsoft Corp. All rights reserved. *
* Copyright (c) Microsoft Corp. All rights reserved. *
* *
******************************************************************/

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dx.h
// Content: D3DX utility library

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dx8.h
// Content: D3DX utility library
@ -10,17 +10,26 @@
#ifndef __D3DX8_H__
#define __D3DX8_H__
#include <d3d8.h>
#include "d3d8.h"
#include <limits.h>
#ifndef D3DXINLINE
#ifdef __cplusplus
#define D3DXINLINE inline
#ifdef _MSC_VER
#if (_MSC_VER >= 1200)
#define D3DXINLINE __forceinline
#else
#define D3DXINLINE __inline
#endif
#else
#define D3DXINLINE _inline
#ifdef __cplusplus
#define D3DXINLINE inline
#else
#define D3DXINLINE
#endif
#endif
#endif
#define D3DX_DEFAULT ULONG_MAX
#define D3DX_DEFAULT_FLOAT FLT_MAX

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dx8core.h
// Content: D3DX core types and functions
@ -13,10 +13,17 @@
#define __D3DX8CORE_H__
///////////////////////////////////////////////////////////////////////////
// ID3DXBuffer:
// ------------
// The buffer object is used to return arbitrary lenght data.
// The buffer object is used by D3DX to return arbitrary size data.
//
// GetBufferPointer -
// Returns a pointer to the beginning of the buffer.
//
// GetBufferSize -
// Returns the size of the buffer, in bytes.
///////////////////////////////////////////////////////////////////////////
typedef interface ID3DXBuffer ID3DXBuffer;
@ -26,6 +33,9 @@ typedef interface ID3DXBuffer *LPD3DXBUFFER;
DEFINE_GUID(IID_ID3DXBuffer,
0x932e6a7e, 0xc68e, 0x45dd, 0xa7, 0xbf, 0x53, 0xd1, 0x9c, 0x86, 0xdb, 0x1f);
#undef INTERFACE
#define INTERFACE ID3DXBuffer
DECLARE_INTERFACE_(ID3DXBuffer, IUnknown)
{
// IUnknown
@ -40,8 +50,6 @@ DECLARE_INTERFACE_(ID3DXBuffer, IUnknown)
///////////////////////////////////////////////////////////////////////////
// ID3DXFont:
// ----------
@ -59,17 +67,26 @@ DECLARE_INTERFACE_(ID3DXBuffer, IUnknown)
//
// End -
// Restores device state to how it was when Begin was called.
//
// OnLostDevice, OnResetDevice -
// Call OnLostDevice() on this object before calling Reset() on the
// device, so that this object can release any stateblocks and video
// memory resources. After Reset(), the call OnResetDevice().
//
///////////////////////////////////////////////////////////////////////////
typedef interface ID3DXFont ID3DXFont;
typedef interface ID3DXFont *LPD3DXFONT;
// {2D501DF7-D253-4414-865F-A6D54A753138}
DEFINE_GUID( IID_ID3DXFont,
0x2d501df7, 0xd253, 0x4414, 0x86, 0x5f, 0xa6, 0xd5, 0x4a, 0x75, 0x31, 0x38);
// {89FAD6A5-024D-49af-8FE7-F51123B85E25}
DEFINE_GUID( IID_ID3DXFont,
0x89fad6a5, 0x24d, 0x49af, 0x8f, 0xe7, 0xf5, 0x11, 0x23, 0xb8, 0x5e, 0x25);
#undef INTERFACE
#define INTERFACE ID3DXFont
DECLARE_INTERFACE_(ID3DXFont, IUnknown)
{
// IUnknown
@ -82,11 +99,12 @@ DECLARE_INTERFACE_(ID3DXFont, IUnknown)
STDMETHOD(GetLogFont)(THIS_ LOGFONT* pLogFont) PURE;
STDMETHOD(Begin)(THIS) PURE;
STDMETHOD_(INT, DrawTextA)(THIS_ LPCSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) PURE;
STDMETHOD_(INT, DrawTextW)(THIS_ LPCWSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) PURE;
STDMETHOD(End)(THIS) PURE;
STDMETHOD(OnLostDevice)(THIS) PURE;
STDMETHOD(OnResetDevice)(THIS) PURE;
};
#ifndef DrawText
@ -122,9 +140,6 @@ HRESULT WINAPI
///////////////////////////////////////////////////////////////////////////
// ID3DXSprite:
// ------------
@ -133,24 +148,32 @@ HRESULT WINAPI
// Begin -
// Prepares device for drawing sprites
//
// Draw, DrawAffine, DrawTransform
// Draw, DrawAffine, DrawTransform -
// Draws a sprite in screen-space. Before transformation, the sprite is
// the size of SrcRect, with its top-left corner at the origin (0,0).
// The color and alpha channels are modulated by Color.
//
// End -
// Restores device state to how it was when Begin was called.
//
// OnLostDevice, OnResetDevice -
// Call OnLostDevice() on this object before calling Reset() on the
// device, so that this object can release any stateblocks and video
// memory resources. After Reset(), the call OnResetDevice().
///////////////////////////////////////////////////////////////////////////
typedef interface ID3DXSprite ID3DXSprite;
typedef interface ID3DXSprite *LPD3DXSPRITE;
// {E8691849-87B8-4929-9050-1B0542D5538C}
// {13D69D15-F9B0-4e0f-B39E-C91EB33F6CE7}
DEFINE_GUID( IID_ID3DXSprite,
0xe8691849, 0x87b8, 0x4929, 0x90, 0x50, 0x1b, 0x5, 0x42, 0xd5, 0x53, 0x8c);
0x13d69d15, 0xf9b0, 0x4e0f, 0xb3, 0x9e, 0xc9, 0x1e, 0xb3, 0x3f, 0x6c, 0xe7);
#undef INTERFACE
#define INTERFACE ID3DXSprite
DECLARE_INTERFACE_(ID3DXSprite, IUnknown)
{
// IUnknown
@ -173,6 +196,9 @@ DECLARE_INTERFACE_(ID3DXSprite, IUnknown)
D3DCOLOR Color) PURE;
STDMETHOD(End)(THIS) PURE;
STDMETHOD(OnLostDevice)(THIS) PURE;
STDMETHOD(OnResetDevice)(THIS) PURE;
};
@ -193,13 +219,22 @@ HRESULT WINAPI
///////////////////////////////////////////////////////////////////////////
// ID3DXRenderToSurface:
// ---------------------
// This object abstracts rendering to surfaces. These surfaces do not
// necessarily need to be render targets. If they are not, a compatible
// render target is used, and the result copied into surface at end scene.
//
// BeginScene, EndScene -
// Call BeginScene() and EndScene() at the beginning and ending of your
// scene. These calls will setup and restore render targets, viewports,
// etc..
//
// OnLostDevice, OnResetDevice -
// Call OnLostDevice() on this object before calling Reset() on the
// device, so that this object can release any stateblocks and video
// memory resources. After Reset(), the call OnResetDevice().
///////////////////////////////////////////////////////////////////////////
typedef struct _D3DXRTS_DESC
@ -217,11 +252,14 @@ typedef interface ID3DXRenderToSurface ID3DXRenderToSurface;
typedef interface ID3DXRenderToSurface *LPD3DXRENDERTOSURFACE;
// {69CC587C-E40C-458d-B5D3-B029E18EB60A}
// {82DF5B90-E34E-496e-AC1C-62117A6A5913}
DEFINE_GUID( IID_ID3DXRenderToSurface,
0x69cc587c, 0xe40c, 0x458d, 0xb5, 0xd3, 0xb0, 0x29, 0xe1, 0x8e, 0xb6, 0xa);
0x82df5b90, 0xe34e, 0x496e, 0xac, 0x1c, 0x62, 0x11, 0x7a, 0x6a, 0x59, 0x13);
#undef INTERFACE
#define INTERFACE ID3DXRenderToSurface
DECLARE_INTERFACE_(ID3DXRenderToSurface, IUnknown)
{
// IUnknown
@ -235,6 +273,9 @@ DECLARE_INTERFACE_(ID3DXRenderToSurface, IUnknown)
STDMETHOD(BeginScene)(THIS_ LPDIRECT3DSURFACE8 pSurface, CONST D3DVIEWPORT8* pViewport) PURE;
STDMETHOD(EndScene)(THIS) PURE;
STDMETHOD(OnLostDevice)(THIS) PURE;
STDMETHOD(OnResetDevice)(THIS) PURE;
};
@ -261,6 +302,29 @@ HRESULT WINAPI
///////////////////////////////////////////////////////////////////////////
// ID3DXRenderToEnvMap:
// --------------------
// This object abstracts rendering to environment maps. These surfaces
// do not necessarily need to be render targets. If they are not, a
// compatible render target is used, and the result copied into the
// environment map at end scene.
//
// BeginCube, BeginSphere, BeginHemisphere, BeginParabolic -
// This function initiates the rendering of the environment map. As
// parameters, you pass the textures in which will get filled in with
// the resulting environment map.
//
// Face -
// Call this function to initiate the drawing of each face. For each
// environment map, you will call this six times.. once for each face
// in D3DCUBEMAP_FACES.
//
// End -
// This will restore all render targets, and if needed compose all the
// rendered faces into the environment map surfaces.
//
// OnLostDevice, OnResetDevice -
// Call OnLostDevice() on this object before calling Reset() on the
// device, so that this object can release any stateblocks and video
// memory resources. After Reset(), the call OnResetDevice().
///////////////////////////////////////////////////////////////////////////
typedef struct _D3DXRTE_DESC
@ -275,11 +339,14 @@ typedef struct _D3DXRTE_DESC
typedef interface ID3DXRenderToEnvMap ID3DXRenderToEnvMap;
typedef interface ID3DXRenderToEnvMap *LPD3DXRenderToEnvMap;
// {9F6779E5-60A9-4d8b-AEE4-32770F405DBA}
// {4E42C623-9451-44b7-8C86-ABCCDE5D52C8}
DEFINE_GUID( IID_ID3DXRenderToEnvMap,
0x9f6779e5, 0x60a9, 0x4d8b, 0xae, 0xe4, 0x32, 0x77, 0xf, 0x40, 0x5d, 0xba);
0x4e42c623, 0x9451, 0x44b7, 0x8c, 0x86, 0xab, 0xcc, 0xde, 0x5d, 0x52, 0xc8);
#undef INTERFACE
#define INTERFACE ID3DXRenderToEnvMap
DECLARE_INTERFACE_(ID3DXRenderToEnvMap, IUnknown)
{
// IUnknown
@ -307,6 +374,9 @@ DECLARE_INTERFACE_(ID3DXRenderToEnvMap, IUnknown)
STDMETHOD(Face)(THIS_ D3DCUBEMAP_FACES Face) PURE;
STDMETHOD(End)(THIS) PURE;
STDMETHOD(OnLostDevice)(THIS) PURE;
STDMETHOD(OnResetDevice)(THIS) PURE;
};
@ -356,13 +426,17 @@ extern "C" {
//-------------------------------------------------------------------------
// D3DXAssembleShader:
// ------------------------
// -------------------
// Assembles an ascii description of a vertex or pixel shader into
// binary form.
//
// Parameters:
// pSrcFile
// Source file name
// hSrcModule
// Module handle. if NULL, current module will be used.
// pSrcResource
// Resource name in module
// pSrcData
// Pointer to source code
// SrcDataLen
@ -399,6 +473,30 @@ HRESULT WINAPI
#define D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileA
#endif
HRESULT WINAPI
D3DXAssembleShaderFromResourceA(
HMODULE hSrcModule,
LPCSTR pSrcResource,
DWORD Flags,
LPD3DXBUFFER* ppConstants,
LPD3DXBUFFER* ppCompiledShader,
LPD3DXBUFFER* ppCompilationErrors);
HRESULT WINAPI
D3DXAssembleShaderFromResourceW(
HMODULE hSrcModule,
LPCWSTR pSrcResource,
DWORD Flags,
LPD3DXBUFFER* ppConstants,
LPD3DXBUFFER* ppCompiledShader,
LPD3DXBUFFER* ppCompilationErrors);
#ifdef UNICODE
#define D3DXAssembleShaderFromResource D3DXAssembleShaderFromResourceW
#else
#define D3DXAssembleShaderFromResource D3DXAssembleShaderFromResourceA
#endif
HRESULT WINAPI
D3DXAssembleShader(
LPCVOID pSrcData,
@ -414,6 +512,7 @@ HRESULT WINAPI
#endif //__cplusplus
///////////////////////////////////////////////////////////////////////////
// Misc APIs:
///////////////////////////////////////////////////////////////////////////
@ -422,17 +521,6 @@ HRESULT WINAPI
extern "C" {
#endif //__cplusplus
//-------------------------------------------------------------------------
// D3DXGetFVFVertexSize:
// ---------------------
// Returns the size (in bytes) of a vertex for a given FVF.
//-------------------------------------------------------------------------
UINT WINAPI
D3DXGetFVFVertexSize(DWORD FVF);
//-------------------------------------------------------------------------
// D3DXGetErrorString:
// ------------------
@ -472,5 +560,4 @@ HRESULT WINAPI
}
#endif //__cplusplus
#endif //__D3DX8CORE_H__

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dx8effect.h
// Content: D3DX effect types and functions
@ -13,6 +13,9 @@
#define __D3DX8EFFECT_H__
#define D3DXFX_DONOTSAVESTATE (1 << 0)
typedef enum _D3DXPARAMETERTYPE
{
D3DXPT_DWORD = 0,
@ -23,6 +26,7 @@ typedef enum _D3DXPARAMETERTYPE
D3DXPT_VERTEXSHADER = 5,
D3DXPT_PIXELSHADER = 6,
D3DXPT_CONSTANT = 7,
D3DXPT_STRING = 8,
D3DXPT_FORCE_DWORD = 0x7fffffff /* force 32-bit size enum */
} D3DXPARAMETERTYPE;
@ -32,14 +36,14 @@ typedef struct _D3DXEFFECT_DESC
{
UINT Parameters;
UINT Techniques;
DWORD Usage;
} D3DXEFFECT_DESC;
typedef struct _D3DXPARAMETER_DESC
{
DWORD Name;
LPCSTR Name;
LPCSTR Index;
D3DXPARAMETERTYPE Type;
} D3DXPARAMETER_DESC;
@ -47,65 +51,37 @@ typedef struct _D3DXPARAMETER_DESC
typedef struct _D3DXTECHNIQUE_DESC
{
DWORD Name;
UINT Passes;
LPCSTR Name;
LPCSTR Index;
UINT Passes;
} D3DXTECHNIQUE_DESC;
typedef struct _D3DXPASS_DESC
{
DWORD Name;
LPCSTR Name;
LPCSTR Index;
} D3DXPASS_DESC;
typedef struct ID3DXEffect *LPD3DXEFFECT;
typedef struct ID3DXTechnique *LPD3DXTECHNIQUE;
//////////////////////////////////////////////////////////////////////////////
// ID3DXTechnique ////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// {A00F378D-AF79-4917-907E-4D635EE63844}
DEFINE_GUID( IID_ID3DXTechnique,
0xa00f378d, 0xaf79, 0x4917, 0x90, 0x7e, 0x4d, 0x63, 0x5e, 0xe6, 0x38, 0x44);
DECLARE_INTERFACE_(ID3DXTechnique, IUnknown)
{
// IUnknown
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
// ID3DXTechnique
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
STDMETHOD(GetDesc)(THIS_ D3DXTECHNIQUE_DESC* pDesc) PURE;
STDMETHOD(GetPassDesc)(THIS_ UINT Index, D3DXPASS_DESC* pDesc) PURE;
STDMETHOD_(BOOL, IsParameterUsed)(THIS_ DWORD dwName) PURE;
STDMETHOD(Validate)(THIS) PURE;
STDMETHOD(Begin)(THIS_ UINT *pPasses) PURE;
STDMETHOD(Pass)(THIS_ UINT Index) PURE;
STDMETHOD(End)(THIS) PURE;
};
//////////////////////////////////////////////////////////////////////////////
// ID3DXEffect ///////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
typedef interface ID3DXEffect ID3DXEffect;
typedef interface ID3DXEffect *LPD3DXEFFECT;
// {281BBDD4-AEDF-4907-8650-E79CDFD45165}
// {648B1CEB-8D4E-4d66-B6FA-E44969E82E89}
DEFINE_GUID( IID_ID3DXEffect,
0x281bbdd4, 0xaedf, 0x4907, 0x86, 0x50, 0xe7, 0x9c, 0xdf, 0xd4, 0x51, 0x65);
0x648b1ceb, 0x8d4e, 0x4d66, 0xb6, 0xfa, 0xe4, 0x49, 0x69, 0xe8, 0x2e, 0x89);
#undef INTERFACE
#define INTERFACE ID3DXEffect
DECLARE_INTERFACE_(ID3DXEffect, IUnknown)
{
// IUnknown
@ -116,27 +92,40 @@ DECLARE_INTERFACE_(ID3DXEffect, IUnknown)
// ID3DXEffect
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* pDesc) PURE;
STDMETHOD(GetParameterDesc)(THIS_ LPCSTR pParameter, D3DXPARAMETER_DESC* pDesc) PURE;
STDMETHOD(GetTechniqueDesc)(THIS_ LPCSTR pTechnique, D3DXTECHNIQUE_DESC* pDesc) PURE;
STDMETHOD(GetPassDesc)(THIS_ LPCSTR pTechnique, LPCSTR pPass, D3DXPASS_DESC* pDesc) PURE;
STDMETHOD(FindNextValidTechnique)(THIS_ LPCSTR pTechnique, D3DXTECHNIQUE_DESC* pDesc) PURE;
STDMETHOD(CloneEffect)(THIS_ LPDIRECT3DDEVICE8 pDevice, LPD3DXEFFECT* ppEffect) PURE;
STDMETHOD(GetCompiledEffect)(THIS_ LPD3DXBUFFER* ppCompiledEffect) PURE;
STDMETHOD(GetParameterDesc)(THIS_ UINT Index, D3DXPARAMETER_DESC* pDesc) PURE;
STDMETHOD(GetTechniqueDesc)(THIS_ UINT Index, D3DXTECHNIQUE_DESC* pDesc) PURE;
STDMETHOD(SetTechnique)(THIS_ LPCSTR pTechnique) PURE;
STDMETHOD(GetTechnique)(THIS_ LPCSTR* ppTechnique) PURE;
STDMETHOD(SetDword)(THIS_ DWORD Name, DWORD dw) PURE;
STDMETHOD(GetDword)(THIS_ DWORD Name, DWORD* pdw) PURE;
STDMETHOD(SetFloat)(THIS_ DWORD Name, FLOAT f) PURE;
STDMETHOD(GetFloat)(THIS_ DWORD Name, FLOAT* pf) PURE;
STDMETHOD(SetVector)(THIS_ DWORD Name, D3DXVECTOR4* pVector) PURE;
STDMETHOD(GetVector)(THIS_ DWORD Name, D3DXVECTOR4* pVector) PURE;
STDMETHOD(SetMatrix)(THIS_ DWORD Name, D3DXMATRIX* pMatrix) PURE;
STDMETHOD(GetMatrix)(THIS_ DWORD Name, D3DXMATRIX* pMatrix) PURE;
STDMETHOD(SetTexture)(THIS_ DWORD Name, LPDIRECT3DBASETEXTURE8 pTexture) PURE;
STDMETHOD(GetTexture)(THIS_ DWORD Name, LPDIRECT3DBASETEXTURE8 *ppTexture) PURE;
STDMETHOD(SetVertexShader)(THIS_ DWORD Name, DWORD Handle) PURE;
STDMETHOD(GetVertexShader)(THIS_ DWORD Name, DWORD* pHandle) PURE;
STDMETHOD(SetPixelShader)(THIS_ DWORD Name, DWORD Handle) PURE;
STDMETHOD(GetPixelShader)(THIS_ DWORD Name, DWORD* pHandle) PURE;
STDMETHOD(SetDword)(THIS_ LPCSTR pParameter, DWORD dw) PURE;
STDMETHOD(GetDword)(THIS_ LPCSTR pParameter, DWORD* pdw) PURE;
STDMETHOD(SetFloat)(THIS_ LPCSTR pParameter, FLOAT f) PURE;
STDMETHOD(GetFloat)(THIS_ LPCSTR pParameter, FLOAT* pf) PURE;
STDMETHOD(SetVector)(THIS_ LPCSTR pParameter, CONST D3DXVECTOR4* pVector) PURE;
STDMETHOD(GetVector)(THIS_ LPCSTR pParameter, D3DXVECTOR4* pVector) PURE;
STDMETHOD(SetMatrix)(THIS_ LPCSTR pParameter, CONST D3DXMATRIX* pMatrix) PURE;
STDMETHOD(GetMatrix)(THIS_ LPCSTR pParameter, D3DXMATRIX* pMatrix) PURE;
STDMETHOD(SetTexture)(THIS_ LPCSTR pParameter, LPDIRECT3DBASETEXTURE8 pTexture) PURE;
STDMETHOD(GetTexture)(THIS_ LPCSTR pParameter, LPDIRECT3DBASETEXTURE8 *ppTexture) PURE;
STDMETHOD(SetVertexShader)(THIS_ LPCSTR pParameter, DWORD Handle) PURE;
STDMETHOD(GetVertexShader)(THIS_ LPCSTR pParameter, DWORD* pHandle) PURE;
STDMETHOD(SetPixelShader)(THIS_ LPCSTR pParameter, DWORD Handle) PURE;
STDMETHOD(GetPixelShader)(THIS_ LPCSTR pParameter, DWORD* pHandle) PURE;
STDMETHOD(SetString)(THIS_ LPCSTR pParameter, LPCSTR pString) PURE;
STDMETHOD(GetString)(THIS_ LPCSTR pParameter, LPCSTR* ppString) PURE;
STDMETHOD_(BOOL, IsParameterUsed)(THIS_ LPCSTR pParameter) PURE;
STDMETHOD(GetTechnique)(THIS_ UINT Index, LPD3DXTECHNIQUE* ppTechnique) PURE;
STDMETHOD(CloneEffect)(THIS_ LPDIRECT3DDEVICE8 pDevice, DWORD Usage, LPD3DXEFFECT* ppEffect) PURE;
STDMETHOD(Validate)(THIS) PURE;
STDMETHOD(Begin)(THIS_ UINT *pPasses, DWORD Flags) PURE;
STDMETHOD(Pass)(THIS_ UINT Pass) PURE;
STDMETHOD(End)(THIS) PURE;
STDMETHOD(OnLostDevice)(THIS) PURE;
STDMETHOD(OnResetDevice)(THIS) PURE;
};
@ -152,20 +141,25 @@ extern "C" {
//----------------------------------------------------------------------------
// D3DXCompileEffect:
// ------------------
// Compiles an ascii effect description into a binary form usable by
// D3DXCreateEffect.
// D3DXCreateEffect:
// -----------------
// Creates an effect from an ascii or binaray effect description.
//
// Parameters:
// pDevice
// Pointer of the device on which to create the effect
// pSrcFile
// Name of the file containing the ascii effect description
// Name of the file containing the effect description
// hSrcModule
// Module handle. if NULL, current module will be used.
// pSrcResource
// Resource name in module
// pSrcData
// Pointer to ascii effect description
// Pointer to effect description
// SrcDataSize
// Size of the effect description in bytes
// ppCompiledEffect
// Returns a buffer containing compiled effect.
// ppEffect
// Returns a buffer containing created effect.
// ppCompilationErrors
// Returns a buffer containing any error messages which occurred during
// compile. Or NULL if you do not care about the error messages.
@ -173,60 +167,56 @@ extern "C" {
//----------------------------------------------------------------------------
HRESULT WINAPI
D3DXCompileEffectFromFileA(
D3DXCreateEffectFromFileA(
LPDIRECT3DDEVICE8 pDevice,
LPCSTR pSrcFile,
LPD3DXBUFFER* ppCompiledEffect,
LPD3DXEFFECT* ppEffect,
LPD3DXBUFFER* ppCompilationErrors);
HRESULT WINAPI
D3DXCompileEffectFromFileW(
D3DXCreateEffectFromFileW(
LPDIRECT3DDEVICE8 pDevice,
LPCWSTR pSrcFile,
LPD3DXBUFFER* ppCompiledEffect,
LPD3DXEFFECT* ppEffect,
LPD3DXBUFFER* ppCompilationErrors);
#ifdef UNICODE
#define D3DXCompileEffectFromFile D3DXCompileEffectFromFileW
#define D3DXCreateEffectFromFile D3DXCreateEffectFromFileW
#else
#define D3DXCompileEffectFromFile D3DXCompileEffectFromFileA
#define D3DXCreateEffectFromFile D3DXCreateEffectFromFileA
#endif
HRESULT WINAPI
D3DXCompileEffect(
LPCVOID pSrcData,
UINT SrcDataSize,
LPD3DXBUFFER* ppCompiledEffect,
D3DXCreateEffectFromResourceA(
LPDIRECT3DDEVICE8 pDevice,
HMODULE hSrcModule,
LPCSTR pSrcResource,
LPD3DXEFFECT* ppEffect,
LPD3DXBUFFER* ppCompilationErrors);
HRESULT WINAPI
D3DXCreateEffectFromResourceW(
LPDIRECT3DDEVICE8 pDevice,
HMODULE hSrcModule,
LPCWSTR pSrcResource,
LPD3DXEFFECT* ppEffect,
LPD3DXBUFFER* ppCompilationErrors);
//----------------------------------------------------------------------------
// D3DXCreateEffect:
// -----------------
// Creates an effect object, given compiled binary effect data
//
// Parameters:
// pDevice
// Pointer to the device to be used.
// pCompiledEffect
// Pointer to compiled effect data
// CompiledEffectSize
// Size of compiled effect data in bytes
// Usage
// Allows the specification of D3DUSAGE_SOFTWAREPROCESSING
// ppEffect
// Returns the created effect object
//----------------------------------------------------------------------------
#ifdef UNICODE
#define D3DXCreateEffectFromResource D3DXCreateEffectFromResourceW
#else
#define D3DXCreateEffectFromResource D3DXCreateEffectFromResourceA
#endif
HRESULT WINAPI
D3DXCreateEffect(
LPDIRECT3DDEVICE8 pDevice,
LPCVOID pCompiledEffect,
UINT CompiledEffectSize,
DWORD Usage,
LPD3DXEFFECT* ppEffect);
LPCVOID pSrcData,
UINT SrcDataSize,
LPD3DXEFFECT* ppEffect,
LPD3DXBUFFER* ppCompilationErrors);
#ifdef __cplusplus

View File

@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1998 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dx8math.h
// Content: D3DX math types and functions
@ -17,13 +17,6 @@
typedef struct ID3DXMatrixStack *LPD3DXMATRIXSTACK;
// {E3357330-CC5E-11d2-A434-00A0C90629A8}
DEFINE_GUID( IID_ID3DXMatrixStack,
0xe3357330, 0xcc5e, 0x11d2, 0xa4, 0x34, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
//===========================================================================
//
// General purpose utilities
@ -227,6 +220,105 @@ public:
typedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
#endif //!__cplusplus
//===========================================================================
//
// Aligned Matrices
//
// This class helps keep matrices 16-byte aligned as preferred by P4 cpus.
// It aligns matrices on the stack and on the heap or in global scope.
// It does this using __declspec(align(16)) which works on VC7 and on VC 6
// with the processor pack. Unfortunately there is no way to detect the
// latter so this is turned on only on VC7. On other compilers this is the
// the same as D3DXMATRIX.
// Using this class on a compiler that does not actually do the alignment
// can be dangerous since it will not expose bugs that ignore alignment.
// E.g if an object of this class in inside a struct or class, and some code
// memcopys data in it assuming tight packing. This could break on a compiler
// that eventually start aligning the matrix.
//
//===========================================================================
#ifdef __cplusplus
typedef struct _D3DXMATRIXA16 : public D3DXMATRIX
{
_D3DXMATRIXA16() {}
_D3DXMATRIXA16( CONST FLOAT * f): D3DXMATRIX(f) {}
_D3DXMATRIXA16( CONST D3DMATRIX& m): D3DXMATRIX(m) {}
_D3DXMATRIXA16( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 ) :
D3DXMATRIX(_11, _12, _13, _14,
_21, _22, _23, _24,
_31, _32, _33, _34,
_41, _42, _43, _44) {}
void* operator new(size_t s)
{
LPBYTE p = ::new BYTE[s + 16];
if (p)
{
BYTE offset = (BYTE)(16 - ((UINT_PTR)p & 15));
p += offset;
p[-1] = offset;
}
return p;
};
void* operator new[](size_t s)
{
LPBYTE p = ::new BYTE[s + 16];
if (p)
{
BYTE offset = (BYTE)(16 - ((UINT_PTR)p & 15));
p += offset;
p[-1] = offset;
}
return p;
};
// This is NOT a virtual operator. If you cast
// to D3DXMATRIX, do not delete using that
void operator delete(void* p)
{
if(p)
{
BYTE* pb = static_cast<BYTE*>(p);
pb -= pb[-1];
::delete [] pb;
}
};
// This is NOT a virtual operator. If you cast
// to D3DXMATRIX, do not delete using that
void operator delete[](void* p)
{
if(p)
{
BYTE* pb = static_cast<BYTE*>(p);
pb -= pb[-1];
::delete [] pb;
}
};
struct _D3DXMATRIXA16& operator=(CONST D3DXMATRIX& rhs)
{
memcpy(&_11, &rhs, sizeof(D3DXMATRIX));
return *this;
};
} _D3DXMATRIXA16;
#else //!__cplusplus
typedef D3DXMATRIX _D3DXMATRIXA16;
#endif //!__cplusplus
#if _MSC_VER >= 1300 // VC7
#define _ALIGN_16 __declspec(align(16))
#else
#define _ALIGN_16 // Earlier compiler may not understand this, do nothing.
#endif
#define D3DXMATRIXA16 _ALIGN_16 _D3DXMATRIXA16
typedef D3DXMATRIXA16 *LPD3DXMATRIXA16;
//===========================================================================
//
@ -433,7 +525,7 @@ D3DXVECTOR2* WINAPI D3DXVec2CatmullRom
// Barycentric coordinates. V1 + f(V2-V1) + g(V3-V1)
D3DXVECTOR2* WINAPI D3DXVec2BaryCentric
( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2,
D3DXVECTOR2 *pV3, FLOAT f, FLOAT g);
CONST D3DXVECTOR2 *pV3, FLOAT f, FLOAT g);
// Transform (x, y, 0, 1) by matrix.
D3DXVECTOR4* WINAPI D3DXVec2Transform
@ -642,13 +734,17 @@ extern "C" {
FLOAT WINAPI D3DXMatrixfDeterminant
( CONST D3DXMATRIX *pM );
D3DXMATRIX* WINAPI D3DXMatrixTranspose
( D3DXMATRIX *pOut, CONST D3DXMATRIX *pM );
// Matrix multiplication. The result represents the transformation M2
// followed by the transformation M1. (Out = M1 * M2)
D3DXMATRIX* WINAPI D3DXMatrixMultiply
( D3DXMATRIX *pOut, CONST D3DXMATRIX *pM1, CONST D3DXMATRIX *pM2 );
D3DXMATRIX* WINAPI D3DXMatrixTranspose
( D3DXMATRIX *pOut, CONST D3DXMATRIX *pM );
// Matrix multiplication, followed by a transpose. (Out = T(M1 * M2))
D3DXMATRIX* WINAPI D3DXMatrixMultiplyTranspose
( D3DXMATRIX *pOut, CONST D3DXMATRIX *pM1, CONST D3DXMATRIX *pM2 );
// Calculate inverse of matrix. Inversion my fail, in which case NULL will
// be returned. The determinant of pM is also returned it pfDeterminant
@ -845,20 +941,29 @@ D3DXQUATERNION* WINAPI D3DXQuaternionLn
// if q = (0, theta * v); exp(q) = (cos(theta), sin(theta) * v)
D3DXQUATERNION* WINAPI D3DXQuaternionExp
( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
// Spherical linear interpolation between Q1 (s == 0) and Q2 (s == 1).
// Spherical linear interpolation between Q1 (t == 0) and Q2 (t == 1).
// Expects unit quaternions.
D3DXQUATERNION* WINAPI D3DXQuaternionSlerp
( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
CONST D3DXQUATERNION *pQ2, FLOAT t );
// Spherical quadrangle interpolation.
// Slerp(Slerp(Q1, Q4, t), Slerp(Q2, Q3, t), 2t(1-t))
// Slerp(Slerp(Q1, C, t), Slerp(A, B, t), 2t(1-t))
D3DXQUATERNION* WINAPI D3DXQuaternionSquad
( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
CONST D3DXQUATERNION *pQ2, CONST D3DXQUATERNION *pQ3,
CONST D3DXQUATERNION *pQ4, FLOAT t );
CONST D3DXQUATERNION *pA, CONST D3DXQUATERNION *pB,
CONST D3DXQUATERNION *pC, FLOAT t );
// Setup control points for spherical quadrangle interpolation
// from Q1 to Q2. The control points are chosen in such a way
// to ensure the continuity of tangents with adjacent segments.
void WINAPI D3DXQuaternionSquadSetup
( D3DXQUATERNION *pAOut, D3DXQUATERNION *pBOut, D3DXQUATERNION *pCOut,
CONST D3DXQUATERNION *pQ0, CONST D3DXQUATERNION *pQ1,
CONST D3DXQUATERNION *pQ2, CONST D3DXQUATERNION *pQ3 );
// Barycentric interpolation.
// Slerp(Slerp(Q1, Q2, f+g), Slerp(Q1, Q3, f+g), g/(f+g))
D3DXQUATERNION* WINAPI D3DXQuaternionBaryCentric
( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
@ -913,7 +1018,7 @@ D3DXPLANE* WINAPI D3DXPlaneFromPoints
CONST D3DXVECTOR3 *pV3);
// Transform a plane by a matrix. The vector (a,b,c) must be normal.
// M must be an affine transform.
// M should be the inverse transpose of the transformation desired.
D3DXPLANE* WINAPI D3DXPlaneTransform
( D3DXPLANE *pOut, CONST D3DXPLANE *pP, CONST D3DXMATRIX *pM );
@ -970,6 +1075,23 @@ D3DXCOLOR* WINAPI D3DXColorAdjustContrast
//--------------------------
// Misc
//--------------------------
#ifdef __cplusplus
extern "C" {
#endif
// Calculate Fresnel term given the cosine of theta (likely obtained by
// taking the dot of two normals), and the refraction index of the material.
FLOAT WINAPI D3DXFresnelTerm
(FLOAT CosTheta, FLOAT RefractionIndex);
#ifdef __cplusplus
}
#endif
//===========================================================================
@ -978,6 +1100,17 @@ D3DXCOLOR* WINAPI D3DXColorAdjustContrast
//
//===========================================================================
typedef interface ID3DXMatrixStack ID3DXMatrixStack;
typedef interface ID3DXMatrixStack *LPD3DXMATRIXSTACK;
// {E3357330-CC5E-11d2-A434-00A0C90629A8}
DEFINE_GUID( IID_ID3DXMatrixStack,
0xe3357330, 0xcc5e, 0x11d2, 0xa4, 0x34, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
#undef INTERFACE
#define INTERFACE ID3DXMatrixStack
DECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown)
{
//
@ -1066,7 +1199,10 @@ DECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown)
extern "C" {
#endif
HRESULT WINAPI D3DXCreateMatrixStack( DWORD Flags, LPD3DXMATRIXSTACK *ppStack );
HRESULT WINAPI
D3DXCreateMatrixStack(
DWORD Flags,
LPD3DXMATRIXSTACK* ppStack);
#ifdef __cplusplus
}

View File

@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1998 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dx8math.inl
// Content: D3DX math inline functions

View File

@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1998 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dx8mesh.h
// Content: D3DX mesh types and functions
@ -14,51 +14,54 @@
#include "dxfile.h" // defines LPDIRECTXFILEDATA
// {A69BA991-1F7D-11d3-B929-00C04F68DC23}
DEFINE_GUID(IID_ID3DXBaseMesh,
0xa69ba991, 0x1f7d, 0x11d3, 0xb9, 0x29, 0x0, 0xc0, 0x4f, 0x68, 0xdc, 0x23);
// {2A835771-BF4D-43f4-8E14-82A809F17D8A}
DEFINE_GUID(IID_ID3DXBaseMesh,
0x2a835771, 0xbf4d, 0x43f4, 0x8e, 0x14, 0x82, 0xa8, 0x9, 0xf1, 0x7d, 0x8a);
// {9D84AC46-6B90-49a9-A721-085C7A3E3DAE}
// {CCAE5C3B-4DD1-4d0f-997E-4684CA64557F}
DEFINE_GUID(IID_ID3DXMesh,
0x9d84ac46, 0x6b90, 0x49a9, 0xa7, 0x21, 0x8, 0x5c, 0x7a, 0x3e, 0x3d, 0xae);
0xccae5c3b, 0x4dd1, 0x4d0f, 0x99, 0x7e, 0x46, 0x84, 0xca, 0x64, 0x55, 0x7f);
// {15981AA8-1A05-48e3-BBE7-FF5D49654E3F}
// {19FBE386-C282-4659-97BD-CB869B084A6C}
DEFINE_GUID(IID_ID3DXPMesh,
0x15981aa8, 0x1a05, 0x48e3, 0xbb, 0xe7, 0xff, 0x5d, 0x49, 0x65, 0x4e, 0x3f);
0x19fbe386, 0xc282, 0x4659, 0x97, 0xbd, 0xcb, 0x86, 0x9b, 0x8, 0x4a, 0x6c);
// {BC3BBDE2-1F7D-11d3-B929-00C04F68DC23}
// {4E3CA05C-D4FF-4d11-8A02-16459E08F6F4}
DEFINE_GUID(IID_ID3DXSPMesh,
0xbc3bbde2, 0x1f7d, 0x11d3, 0xb9, 0x29, 0x0, 0xc0, 0x4f, 0x68, 0xdc, 0x23);
0x4e3ca05c, 0xd4ff, 0x4d11, 0x8a, 0x2, 0x16, 0x45, 0x9e, 0x8, 0xf6, 0xf4);
// {82A53844-F322-409e-A2E9-992E1104069D}
// {8DB06ECC-EBFC-408a-9404-3074B4773515}
DEFINE_GUID(IID_ID3DXSkinMesh,
0x82a53844, 0xf322, 0x409e, 0xa2, 0xe9, 0x99, 0x2e, 0x11, 0x4, 0x6, 0x9d);
0x8db06ecc, 0xebfc, 0x408a, 0x94, 0x4, 0x30, 0x74, 0xb4, 0x77, 0x35, 0x15);
// Mesh options - lower 3 bytes only, upper byte used by _D3DXMESHOPT option flags
enum _D3DXMESH {
D3DXMESH_32BIT = 0x001, // If set, then use 32 bit indices, if not set use 16 bit indices. 32BIT meshes currently not supported on ID3DXSkinMesh object
D3DXMESH_32BIT = 0x001, // If set, then use 32 bit indices, if not set use 16 bit indices.
D3DXMESH_DONOTCLIP = 0x002, // Use D3DUSAGE_DONOTCLIP for VB & IB.
D3DXMESH_POINTS = 0x004, // Use D3DUSAGE_POINTS for VB & IB.
D3DXMESH_RTPATCHES = 0x008, // Use D3DUSAGE_RTPATCHES for VB & IB.
D3DXMESH_NPATCHES = 0x4000,// Use D3DUSAGE_NPATCHES for VB & IB.
D3DXMESH_VB_SYSTEMMEM = 0x010, // Use D3DPOOL_SYSTEMMEM for VB. Overrides D3DXMESH_MANAGEDVERTEXBUFFER
D3DXMESH_NPATCHES = 0x4000,// Use D3DUSAGE_NPATCHES for VB & IB.
D3DXMESH_VB_SYSTEMMEM = 0x010, // Use D3DPOOL_SYSTEMMEM for VB. Overrides D3DXMESH_MANAGEDVERTEXBUFFER
D3DXMESH_VB_MANAGED = 0x020, // Use D3DPOOL_MANAGED for VB.
D3DXMESH_VB_WRITEONLY = 0x040, // Use D3DUSAGE_WRITEONLY for VB.
D3DXMESH_VB_DYNAMIC = 0x080, // Use D3DUSAGE_DYNAMIC for VB.
D3DXMESH_IB_SYSTEMMEM = 0x100, // Use D3DPOOL_SYSTEMMEM for IB. Overrides D3DXMESH_MANAGEDINDEXBUFFER
D3DXMESH_VB_SOFTWAREPROCESSING = 0x8000, // Use D3DUSAGE_SOFTWAREPROCESSING for VB.
D3DXMESH_IB_SYSTEMMEM = 0x100, // Use D3DPOOL_SYSTEMMEM for IB. Overrides D3DXMESH_MANAGEDINDEXBUFFER
D3DXMESH_IB_MANAGED = 0x200, // Use D3DPOOL_MANAGED for IB.
D3DXMESH_IB_WRITEONLY = 0x400, // Use D3DUSAGE_WRITEONLY for IB.
D3DXMESH_IB_DYNAMIC = 0x800, // Use D3DUSAGE_DYNAMIC for IB.
D3DXMESH_IB_SOFTWAREPROCESSING= 0x10000, // Use D3DUSAGE_SOFTWAREPROCESSING for IB.
D3DXMESH_VB_SHARE = 0x1000, // Valid for Clone* calls only, forces cloned mesh/pmesh to share vertex buffer
D3DXMESH_USEHWONLY = 0x2000, // Valid for ID3DXSkinMesh::ConvertToBlendedMesh
// Helper options
D3DXMESH_SYSTEMMEM = 0x110, // D3DXMESH_VB_SYSTEMMEM | D3DXMESH_IB_SYSTEMMEM
D3DXMESH_SYSTEMMEM = 0x110, // D3DXMESH_VB_SYSTEMMEM | D3DXMESH_IB_SYSTEMMEM
D3DXMESH_MANAGED = 0x220, // D3DXMESH_VB_MANAGED | D3DXMESH_IB_MANAGED
D3DXMESH_WRITEONLY = 0x440, // D3DXMESH_VB_WRITEONLY | D3DXMESH_IB_WRITEONLY
D3DXMESH_DYNAMIC = 0x880, // D3DXMESH_VB_DYNAMIC | D3DXMESH_IB_DYNAMIC
D3DXMESH_SOFTWAREPROCESSING = 0x18000, // D3DXMESH_VB_SOFTWAREPROCESSING | D3DXMESH_IB_SOFTWAREPROCESSING
};
@ -72,7 +75,7 @@ enum _D3DXMESHSIMP
enum _MAX_FVF_DECL_SIZE
{
MAX_FVF_DECL_SIZE = 20
MAX_FVF_DECL_SIZE = 20
};
typedef struct ID3DXBaseMesh *LPD3DXBASEMESH;
@ -117,6 +120,32 @@ typedef struct _D3DXATTRIBUTEWEIGHTS
typedef D3DXATTRIBUTEWEIGHTS* LPD3DXATTRIBUTEWEIGHTS;
enum _D3DXWELDEPSILONSFLAGS
{
D3DXWELDEPSILONS_WELDALL = 0x1, // weld all vertices marked by adjacency as being overlapping
D3DXWELDEPSILONS_WELDPARTIALMATCHES = 0x2, // if a given vertex component is within epsilon, modify partial matched
// vertices so that both components identical AND if all components "equal"
// remove one of the vertices
D3DXWELDEPSILONS_DONOTREMOVEVERTICES = 0x4, // instructs weld to only allow modifications to vertices and not removal
// ONLY valid if D3DXWELDEPSILONS_WELDPARTIALMATCHES is set
// useful to modify vertices to be equal, but not allow vertices to be removed
};
typedef struct _D3DXWELDEPSILONS
{
FLOAT SkinWeights;
FLOAT Normal;
FLOAT Tex[8];
DWORD Flags;
} D3DXWELDEPSILONS;
typedef D3DXWELDEPSILONS* LPD3DXWELDEPSILONS;
#undef INTERFACE
#define INTERFACE ID3DXBaseMesh
DECLARE_INTERFACE_(ID3DXBaseMesh, IUnknown)
{
// IUnknown
@ -138,14 +167,22 @@ DECLARE_INTERFACE_(ID3DXBaseMesh, IUnknown)
CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
STDMETHOD(GetAttributeTable)(
THIS_ D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) PURE;
STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* pPRep, DWORD* pAdjacency) PURE;
STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* pAdjacency, DWORD* pPRep) PURE;
STDMETHOD(GenerateAdjacency)(THIS_ FLOAT Epsilon, DWORD* pAdjacency) PURE;
};
#undef INTERFACE
#define INTERFACE ID3DXMesh
DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
{
// IUnknown
@ -167,26 +204,32 @@ DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
STDMETHOD(GetAttributeTable)(
THIS_ D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) PURE;
// ID3DXMesh
STDMETHOD(LockAttributeBuffer)(THIS_ DWORD Flags, DWORD** ppData) PURE;
STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* pPRep, DWORD* pAdjacency) PURE;
STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* pAdjacency, DWORD* pPRep) PURE;
STDMETHOD(GenerateAdjacency)(THIS_ FLOAT fEpsilon, DWORD* pAdjacency) PURE;
STDMETHOD(GenerateAdjacency)(THIS_ FLOAT Epsilon, DWORD* pAdjacency) PURE;
// ID3DXMesh
STDMETHOD(LockAttributeBuffer)(THIS_ DWORD Flags, DWORD** ppData) PURE;
STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
STDMETHOD(Optimize)(THIS_ DWORD Flags, CONST DWORD* pAdjacencyIn, DWORD* pAdjacencyOut,
DWORD* pFaceRemap, LPD3DXBUFFER *ppVertexRemap,
LPD3DXMESH* ppOptMesh) PURE;
STDMETHOD(OptimizeInplace)(THIS_ DWORD Flags, CONST DWORD* pAdjacencyIn, DWORD* pAdjacencyOut,
DWORD* pFaceRemap, LPD3DXBUFFER *ppVertexRemap) PURE;
};
#undef INTERFACE
#define INTERFACE ID3DXPMesh
DECLARE_INTERFACE_(ID3DXPMesh, ID3DXBaseMesh)
{
// IUnknown
@ -208,13 +251,17 @@ DECLARE_INTERFACE_(ID3DXPMesh, ID3DXBaseMesh)
CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
STDMETHOD(GetAttributeTable)(
THIS_ D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) PURE;
STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* pPRep, DWORD* pAdjacency) PURE;
STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* pAdjacency, DWORD* pPRep) PURE;
STDMETHOD(GenerateAdjacency)(THIS_ FLOAT Epsilon, DWORD* pAdjacency) PURE;
// ID3DXPMesh
STDMETHOD(ClonePMeshFVF)(THIS_ DWORD Options,
DWORD FVF, LPDIRECT3DDEVICE8 pD3D, LPD3DXPMESH* ppCloneMesh) PURE;
@ -231,9 +278,18 @@ DECLARE_INTERFACE_(ID3DXPMesh, ID3DXBaseMesh)
STDMETHOD(Optimize)(THIS_ DWORD Flags, DWORD* pAdjacencyOut,
DWORD* pFaceRemap, LPD3DXBUFFER *ppVertexRemap,
LPD3DXMESH* ppOptMesh) PURE;
STDMETHOD(OptimizeBaseLOD)(THIS_ DWORD Flags, DWORD* pFaceRemap) PURE;
STDMETHOD(TrimByFaces)(THIS_ DWORD NewFacesMin, DWORD NewFacesMax, DWORD *rgiFaceRemap, DWORD *rgiVertRemap) PURE;
STDMETHOD(TrimByVertices)(THIS_ DWORD NewVerticesMin, DWORD NewVerticesMax, DWORD *rgiFaceRemap, DWORD *rgiVertRemap) PURE;
STDMETHOD(GetAdjacency)(THIS_ DWORD* pAdjacency) PURE;
};
#undef INTERFACE
#define INTERFACE ID3DXSPMesh
DECLARE_INTERFACE_(ID3DXSPMesh, IUnknown)
{
// IUnknown
@ -260,19 +316,21 @@ DECLARE_INTERFACE_(ID3DXSPMesh, IUnknown)
STDMETHOD(ReduceVertices)(THIS_ DWORD Vertices) PURE;
STDMETHOD_(DWORD, GetMaxFaces)(THIS) PURE;
STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
STDMETHOD(GetVertexAttributeWeights)(THIS_ LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights) PURE;
STDMETHOD(GetVertexWeights)(THIS_ FLOAT *pVertexWeights) PURE;
};
#define UNUSED16 (0xffff)
#define UNUSED32 (0xffffffff)
// ID3DXMesh::Optimize options
// ID3DXMesh::Optimize options - upper byte only, lower 3 bytes used from _D3DXMESH option flags
enum _D3DXMESHOPT {
D3DXMESHOPT_COMPACT = 0x001,
D3DXMESHOPT_ATTRSORT = 0x002,
D3DXMESHOPT_VERTEXCACHE = 0x004,
D3DXMESHOPT_STRIPREORDER = 0x008,
D3DXMESHOPT_IGNOREVERTS = 0x010, // optimize faces only, don't touch vertices
D3DXMESHOPT_SHAREVB = 0x020,
D3DXMESHOPT_COMPACT = 0x01000000,
D3DXMESHOPT_ATTRSORT = 0x02000000,
D3DXMESHOPT_VERTEXCACHE = 0x04000000,
D3DXMESHOPT_STRIPREORDER = 0x08000000,
D3DXMESHOPT_IGNOREVERTS = 0x10000000, // optimize faces only, don't touch vertices
D3DXMESHOPT_SHAREVB = 0x1000, // same as D3DXMESH_VB_SHARE
};
// Subset of the mesh that has the same attribute and bone combination.
@ -284,9 +342,13 @@ typedef struct _D3DXBONECOMBINATION
DWORD FaceCount;
DWORD VertexStart;
DWORD VertexCount;
DWORD* BoneId;
DWORD* BoneId;
} D3DXBONECOMBINATION, *LPD3DXBONECOMBINATION;
#undef INTERFACE
#define INTERFACE ID3DXSkinMesh
DECLARE_INTERFACE_(ID3DXSkinMesh, IUnknown)
{
// IUnknown
@ -294,7 +356,7 @@ DECLARE_INTERFACE_(ID3DXSkinMesh, IUnknown)
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
// ID3DXMesh
// ID3DXMesh
STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
@ -303,31 +365,48 @@ DECLARE_INTERFACE_(ID3DXSkinMesh, IUnknown)
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, BYTE** ppData) PURE;
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, BYTE** ppData) PURE;
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
STDMETHOD(LockAttributeBuffer)(THIS_ DWORD flags, DWORD** ppData) PURE;
STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, BYTE** ppData) PURE;
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, BYTE** ppData) PURE;
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
STDMETHOD(LockAttributeBuffer)(THIS_ DWORD flags, DWORD** ppData) PURE;
STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
// ID3DXSkinMesh
STDMETHOD_(DWORD, GetNumBones)(THIS) PURE;
STDMETHOD(GetOriginalMesh)(THIS_ LPD3DXMESH* ppMesh) PURE;
STDMETHOD(SetBoneInfluence)(THIS_ DWORD bone, DWORD numInfluences, CONST DWORD* vertices, CONST FLOAT* weights) PURE;
STDMETHOD_(DWORD, GetNumBoneInfluences)(THIS_ DWORD bone) PURE;
STDMETHOD(GetBoneInfluence)(THIS_ DWORD bone, DWORD* vertices, FLOAT* weights) PURE;
STDMETHOD(GetMaxVertexInfluences)(THIS_ DWORD* maxVertexInfluences) PURE;
STDMETHOD(GetMaxFaceInfluences)(THIS_ DWORD* maxFaceInfluences) PURE;
STDMETHOD(ConvertToBlendedMesh)(THIS_ DWORD options, CONST LPDWORD pAdjacencyIn, LPDWORD pAdjacencyOut,
DWORD* pNumBoneCombinations, LPD3DXBUFFER* ppBoneCombinationTable, LPD3DXMESH* ppMesh) PURE;
STDMETHOD(ConvertToIndexedBlendedMesh)(THIS_ DWORD options,
STDMETHOD(SetBoneInfluence)(THIS_ DWORD bone, DWORD numInfluences, CONST DWORD* vertices, CONST FLOAT* weights) PURE;
STDMETHOD_(DWORD, GetNumBoneInfluences)(THIS_ DWORD bone) PURE;
STDMETHOD(GetBoneInfluence)(THIS_ DWORD bone, DWORD* vertices, FLOAT* weights) PURE;
STDMETHOD(GetMaxVertexInfluences)(THIS_ DWORD* maxVertexInfluences) PURE;
STDMETHOD(GetMaxFaceInfluences)(THIS_ DWORD* maxFaceInfluences) PURE;
STDMETHOD(ConvertToBlendedMesh)(THIS_ DWORD Options,
CONST LPDWORD pAdjacencyIn,
LPDWORD pAdjacencyOut,
DWORD* pNumBoneCombinations,
LPD3DXBUFFER* ppBoneCombinationTable,
DWORD* pFaceRemap,
LPD3DXBUFFER *ppVertexRemap,
LPD3DXMESH* ppMesh) PURE;
STDMETHOD(ConvertToIndexedBlendedMesh)(THIS_ DWORD Options,
CONST LPDWORD pAdjacencyIn,
DWORD paletteSize,
LPDWORD pAdjacencyOut,
DWORD* pNumBoneCombinations,
DWORD* pNumBoneCombinations,
LPD3DXBUFFER* ppBoneCombinationTable,
DWORD* pFaceRemap,
LPD3DXBUFFER *ppVertexRemap,
LPD3DXMESH* ppMesh) PURE;
STDMETHOD(GenerateSkinnedMesh)(THIS_ DWORD options, FLOAT minWeight, CONST LPDWORD pAdjacencyIn, LPDWORD pAdjacencyOut, LPD3DXMESH* ppMesh) PURE;
STDMETHOD(UpdateSkinnedMesh)(THIS_ CONST D3DXMATRIX* pBoneTransforms, LPD3DXMESH pMesh) PURE;
STDMETHOD(GenerateSkinnedMesh)(THIS_ DWORD Options,
FLOAT minWeight,
CONST LPDWORD pAdjacencyIn,
LPDWORD pAdjacencyOut,
DWORD* pFaceRemap,
LPD3DXBUFFER *ppVertexRemap,
LPD3DXMESH* ppMesh) PURE;
STDMETHOD(UpdateSkinnedMesh)(THIS_ CONST D3DXMATRIX* pBoneTransforms, CONST D3DXMATRIX* pBoneInvTransforms, LPD3DXMESH pMesh) PURE;
};
#ifdef __cplusplus
@ -364,13 +443,16 @@ HRESULT WINAPI
HRESULT WINAPI
D3DXCleanMesh(
LPD3DXMESH pMeshIn,
CONST DWORD* pAdjacency,
LPD3DXMESH* ppMeshOut);
CONST DWORD* pAdjacencyIn,
LPD3DXMESH* ppMeshOut,
DWORD* pAdjacencyOut,
LPD3DXBUFFER* ppErrorsAndWarnings);
HRESULT WINAPI
D3DXValidMesh(
LPD3DXMESH pMeshIn,
CONST DWORD* pAdjacency);
CONST DWORD* pAdjacency,
LPD3DXBUFFER* ppErrorsAndWarnings);
HRESULT WINAPI
D3DXGeneratePMesh(
@ -410,7 +492,8 @@ HRESULT WINAPI
HRESULT WINAPI
D3DXComputeNormals(
LPD3DXBASEMESH pMesh);
LPD3DXBASEMESH pMesh,
CONST DWORD *pAdjacency);
HRESULT WINAPI
D3DXCreateBuffer(
@ -425,7 +508,30 @@ HRESULT WINAPI
LPDIRECT3DDEVICE8 pD3D,
LPD3DXBUFFER *ppAdjacency,
LPD3DXBUFFER *ppMaterials,
PDWORD pNumMaterials,
DWORD *pNumMaterials,
LPD3DXMESH *ppMesh);
HRESULT WINAPI
D3DXLoadMeshFromXInMemory(
PBYTE Memory,
DWORD SizeOfMemory,
DWORD Options,
LPDIRECT3DDEVICE8 pD3D,
LPD3DXBUFFER *ppAdjacency,
LPD3DXBUFFER *ppMaterials,
DWORD *pNumMaterials,
LPD3DXMESH *ppMesh);
HRESULT WINAPI
D3DXLoadMeshFromXResource(
HMODULE Module,
LPCTSTR Name,
LPCTSTR Type,
DWORD Options,
LPDIRECT3DDEVICE8 pD3D,
LPD3DXBUFFER *ppAdjacency,
LPD3DXBUFFER *ppMaterials,
DWORD *pNumMaterials,
LPD3DXMESH *ppMesh);
HRESULT WINAPI
@ -441,7 +547,7 @@ HRESULT WINAPI
HRESULT WINAPI
D3DXCreatePMeshFromStream(
IStream *pStream,
DWORD Options,
DWORD Options,
LPDIRECT3DDEVICE8 pD3DDevice,
LPD3DXBUFFER *ppMaterials,
DWORD* pNumMaterials,
@ -449,21 +555,21 @@ HRESULT WINAPI
HRESULT WINAPI
D3DXCreateSkinMesh(
DWORD numFaces,
DWORD numVertices,
DWORD numBones,
DWORD options,
DWORD NumFaces,
DWORD NumVertices,
DWORD NumBones,
DWORD Options,
CONST DWORD *pDeclaration,
LPDIRECT3DDEVICE8 pD3D,
LPD3DXSKINMESH* ppSkinMesh);
HRESULT WINAPI
D3DXCreateSkinMeshFVF(
DWORD numFaces,
DWORD numVertices,
DWORD numBones,
DWORD options,
DWORD fvf,
DWORD NumFaces,
DWORD NumVertices,
DWORD NumBones,
DWORD Options,
DWORD FVF,
LPDIRECT3DDEVICE8 pD3D,
LPD3DXSKINMESH* ppSkinMesh);
@ -480,33 +586,37 @@ HRESULT WINAPI
LPDIRECT3DDEVICE8 pD3DDevice,
LPD3DXBUFFER *ppAdjacency,
LPD3DXBUFFER *ppMaterials,
PDWORD pNumMaterials,
DWORD *pNumMaterials,
LPD3DXMESH *ppMesh);
HRESULT WINAPI
D3DXLoadSkinMeshFromXof(
LPDIRECTXFILEDATA pxofobjMesh,
DWORD options,
DWORD Options,
LPDIRECT3DDEVICE8 pD3D,
LPD3DXBUFFER* ppAdjacency,
LPD3DXBUFFER* ppMaterials,
PDWORD pMatOut,
DWORD *pMatOut,
LPD3DXBUFFER* ppBoneNames,
LPD3DXBUFFER* ppBoneTransforms,
LPD3DXSKINMESH* ppMesh);
HRESULT WINAPI
D3DXTesselateMesh(
D3DXTessellateNPatches(
LPD3DXMESH pMeshIn,
CONST DWORD* pAdjacency,
CONST DWORD* pAdjacencyIn,
FLOAT NumSegs,
BOOL QuadraticInterpNormals, // if false use linear intrep for normals, if true use quadratic
LPD3DXMESH *ppMeshOut);
LPD3DXMESH *ppMeshOut,
LPD3DXBUFFER *ppAdjacencyOut);
UINT WINAPI
D3DXGetFVFVertexSize(DWORD FVF);
HRESULT WINAPI
D3DXDeclaratorFromFVF(
DWORD FVF,
DWORD Declaration[MAX_FVF_DECL_SIZE]);
DWORD Declaration[MAX_FVF_DECL_SIZE]);
HRESULT WINAPI
D3DXFVFFromDeclarator(
@ -516,46 +626,131 @@ HRESULT WINAPI
HRESULT WINAPI
D3DXWeldVertices(
CONST LPD3DXMESH pMesh,
float fEpsilon,
CONST DWORD *rgdwAdjacencyIn,
DWORD *rgdwAdjacencyOut,
LPD3DXWELDEPSILONS pEpsilons,
CONST DWORD *pAdjacencyIn,
DWORD *pAdjacencyOut,
DWORD* pFaceRemap,
LPD3DXBUFFER *ppbufVertexRemap);
LPD3DXBUFFER *ppVertexRemap);
typedef struct _D3DXINTERSECTINFO
{
DWORD FaceIndex; // index of face intersected
FLOAT U; // Barycentric Hit Coordinates
FLOAT V; // Barycentric Hit Coordinates
FLOAT Dist; // Ray-Intersection Parameter Distance
} D3DXINTERSECTINFO, *LPD3DXINTERSECTINFO;
HRESULT WINAPI
D3DXIntersect(
LPD3DXBASEMESH pMesh,
CONST D3DXVECTOR3 *pRayPos,
CONST D3DXVECTOR3 *pRayDir,
BOOL *pHit,
DWORD *pFaceIndex,
FLOAT *pU,
FLOAT *pV,
FLOAT *pDist);
CONST D3DXVECTOR3 *pRayDir,
BOOL *pHit, // True if any faces were intersected
DWORD *pFaceIndex, // index of closest face intersected
FLOAT *pU, // Barycentric Hit Coordinates
FLOAT *pV, // Barycentric Hit Coordinates
FLOAT *pDist, // Ray-Intersection Parameter Distance
LPD3DXBUFFER *ppAllHits, // Array of D3DXINTERSECTINFOs for all hits (not just closest)
DWORD *pCountOfHits); // Number of entries in AllHits array
HRESULT WINAPI
D3DXIntersectSubset(
LPD3DXBASEMESH pMesh,
DWORD AttribId,
CONST D3DXVECTOR3 *pRayPos,
CONST D3DXVECTOR3 *pRayDir,
BOOL *pHit, // True if any faces were intersected
DWORD *pFaceIndex, // index of closest face intersected
FLOAT *pU, // Barycentric Hit Coordinates
FLOAT *pV, // Barycentric Hit Coordinates
FLOAT *pDist, // Ray-Intersection Parameter Distance
LPD3DXBUFFER *ppAllHits, // Array of D3DXINTERSECTINFOs for all hits (not just closest)
DWORD *pCountOfHits); // Number of entries in AllHits array
HRESULT WINAPI D3DXSplitMesh
(
CONST LPD3DXMESH pMeshIn,
CONST DWORD *pAdjacencyIn,
CONST DWORD MaxSize,
CONST DWORD Options,
DWORD *pMeshesOut,
LPD3DXBUFFER *ppMeshArrayOut,
LPD3DXBUFFER *ppAdjacencyArrayOut,
LPD3DXBUFFER *ppFaceRemapArrayOut,
LPD3DXBUFFER *ppVertRemapArrayOut
);
BOOL D3DXIntersectTri
(
CONST D3DXVECTOR3 *p0, // Triangle vertex 0 position
CONST D3DXVECTOR3 *p1, // Triangle vertex 1 position
CONST D3DXVECTOR3 *p2, // Triangle vertex 2 position
CONST D3DXVECTOR3 *pRayPos, // Ray origin
CONST D3DXVECTOR3 *pRayDir, // Ray direction
FLOAT *pU, // Barycentric Hit Coordinates
FLOAT *pV, // Barycentric Hit Coordinates
FLOAT *pDist); // Ray-Intersection Parameter Distance
BOOL WINAPI
D3DXSphereBoundProbe(
CONST D3DXVECTOR3 *pvCenter,
FLOAT fRadius,
D3DXVECTOR3 *pvRayPosition,
D3DXVECTOR3 *pvRayDirection);
CONST D3DXVECTOR3 *pCenter,
FLOAT Radius,
CONST D3DXVECTOR3 *pRayPosition,
CONST D3DXVECTOR3 *pRayDirection);
BOOL WINAPI
D3DXBoxBoundProbe(
CONST D3DXVECTOR3 *pvMin,
CONST D3DXVECTOR3 *pvMax,
D3DXVECTOR3 *pvRayPosition,
D3DXVECTOR3 *pvRayDirection);
CONST D3DXVECTOR3 *pMin,
CONST D3DXVECTOR3 *pMax,
CONST D3DXVECTOR3 *pRayPosition,
CONST D3DXVECTOR3 *pRayDirection);
enum _D3DXERR {
D3DXERR_CANNOTMODIFYINDEXBUFFER = MAKE_DDHRESULT(2900),
D3DXERR_INVALIDMESH = MAKE_DDHRESULT(2901),
D3DXERR_CANNOTATTRSORT = MAKE_DDHRESULT(2902),
D3DXERR_SKINNINGNOTSUPPORTED = MAKE_DDHRESULT(2903),
D3DXERR_TOOMANYINFLUENCES = MAKE_DDHRESULT(2904),
D3DXERR_CANNOTMODIFYINDEXBUFFER = MAKE_DDHRESULT(2900),
D3DXERR_INVALIDMESH = MAKE_DDHRESULT(2901),
D3DXERR_CANNOTATTRSORT = MAKE_DDHRESULT(2902),
D3DXERR_SKINNINGNOTSUPPORTED = MAKE_DDHRESULT(2903),
D3DXERR_TOOMANYINFLUENCES = MAKE_DDHRESULT(2904),
D3DXERR_INVALIDDATA = MAKE_DDHRESULT(2905),
D3DXERR_LOADEDMESHASNODATA = MAKE_DDHRESULT(2906),
};
#define D3DX_COMP_TANGENT_NONE 0xFFFFFFFF
HRESULT WINAPI D3DXComputeTangent(LPD3DXMESH InMesh,
DWORD TexStage,
LPD3DXMESH OutMesh,
DWORD TexStageUVec,
DWORD TexStageVVec,
DWORD Wrap,
DWORD *Adjacency);
HRESULT WINAPI
D3DXConvertMeshSubsetToSingleStrip
(
LPD3DXBASEMESH MeshIn,
DWORD AttribId,
DWORD IBOptions,
LPDIRECT3DINDEXBUFFER8 *ppIndexBuffer,
DWORD *pNumIndices
);
HRESULT WINAPI
D3DXConvertMeshSubsetToStrips
(
LPD3DXBASEMESH MeshIn,
DWORD AttribId,
DWORD IBOptions,
LPDIRECT3DINDEXBUFFER8 *ppIndexBuffer,
DWORD *pNumIndices,
LPD3DXBUFFER *ppStripLengths,
DWORD *pNumStrips
);
#ifdef __cplusplus
}
#endif //__cplusplus

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dx8shapes.h
// Content: D3DX simple shapes
@ -192,6 +192,7 @@ HRESULT WINAPI
FLOAT Deviation,
FLOAT Extrusion,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency,
LPGLYPHMETRICSFLOAT pGlyphMetrics);
HRESULT WINAPI
@ -202,6 +203,7 @@ HRESULT WINAPI
FLOAT Deviation,
FLOAT Extrusion,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency,
LPGLYPHMETRICSFLOAT pGlyphMetrics);
#ifdef UNICODE

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dxcore.h
// Content: D3DX core types and functions

View File

@ -2,7 +2,7 @@
//
// d3dxerr.h -- 0xC code definitions for the D3DX API
//
// Copyright (c) 1991-1999, Microsoft Corp. All rights reserved.
// Copyright (c) Microsoft Corp. All rights reserved.
//
//----------------------------------------------------------------------
#ifndef __D3DXERR_H__

View File

@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1998 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dxmath.h
// Content: D3DX math types and functions

View File

@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1998 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dxmath.inl
// Content: D3DX math inline functions

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dxshapes.h
// Content: D3DX simple shapes

View File

@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
// File: d3dxsprite.h
// Content: D3DX sprite helper functions

View File

@ -1,6 +1,6 @@
/*==========================================================================;
*
* Copyright (C) 1994-1997 Microsoft Corporation. All Rights Reserved.
* Copyright (C) Microsoft Corporation. All Rights Reserved.
*
* File: ddraw.h
* Content: DirectDraw include file
@ -2898,6 +2898,16 @@ typedef struct _DDCOLORCONTROL
*/
#define DDSCAPS2_DISCARDBACKBUFFER 0x10000000L
/*
* Indicates that all surfaces in this creation chain should be given an alpha channel.
* This flag will be set on primary surface chains that may have no explicit pixel format
* (and thus take on the format of the current display mode).
* The driver should infer that all these surfaces have a format having an alpha channel.
* (e.g. assume D3DFMT_A8R8G8B8 if the display mode is x888.)
*/
#define DDSCAPS2_ENABLEALPHACHANNEL 0x20000000L
/*
* This is a mask that indicates the set of bits that may be set
* at createsurface time to indicate number of samples per pixel
@ -3248,9 +3258,26 @@ typedef struct _DDCOLORCONTROL
#define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000L
/*
* Indicates that the driver can support PUREHAL.
* was DDCAPS2_PUREHAL
*/
#define DDCAPS2_PUREHAL 0x08000000L
#define DDCAPS2_RESERVED1 0x08000000L
/*
* Driver supports management of video memory, if this flag is ON,
* driver manages the resource if requested with DDSCAPS2_TEXTUREMANAGE on
* DirectX manages the resource if this flag is OFF and surface has DDSCAPS2_TEXTUREMANAGE on
*/
#define DDCAPS2_CANMANAGERESOURCE 0x10000000L
/*
* Driver supports dynamic textures. This will allow the application to set
* D3DUSAGE_DYNAMIC (DDSCAPS2_HINTDYNAMIC for drivers) at texture create time.
* Video memory dynamic textures WILL be lockable by applications. It is
* expected that these locks will be very efficient (which implies that the
* driver should always maintain a linear copy, a pointer to which can be
* quickly handed out to the application).
*/
#define DDCAPS2_DYNAMICTEXTURES 0x20000000L
/****************************************************************************
@ -3564,7 +3591,6 @@ typedef struct _DDCOLORCONTROL
/****************************************************************************
*
* DIRECTDRAWPALETTE CAPABILITIES
@ -4686,6 +4712,15 @@ typedef struct _DDCOLORCONTROL
*/
#define DDLOCK_DONOTWAIT 0x00004000L
/*
* This indicates volume texture lock with front and back specified.
*/
#define DDLOCK_HASVOLUMETEXTUREBOXRECT 0x00008000L
/*
* This indicates that the driver should not update dirty rect information for this lock.
*/
#define DDLOCK_NODIRTYUPDATE 0x00010000L
/****************************************************************************
@ -4958,7 +4993,7 @@ typedef struct _DDCOLORCONTROL
*
* Issued by: DirectDraw Commands and all callbacks
*/
#define DD_OK 0
#define DD_OK S_OK
#define DD_FALSE S_FALSE
/****************************************************************************

View File

@ -4,10 +4,10 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 6.00.0338 */
/* File created by MIDL compiler version 6.00.0347 */
/* Compiler settings for ddstream.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
@ -18,7 +18,7 @@
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include "rpc.h"

View File

@ -3,7 +3,7 @@
//
// Desc: Headers needed by almost all DMOs.
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999 - 2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -13,7 +13,7 @@
#include "mediaerr.h"
// When using ATL we get collisions on Lock so in this case rename
// When using ATL we get collisions on Lock, so in this case rename
// IMediaObject::Lock to IMediaObject::DMOLock
#ifdef FIX_LOCK_NAME

View File

@ -4,7 +4,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 6.00.0338 */
/* File created by MIDL compiler version 6.00.0347 */
/* Compiler settings for dmodshow.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, robust

View File

@ -3,7 +3,7 @@
//
// Desc: Classes to implement a DMO.
//
// Copyright (c) 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 2000-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -222,6 +222,7 @@ protected:
*pulNumberOfOutputStreams = NUMBEROFOUTPUTS;
return S_OK;
}
STDMETHODIMP GetInputStreamInfo(ULONG ulStreamIndex, DWORD *pdwFlags)
{
LockIt lck(static_cast<_DERIVED_ *>(this));
@ -238,6 +239,7 @@ protected:
DMO_INPUT_STREAMF_HOLDS_BUFFERS)));
return hr;
}
STDMETHODIMP GetOutputStreamInfo(ULONG ulStreamIndex, DWORD *pdwFlags)
{
LockIt lck(static_cast<_DERIVED_ *>(this));
@ -255,6 +257,7 @@ protected:
DMO_OUTPUT_STREAMF_OPTIONAL)));
return hr;
}
STDMETHODIMP GetInputType(ULONG ulStreamIndex, ULONG ulTypeIndex, DMO_MEDIA_TYPE *pmt) {
if (ulStreamIndex >= NUMBEROFINPUTS) {
return DMO_E_INVALIDSTREAMINDEX;
@ -262,6 +265,7 @@ protected:
LockIt lck(static_cast<_DERIVED_ *>(this));
return INTERNAL_CALL(_DERIVED_, GetInputType)(ulStreamIndex, ulTypeIndex, pmt);
}
STDMETHODIMP GetOutputType(ULONG ulStreamIndex, ULONG ulTypeIndex, DMO_MEDIA_TYPE *pmt) {
if (ulStreamIndex >= NUMBEROFOUTPUTS) {
return DMO_E_INVALIDSTREAMINDEX;
@ -269,6 +273,7 @@ protected:
LockIt lck(static_cast<_DERIVED_ *>(this));
return INTERNAL_CALL(_DERIVED_, GetOutputType)(ulStreamIndex, ulTypeIndex, pmt);
}
STDMETHODIMP GetInputCurrentType(ULONG ulStreamIndex, DMO_MEDIA_TYPE *pmt) {
if (ulStreamIndex >= NUMBEROFINPUTS) {
return DMO_E_INVALIDSTREAMINDEX;
@ -283,6 +288,7 @@ protected:
else
return DMO_E_TYPE_NOT_SET;
}
STDMETHODIMP GetOutputCurrentType(ULONG ulStreamIndex, DMO_MEDIA_TYPE *pmt) {
if (ulStreamIndex >= NUMBEROFOUTPUTS) {
return DMO_E_INVALIDSTREAMINDEX;
@ -297,6 +303,7 @@ protected:
else
return DMO_E_TYPE_NOT_SET;
}
STDMETHODIMP GetInputSizeInfo(ULONG ulStreamIndex, ULONG *pulSize, ULONG *pcbMaxLookahead, ULONG *pulAlignment) {
if (ulStreamIndex >= NUMBEROFINPUTS) {
return DMO_E_INVALIDSTREAMINDEX;
@ -311,6 +318,7 @@ protected:
}
return INTERNAL_CALL(_DERIVED_, GetInputSizeInfo)(ulStreamIndex, pulSize, pcbMaxLookahead, pulAlignment);
}
STDMETHODIMP GetOutputSizeInfo(ULONG ulStreamIndex, ULONG *pulSize, ULONG *pulAlignment) {
if (ulStreamIndex >= NUMBEROFOUTPUTS) {
return DMO_E_INVALIDSTREAMINDEX;
@ -324,6 +332,7 @@ protected:
}
return INTERNAL_CALL(_DERIVED_, GetOutputSizeInfo)(ulStreamIndex, pulSize, pulAlignment);
}
STDMETHODIMP SetInputType(ULONG ulStreamIndex, const DMO_MEDIA_TYPE *pmt, DWORD dwFlags) {
if (ulStreamIndex >= NUMBEROFINPUTS) {
return DMO_E_INVALIDSTREAMINDEX;
@ -420,6 +429,7 @@ protected:
return NOERROR;
}
STDMETHODIMP GetInputStatus(
ULONG ulStreamIndex,
DWORD *pdwStatus
@ -443,6 +453,7 @@ protected:
}
return NOERROR;
}
STDMETHODIMP GetInputMaxLatency(unsigned long ulStreamIndex, REFERENCE_TIME *prtLatency) {
if (prtLatency == NULL) {
@ -456,6 +467,7 @@ protected:
return INTERNAL_CALL(_DERIVED_, GetInputMaxLatency)(ulStreamIndex, prtLatency);
}
STDMETHODIMP SetInputMaxLatency(unsigned long ulStreamIndex, REFERENCE_TIME rtLatency) {
if (ulStreamIndex >= NUMBEROFINPUTS) {
return DMO_E_INVALIDSTREAMINDEX;
@ -465,6 +477,7 @@ protected:
return INTERNAL_CALL(_DERIVED_, SetInputMaxLatency)(ulStreamIndex, rtLatency);
}
STDMETHODIMP Discontinuity(ULONG ulStreamIndex) {
if (ulStreamIndex >= NUMBEROFINPUTS) {
return DMO_E_INVALIDSTREAMINDEX;
@ -512,6 +525,7 @@ protected:
}
return hr;
}
STDMETHODIMP FreeStreamingResources()
{
LockIt lck(static_cast<_DERIVED_ *>(this));

View File

@ -3,7 +3,7 @@
//
// Desc:
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999 - 2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -78,10 +78,10 @@ STDAPI DMOEnum(
REFGUID guidCategory, // GUID_NULL for "all"
DWORD dwFlags, // DMO_ENUMF_XXX
//
// Enumerate only objects that support at least one of the specified input types
// and at least one of the specified output types. If no input types are specified,
// enumerate objects regardless of what input types they support. Same for
// output types.
// Enumerate only objects that support at least one of the specified input types
// and at least one of the specified output types. If no input types are specified,
// enumerate objects regardless of what input types they support. Same for
// output types.
//
DWORD cInTypes,
const DMO_PARTIAL_MEDIATYPE *pInTypes, // can be NULL only of ulInTypes = 0

View File

@ -3,7 +3,7 @@
//
// Desc: Miscellaneous runtime support for DirectShow Media Objects
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999 - 2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -11,8 +11,8 @@
#define __DMORT_H__
//
// Mediatype helpers. MoInitMediaType() goes with MoFreeMediaType(),
// MoCreateMediaType() goes with MoDeleteMediaType() - don't mix !
// Mediatype helpers. MoInitMediaType() goes with MoFreeMediaType(), and
// MoCreateMediaType() goes with MoDeleteMediaType(). Don't mix them!
//

View File

@ -50,6 +50,7 @@ typedef struct _DMUS_BUFFERDESC
#define DMUS_EFFECT_NONE 0x00000000
#define DMUS_EFFECT_REVERB 0x00000001
#define DMUS_EFFECT_CHORUS 0x00000002
#define DMUS_EFFECT_DELAY 0x00000004
/* For DMUS_PORTCAPS dwClass
*/

View File

@ -136,14 +136,15 @@ typedef enum enumDMUS_COMPOSEF_FLAGS
DMUS_COMPOSEF_MARKER = 0x800, /* Play the transition at the next marker in the current segment. */
DMUS_COMPOSEF_MODULATE = 0x1000,
DMUS_COMPOSEF_LONG = 0x2000,
DMUS_COMPOSEF_ENTIRE_TRANSITION = 0x4000, /* play the entire transition pattern */
DMUS_COMPOSEF_1BAR_TRANSITION = 0x8000, /* play one bar of the transition pattern */
DMUS_COMPOSEF_ENTIRE_ADDITION = 0x10000, /* play the additional pattern in its entirety */
DMUS_COMPOSEF_1BAR_ADDITION = 0x20000, /* play one bar of the additional pattern */
DMUS_COMPOSEF_ENTIRE_TRANSITION = 0x4000, /* play the entire transition pattern */
DMUS_COMPOSEF_1BAR_TRANSITION = 0x8000, /* play one bar of the transition pattern */
DMUS_COMPOSEF_ENTIRE_ADDITION = 0x10000, /* play the additional pattern in its entirety */
DMUS_COMPOSEF_1BAR_ADDITION = 0x20000, /* play one bar of the additional pattern */
DMUS_COMPOSEF_VALID_START_MEASURE = 0x40000, /* In conjunction with DMUS_COMPOSEF_ALIGN, allows the switch to occur on any bar. */
DMUS_COMPOSEF_DEFAULT = 0x80000, /* Use segment's default boundary */
DMUS_COMPOSEF_DEFAULT = 0x80000, /* Use segment's default boundary */
DMUS_COMPOSEF_NOINVALIDATE = 0x100000, /* Play without invalidating the currently playing segment(s) */
DMUS_COMPOSEF_USE_AUDIOPATH = 0x200000 /* Uses the audio paths that are embedded in the segments */
DMUS_COMPOSEF_USE_AUDIOPATH = 0x200000, /* Uses the audio paths that are embedded in the segments */
DMUS_COMPOSEF_INVALIDATE_PRI = 0x400000 /* Invalidate only the current primary seg state */
} DMUS_COMPOSEF_FLAGS;
#define DMUS_PMSG_PART \
@ -298,7 +299,8 @@ typedef enum enumDMUS_SEGF_FLAGS
DMUS_SEGF_MARKER = 1<<24, /* 0x1000000 Play at next marker in the primary segment. If there are no markers, default to any other resolution requests. */
DMUS_SEGF_TIMESIG_ALWAYS = 1<<25, /* 0x2000000 Even if there is no primary segment, align start time with current time signature. */
DMUS_SEGF_USE_AUDIOPATH = 1<<26, /* 0x4000000 Uses the audio path that is embedded in the segment or song. */
DMUS_SEGF_VALID_START_MEASURE = 1<<27 /* 0x8000000 In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any bar. */
DMUS_SEGF_VALID_START_MEASURE = 1<<27, /* 0x8000000 In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any bar. */
DMUS_SEGF_INVALIDATE_PRI = 1<<28 /* 0x10000000 invalidate only the current primary seg state */
} DMUS_SEGF_FLAGS;
#define DMUS_SEG_REPEAT_INFINITE 0xFFFFFFFF /* For IDirectMusicSegment::SetRepeat*/
@ -661,6 +663,7 @@ typedef struct _DMUS_WAVE_PMSG
#define DMUS_WAVEF_OFF 1 /* If wave is playing and this is the off message. */
#define DMUS_WAVEF_STREAMING 2 /* If wave is streaming. */
#define DMUS_WAVEF_NOINVALIDATE 4 /* Don't invalidate this wave. */
#define DMUS_WAVEF_NOPREROLL 8 /* Don't preroll any wave data. */
/* DMUS_LYRIC_PMSG */
typedef struct _DMUS_LYRIC_PMSG

View File

@ -200,7 +200,14 @@ typedef struct sockaddr SOCKADDR;
*
****************************************************************************/
HRESULT WINAPI DirectPlay8AddressCreate( const GUID * pcIID, void **ppvInterface, IUnknown *pUnknown);
/*
*
* This function is no longer supported. It is recommended that CoCreateInstance be used to create
* DirectPlay8 address objects.
*
* HRESULT WINAPI DirectPlay8AddressCreate( const GUID * pcIID, void **ppvInterface, IUnknown *pUnknown);
*
*/
/****************************************************************************
*

View File

@ -2039,8 +2039,8 @@ DECLARE_INTERFACE_( IDirectPlay, IUnknown )
STDMETHOD(DestroyGroup) (THIS_ DPID) PURE;
STDMETHOD(EnableNewPlayers) (THIS_ BOOL) PURE;
STDMETHOD(EnumGroupPlayers) (THIS_ DPID, LPDPENUMPLAYERSCALLBACK,LPVOID,DWORD) PURE;
STDMETHOD(EnumGroups) (THIS_ DWORD, LPDPENUMPLAYERSCALLBACK,LPVOID,DWORD) PURE;
STDMETHOD(EnumPlayers) (THIS_ DWORD, LPDPENUMPLAYERSCALLBACK,LPVOID,DWORD) PURE;
STDMETHOD(EnumGroups) (THIS_ DWORD_PTR, LPDPENUMPLAYERSCALLBACK,LPVOID,DWORD) PURE;
STDMETHOD(EnumPlayers) (THIS_ DWORD_PTR, LPDPENUMPLAYERSCALLBACK,LPVOID,DWORD) PURE;
STDMETHOD(EnumSessions) (THIS_ LPDPSESSIONDESC,DWORD,LPDPENUMSESSIONSCALLBACK,LPVOID,DWORD) PURE;
STDMETHOD(GetCaps) (THIS_ LPDPCAPS) PURE;
STDMETHOD(GetMessageCount) (THIS_ DPID, LPDWORD) PURE;

View File

@ -84,7 +84,6 @@ typedef struct IDirectPlay8Peer *PDIRECTPLAY8PEER;
typedef struct IDirectPlay8Server *PDIRECTPLAY8SERVER;
typedef struct IDirectPlay8Client *PDIRECTPLAY8CLIENT;
/****************************************************************************
*
* DirectPlay8 Forward Declarations For External Types
@ -355,8 +354,8 @@ typedef struct _DPN_APPLICATION_DESC
//
typedef struct _BUFFERDESC
{
DWORD dwBufferSize;
BYTE * UNALIGNED pBufferData;
DWORD dwBufferSize;
BYTE * pBufferData;
} BUFFERDESC, DPN_BUFFER_DESC, *PDPN_BUFFER_DESC;
typedef BUFFERDESC FAR * PBUFFERDESC;
@ -407,6 +406,7 @@ typedef struct _DPN_CONNECTION_INFO
} DPN_CONNECTION_INFO, *PDPN_CONNECTION_INFO;
//
// Group information strucutre
//
@ -743,7 +743,13 @@ typedef struct _DPNMSG_TERMINATE_SESSION
*
****************************************************************************/
extern HRESULT WINAPI DirectPlay8Create( const GUID * pcIID, void **ppvInterface, IUnknown *pUnknown);
/*
* This function is no longer supported. It is recommended that CoCreateInstance be used to create
* DirectPlay8 objects.
*
* extern HRESULT WINAPI DirectPlay8Create( const GUID * pcIID, void **ppvInterface, IUnknown *pUnknown);
*
*/
/****************************************************************************
*
@ -781,7 +787,7 @@ DECLARE_INTERFACE_(IDirectPlay8Client,IUnknown)
STDMETHOD(SetSPCaps) (THIS_ const GUID * const pguidSP, const DPN_SP_CAPS *const pdpspCaps, const DWORD dwFlags ) PURE;
STDMETHOD(GetSPCaps) (THIS_ const GUID * const pguidSP,DPN_SP_CAPS *const pdpspCaps,const DWORD dwFlags) PURE;
STDMETHOD(GetConnectionInfo) (THIS_ DPN_CONNECTION_INFO *const pdpConnectionInfo,const DWORD dwFlags) PURE;
STDMETHOD(RegisterLobby) (THIS_ const DPNHANDLE dpnHandle, IDirectPlay8LobbiedApplication *const pIDP8LobbiedApplication,const DWORD dwFlags) PURE;
STDMETHOD(RegisterLobby) (THIS_ const DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *const pIDP8LobbiedApplication,const DWORD dwFlags) PURE;
};
//
@ -826,7 +832,7 @@ DECLARE_INTERFACE_(IDirectPlay8Server,IUnknown)
STDMETHOD(SetSPCaps) (THIS_ const GUID * const pguidSP, const DPN_SP_CAPS *const pdpspCaps, const DWORD dwFlags ) PURE;
STDMETHOD(GetSPCaps) (THIS_ const GUID * const pguidSP, DPN_SP_CAPS *const pdpspCaps,const DWORD dwFlags) PURE;
STDMETHOD(GetConnectionInfo) (THIS_ const DPNID dpnid, DPN_CONNECTION_INFO *const pdpConnectionInfo,const DWORD dwFlags) PURE;
STDMETHOD(RegisterLobby) (THIS_ const DPNHANDLE dpnHandle, IDirectPlay8LobbiedApplication *const pIDP8LobbiedApplication,const DWORD dwFlags) PURE;
STDMETHOD(RegisterLobby) (THIS_ const DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *const pIDP8LobbiedApplication,const DWORD dwFlags) PURE;
};
//
@ -873,7 +879,7 @@ DECLARE_INTERFACE_(IDirectPlay8Peer,IUnknown)
STDMETHOD(SetSPCaps) (THIS_ const GUID * const pguidSP, const DPN_SP_CAPS *const pdpspCaps, const DWORD dwFlags ) PURE;
STDMETHOD(GetSPCaps) (THIS_ const GUID * const pguidSP, DPN_SP_CAPS *const pdpspCaps,const DWORD dwFlags) PURE;
STDMETHOD(GetConnectionInfo) (THIS_ const DPNID dpnid, DPN_CONNECTION_INFO *const pdpConnectionInfo,const DWORD dwFlags) PURE;
STDMETHOD(RegisterLobby) (THIS_ const DPNHANDLE dpnHandle, IDirectPlay8LobbiedApplication *const pIDP8LobbiedApplication,const DWORD dwFlags) PURE;
STDMETHOD(RegisterLobby) (THIS_ const DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *const pIDP8LobbiedApplication,const DWORD dwFlags) PURE;
STDMETHOD(TerminateSession) (THIS_ void *const pvTerminateData,const DWORD dwTerminateDataSize,const DWORD dwFlags) PURE;
};

View File

@ -275,8 +275,14 @@ typedef struct _DPL_MESSAGE_SESSION_STATUS
* DirectPlay8Lobby Create
*
****************************************************************************/
extern HRESULT WINAPI DirectPlay8LobbyCreate( const GUID * pcIID, void **ppvInterface, IUnknown *pUnknown);
/*
* This function is no longer supported. It is recommended that CoCreateInstance be used to create
* DirectPlay8 lobby objects.
*
* extern HRESULT WINAPI DirectPlay8LobbyCreate( const GUID * pcIID, void **ppvInterface, IUnknown *pUnknown);
*
*/
/****************************************************************************
*

View File

@ -51,8 +51,6 @@ extern "C" {
#define DSETUP_DIRECTX (DSETUP_DXCORE|DSETUP_DDRAWDRV|DSETUP_DSOUNDDRV)
#define DSETUP_TESTINSTALL 0x00020000 /* just test install, don't do anything */
#define DSETUP_USEROLDERFLAG 0x02000000 /* enable return DSETUPERR_NEWERVERSION */
// Bug #22730
// #define DSETUP_NTINSTALL 0x00080000 /* install on Win2K platform */
// These OBSOLETE flags are here for compatibility with pre-DX5 apps only.
// They are present to allow DX3 apps to be recompiled with DX5 and still work.

View File

@ -1,58 +1,62 @@
//------------------------------------------------------------------------------
// File: DV.h
//
// Desc: DV typedefs and defines.
// Desc: DV typedefs and defines
//
// Copyright (c) 1997 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1997-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#ifndef _DV_H_
#define _DV_H_
#define DV_DVSD_NTSC_FRAMESIZE 120000L
#define DV_DVSD_PAL_FRAMESIZE 144000L
#define DV_DVSD_NTSC_FRAMESIZE 120000L
#define DV_DVSD_PAL_FRAMESIZE 144000L
#define DV_SMCHN 0x0000e000
#define DV_SMCHN 0x0000e000
#define DV_AUDIOMODE 0x00000f00
#define DV_AUDIOSMP 0x38000000
#define DV_AUDIOSMP 0x38000000
#define DV_AUDIOQU 0x07000000
#define DV_NTSCPAL 0x00200000
#define DV_STYPE 0x001f0000
#define DV_AUDIOQU 0x07000000
#define DV_NTSCPAL 0x00200000
#define DV_STYPE 0x001f0000
//There are NTSC or PAL DV camcorders
#define DV_NTSC 0
#define DV_PAL 1
#define DV_NTSC 0
#define DV_PAL 1
//DV camcorder can output sd/hd/sl
#define DV_SD 0x00
#define DV_HD 0x01
#define DV_SL 0x02
#define DV_SD 0x00
#define DV_HD 0x01
#define DV_SL 0x02
//user can choice 12 bits or 16 bits audio from DV camcorder
#define DV_CAP_AUD16Bits 0x00
#define DV_CAP_AUD12Bits 0x01
#define SIZE_DVINFO 0x20
#define SIZE_DVINFO 0x20
typedef struct Tag_DVAudInfo
{
BYTE bAudStyle[2];
//LSB 6 bits for starting DIF sequence number
//MSB 2 bits: 0 for mon. 1: stereo in one 5/6 DIF sequences, 2: stereo audio in both 5/6 DIF sequences
//example: 0x00: mon, audio in first 5/6 DIF sequence
// 0x05: mon, audio in 2nd 5 DIF sequence
// 0x15: stereo, audio only in 2nd 5 DIF sequence
// 0x10: stereo, audio only in 1st 5/6 DIF sequence
// 0x20: stereo, left ch in 1st 5/6 DIF sequence, right ch in 2nd 5/6 DIF sequence
// 0x26: stereo, rightch in 1st 6 DIF sequence, left ch in 2nd 6 DIF sequence
BYTE bAudQu[2]; //qbits, only support 12, 16,
BYTE bNumAudPin; //how many pin(language)
WORD wAvgSamplesPerPinPerFrm[2]; //samples size for one audio pin in one frame(which has 10 or 12 DIF sequence)
WORD wBlkMode; //45 for NTSC, 54 for PAL
WORD wDIFMode; //5 for NTSC, 6 for PAL
WORD wBlkDiv; //15 for NTSC, 18 for PAL
BYTE bAudStyle[2];
//LSB 6 bits for starting DIF sequence number
//MSB 2 bits: 0 for mon. 1: stereo in one 5/6 DIF sequences, 2: stereo audio in both 5/6 DIF sequences
//example: 0x00: mon, audio in first 5/6 DIF sequence
// 0x05: mon, audio in 2nd 5 DIF sequence
// 0x15: stereo, audio only in 2nd 5 DIF sequence
// 0x10: stereo, audio only in 1st 5/6 DIF sequence
// 0x20: stereo, left ch in 1st 5/6 DIF sequence, right ch in 2nd 5/6 DIF sequence
// 0x26: stereo, rightch in 1st 6 DIF sequence, left ch in 2nd 6 DIF sequence
BYTE bAudQu[2]; //qbits, only support 12, 16,
BYTE bNumAudPin; //how many pins
WORD wAvgSamplesPerPinPerFrm[2]; //sample size for one audio pin in one frame(which has 10 or 12 DIF sequence)
WORD wBlkMode; //45 for NTSC, 54 for PAL
WORD wDIFMode; //5 for NTSC, 6 for PAL
WORD wBlkDiv; //15 for NTSC, 18 for PAL
} DVAudInfo;
#endif // _DV_H_

View File

@ -3,9 +3,35 @@
//
// Desc: List of standard DVD-Video event codes and the expected params.
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#ifndef __DVDEVCOD__
#define __DVDEVCOD__
/////////////////////////////////////////////////////////////////////////////
//
// Windows XP vs. DirectX 8.0 header merge
//
// Separate the updated Windows XP version of this header from the downlevel
// version that shipped with the DirectX 8.0 SDK. Since development
// on BDA technology continued for Windows XP, some changes were made to
// this file in order to improve the interface and functionality.
//
// To maintain compatibility with older applications which rely on the
// DirectX 8.0 versions of these files, the DirectX 8.1 version includes
// both the Windows XP content and the DirectX 8.0 content, which are
// separated by the #if (WINVER >= 0x501) preprocessor directive.
//
// Therefore, if you define WINVER to be 0x501 to specify Windows XP,
// the revised content will be compiled. Otherwise, the original
// DirectX 8.0 content will be used.
//
/////////////////////////////////////////////////////////////////////////////
#if (WINVER >= 0x501) // Windows XP content
#define EC_DVDBASE 0x0100
@ -39,6 +65,7 @@ typedef enum _tagDVD_WARNING {
// can continue, but unexpected behavior may occur.
DVD_WARNING_FormatNotSupported=2,// A decoder would not support the current format. Playback
// of a stream (audio, video of SP) may not function.
// lParam2 contains the stream type (see AM_DVD_STREAM_FLAGS)
DVD_WARNING_IllegalNavCommand=3,// The internal DVD navigation command processor attempted to
// process an illegal command.
DVD_WARNING_Open = 4, // File Open Failed
@ -46,6 +73,25 @@ typedef enum _tagDVD_WARNING {
DVD_WARNING_Read = 6 // File Read Failed
} DVD_WARNING;
typedef enum _tagDVD_PB_STOPPED {
DVD_PB_STOPPED_Other=0, // The navigator stopped the playback (no reason available).
DVD_PB_STOPPED_NoBranch=1, // The nav completed the current pgc and there was no more video and
// did not find any other branching instruction for subsequent playback.
DVD_PB_STOPPED_NoFirstPlayDomain =2, // The disc does not contain an initial startup program.
DVD_PB_STOPPED_StopCommand = 3, // The app issued a stop() command or a stop command was authored on the disc.
DVD_PB_STOPPED_Reset=4, // The navigator was reset to the start of the disc (using ResetOnStop).
DVD_PB_STOPPED_DiscEjected=5, // The disc was ejected.
DVD_PB_STOPPED_IllegalNavCommand = 6, // An illegal nav command prevented playback from continuing.
DVD_PB_STOPPED_PlayPeriodAutoStop = 7, // PlayPeriod completed
DVD_PB_STOPPED_PlayChapterAutoStop = 8, // PlayChapter completed
DVD_PB_STOPPED_ParentalFailure = 9, // A parental level failure prevented playback
DVD_PB_STOPPED_RegionFailure = 10, // A region failure prevented playback
DVD_PB_STOPPED_MacrovisionFailure = 11, // A Macrovision failure prevented playback.
DVD_PB_STOPPED_DiscReadError = 12, // A read error prevented playback.
DVD_PB_STOPPED_CopyProtectFailure = 13 // Copy protection failure.
} DVD_PB_STOPPED;
#endif
// DVD-Video event codes
@ -100,8 +146,9 @@ typedef enum _tagDVD_WARNING {
// indicates that no stream is selected.
#define EC_DVD_SUBPICTURE_STREAM_CHANGE (EC_DVDBASE + 0x05)
// Parameters: ( DWORD, void )
// Parameters: ( DWORD, BOOL )
// lParam1 is the new user subpicture stream number.
// lParam2 is the subpicture's on/off state (TRUE if on)
//
// Raised from following domains: all
//
@ -209,8 +256,9 @@ typedef enum _tagDVD_WARNING {
//
#define EC_DVD_WARNING (EC_DVDBASE + 0x0d)
// Parameters: ( DWORD, void)
// Parameters: ( DWORD, DWORD)
// lParam1 is an enum DVD_WARNING which notifies the app of some warning condition.
// lParam2 contains more specific information about the warning (warning dependent)
//
// Raised from following domains: all
//
@ -262,7 +310,7 @@ typedef enum _tagDVD_WARNING {
//
#define EC_DVD_PLAYBACK_STOPPED (EC_DVDBASE + 0x12)
// Parameters : (void, void)
// Parameters : (DWORD, void)
//
// Raised from the following domains : All Domains
//
@ -270,6 +318,9 @@ typedef enum _tagDVD_WARNING {
// playback of the pgc and did not find any other branching instruction for
// subsequent playback.
//
// The DWORD returns the reason for the completion of the playback. See
// The DVD_PB_STOPPED enumeration for details.
//
#define EC_DVD_ANGLES_AVAILABLE (EC_DVDBASE + 0x13)
// Parameters : (BOOL, void)
@ -332,3 +383,349 @@ typedef enum _tagDVD_WARNING {
// Parameters: ( BOOL, reserved )
// lParam1 is either TRUE (a karaoke track is being played) or FALSE (no karaoke data is being played).
//
/////////////////////////////////////////////////////////////////////////////
//
// Windows XP vs. DirectX 8.0 header merge
//
// The following is the original contents of this header from
// the DirectX 8.0 SDK.
//
/////////////////////////////////////////////////////////////////////////////
#else // DirectX 8.0 content
#define EC_DVDBASE 0x0100
#ifndef EXCLUDE_DVDEVCODE_ENUMS
typedef enum _tagDVD_ERROR {
DVD_ERROR_Unexpected=1, // Something unexpected happened, perhaps content
// is incorrectly authored. Playback is stopped.
DVD_ERROR_CopyProtectFail=2, // Key exchange for DVD copy protection failed.
// Playback is stopped.
DVD_ERROR_InvalidDVD1_0Disc=3, // DVD-Video disc is incorrectly authored for v1.0
// of spec. Playback is stopped.
DVD_ERROR_InvalidDiscRegion=4, // The Disc cannot be played because the disc is not
// authored to play in system region.
// The region mismatch may be fixable by
// changing the system region with dvdrgn.exe
DVD_ERROR_LowParentalLevel=5, // Player parental level is lower than the lowest parental
// level available in the DVD content. Playback is stopped.
DVD_ERROR_MacrovisionFail=6, // Macrovision Distribution Failed.
// Playback is stopped.
DVD_ERROR_IncompatibleSystemAndDecoderRegions=7,
// No discs can be played because the system region
// does not match the decoder region.
DVD_ERROR_IncompatibleDiscAndDecoderRegions=8
// The disc cannot be played because the disc is
// not authored to be played in the decoder's region
} DVD_ERROR;
typedef enum _tagDVD_WARNING {
DVD_WARNING_InvalidDVD1_0Disc=1,// DVD-Video disc is incorrectly authored. Playback
// can continue, but unexpected behavior may occur.
DVD_WARNING_FormatNotSupported=2,// A decoder would not support the current format. Playback
// of a stream (audio, video of SP) may not function.
DVD_WARNING_IllegalNavCommand=3,// The internal DVD navigation command processor attempted to
// process an illegal command.
DVD_WARNING_Open = 4, // File Open Failed
DVD_WARNING_Seek = 5, // File Seek Failed
DVD_WARNING_Read = 6 // File Read Failed
} DVD_WARNING;
#endif
// DVD-Video event codes
// ======================
//
// All DVD-Video event are always passed on to the application, and are
// never processed by the filter graph
#define EC_DVD_DOMAIN_CHANGE (EC_DVDBASE + 0x01)
// Parameters: ( DWORD, void )
// lParam1 is enum DVD_DOMAIN, and indicates the player's new domain
//
// Raised from following domains: all
//
// Signaled when ever the DVD player changes domains.
#define EC_DVD_TITLE_CHANGE (EC_DVDBASE + 0x02)
// Parameters: ( DWORD, void )
// lParam1 is the new title number.
//
// Raised from following domains: DVD_DOMAIN_Title
//
// Indicates when the current title number changes. Title numbers
// range 1 to 99. This indicates the TTN, which is the title number
// with respect to the whole disc, not the VTS_TTN which is the title
// number with respect to just a current VTS.
#define EC_DVD_CHAPTER_START (EC_DVDBASE + 0x03)
// Parameters: ( DWORD, void )
// lParam1 is the new chapter number (which is the program number for
// One_Sequential_PGC_Titles).
//
// Raised from following domains: DVD_DOMAIN_Title
//
// Signales that DVD player started playback of a new program in the Title
// domain. This is only signaled for One_Sequential_PGC_Titles.
#define EC_DVD_AUDIO_STREAM_CHANGE (EC_DVDBASE + 0x04)
// Parameters: ( DWORD, void )
// lParam1 is the new user audio stream number.
//
// Raised from following domains: all
//
// Signaled when ever the current user audio stream number changes for the main
// title. This can be changed automatically with a navigation command on disc
// as well as through IDVDAnnexJ.
// Audio stream numbers range from 0 to 7. Stream 0xffffffff
// indicates that no stream is selected.
#define EC_DVD_SUBPICTURE_STREAM_CHANGE (EC_DVDBASE + 0x05)
// Parameters: ( DWORD, void )
// lParam1 is the new user subpicture stream number.
//
// Raised from following domains: all
//
// Signaled when ever the current user subpicture stream number changes for the main
// title. This can be changed automatically with a navigation command on disc
// as well as through IDVDAnnexJ.
// Subpicture stream numbers range from 0 to 31. Stream 0xffffffff
// indicates that no stream is selected.
#define EC_DVD_ANGLE_CHANGE (EC_DVDBASE + 0x06)
// Parameters: ( DWORD, DWORD )
// lParam1 is the number of available angles.
// lParam2 is the current user angle number.
//
// Raised from following domains: all
//
// Signaled when ever either
// a) the number of available angles changes, or
// b) the current user angle number changes.
// Current angle number can be changed automatically with navigation command
// on disc as well as through IDVDAnnexJ.
// When the number of available angles is 1, the current video is not multiangle.
// Angle numbers range from 1 to 9.
#define EC_DVD_BUTTON_CHANGE (EC_DVDBASE + 0x07)
// Parameters: ( DWORD, DWORD )
// lParam1 is the number of available buttons.
// lParam2 is the current selected button number.
//
// Raised from following domains: all
//
// Signaled when ever either
// a) the number of available buttons changes, or
// b) the current selected button number changes.
// The current selected button can be changed automatically with navigation
// commands on disc as well as through IDVDAnnexJ.
// Button numbers range from 1 to 36. Selected button number 0 implies that
// no button is selected. Note that these button numbers enumerate all
// available button numbers, and do not always correspond to button numbers
// used for IDVDAnnexJ::ButtonSelectAndActivate since only a subset of buttons
// may be activated with ButtonSelectAndActivate.
#define EC_DVD_VALID_UOPS_CHANGE (EC_DVDBASE + 0x08)
// Parameters: ( DWORD, void )
// lParam1 is a VALID_UOP_SOMTHING_OR_OTHER bit-field stuct which indicates
// which IDVDAnnexJ commands are explicitly disable by the DVD disc.
//
// Raised from following domains: all
//
// Signaled when ever the available set of IDVDAnnexJ methods changes. This
// only indicates which operations are explicited disabled by the content on
// the DVD disc, and does not guarentee that it is valid to call methods
// which are not disabled. For example, if no buttons are currently present,
// IDVDAnnexJ::ButtonActivate() won't work, even though the buttons are not
// explicitly disabled.
#define EC_DVD_STILL_ON (EC_DVDBASE + 0x09)
// Parameters: ( BOOL, DWORD )
// lParam1 == 0 --> buttons are available, so StillOff won't work
// lParam1 == 1 --> no buttons available, so StillOff will work
// lParam2 indicates the number of seconds the still will last, with 0xffffffff
// indicating an infinite still (wait till button or StillOff selected).
//
// Raised from following domains: all
//
// Signaled at the beginning of any still: PGC still, Cell Still, or VOBU Still.
// Note that all combinations of buttons and still are possible (buttons on with
// still on, buttons on with still off, button off with still on, button off
// with still off).
#define EC_DVD_STILL_OFF (EC_DVDBASE + 0x0a)
// Parameters: ( void, void )
//
// Indicating that any still that is currently active
// has been released.
//
// Raised from following domains: all
//
// Signaled at the end of any still: PGC still, Cell Still, or VOBU Still.
//
#define EC_DVD_CURRENT_TIME (EC_DVDBASE + 0x0b)
// Parameters: ( DWORD, BOOL )
// lParam1 is a DVD_TIMECODE which indicates the current
// playback time code in a BCD HH:MM:SS:FF format.
// lParam2 == 0 --> time code is 25 frames/sec
// lParam2 == 1 --> time code is 30 frames/sec (non-drop).
// lParam2 == 2 --> time code is invalid (current playback time
// cannot be determined for current title)
//
// Raised from following domains: DVD_DOMAIN_Title
//
// Signaled at the beginning of every VOBU, which occurs every .4 to 1.0 sec.
// This is only signaled for One_Sequential_PGC_Titles.
#define EC_DVD_ERROR (EC_DVDBASE + 0x0c)
// Parameters: ( DWORD, void)
// lParam1 is an enum DVD_ERROR which notifies the app of some error condition.
//
// Raised from following domains: all
//
#define EC_DVD_WARNING (EC_DVDBASE + 0x0d)
// Parameters: ( DWORD, void)
// lParam1 is an enum DVD_WARNING which notifies the app of some warning condition.
//
// Raised from following domains: all
//
#define EC_DVD_CHAPTER_AUTOSTOP (EC_DVDBASE + 0x0e)
// Parameters: (BOOL, void)
// lParam1 is a BOOL which indicates the reason for the cancellation of ChapterPlayAutoStop
// lParam1 == 0 indicates successful completion of ChapterPlayAutoStop
// lParam1 == 1 indicates that ChapterPlayAutoStop is being cancelled as a result of another
// IDVDControl call or the end of content has been reached & no more chapters
// can be played.
// Indicating that playback is stopped as a result of a call
// to IDVDControl::ChapterPlayAutoStop()
//
// Raised from following domains : DVD_DOMAIN_TITLE
//
#define EC_DVD_NO_FP_PGC (EC_DVDBASE + 0x0f)
// Parameters : (void, void)
//
// Raised from the following domains : FP_DOM
//
// Indicates that the DVD disc does not have a FP_PGC (First Play Program Chain)
// and the DVD Navigator will not automatically load any PGC and start playback.
//
#define EC_DVD_PLAYBACK_RATE_CHANGE (EC_DVDBASE + 0x10)
// Parameters : (LONG, void)
// lParam1 is a LONG indicating the new playback rate.
// lParam1 < 0 indicates reverse playback mode.
// lParam1 > 0 indicates forward playback mode
// Value of lParam1 is the actual playback rate multiplied by 10000.
// i.e. lParam1 = rate * 10000
//
// Raised from the following domains : TT_DOM
//
// Indicates that a rate change in playback has been initiated and the parameter
// lParam1 indicates the new playback rate that is being used.
//
#define EC_DVD_PARENTAL_LEVEL_CHANGE (EC_DVDBASE + 0x11)
// Parameters : (LONG, void)
// lParam1 is a LONG indicating the new parental level.
//
// Raised from the following domains : VMGM_DOM
//
// Indicates that an authored Nav command has changed the parental level
// setting in the player.
//
#define EC_DVD_PLAYBACK_STOPPED (EC_DVDBASE + 0x12)
// Parameters : (void, void)
//
// Raised from the following domains : All Domains
//
// Indicates that playback has been stopped as the Navigator has completed
// playback of the pgc and did not find any other branching instruction for
// subsequent playback.
//
#define EC_DVD_ANGLES_AVAILABLE (EC_DVDBASE + 0x13)
// Parameters : (BOOL, void)
// lParam1 == 0 indicates that playback is not in an angle block and angles are
// not available
// lParam1 == 1 indicates that an angle block is being played back and angle changes
// can be performed.
//
// Indicates whether an angle block is being played and if angle changes can be
// performed. However, angle changes are not restricted to angle blocks and the
// manifestation of the angle change can be seen only in an angle block.
#define EC_DVD_PLAYPERIOD_AUTOSTOP (EC_DVDBASE + 0x14)
// Parameters: (void, void)
// Sent when the PlayPeriodInTitle completes or is cancelled
//
// Raised from following domains : DVD_DOMAIN_TITLE
//
#define EC_DVD_BUTTON_AUTO_ACTIVATED (EC_DVDBASE + 0x15)
// Parameters: (DWORD button, void)
// Sent when a button is automatically activated
//
// Raised from following domains : DVD_DOMAIN_MENU
//
#define EC_DVD_CMD_START (EC_DVDBASE + 0x16)
// Parameters: (CmdID, HRESULT)
// Sent when a command begins
//
#define EC_DVD_CMD_END (EC_DVDBASE + 0x17)
// Parameters: (CmdID, HRESULT)
// Sent when a command completes
//
#define EC_DVD_DISC_EJECTED (EC_DVDBASE + 0x18)
// Parameters: none
// Sent when the nav detects that a disc was ejected and stops the playback
// The app does not need to take any action to stop the playback.
//
#define EC_DVD_DISC_INSERTED (EC_DVDBASE + 0x19)
// Parameters: none
// Sent when the nav detects that a disc was inserted and the nav begins playback
// The app does not need to take any action to start the playback.
//
#define EC_DVD_CURRENT_HMSF_TIME (EC_DVDBASE + 0x1a)
// Parameters: ( ULONG, ULONG )
// lParam2 contains a union of the DVD_TIMECODE_FLAGS
// lParam1 contains a DVD_HMSF_TIMECODE. Assign lParam1 to a ULONG then cast the
// ULONG as a DVD_HMSF_TIMECODE to use its values.
//
// Raised from following domains: DVD_DOMAIN_Title
//
// Signaled at the beginning of every VOBU, which occurs every .4 to 1.0 sec.
#define EC_DVD_KARAOKE_MODE (EC_DVDBASE + 0x1b)
// Parameters: ( BOOL, reserved )
// lParam1 is either TRUE (a karaoke track is being played) or FALSE (no karaoke data is being played).
//
#endif // DirectX 8.0 content
#endif // __DVDEVCOD__

View File

@ -8,7 +8,7 @@
// The types defined here should be kept in synch with ksmedia.h WDM
// DDK for kernel mode filters.
//
// Copyright (c) 1997 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1997 - 2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -269,7 +269,19 @@ enum AM_MPEG2Profile {
// indicates that "camera mode" was used.
#define AMMPEG2_LetterboxAnalogOut 0x00000020 //if set and this stream is sent to an analog output, it should
// be letterboxed. Streams sent to VGA should be letterboxed only by renderers.
#define AMMPEG2_DSS_UserData 0x00000040 //if set, the MPEG-2 decoder must process DSS style user data
#define AMMPEG2_DVB_UserData 0x00000080 //if set, the MPEG-2 decoder must process DVB style user data
#define AMMPEG2_27MhzTimebase 0x00000100 //if set, the PTS,DTS timestamps advance at 27MHz rather than 90KHz
#define AMMPEG2_WidescreenAnalogOut 0x00000200 //if set and this stream is sent to an analog output, it should
// be in widescreen format (4x3 content should be centered on a 16x9 output).
// Streams sent to VGA should be widescreened only by renderers.
// PRESENT in dwReserved1 field in VIDEOINFOHEADER2
#define AMCONTROL_USED 0x00000001 // Used to test if these flags are supported. Set and test for AcceptMediaType.
// If rejected, then you cannot use the AMCONTROL flags (send 0 for dwReserved1)
#define AMCONTROL_PAD_TO_4x3 0x00000002 // if set means display the image in a 4x3 area
#define AMCONTROL_PAD_TO_16x9 0x00000004 // if set means display the image in a 16x9 area
typedef struct tagVIDEOINFOHEADER2 {
RECT rcSource;
@ -281,7 +293,10 @@ typedef struct tagVIDEOINFOHEADER2 {
DWORD dwCopyProtectFlags; // use AMCOPYPROTECT_* defines. Reject connection if undefined bits are not 0
DWORD dwPictAspectRatioX; // X dimension of picture aspect ratio, e.g. 16 for 16x9 display
DWORD dwPictAspectRatioY; // Y dimension of picture aspect ratio, e.g. 9 for 16x9 display
DWORD dwReserved1; // must be 0; reject connection otherwise
union {
DWORD dwControlFlags; // use AMCONTROL_* defines, use this from now on
DWORD dwReserved1; // for backward compatiblity (was "must be 0"; connection rejected otherwise)
};
DWORD dwReserved2; // must be 0; reject connection otherwise
BITMAPINFOHEADER bmiHeader;
} VIDEOINFOHEADER2;
@ -313,18 +328,18 @@ typedef struct tagMPEG2VIDEOINFO {
//===================================================================================
#define AM_VIDEO_FLAG_FIELD_MASK 0x0003L // use this mask to check whether the sample is field1 or field2 or frame
#define AM_VIDEO_FLAG_INTERLEAVED_FRAME 0x0000L // the sample is a frame (remember to use AM_VIDEO_FLAG_FIELD_MASK when using this)
#define AM_VIDEO_FLAG_INTERLEAVED_FRAME 0x0000L // the sample is a frame (remember to use AM_VIDEO_FLAG_FIELD_MASK when using this)
#define AM_VIDEO_FLAG_FIELD1 0x0001L // the sample is field1 (remember to use AM_VIDEO_FLAG_FIELD_MASK when using this)
#define AM_VIDEO_FLAG_FIELD2 0x0002L // the sample is the field2 (remember to use AM_VIDEO_FLAG_FIELD_MASK when using this)
#define AM_VIDEO_FLAG_FIELD1FIRST 0x0004L // if set means display field1 first, else display field2 first.
// this bit is irrelavant for 1FieldPerSample mode
// this bit is irrelavant for 1FieldPerSample mode
#define AM_VIDEO_FLAG_WEAVE 0x0008L // if set use bob display mode else weave
#define AM_VIDEO_FLAG_IPB_MASK 0x0030L // use this mask to check whether the sample is I, P or B
#define AM_VIDEO_FLAG_I_SAMPLE 0x0000L // I Sample (remember to use AM_VIDEO_FLAG_IPB_MASK when using this)
#define AM_VIDEO_FLAG_I_SAMPLE 0x0000L // I Sample (remember to use AM_VIDEO_FLAG_IPB_MASK when using this)
#define AM_VIDEO_FLAG_P_SAMPLE 0x0010L // P Sample (remember to use AM_VIDEO_FLAG_IPB_MASK when using this)
#define AM_VIDEO_FLAG_B_SAMPLE 0x0020L // B Sample (remember to use AM_VIDEO_FLAG_IPB_MASK when using this)
#define AM_VIDEO_FLAG_REPEAT_FIELD 0x0040L // if set means display the field which has been displayed first again after displaying
// both fields first. This bit is irrelavant for 1FieldPerSample mode
// both fields first. This bit is irrelavant for 1FieldPerSample mode
// -----------------------------------------------------------------------
// AM_KSPROPSETID_DvdKaraoke property set definitions

View File

@ -359,7 +359,6 @@ typedef DWORD DVID, *LPDVID, *PDVID;
//
#define DVPLAYERCAPS_LOCAL 0x00000002
/****************************************************************************
*
* DirectPlayVoice Structures (Non-Message)
@ -620,7 +619,14 @@ typedef struct
*
****************************************************************************/
extern HRESULT WINAPI DirectPlayVoiceCreate( const GUID * pcIID, void **ppvInterface, IUnknown *pUnknown);
/*
*
* This function is no longer supported. It is recommended that CoCreateInstance be used to create
* DirectPlay voice objects.
*
* extern HRESULT WINAPI DirectPlayVoiceCreate( const GUID * pcIID, void **ppvInterface, IUnknown *pUnknown);
*
*/
/****************************************************************************
*

View File

@ -1,6 +1,6 @@
/*==========================================================================;
*
* Copyright (C) 1996-1997 Microsoft Corporation. All Rights Reserved.
* Copyright (C) Microsoft Corporation. All Rights Reserved.
*
* File: dvp.h
* Content: DirectDrawVideoPort include file
@ -16,6 +16,9 @@
#if defined( _WIN32 ) && (!defined( _NO_COM ) || defined( DEFINE_GUID ))
DEFINE_GUID( IID_IDDVideoPortContainer, 0x6C142760,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
DEFINE_GUID( IID_IDirectDrawVideoPort, 0xB36D93E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 );
DEFINE_GUID( IID_IDirectDrawVideoPortNotify, 0xA655FB94,0x0589,0x4E57,0xB3,0x33,0x56,0x7A,0x89,0x46,0x8C,0x88);
DEFINE_GUID( DDVPTYPE_E_HREFH_VREFH, 0x54F39980L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
DEFINE_GUID( DDVPTYPE_E_HREFH_VREFL, 0x92783220L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
@ -62,18 +65,21 @@ struct IDirectDrawSurface;
struct IDirectDrawPalette;
struct IDirectDrawClipper;
typedef struct IDDVideoPortContainer FAR *LPDDVIDEOPORTCONTAINER;
typedef struct IDirectDrawVideoPort FAR *LPDIRECTDRAWVIDEOPORT;
typedef struct IDDVideoPortContainer FAR *LPDDVIDEOPORTCONTAINER;
typedef struct IDirectDrawVideoPort FAR *LPDIRECTDRAWVIDEOPORT;
typedef struct IDirectDrawVideoPortNotify FAR *LPDIRECTDRAWVIDEOPORTNOTIFY;
typedef struct _DDVIDEOPORTCONNECT FAR *LPDDVIDEOPORTCONNECT;
typedef struct _DDVIDEOPORTCAPS FAR *LPDDVIDEOPORTCAPS;
typedef struct _DDVIDEOPORTDESC FAR *LPDDVIDEOPORTDESC;
typedef struct _DDVIDEOPORTINFO FAR *LPDDVIDEOPORTINFO;
typedef struct _DDVIDEOPORTBANDWIDTH FAR *LPDDVIDEOPORTBANDWIDTH;
typedef struct _DDVIDEOPORTSTATUS FAR *LPDDVIDEOPORTSTATUS;
typedef struct _DDVIDEOPORTCONNECT FAR *LPDDVIDEOPORTCONNECT;
typedef struct _DDVIDEOPORTCAPS FAR *LPDDVIDEOPORTCAPS;
typedef struct _DDVIDEOPORTDESC FAR *LPDDVIDEOPORTDESC;
typedef struct _DDVIDEOPORTINFO FAR *LPDDVIDEOPORTINFO;
typedef struct _DDVIDEOPORTBANDWIDTH FAR *LPDDVIDEOPORTBANDWIDTH;
typedef struct _DDVIDEOPORTSTATUS FAR *LPDDVIDEOPORTSTATUS;
typedef struct _DDVIDEOPORTNOTIFY FAR *LPDDVIDEOPORTNOTIFY;
typedef struct IDDVideoPortContainerVtbl DDVIDEOPORTCONTAINERCALLBACKS;
typedef struct IDirectDrawVideoPortVtbl DIRECTDRAWVIDEOPORTCALLBACKS;
typedef struct IDDVideoPortContainerVtbl DDVIDEOPORTCONTAINERCALLBACKS;
typedef struct IDirectDrawVideoPortVtbl DIRECTDRAWVIDEOPORTCALLBACKS;
typedef struct IDirectDrawVideoPortNotifyVtbl DIRECTDRAWVIDEOPORTNOTIFYCALLBACKS;
/*
@ -197,6 +203,38 @@ DECLARE_INTERFACE_( IDirectDrawVideoPort, IUnknown )
#endif
/*
* IDirectDrawVideoPort
*/
#if defined( _WIN32 ) && !defined( _NO_COM )
#undef INTERFACE
#define INTERFACE IDirectDrawVideoPortNotify
DECLARE_INTERFACE_( IDirectDrawVideoPortNotify, IUnknown )
{
/*** IUnknown methods ***/
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/*** IVideoPort methods ***/
STDMETHOD(AcquireNotification)(THIS_ HANDLE *, LPDDVIDEOPORTNOTIFY) PURE;
STDMETHOD(ReleaseNotification)(THIS_ HANDLE) PURE;
};
#if !defined(__cplusplus) || defined(CINTERFACE)
#define IVideoPortNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVideoPortNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVideoPortNotify_Release(p) (p)->lpVtbl->Release(p)
#define IVideoPortNotify_AcquireNotification(p,a,b) (p)->lpVtbl->AcquireNotification(p,a,b)
#define IVideoPortNotify_ReleaseNotification(p,a) (p)->lpVtbl->ReleaseNotification(p,a)
#else
#define IVideoPortNotify_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IVideoPortNotify_AddRef(p) (p)->AddRef()
#define IVideoPortNotify_Release(p) (p)->Release()
#define IVideoPortNotify_AcquireNotification(p,a,b) (p)->lpVtbl->AcquireNotification(a,b)
#define IVideoPortNotify_ReleaseNotification(p,a) (p)->lpVtbl->ReleaseNotification(a)
#endif
#endif
/*
* DDVIDEOPORTCONNECT
@ -352,6 +390,18 @@ typedef struct _DDVIDEOPORTSTATUS
ULONG_PTR dwReserved3; // Reserved for future use
} DDVIDEOPORTSTATUS;
/*
* DDVIDEOPORTNOTIFY
*/
typedef struct _DDVIDEOPORTNOTIFY
{
LARGE_INTEGER ApproximateTimeStamp; // Timestamp in the event notification
LONG lField; // 0 if even, 1 if odd, -1 if unknown
UINT dwSurfaceIndex; // Index in the surface chain of the surface that received the sample
LONG lDone; // Call InterlockedIncrement on this when done with sample
} DDVIDEOPORTNOTIFY;
/*============================================================================
*
* Video Port Flags
@ -910,7 +960,7 @@ typedef struct _DDVIDEOPORTSTATUS
};
#endif
#endif // GUID_DEFS_ONLY
#endif // GUID_DEFS_ONLY
#endif

View File

@ -1,6 +1,6 @@
/*==========================================================================;
*
* Copyright (C) 2000 Microsoft Corporation. All Rights Reserved.
* Copyright (C) Microsoft Corporation. All Rights Reserved.
*
* File: dx7todx8.h
* Content: DX7 to DX8 Direct3D aliases to aid porting DX7 apps to DX8

View File

@ -9,24 +9,47 @@
#ifndef _DXERR8_H_
#define _DXERR8_H_
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus
//
// DXGetErrorString8
//
// Desc: Converts an DirectX HRESULT to a string
// Desc: Converts a DirectX HRESULT to a string
//
// Args: HRESULT hr Can be any error code from
// DPLAY D3D8 D3DX8 DMUSIC DSOUND
// D3D8 D3DX8 DDRAW DPLAY8 DMUSIC DSOUND DINPUT DSHOW
//
// Return: Converted string
//
const char* __stdcall DXGetErrorString8A(HRESULT hr);
const WCHAR* __stdcall DXGetErrorString8W(HRESULT hr);
const char* WINAPI DXGetErrorString8A(HRESULT hr);
const WCHAR* WINAPI DXGetErrorString8W(HRESULT hr);
#ifdef UNICODE
#define DXGetErrorString8 DXGetErrorString8W
#define DXGetErrorString8 DXGetErrorString8W
#else
#define DXGetErrorString8 DXGetErrorString8A
#define DXGetErrorString8 DXGetErrorString8A
#endif
//
// DXGetErrorDescription8
//
// Desc: Returns a string description of a DirectX HRESULT
//
// Args: HRESULT hr Can be any error code from
// D3D8 D3DX8 DDRAW DPLAY8 DMUSIC DSOUND DINPUT DSHOW
//
// Return: String description
//
const char* WINAPI DXGetErrorDescription8A(HRESULT hr);
const WCHAR* WINAPI DXGetErrorDescription8W(HRESULT hr);
#ifdef UNICODE
#define DXGetErrorDescription8 DXGetErrorDescription8W
#else
#define DXGetErrorDescription8 DXGetErrorDescription8A
#endif
@ -45,13 +68,13 @@ const WCHAR* __stdcall DXGetErrorString8W(HRESULT hr);
//
// Return: The hr that was passed in.
//
HRESULT __stdcall DXTraceA( char* strFile, DWORD dwLine, HRESULT hr, char* strMsg, BOOL bPopMsgBox = FALSE );
HRESULT __stdcall DXTraceW( char* strFile, DWORD dwLine, HRESULT hr, WCHAR* strMsg, BOOL bPopMsgBox = FALSE );
HRESULT WINAPI DXTraceA( char* strFile, DWORD dwLine, HRESULT hr, char* strMsg, BOOL bPopMsgBox );
HRESULT WINAPI DXTraceW( char* strFile, DWORD dwLine, HRESULT hr, WCHAR* strMsg, BOOL bPopMsgBox );
#ifdef UNICODE
#define DXTrace DXTraceW
#define DXTrace DXTraceW
#else
#define DXTrace DXTraceA
#define DXTrace DXTraceA
#endif
@ -59,16 +82,19 @@ HRESULT __stdcall DXTraceW( char* strFile, DWORD dwLine, HRESULT hr, WCHAR* strM
// Helper macros
//
#if defined(DEBUG) | defined(_DEBUG)
#define DXTRACE_MSG(str) DXTrace( __FILE__, (DWORD)__LINE__, 0, str, FALSE )
#define DXTRACE_ERR(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, TRUE )
#define DXTRACE_ERR_NOMSGBOX(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, FALSE )
#define DXTRACE_MSG(str) DXTrace( __FILE__, (DWORD)__LINE__, 0, str, FALSE )
#define DXTRACE_ERR(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, TRUE )
#define DXTRACE_ERR_NOMSGBOX(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, FALSE )
#else
#define DXTRACE_MSG(str) (0L)
#define DXTRACE_ERR(str,hr) (hr)
#define DXTRACE_ERR_NOMSGBOX(str,hr) (hr)
#define DXTRACE_MSG(str) (0L)
#define DXTRACE_ERR(str,hr) (hr)
#define DXTRACE_ERR_NOMSGBOX(str,hr) (hr)
#endif
#endif
#ifdef __cplusplus
}
#endif //__cplusplus
#endif // _DXERR8_H_

View File

@ -4,7 +4,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 6.00.0334 */
/* File created by MIDL compiler version 6.00.0347 */
/* Compiler settings for dxtrans.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext
@ -168,6 +168,12 @@ typedef interface IHTMLDXTransform IHTMLDXTransform;
#endif /* __IHTMLDXTransform_FWD_DEFINED__ */
#ifndef __ICSSFilterDispatch_FWD_DEFINED__
#define __ICSSFilterDispatch_FWD_DEFINED__
typedef interface ICSSFilterDispatch ICSSFilterDispatch;
#endif /* __ICSSFilterDispatch_FWD_DEFINED__ */
#ifndef __DXTransformFactory_FWD_DEFINED__
#define __DXTransformFactory_FWD_DEFINED__
@ -240,6 +246,18 @@ typedef struct DXGradient DXGradient;
#endif /* __DXGradient_FWD_DEFINED__ */
#ifndef __DXTFilter_FWD_DEFINED__
#define __DXTFilter_FWD_DEFINED__
#ifdef __cplusplus
typedef class DXTFilter DXTFilter;
#else
typedef struct DXTFilter DXTFilter;
#endif /* __cplusplus */
#endif /* __DXTFilter_FWD_DEFINED__ */
/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
@ -337,6 +355,11 @@ EXTERN_C const GUID SID_SDirect3DRM;
#define SID_SDXTaskManager CLSID_DXTaskManager
#define SID_SDXSurfaceFactory IID_IDXSurfaceFactory
#define SID_SDXTransformFactory IID_IDXTransformFactory
//
// DXTransforms Core Type Library Version Info
//
#define DXTRANS_TLB_MAJOR_VER 1
#define DXTRANS_TLB_MINOR_VER 1
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0000_v0_0_c_ifspec;
@ -346,7 +369,7 @@ extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0000_v0_0_s_ifspec;
#define __IDXBaseObject_INTERFACE_DEFINED__
/* interface IDXBaseObject */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXBaseObject;
@ -476,7 +499,7 @@ void __RPC_STUB IDXBaseObject_GetObjectSize_Stub(
#endif /* __IDXBaseObject_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_dxtrans_0253 */
/* interface __MIDL_itf_dxtrans_0259 */
/* [local] */
typedef
@ -530,7 +553,7 @@ typedef DXCBND64 DXCBNDS64[ 4 ];
typedef struct DXBNDS
{
DXBNDTYPE eType;
/* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_dxtrans_0253_0001
/* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_dxtrans_0259_0001
{
/* [case()] */ DXDBND D[ 4 ];
/* [case()] */ DXDBND64 LD[ 4 ];
@ -550,7 +573,7 @@ typedef double DXCVEC64[ 4 ];
typedef struct DXVEC
{
DXBNDTYPE eType;
/* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_dxtrans_0253_0002
/* [switch_is] */ /* [switch_type] */ union __MIDL___MIDL_itf_dxtrans_0259_0002
{
/* [case()] */ long D[ 4 ];
/* [case()] */ LONGLONG LD[ 4 ];
@ -561,14 +584,14 @@ typedef struct DXVEC
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0253_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0253_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0259_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0259_v0_0_s_ifspec;
#ifndef __IDXTransformFactory_INTERFACE_DEFINED__
#define __IDXTransformFactory_INTERFACE_DEFINED__
/* interface IDXTransformFactory */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXTransformFactory;
@ -756,7 +779,7 @@ void __RPC_STUB IDXTransformFactory_InitializeTransform_Stub(
#endif /* __IDXTransformFactory_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_dxtrans_0254 */
/* interface __MIDL_itf_dxtrans_0260 */
/* [local] */
typedef
@ -781,14 +804,14 @@ enum DXINOUTINFOFLAGS
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0254_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0254_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0260_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0260_v0_0_s_ifspec;
#ifndef __IDXTransform_INTERFACE_DEFINED__
#define __IDXTransform_INTERFACE_DEFINED__
/* interface IDXTransform */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXTransform;
@ -1127,7 +1150,7 @@ void __RPC_STUB IDXTransform_GetQuality_Stub(
#define __IDXSurfacePick_INTERFACE_DEFINED__
/* interface IDXSurfacePick */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXSurfacePick;
@ -1223,7 +1246,7 @@ void __RPC_STUB IDXSurfacePick_PointPick_Stub(
#define __IDXTBindHost_INTERFACE_DEFINED__
/* interface IDXTBindHost */
/* [object][local][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXTBindHost;
@ -1309,7 +1332,7 @@ void __RPC_STUB IDXTBindHost_SetBindHost_Stub(
#endif /* __IDXTBindHost_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_dxtrans_0257 */
/* interface __MIDL_itf_dxtrans_0263 */
/* [local] */
typedef void __stdcall __stdcall DXTASKPROC(
@ -1345,14 +1368,14 @@ typedef struct DXTMTASKINFO
#endif
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0257_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0257_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0263_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0263_v0_0_s_ifspec;
#ifndef __IDXTaskManager_INTERFACE_DEFINED__
#define __IDXTaskManager_INTERFACE_DEFINED__
/* interface IDXTaskManager */
/* [object][unique][helpstring][uuid][local] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXTaskManager;
@ -1613,7 +1636,7 @@ void __RPC_STUB IDXTaskManager_TerminateRequest_Stub(
#endif /* __IDXTaskManager_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_dxtrans_0258 */
/* interface __MIDL_itf_dxtrans_0264 */
/* [local] */
#ifdef __cplusplus
@ -1739,14 +1762,14 @@ enum DXBLTOPTIONS
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0258_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0258_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0264_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0264_v0_0_s_ifspec;
#ifndef __IDXSurfaceFactory_INTERFACE_DEFINED__
#define __IDXSurfaceFactory_INTERFACE_DEFINED__
/* interface IDXSurfaceFactory */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXSurfaceFactory;
@ -1757,7 +1780,7 @@ EXTERN_C const IID IID_IDXSurfaceFactory;
IDXSurfaceFactory : public IUnknown
{
public:
virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateSurface(
virtual HRESULT STDMETHODCALLTYPE CreateSurface(
/* [in] */ IUnknown *pDirectDraw,
/* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
/* [in] */ const GUID *pFormatID,
@ -1775,7 +1798,7 @@ EXTERN_C const IID IID_IDXSurfaceFactory;
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppDXSurface) = 0;
virtual /* [local] */ HRESULT STDMETHODCALLTYPE LoadImage(
virtual HRESULT STDMETHODCALLTYPE LoadImage(
/* [in] */ const LPWSTR pszFileName,
/* [in] */ IUnknown *pDirectDraw,
/* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
@ -1783,7 +1806,7 @@ EXTERN_C const IID IID_IDXSurfaceFactory;
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppDXSurface) = 0;
virtual /* [local] */ HRESULT STDMETHODCALLTYPE LoadImageFromStream(
virtual HRESULT STDMETHODCALLTYPE LoadImageFromStream(
/* [in] */ IStream *pStream,
/* [in] */ IUnknown *pDirectDraw,
/* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
@ -1791,14 +1814,14 @@ EXTERN_C const IID IID_IDXSurfaceFactory;
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppDXSurface) = 0;
virtual /* [local] */ HRESULT STDMETHODCALLTYPE CopySurfaceToNewFormat(
virtual HRESULT STDMETHODCALLTYPE CopySurfaceToNewFormat(
/* [in] */ IDXSurface *pSrc,
/* [in] */ IUnknown *pDirectDraw,
/* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
/* [in] */ const GUID *pDestFormatID,
/* [out] */ IDXSurface **ppNewSurface) = 0;
virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateD3DRMTexture(
virtual HRESULT STDMETHODCALLTYPE CreateD3DRMTexture(
/* [in] */ IDXSurface *pSrc,
/* [in] */ IUnknown *pDirectDraw,
/* [in] */ IUnknown *pD3DRM3,
@ -1831,7 +1854,7 @@ EXTERN_C const IID IID_IDXSurfaceFactory;
ULONG ( STDMETHODCALLTYPE *Release )(
IDXSurfaceFactory * This);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateSurface )(
HRESULT ( STDMETHODCALLTYPE *CreateSurface )(
IDXSurfaceFactory * This,
/* [in] */ IUnknown *pDirectDraw,
/* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
@ -1851,7 +1874,7 @@ EXTERN_C const IID IID_IDXSurfaceFactory;
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppDXSurface);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *LoadImage )(
HRESULT ( STDMETHODCALLTYPE *LoadImage )(
IDXSurfaceFactory * This,
/* [in] */ const LPWSTR pszFileName,
/* [in] */ IUnknown *pDirectDraw,
@ -1860,7 +1883,7 @@ EXTERN_C const IID IID_IDXSurfaceFactory;
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppDXSurface);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *LoadImageFromStream )(
HRESULT ( STDMETHODCALLTYPE *LoadImageFromStream )(
IDXSurfaceFactory * This,
/* [in] */ IStream *pStream,
/* [in] */ IUnknown *pDirectDraw,
@ -1869,7 +1892,7 @@ EXTERN_C const IID IID_IDXSurfaceFactory;
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppDXSurface);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CopySurfaceToNewFormat )(
HRESULT ( STDMETHODCALLTYPE *CopySurfaceToNewFormat )(
IDXSurfaceFactory * This,
/* [in] */ IDXSurface *pSrc,
/* [in] */ IUnknown *pDirectDraw,
@ -1877,7 +1900,7 @@ EXTERN_C const IID IID_IDXSurfaceFactory;
/* [in] */ const GUID *pDestFormatID,
/* [out] */ IDXSurface **ppNewSurface);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateD3DRMTexture )(
HRESULT ( STDMETHODCALLTYPE *CreateD3DRMTexture )(
IDXSurfaceFactory * This,
/* [in] */ IDXSurface *pSrc,
/* [in] */ IUnknown *pDirectDraw,
@ -1944,7 +1967,7 @@ EXTERN_C const IID IID_IDXSurfaceFactory;
/* [local] */ HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CreateSurface_Proxy(
HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CreateSurface_Proxy(
IDXSurfaceFactory * This,
/* [in] */ IUnknown *pDirectDraw,
/* [in] */ const DDSURFACEDESC *pDDSurfaceDesc,
@ -1980,7 +2003,7 @@ void __RPC_STUB IDXSurfaceFactory_CreateFromDDSurface_Stub(
DWORD *_pdwStubPhase);
/* [local] */ HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_LoadImage_Proxy(
HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_LoadImage_Proxy(
IDXSurfaceFactory * This,
/* [in] */ const LPWSTR pszFileName,
/* [in] */ IUnknown *pDirectDraw,
@ -1997,7 +2020,7 @@ void __RPC_STUB IDXSurfaceFactory_LoadImage_Stub(
DWORD *_pdwStubPhase);
/* [local] */ HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_LoadImageFromStream_Proxy(
HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_LoadImageFromStream_Proxy(
IDXSurfaceFactory * This,
/* [in] */ IStream *pStream,
/* [in] */ IUnknown *pDirectDraw,
@ -2014,7 +2037,7 @@ void __RPC_STUB IDXSurfaceFactory_LoadImageFromStream_Stub(
DWORD *_pdwStubPhase);
/* [local] */ HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CopySurfaceToNewFormat_Proxy(
HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CopySurfaceToNewFormat_Proxy(
IDXSurfaceFactory * This,
/* [in] */ IDXSurface *pSrc,
/* [in] */ IUnknown *pDirectDraw,
@ -2030,7 +2053,7 @@ void __RPC_STUB IDXSurfaceFactory_CopySurfaceToNewFormat_Stub(
DWORD *_pdwStubPhase);
/* [local] */ HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CreateD3DRMTexture_Proxy(
HRESULT STDMETHODCALLTYPE IDXSurfaceFactory_CreateD3DRMTexture_Proxy(
IDXSurfaceFactory * This,
/* [in] */ IDXSurface *pSrc,
/* [in] */ IUnknown *pDirectDraw,
@ -2066,7 +2089,7 @@ void __RPC_STUB IDXSurfaceFactory_BitBlt_Stub(
#endif /* __IDXSurfaceFactory_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_dxtrans_0259 */
/* interface __MIDL_itf_dxtrans_0265 */
/* [local] */
typedef
@ -2078,14 +2101,14 @@ enum DXSURFMODCOMPOP
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0259_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0259_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0265_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0265_v0_0_s_ifspec;
#ifndef __IDXSurfaceModifier_INTERFACE_DEFINED__
#define __IDXSurfaceModifier_INTERFACE_DEFINED__
/* interface IDXSurfaceModifier */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXSurfaceModifier;
@ -2447,7 +2470,7 @@ void __RPC_STUB IDXSurfaceModifier_GetLookup_Stub(
#endif /* __IDXSurfaceModifier_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_dxtrans_0260 */
/* interface __MIDL_itf_dxtrans_0266 */
/* [local] */
typedef
@ -2498,14 +2521,14 @@ enum DXSURFSTATUS
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0260_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0260_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0266_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0266_v0_0_s_ifspec;
#ifndef __IDXSurface_INTERFACE_DEFINED__
#define __IDXSurface_INTERFACE_DEFINED__
/* interface IDXSurface */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXSurface;
@ -2867,7 +2890,7 @@ void __RPC_STUB IDXSurface_GetAppData_Stub(
#define __IDXSurfaceInit_INTERFACE_DEFINED__
/* interface IDXSurfaceInit */
/* [object][local][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXSurfaceInit;
@ -2969,7 +2992,7 @@ void __RPC_STUB IDXSurfaceInit_InitSurface_Stub(
#define __IDXARGBSurfaceInit_INTERFACE_DEFINED__
/* interface IDXARGBSurfaceInit */
/* [object][local][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXARGBSurfaceInit;
@ -3095,7 +3118,7 @@ void __RPC_STUB IDXARGBSurfaceInit_InitFromRawSurface_Stub(
#endif /* __IDXARGBSurfaceInit_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_dxtrans_0263 */
/* interface __MIDL_itf_dxtrans_0269 */
/* [local] */
typedef struct tagDXNATIVETYPEINFO
@ -3122,14 +3145,14 @@ typedef struct tagDXOVERSAMPLEDESC
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0263_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0263_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0269_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0269_v0_0_s_ifspec;
#ifndef __IDXARGBReadPtr_INTERFACE_DEFINED__
#define __IDXARGBReadPtr_INTERFACE_DEFINED__
/* interface IDXARGBReadPtr */
/* [object][local][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXARGBReadPtr;
@ -3416,7 +3439,7 @@ void __RPC_STUB IDXARGBReadPtr_UnpackRect_Stub(
#define __IDXARGBReadWritePtr_INTERFACE_DEFINED__
/* interface IDXARGBReadWritePtr */
/* [object][local][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXARGBReadWritePtr;
@ -3801,7 +3824,7 @@ void __RPC_STUB IDXARGBReadWritePtr_OverArrayAndMove_Stub(
#define __IDXDCLock_INTERFACE_DEFINED__
/* interface IDXDCLock */
/* [object][local][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXDCLock;
@ -3888,7 +3911,7 @@ void __RPC_STUB IDXDCLock_GetDC_Stub(
#define __IDXTScaleOutput_INTERFACE_DEFINED__
/* interface IDXTScaleOutput */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXTScaleOutput;
@ -3981,7 +4004,7 @@ void __RPC_STUB IDXTScaleOutput_SetOutputSize_Stub(
#define __IDXGradient_INTERFACE_DEFINED__
/* interface IDXGradient */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXGradient;
@ -4108,7 +4131,7 @@ void __RPC_STUB IDXGradient_GetOutputSize_Stub(
#define __IDXTScale_INTERFACE_DEFINED__
/* interface IDXTScale */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXTScale;
@ -4244,7 +4267,7 @@ void __RPC_STUB IDXTScale_ScaleFitToSize_Stub(
#endif /* __IDXTScale_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_dxtrans_0269 */
/* interface __MIDL_itf_dxtrans_0275 */
/* [local] */
typedef
@ -4264,14 +4287,14 @@ enum DXEFFECTTYPE
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0269_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0269_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0275_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0275_v0_0_s_ifspec;
#ifndef __IDXEffect_INTERFACE_DEFINED__
#define __IDXEffect_INTERFACE_DEFINED__
/* interface IDXEffect */
/* [unique][helpstring][dual][uuid][object] */
/* [dual][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXEffect;
@ -4513,7 +4536,7 @@ void __RPC_STUB IDXEffect_put_Duration_Stub(
#define __IDXLookupTable_INTERFACE_DEFINED__
/* interface IDXLookupTable */
/* [object][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXLookupTable;
@ -4702,7 +4725,7 @@ void __RPC_STUB IDXLookupTable_ApplyTables_Stub(
#endif /* __IDXLookupTable_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_dxtrans_0271 */
/* interface __MIDL_itf_dxtrans_0277 */
/* [local] */
typedef struct DXRAWSURFACEINFO
@ -4719,14 +4742,14 @@ typedef struct DXRAWSURFACEINFO
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0271_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0271_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0277_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0277_v0_0_s_ifspec;
#ifndef __IDXRawSurface_INTERFACE_DEFINED__
#define __IDXRawSurface_INTERFACE_DEFINED__
/* interface IDXRawSurface */
/* [object][local][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDXRawSurface;
@ -4816,7 +4839,7 @@ void __RPC_STUB IDXRawSurface_GetSurfaceInfo_Stub(
#define __IHTMLDXTransform_INTERFACE_DEFINED__
/* interface IHTMLDXTransform */
/* [object][local][unique][helpstring][uuid] */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IHTMLDXTransform;
@ -4902,6 +4925,358 @@ void __RPC_STUB IHTMLDXTransform_SetHostUrl_Stub(
#endif /* __IHTMLDXTransform_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_dxtrans_0279 */
/* [local] */
typedef
enum DXTFILTER_STATUS
{ DXTFILTER_STATUS_Stopped = 0,
DXTFILTER_STATUS_Applied = DXTFILTER_STATUS_Stopped + 1,
DXTFILTER_STATUS_Playing = DXTFILTER_STATUS_Applied + 1,
DXTFILTER_STATUS_MAX = DXTFILTER_STATUS_Playing + 1
} DXTFILTER_STATUS;
typedef
enum DXTFILTER_DISPID
{ DISPID_DXTFilter_Percent = 1,
DISPID_DXTFilter_Duration = DISPID_DXTFilter_Percent + 1,
DISPID_DXTFilter_Enabled = DISPID_DXTFilter_Duration + 1,
DISPID_DXTFilter_Status = DISPID_DXTFilter_Enabled + 1,
DISPID_DXTFilter_Apply = DISPID_DXTFilter_Status + 1,
DISPID_DXTFilter_Play = DISPID_DXTFilter_Apply + 1,
DISPID_DXTFilter_Stop = DISPID_DXTFilter_Play + 1,
DISPID_DXTFilter_MAX = DISPID_DXTFilter_Stop + 1
} DXTFILTER_DISPID;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0279_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxtrans_0279_v0_0_s_ifspec;
#ifndef __ICSSFilterDispatch_INTERFACE_DEFINED__
#define __ICSSFilterDispatch_INTERFACE_DEFINED__
/* interface ICSSFilterDispatch */
/* [dual][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_ICSSFilterDispatch;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("9519152B-9484-4A6C-B6A7-4F25E92D6C6B")
ICSSFilterDispatch : public IDispatch
{
public:
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Percent(
/* [retval][out] */ float *pVal) = 0;
virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Percent(
/* [in] */ float newVal) = 0;
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Duration(
/* [retval][out] */ float *pVal) = 0;
virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Duration(
/* [in] */ float newVal) = 0;
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Enabled(
/* [retval][out] */ VARIANT_BOOL *pfVal) = 0;
virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Enabled(
/* [in] */ VARIANT_BOOL fVal) = 0;
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Status(
/* [retval][out] */ DXTFILTER_STATUS *peVal) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE Apply( void) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE Play(
/* [optional][in] */ VARIANT varDuration) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE Stop( void) = 0;
};
#else /* C style interface */
typedef struct ICSSFilterDispatchVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICSSFilterDispatch * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICSSFilterDispatch * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICSSFilterDispatch * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
ICSSFilterDispatch * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
ICSSFilterDispatch * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
ICSSFilterDispatch * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
ICSSFilterDispatch * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Percent )(
ICSSFilterDispatch * This,
/* [retval][out] */ float *pVal);
/* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Percent )(
ICSSFilterDispatch * This,
/* [in] */ float newVal);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Duration )(
ICSSFilterDispatch * This,
/* [retval][out] */ float *pVal);
/* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Duration )(
ICSSFilterDispatch * This,
/* [in] */ float newVal);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )(
ICSSFilterDispatch * This,
/* [retval][out] */ VARIANT_BOOL *pfVal);
/* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )(
ICSSFilterDispatch * This,
/* [in] */ VARIANT_BOOL fVal);
/* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Status )(
ICSSFilterDispatch * This,
/* [retval][out] */ DXTFILTER_STATUS *peVal);
/* [id] */ HRESULT ( STDMETHODCALLTYPE *Apply )(
ICSSFilterDispatch * This);
/* [id] */ HRESULT ( STDMETHODCALLTYPE *Play )(
ICSSFilterDispatch * This,
/* [optional][in] */ VARIANT varDuration);
/* [id] */ HRESULT ( STDMETHODCALLTYPE *Stop )(
ICSSFilterDispatch * This);
END_INTERFACE
} ICSSFilterDispatchVtbl;
interface ICSSFilterDispatch
{
CONST_VTBL struct ICSSFilterDispatchVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ICSSFilterDispatch_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define ICSSFilterDispatch_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define ICSSFilterDispatch_Release(This) \
(This)->lpVtbl -> Release(This)
#define ICSSFilterDispatch_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define ICSSFilterDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ICSSFilterDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ICSSFilterDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ICSSFilterDispatch_get_Percent(This,pVal) \
(This)->lpVtbl -> get_Percent(This,pVal)
#define ICSSFilterDispatch_put_Percent(This,newVal) \
(This)->lpVtbl -> put_Percent(This,newVal)
#define ICSSFilterDispatch_get_Duration(This,pVal) \
(This)->lpVtbl -> get_Duration(This,pVal)
#define ICSSFilterDispatch_put_Duration(This,newVal) \
(This)->lpVtbl -> put_Duration(This,newVal)
#define ICSSFilterDispatch_get_Enabled(This,pfVal) \
(This)->lpVtbl -> get_Enabled(This,pfVal)
#define ICSSFilterDispatch_put_Enabled(This,fVal) \
(This)->lpVtbl -> put_Enabled(This,fVal)
#define ICSSFilterDispatch_get_Status(This,peVal) \
(This)->lpVtbl -> get_Status(This,peVal)
#define ICSSFilterDispatch_Apply(This) \
(This)->lpVtbl -> Apply(This)
#define ICSSFilterDispatch_Play(This,varDuration) \
(This)->lpVtbl -> Play(This,varDuration)
#define ICSSFilterDispatch_Stop(This) \
(This)->lpVtbl -> Stop(This)
#endif /* COBJMACROS */
#endif /* C style interface */
/* [id][propget] */ HRESULT STDMETHODCALLTYPE ICSSFilterDispatch_get_Percent_Proxy(
ICSSFilterDispatch * This,
/* [retval][out] */ float *pVal);
void __RPC_STUB ICSSFilterDispatch_get_Percent_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propput] */ HRESULT STDMETHODCALLTYPE ICSSFilterDispatch_put_Percent_Proxy(
ICSSFilterDispatch * This,
/* [in] */ float newVal);
void __RPC_STUB ICSSFilterDispatch_put_Percent_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propget] */ HRESULT STDMETHODCALLTYPE ICSSFilterDispatch_get_Duration_Proxy(
ICSSFilterDispatch * This,
/* [retval][out] */ float *pVal);
void __RPC_STUB ICSSFilterDispatch_get_Duration_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propput] */ HRESULT STDMETHODCALLTYPE ICSSFilterDispatch_put_Duration_Proxy(
ICSSFilterDispatch * This,
/* [in] */ float newVal);
void __RPC_STUB ICSSFilterDispatch_put_Duration_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propget] */ HRESULT STDMETHODCALLTYPE ICSSFilterDispatch_get_Enabled_Proxy(
ICSSFilterDispatch * This,
/* [retval][out] */ VARIANT_BOOL *pfVal);
void __RPC_STUB ICSSFilterDispatch_get_Enabled_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propput] */ HRESULT STDMETHODCALLTYPE ICSSFilterDispatch_put_Enabled_Proxy(
ICSSFilterDispatch * This,
/* [in] */ VARIANT_BOOL fVal);
void __RPC_STUB ICSSFilterDispatch_put_Enabled_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id][propget] */ HRESULT STDMETHODCALLTYPE ICSSFilterDispatch_get_Status_Proxy(
ICSSFilterDispatch * This,
/* [retval][out] */ DXTFILTER_STATUS *peVal);
void __RPC_STUB ICSSFilterDispatch_get_Status_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ICSSFilterDispatch_Apply_Proxy(
ICSSFilterDispatch * This);
void __RPC_STUB ICSSFilterDispatch_Apply_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ICSSFilterDispatch_Play_Proxy(
ICSSFilterDispatch * This,
/* [optional][in] */ VARIANT varDuration);
void __RPC_STUB ICSSFilterDispatch_Play_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ICSSFilterDispatch_Stop_Proxy(
ICSSFilterDispatch * This);
void __RPC_STUB ICSSFilterDispatch_Stop_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __ICSSFilterDispatch_INTERFACE_DEFINED__ */
#ifndef __DXTRANSLib_LIBRARY_DEFINED__
#define __DXTRANSLib_LIBRARY_DEFINED__
@ -4959,10 +5334,23 @@ EXTERN_C const CLSID CLSID_DXGradient;
class DECLSPEC_UUID("C6365470-F667-11d1-9067-00C04FD9189D")
DXGradient;
#endif
EXTERN_C const CLSID CLSID_DXTFilter;
#ifdef __cplusplus
class DECLSPEC_UUID("385A91BC-1E8A-4e4a-A7A6-F4FC1E6CA1BD")
DXTFilter;
#endif
#endif /* __DXTRANSLib_LIBRARY_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
/* end of Additional Prototypes */
#ifdef __cplusplus

View File

@ -3,7 +3,7 @@
//
// Desc: DirectX Video Acceleration header file.
//
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -30,7 +30,6 @@ DEFINE_GUID(DXVA_ModeMPEG2_C, 0x1b81be0C, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f
DEFINE_GUID(DXVA_ModeMPEG2_D, 0x1b81be0D, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVA_NoEncrypt, 0x1b81beD0, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVA_EncryptProt1, 0x1b81beD1, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
#define DXVA_RESTRICTED_MODE_UNRESTRICTED 0xFFFF
#define DXVA_RESTRICTED_MODE_H261_A 1
@ -473,9 +472,12 @@ typedef struct _DXVA_ConfigAlphaCombine {
/* AYUV sample for 16-entry YUV palette or graphic surface */
typedef struct _DXVA_AYUVsample {
BYTE bSampleAlpha8, bY_Value, bCbValue, bCrValue;
} DXVA_AYUVsample, *LPDXVA_AYUVsample;
typedef struct _DXVA_AYUVsample2 {
BYTE bCrValue;
BYTE bCbValue;
BYTE bY_Value;
BYTE bSampleAlpha8;
} DXVA_AYUVsample2, *LPDXVA_AYUVsample2;
/* Macros for IA44 alpha blending surface samples */
@ -526,37 +528,10 @@ typedef struct _DXVA_BlendCombination {
WORD wBlendDelay;
BYTE bBlendOn;
BYTE bWholePlaneAlpha;
DXVA_AYUVsample OutsideYUVcolor;
DXVA_AYUVsample2 OutsideYUVcolor;
} DXVA_BlendCombination, *LPDXVA_BlendCombination;
/* Encryption Protocol #1 Data Structure */
#define DXVA_MAX_URIsize 1024
typedef struct _DXVA_EncryptProt1Data_Sign512_Accel512 {
DXVA_EncryptProtocolHeader header;
DWORD dwSigningModulusSize; /* equal to 64 */
BYTE SigningModulusValue[64];
DWORD dwSigningExponentSize; /* equal to 64 */
BYTE SigningExponentValue[64];
DWORD dwAccelModulusSize; /* equal to 64 */
BYTE AccelModulusValue[64];
DWORD dwAccelExponentSize; /* equal to 64 */
BYTE AccelExponentValue[64];
DWORD dwEncryptionFrequency;
DWORD dwURIsize;
WCHAR URIstring[DXVA_MAX_URIsize];
BYTE Signature[64];
} DXVA_EncryptProt1Data_Sign512_Accel512,
*LPDXVA_EncryptProt1Data_Sign512_Accel512;
#pragma pack(push, 16)

View File

@ -6,7 +6,7 @@
//
// Note: new constants added: ED_BASE+800L -> ED_BASE+811L
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -14,517 +14,517 @@
#define __EDEVDEFS__
#define ED_BASE 0x1000L
#define ED_BASE 0x1000L
// this is used to tell the device communications object which
// physical communications port to use.
#define DEV_PORT_SIM 1
#define DEV_PORT_COM1 2 // standard serial ports
#define DEV_PORT_COM2 3
#define DEV_PORT_COM3 4
#define DEV_PORT_COM4 5
#define DEV_PORT_DIAQ 6 // Diaquest driver
#define DEV_PORT_ARTI 7 // ARTI driver
#define DEV_PORT_1394 8 // IEEE 1394 Bus
#define DEV_PORT_USB 9 // Universal Serial Bus
#define DEV_PORT_MIN DEV_PORT_SIM
#define DEV_PORT_MAX DEV_PORT_USB
#define DEV_PORT_SIM 1
#define DEV_PORT_COM1 2 // standard serial ports
#define DEV_PORT_COM2 3
#define DEV_PORT_COM3 4
#define DEV_PORT_COM4 5
#define DEV_PORT_DIAQ 6 // Diaquest driver
#define DEV_PORT_ARTI 7 // ARTI driver
#define DEV_PORT_1394 8 // IEEE 1394 Bus
#define DEV_PORT_USB 9 // Universal Serial Bus
#define DEV_PORT_MIN DEV_PORT_SIM
#define DEV_PORT_MAX DEV_PORT_USB
// IAMExtDevice Capability Items: unless otherwise specified, these items return
// OATRUE or OAFALSE. All return values are in pdwValue unless otherwise specified:
// IAMExtDevice Capability Items: unless otherwise specified, these items return
// OATRUE or OAFALSE. All return values are in pdwValue unless otherwise specified:
#define ED_DEVCAP_CAN_RECORD ED_BASE+1L
#define ED_DEVCAP_CAN_RECORD_STROBE ED_BASE+2L // for multitrack devices:
// switches currently recording tracks off
// and selected non-recording tracks into record
#define ED_DEVCAP_HAS_AUDIO ED_BASE+3L
#define ED_DEVCAP_HAS_VIDEO ED_BASE+4L
#define ED_DEVCAP_USES_FILES ED_BASE+5L
#define ED_DEVCAP_CAN_SAVE ED_BASE+6L
#define ED_DEVCAP_CAN_RECORD ED_BASE+1L
#define ED_DEVCAP_CAN_RECORD_STROBE ED_BASE+2L // for multitrack devices:
// switches currently recording tracks off
// and selected non-recording tracks into record
#define ED_DEVCAP_HAS_AUDIO ED_BASE+3L
#define ED_DEVCAP_HAS_VIDEO ED_BASE+4L
#define ED_DEVCAP_USES_FILES ED_BASE+5L
#define ED_DEVCAP_CAN_SAVE ED_BASE+6L
#define ED_DEVCAP_DEVICE_TYPE ED_BASE+7L // returns one of the following:
#define ED_DEVTYPE_VCR ED_BASE+8L
#define ED_DEVTYPE_LASERDISK ED_BASE+9L
#define ED_DEVTYPE_ATR ED_BASE+10L
#define ED_DEVTYPE_DDR ED_BASE+11L
#define ED_DEVTYPE_ROUTER ED_BASE+12L
#define ED_DEVTYPE_KEYER ED_BASE+13L
#define ED_DEVTYPE_MIXER_VIDEO ED_BASE+14L
#define ED_DEVTYPE_DVE ED_BASE+15L
#define ED_DEVTYPE_WIPEGEN ED_BASE+16L
#define ED_DEVTYPE_MIXER_AUDIO ED_BASE+17L
#define ED_DEVTYPE_CG ED_BASE+18L
#define ED_DEVTYPE_TBC ED_BASE+19L
#define ED_DEVTYPE_TCG ED_BASE+20L
#define ED_DEVTYPE_GPI ED_BASE+21L
#define ED_DEVTYPE_JOYSTICK ED_BASE+22L
#define ED_DEVTYPE_KEYBOARD ED_BASE+23L
#define ED_DEVCAP_DEVICE_TYPE ED_BASE+7L // returns one of the following:
#define ED_DEVTYPE_VCR ED_BASE+8L
#define ED_DEVTYPE_LASERDISK ED_BASE+9L
#define ED_DEVTYPE_ATR ED_BASE+10L
#define ED_DEVTYPE_DDR ED_BASE+11L
#define ED_DEVTYPE_ROUTER ED_BASE+12L
#define ED_DEVTYPE_KEYER ED_BASE+13L
#define ED_DEVTYPE_MIXER_VIDEO ED_BASE+14L
#define ED_DEVTYPE_DVE ED_BASE+15L
#define ED_DEVTYPE_WIPEGEN ED_BASE+16L
#define ED_DEVTYPE_MIXER_AUDIO ED_BASE+17L
#define ED_DEVTYPE_CG ED_BASE+18L
#define ED_DEVTYPE_TBC ED_BASE+19L
#define ED_DEVTYPE_TCG ED_BASE+20L
#define ED_DEVTYPE_GPI ED_BASE+21L
#define ED_DEVTYPE_JOYSTICK ED_BASE+22L
#define ED_DEVTYPE_KEYBOARD ED_BASE+23L
// returns mfr-specific ID from external device.
#define ED_DEVCAP_EXTERNAL_DEVICE_ID ED_BASE+24L
#define ED_DEVCAP_EXTERNAL_DEVICE_ID ED_BASE+24L
#define ED_DEVCAP_TIMECODE_READ ED_BASE+25L
#define ED_DEVCAP_TIMECODE_WRITE ED_BASE+26L
// used for seekable non-timecode enabled devices
#define ED_DEVCAP_CTLTRK_READ ED_BASE+27L
// used for seekable non-timecode enabled devices
#define ED_DEVCAP_INDEX_READ ED_BASE+28L
#define ED_DEVCAP_TIMECODE_READ ED_BASE+25L
#define ED_DEVCAP_TIMECODE_WRITE ED_BASE+26L
// used for seekable non-timecode enabled devices
#define ED_DEVCAP_CTLTRK_READ ED_BASE+27L
// used for seekable non-timecode enabled devices
#define ED_DEVCAP_INDEX_READ ED_BASE+28L
// returns device preroll time in current time format
#define ED_DEVCAP_PREROLL ED_BASE+29L
#define ED_DEVCAP_PREROLL ED_BASE+29L
// returns device postroll time in current time format
#define ED_DEVCAP_POSTROLL ED_BASE+30L
#define ED_DEVCAP_POSTROLL ED_BASE+30L
// returns indication of devices synchronization accuracy.
#define ED_DEVCAP_SYNC_ACCURACY ED_BASE+31L // returns one of the following:
#define ED_SYNCACC_PRECISE ED_BASE+32L
#define ED_SYNCACC_FRAME ED_BASE+33L
#define ED_SYNCACC_ROUGH ED_BASE+34L
#define ED_DEVCAP_SYNC_ACCURACY ED_BASE+31L // returns one of the following:
#define ED_SYNCACC_PRECISE ED_BASE+32L
#define ED_SYNCACC_FRAME ED_BASE+33L
#define ED_SYNCACC_ROUGH ED_BASE+34L
// returns devices normal framerate.
#define ED_DEVCAP_NORMAL_RATE ED_BASE+35L // returns one of the following:
#define ED_RATE_24 ED_BASE+36L
#define ED_RATE_25 ED_BASE+37L
#define ED_RATE_2997 ED_BASE+38L
#define ED_RATE_30 ED_BASE+39L
#define ED_DEVCAP_NORMAL_RATE ED_BASE+35L // returns one of the following:
#define ED_RATE_24 ED_BASE+36L
#define ED_RATE_25 ED_BASE+37L
#define ED_RATE_2997 ED_BASE+38L
#define ED_RATE_30 ED_BASE+39L
#define ED_DEVCAP_CAN_PREVIEW ED_BASE+40L
#define ED_DEVCAP_CAN_MONITOR_SOURCES ED_BASE+41L
#define ED_DEVCAP_CAN_PREVIEW ED_BASE+40L
#define ED_DEVCAP_CAN_MONITOR_SOURCES ED_BASE+41L
// indicates implementation allows testing of methods/parameters by
// setting the hi bit of a parm that makes sense - see individual methods
// for details.
#define ED_DEVCAP_CAN_TEST ED_BASE+42L
#define ED_DEVCAP_CAN_TEST ED_BASE+42L
// indicates device accepts video as an input.
#define ED_DEVCAP_VIDEO_INPUTS ED_BASE+43L
#define ED_DEVCAP_VIDEO_INPUTS ED_BASE+43L
// indicates device accepts audio as an input.
#define ED_DEVCAP_AUDIO_INPUTS ED_BASE+44L
#define ED_DEVCAP_AUDIO_INPUTS ED_BASE+44L
#define ED_DEVCAP_NEEDS_CALIBRATING ED_BASE+45L
#define ED_DEVCAP_NEEDS_CALIBRATING ED_BASE+45L
#define ED_DEVCAP_SEEK_TYPE ED_BASE+46L // returns one of the following:
#define ED_SEEK_PERFECT ED_BASE+47L // indicates device can execute seek
// within 1 video frames without signal
// break (like a DDR)
#define ED_SEEK_FAST ED_BASE+48L // indicates device can move pretty quick
// with short break in signal
#define ED_SEEK_SLOW ED_BASE+49L // seeks like a tape transport
#define ED_DEVCAP_SEEK_TYPE ED_BASE+46L // returns one of the following:
#define ED_SEEK_PERFECT ED_BASE+47L // indicates device can execute seek
// within 1 video frames without signal
// break (like a DDR)
#define ED_SEEK_FAST ED_BASE+48L // indicates device can move pretty quick
// with short break in signal
#define ED_SEEK_SLOW ED_BASE+49L // seeks like a tape transport
#define ED_POWER_ON ED_BASE+50L
#define ED_POWER_OFF ED_BASE+51L
#define ED_POWER_STANDBY ED_BASE+52L
#define ED_POWER_ON ED_BASE+50L
#define ED_POWER_OFF ED_BASE+51L
#define ED_POWER_STANDBY ED_BASE+52L
#define ED_ACTIVE ED_BASE+53L
#define ED_INACTIVE ED_BASE+54L
#define ED_ALL ED_BASE+55L
#define ED_TEST ED_BASE+56L
#define ED_ACTIVE ED_BASE+53L
#define ED_INACTIVE ED_BASE+54L
#define ED_ALL ED_BASE+55L
#define ED_TEST ED_BASE+56L
// IAMExtTransport Capability Items: unless otherwise specified, these items return
// OATRUE or OAFALSE. All return values are in pdwValue unless otherwise specified:
// IAMExtTransport Capability Items: unless otherwise specified, these items return
// OATRUE or OAFALSE. All return values are in pdwValue unless otherwise specified:
#define ED_TRANSCAP_CAN_EJECT ED_BASE+100L
#define ED_TRANSCAP_CAN_BUMP_PLAY ED_BASE+101L // variable speed for synchronizing
#define ED_TRANSCAP_CAN_PLAY_BACKWARDS ED_BASE+102L // servo locked for use during an edit
#define ED_TRANSCAP_CAN_SET_EE ED_BASE+103L // show devices input on its output
#define ED_TRANSCAP_CAN_SET_PB ED_BASE+104L // show media playback on devices output
#define ED_TRANSCAP_CAN_DELAY_VIDEO_IN ED_BASE+105L // transport can do delayed-in video edits
#define ED_TRANSCAP_CAN_DELAY_VIDEO_OUT ED_BASE+106L // transport can do delayed-out video edits
#define ED_TRANSCAP_CAN_DELAY_AUDIO_IN ED_BASE+107L // transport can do delayed-in audio edits
#define ED_TRANSCAP_CAN_DELAY_AUDIO_OUT ED_BASE+108L // transport can do delayed-out audio edits
#define ED_TRANSCAP_FWD_VARIABLE_MAX ED_BASE+109L // max forward speed (multiple of play speed)
// in pdblValue
#define ED_TRANSCAP_FWD_VARIABLE_MIN ED_BASE+800L // min forward speed (multiple of play speed)
// in pdblValue
#define ED_TRANSCAP_REV_VARIABLE_MAX ED_BASE+110L // max reverse speed (multiple of play speed) in
// pdblValue
#define ED_TRANSCAP_REV_VARIABLE_MIN ED_BASE+801L // min reverse speed (multiple of play speed)
// in pdblValue
#define ED_TRANSCAP_FWD_SHUTTLE_MAX ED_BASE+802L // max forward speed in Shuttle mode (multiple
// of play speed) in pdblValue
#define ED_TRANSCAP_FWD_SHUTTLE_MIN ED_BASE+803L // min forward speed in Shuttle mode (multiple
// of play speed) in pdblValue
#define ED_TRANSCAP_REV_SHUTTLE_MAX ED_BASE+804L // max reverse speed in Shuttle mode (multiple
// of play speed) in pdblValue
#define ED_TRANSCAP_REV_SHUTTLE_MIN ED_BASE+805L // min reverse speed in Shuttle mode (multiple
// of play speed) in pdblValue
#define ED_TRANSCAP_NUM_AUDIO_TRACKS ED_BASE+111L // returns number of audio tracks
#define ED_TRANSCAP_LTC_TRACK ED_BASE+112L // returns track number of LTC timecode track.
// ED_ALL means no dedicated timecode track
#define ED_TRANSCAP_NEEDS_TBC ED_BASE+113L // devices output not stable
#define ED_TRANSCAP_NEEDS_CUEING ED_BASE+114L // device must be cued prior to performing edit
#define ED_TRANSCAP_CAN_INSERT ED_BASE+115L
#define ED_TRANSCAP_CAN_ASSEMBLE ED_BASE+116L
#define ED_TRANSCAP_FIELD_STEP ED_BASE+117L // device responds to Frame Advance command by
// advancing one field
#define ED_TRANSCAP_CLOCK_INC_RATE ED_BASE+118L // VISCA command - keep for compatibility
#define ED_TRANSCAP_CAN_DETECT_LENGTH ED_BASE+119L
#define ED_TRANSCAP_CAN_FREEZE ED_BASE+120L
#define ED_TRANSCAP_HAS_TUNER ED_BASE+121L
#define ED_TRANSCAP_HAS_TIMER ED_BASE+122L
#define ED_TRANSCAP_HAS_CLOCK ED_BASE+123L
#define ED_TRANSCAP_MULTIPLE_EDITS ED_BASE+806L // OATRUE means device/filter can support
// multiple edit events
#define ED_TRANSCAP_IS_MASTER ED_BASE+807L // OATRUE means device is the master clock
// for synchronizing (this sets timecode-to-
// reference clock offset for editing)
#define ED_TRANSCAP_HAS_DT ED_BASE+814L // OATRUE means device has Dynamic Tracking
#define ED_TRANSCAP_CAN_EJECT ED_BASE+100L
#define ED_TRANSCAP_CAN_BUMP_PLAY ED_BASE+101L // variable speed for synchronizing
#define ED_TRANSCAP_CAN_PLAY_BACKWARDS ED_BASE+102L // servo locked for use during an edit
#define ED_TRANSCAP_CAN_SET_EE ED_BASE+103L // show devices input on its output
#define ED_TRANSCAP_CAN_SET_PB ED_BASE+104L // show media playback on devices output
#define ED_TRANSCAP_CAN_DELAY_VIDEO_IN ED_BASE+105L // transport can do delayed-in video edits
#define ED_TRANSCAP_CAN_DELAY_VIDEO_OUT ED_BASE+106L // transport can do delayed-out video edits
#define ED_TRANSCAP_CAN_DELAY_AUDIO_IN ED_BASE+107L // transport can do delayed-in audio edits
#define ED_TRANSCAP_CAN_DELAY_AUDIO_OUT ED_BASE+108L // transport can do delayed-out audio edits
#define ED_TRANSCAP_FWD_VARIABLE_MAX ED_BASE+109L // max forward speed (multiple of play speed)
// in pdblValue
#define ED_TRANSCAP_FWD_VARIABLE_MIN ED_BASE+800L // min forward speed (multiple of play speed)
// in pdblValue
#define ED_TRANSCAP_REV_VARIABLE_MAX ED_BASE+110L // max reverse speed (multiple of play speed) in
// pdblValue
#define ED_TRANSCAP_REV_VARIABLE_MIN ED_BASE+801L // min reverse speed (multiple of play speed)
// in pdblValue
#define ED_TRANSCAP_FWD_SHUTTLE_MAX ED_BASE+802L // max forward speed in Shuttle mode (multiple
// of play speed) in pdblValue
#define ED_TRANSCAP_FWD_SHUTTLE_MIN ED_BASE+803L // min forward speed in Shuttle mode (multiple
// of play speed) in pdblValue
#define ED_TRANSCAP_REV_SHUTTLE_MAX ED_BASE+804L // max reverse speed in Shuttle mode (multiple
// of play speed) in pdblValue
#define ED_TRANSCAP_REV_SHUTTLE_MIN ED_BASE+805L // min reverse speed in Shuttle mode (multiple
// of play speed) in pdblValue
#define ED_TRANSCAP_NUM_AUDIO_TRACKS ED_BASE+111L // returns number of audio tracks
#define ED_TRANSCAP_LTC_TRACK ED_BASE+112L // returns track number of LTC timecode track.
// ED_ALL means no dedicated timecode track
#define ED_TRANSCAP_NEEDS_TBC ED_BASE+113L // devices output not stable
#define ED_TRANSCAP_NEEDS_CUEING ED_BASE+114L // device must be cued prior to performing edit
#define ED_TRANSCAP_CAN_INSERT ED_BASE+115L
#define ED_TRANSCAP_CAN_ASSEMBLE ED_BASE+116L
#define ED_TRANSCAP_FIELD_STEP ED_BASE+117L // device responds to Frame Advance command by
// advancing one field
#define ED_TRANSCAP_CLOCK_INC_RATE ED_BASE+118L // VISCA command - keep for compatibility
#define ED_TRANSCAP_CAN_DETECT_LENGTH ED_BASE+119L
#define ED_TRANSCAP_CAN_FREEZE ED_BASE+120L
#define ED_TRANSCAP_HAS_TUNER ED_BASE+121L
#define ED_TRANSCAP_HAS_TIMER ED_BASE+122L
#define ED_TRANSCAP_HAS_CLOCK ED_BASE+123L
#define ED_TRANSCAP_MULTIPLE_EDITS ED_BASE+806L // OATRUE means device/filter can support
// multiple edit events
#define ED_TRANSCAP_IS_MASTER ED_BASE+807L // OATRUE means device is the master clock
// for synchronizing (this sets timecode-to-
// reference clock offset for editing)
#define ED_TRANSCAP_HAS_DT ED_BASE+814L // OATRUE means device has Dynamic Tracking
// IAMExtTransport Media States
#define ED_MEDIA_SPIN_UP ED_BASE+130L
#define ED_MEDIA_SPIN_DOWN ED_BASE+131L
#define ED_MEDIA_UNLOAD ED_BASE+132L
// IAMExtTransport Media States
#define ED_MEDIA_SPIN_UP ED_BASE+130L
#define ED_MEDIA_SPIN_DOWN ED_BASE+131L
#define ED_MEDIA_UNLOAD ED_BASE+132L
// IAMExtTransport Modes
#define ED_MODE_PLAY ED_BASE+200L
#define ED_MODE_STOP ED_BASE+201L
#define ED_MODE_FREEZE ED_BASE+202L // really "pause"
#define ED_MODE_THAW ED_BASE+203L
#define ED_MODE_FF ED_BASE+204L
#define ED_MODE_REW ED_BASE+205L
#define ED_MODE_RECORD ED_BASE+206L
#define ED_MODE_RECORD_STROBE ED_BASE+207L
#define ED_MODE_RECORD_FREEZE ED_BASE+808L // never "put", only "get"
#define ED_MODE_STEP ED_BASE+208L // same as "jog"
#define ED_MODE_STEP_FWD ED_BASE+208L // same as ED_MODE_STEP
#define ED_MODE_STEP_REV ED_BASE+809L
#define ED_MODE_SHUTTLE ED_BASE+209L
#define ED_MODE_EDIT_CUE ED_BASE+210L
#define ED_MODE_VAR_SPEED ED_BASE+211L
#define ED_MODE_PERFORM ED_BASE+212L // returned status only
#define ED_MODE_LINK_ON ED_BASE+280L
#define ED_MODE_LINK_OFF ED_BASE+281L
#define ED_MODE_NOTIFY_ENABLE ED_BASE+810L
#define ED_MODE_NOTIFY_DISABLE ED_BASE+811L
#define ED_MODE_SHOT_SEARCH ED_BASE+812L
// IAMExtTransport Modes
#define ED_MODE_PLAY ED_BASE+200L
#define ED_MODE_STOP ED_BASE+201L
#define ED_MODE_FREEZE ED_BASE+202L // really "pause"
#define ED_MODE_THAW ED_BASE+203L
#define ED_MODE_FF ED_BASE+204L
#define ED_MODE_REW ED_BASE+205L
#define ED_MODE_RECORD ED_BASE+206L
#define ED_MODE_RECORD_STROBE ED_BASE+207L
#define ED_MODE_RECORD_FREEZE ED_BASE+808L // never "put", only "get"
#define ED_MODE_STEP ED_BASE+208L // same as "jog"
#define ED_MODE_STEP_FWD ED_BASE+208L // same as ED_MODE_STEP
#define ED_MODE_STEP_REV ED_BASE+809L
#define ED_MODE_SHUTTLE ED_BASE+209L
#define ED_MODE_EDIT_CUE ED_BASE+210L
#define ED_MODE_VAR_SPEED ED_BASE+211L
#define ED_MODE_PERFORM ED_BASE+212L // returned status only
#define ED_MODE_LINK_ON ED_BASE+280L
#define ED_MODE_LINK_OFF ED_BASE+281L
#define ED_MODE_NOTIFY_ENABLE ED_BASE+810L
#define ED_MODE_NOTIFY_DISABLE ED_BASE+811L
#define ED_MODE_SHOT_SEARCH ED_BASE+812L
// IAMTimecodeReader/Generator/Display defines
// IAMTimecodeReader/Generator/Display defines
//
// Timecode Generator Mode params and values:
//
#define ED_TCG_TIMECODE_TYPE ED_BASE+400L // can be one of the following:
#define ED_TCG_SMPTE_LTC ED_BASE+401L
#define ED_TCG_SMPTE_VITC ED_BASE+402L
#define ED_TCG_MIDI_QF ED_BASE+403L
#define ED_TCG_MIDI_FULL ED_BASE+404L
#define ED_TCG_TIMECODE_TYPE ED_BASE+400L // can be one of the following:
#define ED_TCG_SMPTE_LTC ED_BASE+401L
#define ED_TCG_SMPTE_VITC ED_BASE+402L
#define ED_TCG_MIDI_QF ED_BASE+403L
#define ED_TCG_MIDI_FULL ED_BASE+404L
#define ED_TCG_FRAMERATE ED_BASE+405L // can be one of the following:
#define ED_FORMAT_SMPTE_30 ED_BASE+406L
#define ED_FORMAT_SMPTE_30DROP ED_BASE+407L
#define ED_FORMAT_SMPTE_25 ED_BASE+408L
#define ED_FORMAT_SMPTE_24 ED_BASE+409L
#define ED_TCG_FRAMERATE ED_BASE+405L // can be one of the following:
#define ED_FORMAT_SMPTE_30 ED_BASE+406L
#define ED_FORMAT_SMPTE_30DROP ED_BASE+407L
#define ED_FORMAT_SMPTE_25 ED_BASE+408L
#define ED_FORMAT_SMPTE_24 ED_BASE+409L
#define ED_TCG_SYNC_SOURCE ED_BASE+410L // can be one of the following:
#define ED_TCG_VIDEO ED_BASE+411L
#define ED_TCG_READER ED_BASE+412L
#define ED_TCG_FREE ED_BASE+413L
#define ED_TCG_SYNC_SOURCE ED_BASE+410L // can be one of the following:
#define ED_TCG_VIDEO ED_BASE+411L
#define ED_TCG_READER ED_BASE+412L
#define ED_TCG_FREE ED_BASE+413L
#define ED_TCG_REFERENCE_SOURCE ED_BASE+414L // can have one these values:
// ED_TCG_FREE || ED_TCG_READER
// (for regen/jamsync)
#define ED_TCG_REFERENCE_SOURCE ED_BASE+414L // can have one these values:
// ED_TCG_FREE || ED_TCG_READER
// (for regen/jamsync)
// TimeCodeReader Mode params and values:
#define ED_TCR_SOURCE ED_BASE+416L // can be one of the following:
#define ED_TCR_SOURCE ED_BASE+416L // can be one of the following:
// ED_TCG (already defined)
#define ED_TCR_LTC ED_BASE+417L
#define ED_TCR_VITC ED_BASE+418L
#define ED_TCR_CT ED_BASE+419L // Control Track
#define ED_TCR_FTC ED_BASE+420L // File TimeCode - for file-based devices
// that wish they were transports
#define ED_TCR_LTC ED_BASE+417L
#define ED_TCR_VITC ED_BASE+418L
#define ED_TCR_CT ED_BASE+419L // Control Track
#define ED_TCR_FTC ED_BASE+420L // File TimeCode - for file-based devices
// that wish they were transports
// ED_MODE_NOTIFY_ENABLE can be OATRUE or OAFALSE (defined in transport mode
// section of this file).
#define ED_TCR_LAST_VALUE ED_BASE+421L // for notification mode -
// successive calls to GetTimecode
// return the last read value
#define ED_TCR_LAST_VALUE ED_BASE+421L // for notification mode -
// successive calls to GetTimecode
// return the last read value
// TimeCode Display Mode params and values:
//
#define ED_TCD_SOURCE ED_BASE+422L // can be one of the following:
#define ED_TCR ED_BASE+423L
#define ED_TCG ED_BASE+424L
#define ED_TCD_SOURCE ED_BASE+422L // can be one of the following:
#define ED_TCR ED_BASE+423L
#define ED_TCG ED_BASE+424L
#define ED_TCD_SIZE ED_BASE+425L // can be one of the following:
#define ED_SMALL ED_BASE+426L
#define ED_MED ED_BASE+427L
#define ED_LARGE ED_BASE+428L
#define ED_TCD_SIZE ED_BASE+425L // can be one of the following:
#define ED_SMALL ED_BASE+426L
#define ED_MED ED_BASE+427L
#define ED_LARGE ED_BASE+428L
#define ED_TCD_POSITION ED_BASE+429L // can be one of the following:
#define ED_TOP 0x0001
#define ED_MIDDLE 0x0002
#define ED_BOTTOM 0x0004 // ord with
#define ED_LEFT 0x0100
#define ED_CENTER 0x0200
#define ED_RIGHT 0x0400
#define ED_TCD_POSITION ED_BASE+429L // can be one of the following:
#define ED_TOP 0x0001
#define ED_MIDDLE 0x0002
#define ED_BOTTOM 0x0004 // OR'd with
#define ED_LEFT 0x0100
#define ED_CENTER 0x0200
#define ED_RIGHT 0x0400
#define ED_TCD_INTENSITY ED_BASE+436L // can be one of the following:
#define ED_HIGH ED_BASE+437L
#define ED_LOW ED_BASE+438L
#define ED_TCD_INTENSITY ED_BASE+436L // can be one of the following:
#define ED_HIGH ED_BASE+437L
#define ED_LOW ED_BASE+438L
#define ED_TCD_TRANSPARENCY ED_BASE+439L // 0-4, 0 is opaque
#define ED_TCD_TRANSPARENCY ED_BASE+439L // 0-4, 0 is opaque
#define ED_TCD_INVERT ED_BASE+440L // OATRUE=black on white
// OAFALSE=white on black
// IAMExtTransport defines
#define ED_TCD_INVERT ED_BASE+440L // OATRUE=black on white
// OAFALSE=white on black
// IAMExtTransport defines
//
// Transport status, params and values
//
// IAMExtTransport Status items and and values:
#define ED_MODE ED_BASE+500L // see ED_MODE_xxx values above
#define ED_ERROR ED_BASE+501L
#define ED_LOCAL ED_BASE+502L
#define ED_RECORD_INHIBIT ED_BASE+503L
#define ED_SERVO_LOCK ED_BASE+504L
#define ED_MEDIA_PRESENT ED_BASE+505L
#define ED_MEDIA_LENGTH ED_BASE+506L
#define ED_MEDIA_SIZE ED_BASE+507L
#define ED_MEDIA_TRACK_COUNT ED_BASE+508L
#define ED_MEDIA_TRACK_LENGTH ED_BASE+509L
#define ED_MEDIA_SIDE ED_BASE+510L
#define ED_MODE ED_BASE+500L // see ED_MODE_xxx values above
#define ED_ERROR ED_BASE+501L
#define ED_LOCAL ED_BASE+502L
#define ED_RECORD_INHIBIT ED_BASE+503L
#define ED_SERVO_LOCK ED_BASE+504L
#define ED_MEDIA_PRESENT ED_BASE+505L
#define ED_MEDIA_LENGTH ED_BASE+506L
#define ED_MEDIA_SIZE ED_BASE+507L
#define ED_MEDIA_TRACK_COUNT ED_BASE+508L
#define ED_MEDIA_TRACK_LENGTH ED_BASE+509L
#define ED_MEDIA_SIDE ED_BASE+510L
#define ED_MEDIA_TYPE ED_BASE+511L // can be one of the following:
#define ED_MEDIA_VHS ED_BASE+512L
#define ED_MEDIA_SVHS ED_BASE+513L
#define ED_MEDIA_HI8 ED_BASE+514L
#define ED_MEDIA_UMATIC ED_BASE+515L
#define ED_MEDIA_DVC ED_BASE+516L
#define ED_MEDIA_1_INCH ED_BASE+517L
#define ED_MEDIA_D1 ED_BASE+518L
#define ED_MEDIA_D2 ED_BASE+519L
#define ED_MEDIA_D3 ED_BASE+520L
#define ED_MEDIA_D5 ED_BASE+521L
#define ED_MEDIA_DBETA ED_BASE+522L
#define ED_MEDIA_BETA ED_BASE+523L
#define ED_MEDIA_8MM ED_BASE+524L
#define ED_MEDIA_DDR ED_BASE+525L
#define ED_MEDIA_SX ED_BASE+813L
#define ED_MEDIA_OTHER ED_BASE+526L
#define ED_MEDIA_CLV ED_BASE+527L
#define ED_MEDIA_CAV ED_BASE+528L
#define ED_MEDIA_POSITION ED_BASE+529L
#define ED_MEDIA_TYPE ED_BASE+511L // can be one of the following:
#define ED_MEDIA_VHS ED_BASE+512L
#define ED_MEDIA_SVHS ED_BASE+513L
#define ED_MEDIA_HI8 ED_BASE+514L
#define ED_MEDIA_UMATIC ED_BASE+515L
#define ED_MEDIA_DVC ED_BASE+516L
#define ED_MEDIA_1_INCH ED_BASE+517L
#define ED_MEDIA_D1 ED_BASE+518L
#define ED_MEDIA_D2 ED_BASE+519L
#define ED_MEDIA_D3 ED_BASE+520L
#define ED_MEDIA_D5 ED_BASE+521L
#define ED_MEDIA_DBETA ED_BASE+522L
#define ED_MEDIA_BETA ED_BASE+523L
#define ED_MEDIA_8MM ED_BASE+524L
#define ED_MEDIA_DDR ED_BASE+525L
#define ED_MEDIA_SX ED_BASE+813L
#define ED_MEDIA_OTHER ED_BASE+526L
#define ED_MEDIA_CLV ED_BASE+527L
#define ED_MEDIA_CAV ED_BASE+528L
#define ED_MEDIA_POSITION ED_BASE+529L
#define ED_LINK_MODE ED_BASE+530L // OATRUE if transport controls
// are linked to graph's RUN,
// STOP, and PAUSE methods
#define ED_LINK_MODE ED_BASE+530L // OATRUE if transport controls
// are linked to graph's RUN,
// STOP, and PAUSE methods
// IAMExtTransport Basic Parms
#define ED_TRANSBASIC_TIME_FORMAT ED_BASE+540L // can be one of the following:
#define ED_FORMAT_MILLISECONDS ED_BASE+541L
#define ED_FORMAT_FRAMES ED_BASE+542L
#define ED_FORMAT_REFERENCE_TIME ED_BASE+543L
#define ED_TRANSBASIC_TIME_FORMAT ED_BASE+540L // can be one of the following:
#define ED_FORMAT_MILLISECONDS ED_BASE+541L
#define ED_FORMAT_FRAMES ED_BASE+542L
#define ED_FORMAT_REFERENCE_TIME ED_BASE+543L
#define ED_FORMAT_HMSF ED_BASE+547L
#define ED_FORMAT_TMSF ED_BASE+548L
#define ED_FORMAT_HMSF ED_BASE+547L
#define ED_FORMAT_TMSF ED_BASE+548L
#define ED_TRANSBASIC_TIME_REFERENCE ED_BASE+549L // can be one of the following:
#define ED_TIMEREF_TIMECODE ED_BASE+550L
#define ED_TIMEREF_CONTROL_TRACK ED_BASE+551L
#define ED_TIMEREF_INDEX ED_BASE+552L
#define ED_TRANSBASIC_TIME_REFERENCE ED_BASE+549L // can be one of the following:
#define ED_TIMEREF_TIMECODE ED_BASE+550L
#define ED_TIMEREF_CONTROL_TRACK ED_BASE+551L
#define ED_TIMEREF_INDEX ED_BASE+552L
#define ED_TRANSBASIC_SUPERIMPOSE ED_BASE+553L // enable/disable onscreen display
#define ED_TRANSBASIC_END_STOP_ACTION ED_BASE+554L // can be one of: ED_MODE_STOP |
// ED_MODE_REWIND | ED_MODE_FREEZE
#define ED_TRANSBASIC_RECORD_FORMAT ED_BASE+555L // can be one of the following:
#define ED_RECORD_FORMAT_SP ED_BASE+556L
#define ED_RECORD_FORMAT_LP ED_BASE+557L
#define ED_RECORD_FORMAT_EP ED_BASE+558L
#define ED_TRANSBASIC_SUPERIMPOSE ED_BASE+553L // enable/disable onscreen display
#define ED_TRANSBASIC_END_STOP_ACTION ED_BASE+554L // can be one of: ED_MODE_STOP |
// ED_MODE_REWIND | ED_MODE_FREEZE
#define ED_TRANSBASIC_RECORD_FORMAT ED_BASE+555L // can be one of the following:
#define ED_RECORD_FORMAT_SP ED_BASE+556L
#define ED_RECORD_FORMAT_LP ED_BASE+557L
#define ED_RECORD_FORMAT_EP ED_BASE+558L
#define ED_TRANSBASIC_STEP_COUNT ED_BASE+559L
#define ED_TRANSBASIC_STEP_UNIT ED_BASE+560L // can be one of the following:
#define ED_STEP_FIELD ED_BASE+561L
#define ED_STEP_FRAME ED_BASE+562L
#define ED_STEP_3_2 ED_BASE+563L
#define ED_TRANSBASIC_STEP_COUNT ED_BASE+559L
#define ED_TRANSBASIC_STEP_UNIT ED_BASE+560L // can be one of the following:
#define ED_STEP_FIELD ED_BASE+561L
#define ED_STEP_FRAME ED_BASE+562L
#define ED_STEP_3_2 ED_BASE+563L
#define ED_TRANSBASIC_PREROLL ED_BASE+564L
#define ED_TRANSBASIC_RECPREROLL ED_BASE+565L
#define ED_TRANSBASIC_POSTROLL ED_BASE+566L
#define ED_TRANSBASIC_EDIT_DELAY ED_BASE+567L
#define ED_TRANSBASIC_PLAYTC_DELAY ED_BASE+568L
#define ED_TRANSBASIC_RECTC_DELAY ED_BASE+569L
#define ED_TRANSBASIC_EDIT_FIELD ED_BASE+570L
#define ED_TRANSBASIC_FRAME_SERVO ED_BASE+571L
#define ED_TRANSBASIC_CF_SERVO ED_BASE+572L
#define ED_TRANSBASIC_SERVO_REF ED_BASE+573L // can be one of the following:
#define ED_REF_EXTERNAL ED_BASE+574L
#define ED_REF_INPUT ED_BASE+575L
#define ED_REF_INTERNAL ED_BASE+576L
#define ED_REF_AUTO ED_BASE+577L
#define ED_TRANSBASIC_PREROLL ED_BASE+564L
#define ED_TRANSBASIC_RECPREROLL ED_BASE+565L
#define ED_TRANSBASIC_POSTROLL ED_BASE+566L
#define ED_TRANSBASIC_EDIT_DELAY ED_BASE+567L
#define ED_TRANSBASIC_PLAYTC_DELAY ED_BASE+568L
#define ED_TRANSBASIC_RECTC_DELAY ED_BASE+569L
#define ED_TRANSBASIC_EDIT_FIELD ED_BASE+570L
#define ED_TRANSBASIC_FRAME_SERVO ED_BASE+571L
#define ED_TRANSBASIC_CF_SERVO ED_BASE+572L
#define ED_TRANSBASIC_SERVO_REF ED_BASE+573L // can be one of the following:
#define ED_REF_EXTERNAL ED_BASE+574L
#define ED_REF_INPUT ED_BASE+575L
#define ED_REF_INTERNAL ED_BASE+576L
#define ED_REF_AUTO ED_BASE+577L
#define ED_TRANSBASIC_WARN_GL ED_BASE+578L
#define ED_TRANSBASIC_SET_TRACKING ED_BASE+579L // can be one of the following:
#define ED_TRACKING_PLUS ED_BASE+580L
#define ED_TRACKING_MINUS ED_BASE+581L
#define ED_TRACKING_RESET ED_BASE+582L
#define ED_TRANSBASIC_WARN_GL ED_BASE+578L
#define ED_TRANSBASIC_SET_TRACKING ED_BASE+579L // can be one of the following:
#define ED_TRACKING_PLUS ED_BASE+580L
#define ED_TRACKING_MINUS ED_BASE+581L
#define ED_TRACKING_RESET ED_BASE+582L
#define ED_TRANSBASIC_SET_FREEZE_TIMEOUT ED_BASE+583L
#define ED_TRANSBASIC_VOLUME_NAME ED_BASE+584L
#define ED_TRANSBASIC_BALLISTIC_1 ED_BASE+585L // space for proprietary data
#define ED_TRANSBASIC_BALLISTIC_2 ED_BASE+586L
#define ED_TRANSBASIC_BALLISTIC_3 ED_BASE+587L
#define ED_TRANSBASIC_BALLISTIC_4 ED_BASE+588L
#define ED_TRANSBASIC_BALLISTIC_5 ED_BASE+589L
#define ED_TRANSBASIC_BALLISTIC_6 ED_BASE+590L
#define ED_TRANSBASIC_BALLISTIC_7 ED_BASE+591L
#define ED_TRANSBASIC_BALLISTIC_8 ED_BASE+592L
#define ED_TRANSBASIC_BALLISTIC_9 ED_BASE+593L
#define ED_TRANSBASIC_BALLISTIC_10 ED_BASE+594L
#define ED_TRANSBASIC_BALLISTIC_11 ED_BASE+595L
#define ED_TRANSBASIC_BALLISTIC_12 ED_BASE+596L
#define ED_TRANSBASIC_BALLISTIC_13 ED_BASE+597L
#define ED_TRANSBASIC_BALLISTIC_14 ED_BASE+598L
#define ED_TRANSBASIC_BALLISTIC_15 ED_BASE+599L
#define ED_TRANSBASIC_BALLISTIC_16 ED_BASE+600L
#define ED_TRANSBASIC_BALLISTIC_17 ED_BASE+601L
#define ED_TRANSBASIC_BALLISTIC_18 ED_BASE+602L
#define ED_TRANSBASIC_BALLISTIC_19 ED_BASE+603L
#define ED_TRANSBASIC_BALLISTIC_20 ED_BASE+604L
#define ED_TRANSBASIC_SET_FREEZE_TIMEOUT ED_BASE+583L
#define ED_TRANSBASIC_VOLUME_NAME ED_BASE+584L
#define ED_TRANSBASIC_BALLISTIC_1 ED_BASE+585L // space for proprietary data
#define ED_TRANSBASIC_BALLISTIC_2 ED_BASE+586L
#define ED_TRANSBASIC_BALLISTIC_3 ED_BASE+587L
#define ED_TRANSBASIC_BALLISTIC_4 ED_BASE+588L
#define ED_TRANSBASIC_BALLISTIC_5 ED_BASE+589L
#define ED_TRANSBASIC_BALLISTIC_6 ED_BASE+590L
#define ED_TRANSBASIC_BALLISTIC_7 ED_BASE+591L
#define ED_TRANSBASIC_BALLISTIC_8 ED_BASE+592L
#define ED_TRANSBASIC_BALLISTIC_9 ED_BASE+593L
#define ED_TRANSBASIC_BALLISTIC_10 ED_BASE+594L
#define ED_TRANSBASIC_BALLISTIC_11 ED_BASE+595L
#define ED_TRANSBASIC_BALLISTIC_12 ED_BASE+596L
#define ED_TRANSBASIC_BALLISTIC_13 ED_BASE+597L
#define ED_TRANSBASIC_BALLISTIC_14 ED_BASE+598L
#define ED_TRANSBASIC_BALLISTIC_15 ED_BASE+599L
#define ED_TRANSBASIC_BALLISTIC_16 ED_BASE+600L
#define ED_TRANSBASIC_BALLISTIC_17 ED_BASE+601L
#define ED_TRANSBASIC_BALLISTIC_18 ED_BASE+602L
#define ED_TRANSBASIC_BALLISTIC_19 ED_BASE+603L
#define ED_TRANSBASIC_BALLISTIC_20 ED_BASE+604L
// consumer VCR items
#define ED_TRANSBASIC_SETCLOCK ED_BASE+605L
#define ED_TRANSBASIC_SET_COUNTER_FORMAT ED_BASE+606L // uses time format flags
#define ED_TRANSBASIC_SET_COUNTER_VALUE ED_BASE+607L
#define ED_TRANSBASIC_SETCLOCK ED_BASE+605L
#define ED_TRANSBASIC_SET_COUNTER_FORMAT ED_BASE+606L // uses time format flags
#define ED_TRANSBASIC_SET_COUNTER_VALUE ED_BASE+607L
#define ED_TRANSBASIC_SETTUNER_CH_UP ED_BASE+608L
#define ED_TRANSBASIC_SETTUNER_CH_DN ED_BASE+609L
#define ED_TRANSBASIC_SETTUNER_SK_UP ED_BASE+610L
#define ED_TRANSBASIC_SETTUNER_SK_DN ED_BASE+611L
#define ED_TRANSBASIC_SETTUNER_CH ED_BASE+612L
#define ED_TRANSBASIC_SETTUNER_NUM ED_BASE+613L
#define ED_TRANSBASIC_SETTUNER_CH_UP ED_BASE+608L
#define ED_TRANSBASIC_SETTUNER_CH_DN ED_BASE+609L
#define ED_TRANSBASIC_SETTUNER_SK_UP ED_BASE+610L
#define ED_TRANSBASIC_SETTUNER_SK_DN ED_BASE+611L
#define ED_TRANSBASIC_SETTUNER_CH ED_BASE+612L
#define ED_TRANSBASIC_SETTUNER_NUM ED_BASE+613L
#define ED_TRANSBASIC_SETTIMER_EVENT ED_BASE+614L
#define ED_TRANSBASIC_SETTIMER_STARTDAY ED_BASE+615L
#define ED_TRANSBASIC_SETTIMER_STARTTIME ED_BASE+616L
#define ED_TRANSBASIC_SETTIMER_STOPDAY ED_BASE+617L
#define ED_TRANSBASIC_SETTIMER_STOPTIME ED_BASE+618L
#define ED_TRANSBASIC_SETTIMER_EVENT ED_BASE+614L
#define ED_TRANSBASIC_SETTIMER_STARTDAY ED_BASE+615L
#define ED_TRANSBASIC_SETTIMER_STARTTIME ED_BASE+616L
#define ED_TRANSBASIC_SETTIMER_STOPDAY ED_BASE+617L
#define ED_TRANSBASIC_SETTIMER_STOPTIME ED_BASE+618L
// IAMExtTransport video parameters
#define ED_TRANSVIDEO_SET_OUTPUT ED_BASE+630L // can be one of the following:
#define ED_E2E ED_BASE+631L
#define ED_PLAYBACK ED_BASE+632L
#define ED_OFF ED_BASE+633L
#define ED_TRANSVIDEO_SET_OUTPUT ED_BASE+630L // can be one of the following:
#define ED_E2E ED_BASE+631L
#define ED_PLAYBACK ED_BASE+632L
#define ED_OFF ED_BASE+633L
#define ED_TRANSVIDEO_SET_SOURCE ED_BASE+634L
#define ED_TRANSVIDEO_SET_SOURCE ED_BASE+634L
// IAMExtTransport audio parameters
#define ED_TRANSAUDIO_ENABLE_OUTPUT ED_BASE+640L // can be the following:
#define ED_AUDIO_ALL 0x10000000 // or any of the following OR'd together
#define ED_AUDIO_1 0x0000001L
#define ED_AUDIO_2 0x0000002L
#define ED_AUDIO_3 0x0000004L
#define ED_AUDIO_4 0x0000008L
#define ED_AUDIO_5 0x0000010L
#define ED_AUDIO_6 0x0000020L
#define ED_AUDIO_7 0x0000040L
#define ED_AUDIO_8 0x0000080L
#define ED_AUDIO_9 0x0000100L
#define ED_AUDIO_10 0x0000200L
#define ED_AUDIO_11 0x0000400L
#define ED_AUDIO_12 0x0000800L
#define ED_AUDIO_13 0x0001000L
#define ED_AUDIO_14 0x0002000L
#define ED_AUDIO_15 0x0004000L
#define ED_AUDIO_16 0x0008000L
#define ED_AUDIO_17 0x0010000L
#define ED_AUDIO_18 0x0020000L
#define ED_AUDIO_19 0x0040000L
#define ED_AUDIO_20 0x0080000L
#define ED_AUDIO_21 0x0100000L
#define ED_AUDIO_22 0x0200000L
#define ED_AUDIO_23 0x0400000L
#define ED_AUDIO_24 0x0800000L
#define ED_VIDEO 0x2000000L // for Edit props below
#define ED_TRANSAUDIO_ENABLE_OUTPUT ED_BASE+640L // can be the following:
#define ED_AUDIO_ALL 0x10000000 // or any of the following OR'd together
#define ED_AUDIO_1 0x0000001L
#define ED_AUDIO_2 0x0000002L
#define ED_AUDIO_3 0x0000004L
#define ED_AUDIO_4 0x0000008L
#define ED_AUDIO_5 0x0000010L
#define ED_AUDIO_6 0x0000020L
#define ED_AUDIO_7 0x0000040L
#define ED_AUDIO_8 0x0000080L
#define ED_AUDIO_9 0x0000100L
#define ED_AUDIO_10 0x0000200L
#define ED_AUDIO_11 0x0000400L
#define ED_AUDIO_12 0x0000800L
#define ED_AUDIO_13 0x0001000L
#define ED_AUDIO_14 0x0002000L
#define ED_AUDIO_15 0x0004000L
#define ED_AUDIO_16 0x0008000L
#define ED_AUDIO_17 0x0010000L
#define ED_AUDIO_18 0x0020000L
#define ED_AUDIO_19 0x0040000L
#define ED_AUDIO_20 0x0080000L
#define ED_AUDIO_21 0x0100000L
#define ED_AUDIO_22 0x0200000L
#define ED_AUDIO_23 0x0400000L
#define ED_AUDIO_24 0x0800000L
#define ED_VIDEO 0x2000000L // for Edit props below
#define ED_TRANSAUDIO_ENABLE_RECORD ED_BASE+642L
#define ED_TRANSAUDIO_ENABLE_SELSYNC ED_BASE+643L
#define ED_TRANSAUDIO_SET_SOURCE ED_BASE+644L
#define ED_TRANSAUDIO_SET_MONITOR ED_BASE+645L
#define ED_TRANSAUDIO_ENABLE_RECORD ED_BASE+642L
#define ED_TRANSAUDIO_ENABLE_SELSYNC ED_BASE+643L
#define ED_TRANSAUDIO_SET_SOURCE ED_BASE+644L
#define ED_TRANSAUDIO_SET_MONITOR ED_BASE+645L
// Edit Property Set-related defs
// The following values reflect (and control) the state of an
// edit property set
#define ED_INVALID ED_BASE+652L
#define ED_EXECUTING ED_BASE+653L
#define ED_REGISTER ED_BASE+654L
#define ED_DELETE ED_BASE+655L
#define ED_INVALID ED_BASE+652L
#define ED_EXECUTING ED_BASE+653L
#define ED_REGISTER ED_BASE+654L
#define ED_DELETE ED_BASE+655L
// Edit property set parameters and values
#define ED_EDIT_HEVENT ED_BASE+656L // event handle to signal event
// completion
#define ED_EDIT_TEST ED_BASE+657L // returns OAFALSE if filter thinks
// edit can be done, OATRUE if not
#define ED_EDIT_IMMEDIATE ED_BASE+658L // OATRUE means start put the
// device into edit mode (editing
// "on the fly") immediately upon
// execution of Mode(ED_MODE_EDIT_CUE)
#define ED_EDIT_MODE ED_BASE+659L
#define ED_EDIT_HEVENT ED_BASE+656L // event handle to signal event
// completion
#define ED_EDIT_TEST ED_BASE+657L // returns OAFALSE if filter thinks
// edit can be done, OATRUE if not
#define ED_EDIT_IMMEDIATE ED_BASE+658L // OATRUE means start put the
// device into edit mode (editing
// "on the fly") immediately upon
// execution of Mode(ED_MODE_EDIT_CUE)
#define ED_EDIT_MODE ED_BASE+659L
// can be one of the following values:
#define ED_EDIT_MODE_ASSEMBLE ED_BASE+660L
#define ED_EDIT_MODE_INSERT ED_BASE+661L
#define ED_EDIT_MODE_CRASH_RECORD ED_BASE+662L
#define ED_EDIT_MODE_BOOKMARK_TIME ED_BASE+663L // these two are for
#define ED_EDIT_MODE_BOOKMARK_CHAPTER ED_BASE+664L // laserdisks
#define ED_EDIT_MODE_ASSEMBLE ED_BASE+660L
#define ED_EDIT_MODE_INSERT ED_BASE+661L
#define ED_EDIT_MODE_CRASH_RECORD ED_BASE+662L
#define ED_EDIT_MODE_BOOKMARK_TIME ED_BASE+663L // these two are for
#define ED_EDIT_MODE_BOOKMARK_CHAPTER ED_BASE+664L // laserdisks
#define ED_EDIT_MASTER ED_BASE+666L // OATRUE causes device
// not to synchronize
#define ED_EDIT_MASTER ED_BASE+666L // OATRUE causes device
// not to synchronize
#define ED_EDIT_TRACK ED_BASE+667L
#define ED_EDIT_TRACK ED_BASE+667L
// can be one of the following possible OR'd values:
// ED_VIDEO, ED_AUDIO_1 thru ED_AUDIO_24 (or ED_AUDIO_ALL)
// ED_VIDEO, ED_AUDIO_1 thru ED_AUDIO_24 (or ED_AUDIO_ALL)
#define ED_EDIT_SRC_INPOINT ED_BASE+668L // in current time format
#define ED_EDIT_SRC_OUTPOINT ED_BASE+669L // in current time format
#define ED_EDIT_REC_INPOINT ED_BASE+670L // in current time format
#define ED_EDIT_REC_OUTPOINT ED_BASE+671L // in current time format
#define ED_EDIT_SRC_INPOINT ED_BASE+668L // in current time format
#define ED_EDIT_SRC_OUTPOINT ED_BASE+669L // in current time format
#define ED_EDIT_REC_INPOINT ED_BASE+670L // in current time format
#define ED_EDIT_REC_OUTPOINT ED_BASE+671L // in current time format
#define ED_EDIT_REHEARSE_MODE ED_BASE+672L
#define ED_EDIT_REHEARSE_MODE ED_BASE+672L
// can be one of the following possible values:
#define ED_EDIT_BVB ED_BASE+673L // means rehearse the edit with
// "black-video-black"
#define ED_EDIT_VBV ED_BASE+674L
#define ED_EDIT_VVV ED_BASE+675L
#define ED_EDIT_PERFORM ED_BASE+676L // means perform the edit with no
// rehearsal.
#define ED_EDIT_BVB ED_BASE+673L // means rehearse the edit with
// "black-video-black"
#define ED_EDIT_VBV ED_BASE+674L
#define ED_EDIT_VVV ED_BASE+675L
#define ED_EDIT_PERFORM ED_BASE+676L // means perform the edit with no
// rehearsal.
// Set this property to OATRUE to kill the edit if in progress
#define ED_EDIT_ABORT ED_BASE+677L
#define ED_EDIT_ABORT ED_BASE+677L
// how long to wait for edit to complete
#define ED_EDIT_TIMEOUT ED_BASE+678L // in current time format
#define ED_EDIT_TIMEOUT ED_BASE+678L // in current time format
// This property causes the device to seek to a point specified by
// ED_EDIT_SEEK_MODE (see below). NOTE: Only one event at a time can seek.
#define ED_EDIT_SEEK ED_BASE+679L // OATRUE means do it now.
#define ED_EDIT_SEEK_MODE ED_BASE+680L
#define ED_EDIT_SEEK ED_BASE+679L // OATRUE means do it now.
#define ED_EDIT_SEEK_MODE ED_BASE+680L
//possible values:
#define ED_EDIT_SEEK_EDIT_IN ED_BASE+681L // seek to edit's inpoint
#define ED_EDIT_SEEK_EDIT_OUT ED_BASE+682L // seek to edit's outpoint
#define ED_EDIT_SEEK_PREROLL ED_BASE+683L // seek to edit's
// inpoint-preroll
#define ED_EDIT_SEEK_PREROLL_CT ED_BASE+684L // seek to preroll point
// using control track (used for tapes with
// discontinuoustimecode before edit point: seek
// to inpoint using timecode, then backup to
// preroll point using control track)
#define ED_EDIT_SEEK_BOOKMARK ED_BASE+685L // seek to bookmark (just like
// timecode search)
#define ED_EDIT_SEEK_EDIT_IN ED_BASE+681L // seek to edit's inpoint
#define ED_EDIT_SEEK_EDIT_OUT ED_BASE+682L // seek to edit's outpoint
#define ED_EDIT_SEEK_PREROLL ED_BASE+683L // seek to edit's
// inpoint-preroll
#define ED_EDIT_SEEK_PREROLL_CT ED_BASE+684L // seek to preroll point
// using control track (used for tapes with
// discontinuoustimecode before edit point: seek
// to inpoint using timecode, then backup to
// preroll point using control track)
#define ED_EDIT_SEEK_BOOKMARK ED_BASE+685L // seek to bookmark (just like
// timecode search)
// This property is used for multiple-VCR systems where each machine must
// cue to a different location relative to the graph's reference clock. The
// basic idea is that an edit event is setup with an ED_EDIT_OFFSET property
// that tells the VCR what offset to maintain between it's timecode (converted
// to reference clock units) and the reference clock.
#define ED_EDIT_OFFSET ED_BASE+686L // in current time format
// to reference clock units) and the reference clock.
#define ED_EDIT_OFFSET ED_BASE+686L // in current time format
#define ED_EDIT_PREREAD ED_BASE+815L // OATRUE means device supports
// pre-read (recorder can also be
// player
#define ED_EDIT_PREREAD ED_BASE+815L // OATRUE means device supports
// pre-read (recorder can also be
// player
//
// Some error codes:
//
// device could be in local mode
#define ED_ERR_DEVICE_NOT_READY ED_BASE+700L
#define ED_ERR_DEVICE_NOT_READY ED_BASE+700L
#endif // __EDEVDEFS__

View File

@ -3,7 +3,7 @@
//
// Desc: ActiveMovie error defines.
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
//
// Desc: List of standard Quartz event codes and the expected params.
//
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
// Copyright (c) 1992 - 2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
@ -61,6 +61,7 @@
// DVD event codes 0x0100 - 0x0150 (dvdevcod.h)
// audio device event codes 0x0200 - 0x0250 (audevcod.h)
// WindowsMedia SDK-originated events 0x0251 - 0x0300 (see below)
// MSVIDCTL 0x0301 - 0x0325 (msvidctl.idl)
#define EC_COMPLETE 0x01
// ( HRESULT, void ) : defaulted (special)
@ -153,7 +154,7 @@
// Notify application the previous pause request has completed
#define EC_OPENING_FILE 0x10
#define EC_OPENING_FILE 0x10
#define EC_BUFFERING_DATA 0x11
// ( BOOL, void ) : application
// lParam1 == 1 --> starting to open file or buffer data
@ -205,7 +206,7 @@
// filter when too little data is arriving.
#define EC_OLE_EVENT 0x18
#define EC_OLE_EVENT 0x18
// ( BSTR, BSTR ) : application
// Sent by a filter to pass a text string to the application.
// Conventionally, the first string is a type, and the second a parameter.
@ -215,7 +216,7 @@
// ( HWND, void ) : internal
// Pass the window handle around during pin connection.
#define EC_STREAM_CONTROL_STOPPED 0x1A
#define EC_STREAM_CONTROL_STOPPED 0x1A
// ( IPin * pSender, DWORD dwCookie )
// Notification that an earlier call to IAMStreamControl::StopAt
// has now take effect. Calls to the method can be marked
@ -226,7 +227,7 @@
// NB: IPin will point to the pin that actioned the Stop. This
// may not be the pin that the StopAt was sent to.
#define EC_STREAM_CONTROL_STARTED 0x1B
#define EC_STREAM_CONTROL_STARTED 0x1B
// ( IPin * pSender, DWORD dwCookie )
// Notification that an earlier call to IAMStreamControl::StartAt
// has now take effect. Calls to the method can be marked
@ -277,6 +278,7 @@
// It is used to compute how many EC_END_OF_SEGMENT notifications
// to expect at the end of a segment and as a consitency check
#define EC_LENGTH_CHANGED 0x1E
// (void, void)
// sent to indicate that the length of the "file" has changed
@ -295,21 +297,29 @@
// if the application issued some control request or because there
// was a mode change etc etc
// Event code 25 is reserved for future use.
#define EC_SKIP_FRAMES 0x25
// ( nFramesToSkip, void ) : internal
// Get the filter graph to seek accuratley.
#define EC_TIMECODE_AVAILABLE 0x30
#define EC_TIMECODE_AVAILABLE 0x30
// Sent by filter supporting timecode
// Param1 has a pointer to the sending object
// Param2 has the device ID of the sending object
#define EC_EXTDEVICE_MODE_CHANGE 0x31
#define EC_EXTDEVICE_MODE_CHANGE 0x31
// Sent by filter supporting IAMExtDevice
// Param1 has the new mode
// Param2 has the device ID of the sending object
#define EC_STATE_CHANGE 0x32
// ( FILTER_STATE, BOOL bInternal)
// Used to notify the application of any state changes in the filter graph.
// lParam1 is of type enum FILTER_STATE (defined in strmif.h) and indicates
// the state of the filter graph.
//
// lParam2 == 0 indicates that the previous state change request has completed
// & a change in application state.
// lParam2 == 1 reserved for future use to indicate internal state changes.
#define EC_GRAPH_CHANGED 0x50
// Sent by filter to notify interesting graph changes
@ -317,26 +327,89 @@
// ( void, void ) : application
// Used to notify the filter graph to unset the current graph clock.
// Has the affect of forcing the filter graph to reestablish the graph clock
// on the next Pause/Run (note that this is only used by ksproxy, when the pin
// on the next Pause/Run (note that this is only used by ksproxy, when the pin
// of a clock providing filter is disconnected)
#define EC_VMR_RENDERDEVICE_SET 0x53
// (Render_Device type, void)
// Identifies the type of rendering mechanism the VMR
// is using to display video. Types used include:
#define VMR_RENDER_DEVICE_OVERLAY 0x01
#define VMR_RENDER_DEVICE_VIDMEM 0x02
#define VMR_RENDER_DEVICE_SYSMEM 0x04
#define EC_VMR_SURFACE_FLIPPED 0x54
// (hr - Flip return code, void)
// Identifies the VMR's allocator-presenter has called the DDraw flip api on
// the surface being presented. This allows the VMR to keep its DX-VA table
// of DDraw surfaces in sync with DDraws flipping chain.
#define EC_VMR_RECONNECTION_FAILED 0x55
// (hr - ReceiveConnection return code, void)
// Identifies that an upstream decoder tried to perform a dynamic format
// change and the VMR was unable to accept the new format.
//------------------------------------------
//
// BDA events:
//
// Event code 0x80 through 0x8f are reserved for BDA
//
//------------------------------------------
//
// WindowsMedia SDK filter-specific events:
//
//
#define EC_WMT_EVENT_BASE 0x0251
// Note that for EC_WMT_EVENT events the wmsdk-based filters use the following structure for
// passing event parameters to the app:
#ifndef AM_WMT_EVENT_DATA_DEFINED
#define AM_WMT_EVENT_DATA_DEFINED
typedef struct {
HRESULT hrStatus; // status code
void * pData; // event data
} AM_WMT_EVENT_DATA;
#endif
//
#define EC_WMT_EVENT_BASE 0x0251
//
#define EC_WMT_INDEX_EVENT EC_WMT_EVENT_BASE
// WindowsMedia SDK-originated file indexing status, sent by WMSDK-based filters
//
// lParam1 is one of the enum WMT_STATUS messages listed below, sent by the WindowsMedia SDK
// lParam2 is specific to the lParam event
// lParam1 is one of the enum WMT_STATUS messages listed below, sent by the WindowsMedia SDK
// lParam2 is specific to the lParam event
//
// the following WMT_STATUS messages are sent for this event:
// WMT_STARTED - lParam2 is 0
// WMT_CLOSED - lParam2 is 0
// WMT_INDEX_PROGRESS - lParam2 is a DWORD containing the progress percent complete
//
#define EC_WMT_EVENT EC_WMT_EVENT_BASE+1
// WindowsMedia SDK-originated event, sent by WMSDK-based filters
//
// lParam1 is one of the enum WMT_STATUS messages listed below, sent by the WindowsMedia SDK
// lParam2 is a pointer an AM_WMT_EVENT_DATA structure where,
// hrStatus is the status code sent by the wmsdk
// pData is specific to the lParam1 event
//
// the following WMT_STATUS messages are sent by the WMSDK Reader filter for this event:
// WMT_NO_RIGHTS - pData is a pointer to a WCHAR string containing a challenge URL
// WMT_ACQUIRE_LICENSE - lParam2 is a pointer to a WM_GET_LICENSE_DATA struct
// WMT_NO_RIGHTS_EX - lParam2 is a pointer to a WM_GET_LICENSE_DATA struct
// WMT_NEEDS_INDIVIDUALIZATION - lParam2 is NULL
// WMT_INDIVIDUALIZE - lParam2 is a pointer to a WM_INDIVIDUALIZE_STATUS struct
//
// end WMSDK-originated events
//-----------------------------------------
#define EC_BUILT 0x300
// Sent to notify transition from unbuilt to built state
#define EC_UNBUILT 0x301
// Sent to notify transtion from built to unbuilt state

Some files were not shown because too many files have changed in this diff Show More