Create a branch for network fixes.

svn path=/branches/aicom-network-fixes/; revision=34994
This commit is contained in:
Art Yerkes 2008-08-01 11:32:26 +00:00
parent 0e213bbc00
commit c501d8112c
18148 changed files with 0 additions and 860488 deletions

8
include/dxsdk/ActiveCf.h Normal file
View file

@ -0,0 +1,8 @@
typedef struct tagVFW_FILTERLIST
{
UINT cFilters;
CLSID aClsId[1];
} VFW_FILTERLIST;
#define CFSTR_VFW_FILTERLIST "Video for Windows 4 Filters"

57
include/dxsdk/DShow.h Normal file
View file

@ -0,0 +1,57 @@
#ifndef __DSHOW_INCLUDED__
#define __DSHOW_INCLUDED__
#ifdef _MSC_VER
#pragma warning(disable:4100)
#pragma warning(disable:4201)
#pragma warning(disable:4511)
#pragma warning(disable:4512)
#pragma warning(disable:4514)
#if _MSC_VER>=1100
#define AM_NOVTABLE __declspec(novtable)
#else
#define AM_NOVTABLE
#endif
#endif
#include <windows.h>
#include <windowsx.h>
#include <olectl.h>
#include <ddraw.h>
#include <mmsystem.h>
/*
#ifndef NO_DSHOW_STRSAFE
#define NO_SHLWAPI_STRFCNS
#include <strsafe.h>
#endif
*/
#ifndef NUMELMS
#define NUMELMS(aa) (sizeof(aa)/sizeof((aa)[0]))
#endif
#include <strmif.h>
#include <amvideo.h>
#include <amaudio.h>
#include <control.h>
#include <evcode.h>
#include <uuids.h>
#include <errors.h>
#include <edevdefs.h>
#include <audevcod.h>
#include <dvdevcod.h>
#ifndef InterlockedExchangePointer
#define InterlockedExchangePointer(Target, Value) (PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value))
#endif
#ifndef OATRUE
#define OATRUE (-1)
#endif
#ifndef OAFALSE
#define OAFALSE (0)
#endif
#endif

75
include/dxsdk/Iwstdec.h Normal file
View file

@ -0,0 +1,75 @@
#ifndef __IWSTDEC__
#define __IWSTDEC__
typedef enum _AM_WST_DRAWBGMODE
{
AM_WST_DRAWBGMODE_Opaque,
AM_WST_DRAWBGMODE_Transparent
} AM_WST_DRAWBGMODE, *PAM_WST_DRAWBGMODE;
typedef struct _AM_WST_PAGE
{
DWORD dwPageNr ;
DWORD dwSubPageNr ;
BYTE *pucPageData;
} AM_WST_PAGE, *PAM_WST_PAGE;
typedef enum _AM_WST_STATE
{
AM_WST_STATE_Off = 0,
AM_WST_STATE_On
} AM_WST_STATE, *PAM_WST_STATE;
typedef enum _AM_WST_SERVICE
{
AM_WST_SERVICE_None = 0,
AM_WST_SERVICE_Text,
AM_WST_SERVICE_IDS,
AM_WST_SERVICE_Invalid
} AM_WST_SERVICE, *PAM_WST_SERVICE;
typedef enum _AM_WST_STYLE
{
AM_WST_STYLE_None = 0,
AM_WST_STYLE_Invers
} AM_WST_STYLE, *PAM_WST_STYLE;
typedef enum _AM_WST_LEVEL
{
AM_WST_LEVEL_1_5 = 0
} AM_WST_LEVEL, *PAM_WST_LEVEL;
#ifdef __cplusplus
extern "C" {
#endif
DECLARE_INTERFACE_(IAMWstDecoder, IUnknown)
{
public:
STDMETHOD(GetDecoderLevel)(THIS_ AM_WST_LEVEL *lpLevel) PURE;
STDMETHOD(GetCurrentService)(THIS_ AM_WST_SERVICE *lpService) PURE;
STDMETHOD(GetServiceState)(THIS_ AM_WST_STATE *lpState) PURE;
STDMETHOD(SetServiceState)(THIS_ AM_WST_STATE State) PURE ;
STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE;
STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE;
STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE;
STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE;
STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE;
STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE;
STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE *lpMode) PURE;
STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE Mode) PURE;
STDMETHOD(SetAnswerMode)(THIS_ BOOL bAnswer) PURE;
STDMETHOD(GetAnswerMode)(THIS_ BOOL* pbAnswer) PURE;
STDMETHOD(SetHoldPage)(THIS_ BOOL bHoldPage) PURE;
STDMETHOD(GetHoldPage)(THIS_ BOOL* pbHoldPage) PURE;
STDMETHOD(GetCurrentPage)(THIS_ PAM_WST_PAGE pWstPage) PURE;
STDMETHOD(SetCurrentPage)(THIS_ AM_WST_PAGE WstPage) PURE;
} ;
#ifdef __cplusplus
}
#endif
#endif

45
include/dxsdk/Mpeg2Bits.h Normal file
View file

@ -0,0 +1,45 @@
#pragma once
#pragma pack(push)
#ifdef __midl
typedef struct
{
WORD Bits;
} PID_BITS_MIDL;
typedef struct
{
WORD Bits;
} MPEG_HEADER_BITS_MIDL;
typedef struct
{
BYTE Bits;
} MPEG_HEADER_VERSION_BITS_MIDL;
#else
typedef struct
{
WORD Reserved : 3;
WORD ProgramId : 13;
} PID_BITS, *PPID_BITS;
typedef struct
{
WORD SectionLength : 12;
WORD Reserved : 2;
WORD PrivateIndicator : 1;
WORD SectionSyntaxIndicator : 1;
} MPEG_HEADER_BITS, *PMPEG_HEADER_BITS;
typedef struct
{
BYTE CurrentNextIndicator : 1;
BYTE VersionNumber : 5;
BYTE Reserved : 2;
} MPEG_HEADER_VERSION_BITS, *PMPEG_HEADER_VERSION_BITS;
#endif
#pragma pack(pop)

View file

@ -0,0 +1,45 @@
#pragma once
#define MAKE_S_ITF_HRESULT(x) MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, (x))
#define MAKE_E_ITF_HRESULT(x) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, (x))
const unsigned int MPEG2_BASE = 0x200;
const HRESULT MPEG2_E_UNINITIALIZED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 0);
const HRESULT MPEG2_E_ALREADY_INITIALIZED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 1);
const HRESULT MPEG2_E_OUT_OF_BOUNDS = MAKE_E_ITF_HRESULT(MPEG2_BASE + 2);
const HRESULT MPEG2_E_MALFORMED_TABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 3);
const HRESULT MPEG2_E_UNDEFINED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 4);
const HRESULT MPEG2_E_NOT_PRESENT = MAKE_E_ITF_HRESULT(MPEG2_BASE + 5);
const HRESULT MPEG2_E_SECTION_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 6);
const HRESULT MPEG2_E_TX_STREAM_UNAVAILABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 7);
const HRESULT MPEG2_E_SERVICE_ID_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 8);
const HRESULT MPEG2_E_SERVICE_PMT_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 9);
const HRESULT MPEG2_E_DSI_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 10);
const HRESULT MPEG2_E_SERVER_UNAVAILABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 11);
const HRESULT MPEG2_E_INVALID_CAROUSEL_ID = MAKE_E_ITF_HRESULT(MPEG2_BASE + 12);
const HRESULT MPEG2_E_MALFORMED_DSMCC_MESSAGE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 13);
const HRESULT MPEG2_E_INVALID_SG_OBJECT_KIND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 14);
const HRESULT MPEG2_E_OBJECT_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 15);
const HRESULT MPEG2_E_OBJECT_KIND_NOT_A_DIRECTORY = MAKE_E_ITF_HRESULT(MPEG2_BASE + 16);
const HRESULT MPEG2_E_OBJECT_KIND_NOT_A_FILE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 17);
const HRESULT MPEG2_E_FILE_OFFSET_TOO_BIG = MAKE_E_ITF_HRESULT(MPEG2_BASE + 18);
const HRESULT MPEG2_E_STREAM_STOPPED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 19);
const HRESULT MPEG2_E_REGISTRY_ACCESS_FAILED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 20);
const HRESULT MPEG2_E_INVALID_UDP_PORT = MAKE_E_ITF_HRESULT(MPEG2_BASE + 21);
const HRESULT MPEG2_E_DATA_SOURCE_FAILED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 22);
const HRESULT MPEG2_E_DII_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 23);
const HRESULT MPEG2_E_DSHOW_PIN_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 24);
const HRESULT MPEG2_E_BUFFER_TOO_SMALL = MAKE_E_ITF_HRESULT(MPEG2_BASE + 25);
const HRESULT MPEG2_E_MISSING_SECTIONS = MAKE_E_ITF_HRESULT(MPEG2_BASE + 26);
const HRESULT MPEG2_E_TOO_MANY_SECTIONS = MAKE_E_ITF_HRESULT(MPEG2_BASE + 27);
const HRESULT MPEG2_E_NEXT_TABLE_OPS_NOT_AVAILABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 28);
const HRESULT MPEG2_S_MORE_DATA_AVAILABLE = MAKE_S_ITF_HRESULT(MPEG2_BASE + 0);
const HRESULT MPEG2_S_NO_MORE_DATA_AVAILABLE = MAKE_S_ITF_HRESULT(MPEG2_BASE + 1);
const HRESULT MPEG2_S_SG_INFO_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 2);
const HRESULT MPEG2_S_SG_INFO_NOT_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 3);
const HRESULT MPEG2_S_MPE_INFO_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 4);
const HRESULT MPEG2_S_MPE_INFO_NOT_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 5);
const HRESULT MPEG2_S_NEW_MODULE_VERSION = MAKE_S_ITF_HRESULT(MPEG2_BASE + 6);

47
include/dxsdk/PIXPlugin.h Normal file
View file

@ -0,0 +1,47 @@
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#define PIX_PLUGIN_SYSTEM_VERSION 0x101
enum PIXCOUNTERDATATYPE
{
PCDT_RESERVED,
PCDT_FLOAT,
PCDT_INT,
PCDT_INT64,
PCDT_STRING,
};
typedef int PIXCOUNTERID;
struct PIXCOUNTERINFO
{
PIXCOUNTERID counterID;
WCHAR* pstrName;
PIXCOUNTERDATATYPE pcdtDataType;
};
struct PIXPLUGININFO
{
HINSTANCE hinst;
WCHAR* pstrPluginName;
int iPluginVersion;
int iPluginSystemVersion;
};
BOOL WINAPI PIXBeginExperiment( PIXCOUNTERID id, const WCHAR* pstrApplication );
BOOL WINAPI PIXEndFrame( PIXCOUNTERID id, UINT iFrame, DWORD* pdwReturnBytes, BYTE** ppReturnData );
BOOL WINAPI PIXEndExperiment( PIXCOUNTERID id );
BOOL WINAPI PIXGetCounterInfo( DWORD* pdwReturnCounters, PIXCOUNTERINFO** ppCounterInfoList );
BOOL WINAPI PIXGetCounterDesc( PIXCOUNTERID id, WCHAR** ppstrCounterDesc );
BOOL WINAPI PIXGetPluginInfo( PIXPLUGININFO* pPIXPluginInfo );
#ifdef __cplusplus
};
#endif

View file

@ -0,0 +1,58 @@
import "unknwn.idl";
cpp_quote("#if 0")
typedef void* LPVOID;
typedef void* LPGUID;
typedef void* LPDIRECTDRAWSURFACE;
typedef void* LPDDPIXELFORMAT;
typedef void* LPAMVAInternalMemInfo;
typedef void AMVAUncompDataInfo;
typedef void* LPAMVACompBufferInfo;
typedef void AMVABUFFERINFO;
typedef void AMVAEndFrameInfo;
typedef void* LPAMVAUncompBufferInfo;
typedef void AMVABeginFrameInfo;
typedef IUnknown* IMediaSample;
cpp_quote("#endif")
cpp_quote("#include <ddraw.h>")
cpp_quote("#include <amva.h>")
[
local,
object,
uuid(256A6A22-FBAD-11d1-82BF-00A0C9696C8F),
pointer_default(unique)
]
interface IAMVideoAccelerator : IUnknown
{
HRESULT GetVideoAcceleratorGUIDs([in] [out] LPDWORD pdwNumGuidsSupported, [in] [out] LPGUID pGuidsSupported);
HRESULT GetUncompFormatsSupported( [in] const GUID *pGuid, [in] [out] LPDWORD pdwNumFormatsSupported, [in] [out] LPDDPIXELFORMAT pFormatsSupported);
HRESULT GetInternalMemInfo([in] const GUID *pGuid, [in] const AMVAUncompDataInfo *pamvaUncompDataInfo, [in] [out] LPAMVAInternalMemInfo pamvaInternalMemInfo);
HRESULT GetCompBufferInfo([in] const GUID *pGuid, [in] const AMVAUncompDataInfo *pamvaUncompDataInfo, [in] [out] LPDWORD pdwNumTypesCompBuffers, [out] LPAMVACompBufferInfo pamvaCompBufferInfo);
HRESULT GetInternalCompBufferInfo([in] [out] LPDWORD pdwNumTypesCompBuffers, [out] LPAMVACompBufferInfo pamvaCompBufferInfo);
HRESULT BeginFrame([in] const AMVABeginFrameInfo *amvaBeginFrameInfo);
HRESULT EndFrame([in] const AMVAEndFrameInfo *pEndFrameInfo);
HRESULT GetBuffer([in] DWORD dwTypeIndex, [in] DWORD dwBufferIndex, [in] BOOL bReadOnly, [out] LPVOID *ppBuffer, [out] LONG *lpStride);
HRESULT ReleaseBuffer([in] DWORD dwTypeIndex, [in] DWORD dwBufferIndex);
HRESULT Execute([in] DWORD dwFunction, [in] LPVOID lpPrivateInputData, [in] DWORD cbPrivateInputData, [in] LPVOID lpPrivateOutputDat, [in] DWORD cbPrivateOutputData, [in] DWORD dwNumBuffers, [in] const AMVABUFFERINFO *pamvaBufferInfo);
HRESULT QueryRenderStatus([in] DWORD dwTypeIndex, [in] DWORD dwBufferIndex, [in] DWORD dwFlags);
HRESULT DisplayFrame([in] DWORD dwFlipToIndex, [in] IMediaSample *pMediaSample);
};
[
local,
object,
uuid(256A6A21-FBAD-11d1-82BF-00A0C9696C8F),
pointer_default(unique)
]
interface IAMVideoAcceleratorNotify : IUnknown
{
HRESULT GetUncompSurfacesInfo([in] const GUID *pGuid, [in] [out] LPAMVAUncompBufferInfo pUncompBufferInfo);
HRESULT SetUncompSurfacesInfo([in] DWORD dwActualUncompSurfacesAllocated);
HRESULT GetCreateVideoAcceleratorData([in] const GUID *pGuid, [out] LPDWORD pdwSizeMiscData, [out] LPVOID *ppMiscData);
};

498
include/dxsdk/Vmrender.idl Normal file
View file

@ -0,0 +1,498 @@
cpp_quote("#if 0")
import "unknwn.idl";
typedef int DWORD;
typedef int REFERENCE_TIME;
typedef int HMONITOR;
typedef int AM_MEDIA_TYPE;
typedef DWORD* LPDIRECTDRAW7;
typedef DWORD* LPDIRECTDRAWSURFACE7;
typedef DWORD* LPDDPIXELFORMAT;
typedef DWORD* LPBITMAPINFOHEADER;
typedef struct {DWORD dw1; DWORD dw2;} DDCOLORKEY;
typedef DDCOLORKEY* LPDDCOLORKEY;
cpp_quote ("#endif")
cpp_quote("#include <ddraw.h>")
cpp_quote("#define VMRBITMAP_DISABLE 0x00000001")
cpp_quote("#define VMRBITMAP_HDC 0x00000002")
cpp_quote("#define VMRBITMAP_ENTIREDDS 0x00000004")
cpp_quote("#define VMRBITMAP_SRCCOLORKEY 0x00000008")
cpp_quote("#define VMRBITMAP_SRCRECT 0x00000010")
interface IVMRSurface;
interface IVMRSurfaceAllocator;
interface IVMRSurfaceAllocatorNotify;
interface IVMRImagePresenter;
interface IVMRImagePresenterConfig;
interface IVMRWindowlessControl;
interface IVMRMixerControl;
interface IVMRMixerBitmap;
interface IVMRFilterConfig;
interface IVMRAspectRatioControl;
interface IVMRDeinterlaceControl;
interface IVMRMonitorConfig;
interface IVMRImageCompositor;
interface IVMRVideoStreamControl;
#define VMRDEVICENAMELEN 32
#define VMRDEVICEDESCRIPTIONLEN 256
typedef enum
{
VMRSample_SyncPoint = 0x00000001,
VMRSample_Preroll = 0x00000002,
VMRSample_Discontinuity = 0x00000004,
VMRSample_TimeValid = 0x00000008,
VMRSample_SrcDstRectsValid= 0x00000010
} VMRPresentationFlags;
typedef enum
{
AMAP_PIXELFORMAT_VALID = 0x01,
AMAP_3D_TARGET = 0x02,
AMAP_ALLOW_SYSMEM = 0x04,
AMAP_FORCE_SYSMEM = 0x08,
AMAP_DIRECTED_FLIP = 0x10,
AMAP_DXVA_TARGET = 0x20
} VMRSurfaceAllocationFlags;
typedef enum
{
VMR_ARMODE_NONE,
VMR_ARMODE_LETTER_BOX
} VMR_ASPECT_RATIO_MODE;
typedef enum
{
MixerPref_NoDecimation = 0x00000001,
MixerPref_DecimateOutput = 0x00000002,
MixerPref_ARAdjustXorY = 0x00000004,
MixerPref_DecimationReserved = 0x00000008,
MixerPref_DecimateMask = 0x0000000F,
MixerPref_BiLinearFiltering = 0x00000010,
MixerPref_PointFiltering = 0x00000020,
MixerPref_FilteringMask = 0x000000F0,
MixerPref_RenderTargetRGB = 0x00000100,
MixerPref_RenderTargetYUV = 0x00001000,
MixerPref_RenderTargetYUV420 = 0x00000200,
MixerPref_RenderTargetYUV422 = 0x00000400,
MixerPref_RenderTargetYUV444 = 0x00000800,
MixerPref_RenderTargetReserved = 0x0000E000,
MixerPref_RenderTargetMask = 0x0000FF00,
MixerPref_DynamicSwitchToBOB = 0x00010000,
MixerPref_DynamicDecimateBy2 = 0x00020000,
MixerPref_DynamicReserved = 0x000C0000,
MixerPref_DynamicMask = 0x000F0000
} VMRMixerPrefs;
typedef enum
{
RenderPrefs_RestrictToInitialMonitor = 0x00000000,
RenderPrefs_ForceOffscreen = 0x00000001,
RenderPrefs_ForceOverlays = 0x00000002,
RenderPrefs_AllowOverlays = 0x00000000,
RenderPrefs_AllowOffscreen = 0x00000000,
RenderPrefs_DoNotRenderColorKeyAndBorder = 0x00000008,
RenderPrefs_Reserved = 0x00000010,
RenderPrefs_PreferAGPMemWhenMixing = 0x00000020,
RenderPrefs_Mask = 0x0000003f,
} VMRRenderPrefs;
typedef enum
{
VMRMode_Windowed = 0x00000001,
VMRMode_Windowless = 0x00000002,
VMRMode_Renderless = 0x00000004,
VMRMode_Mask = 0x00000007,
} VMRMode;
enum
{
MAX_NUMBER_OF_STREAMS = 16
};
typedef enum
{
DeinterlacePref_NextBest = 0x01,
DeinterlacePref_BOB = 0x02,
DeinterlacePref_Weave = 0x04,
DeinterlacePref_Mask = 0x07
} VMRDeinterlacePrefs;
typedef enum
{
DeinterlaceTech_Unknown = 0x0000,
DeinterlaceTech_BOBLineReplicate = 0x0001,
DeinterlaceTech_BOBVerticalStretch = 0x0002,
DeinterlaceTech_MedianFiltering = 0x0004,
DeinterlaceTech_EdgeFiltering = 0x0010,
DeinterlaceTech_FieldAdaptive = 0x0020,
DeinterlaceTech_PixelAdaptive = 0x0040,
DeinterlaceTech_MotionVectorSteered = 0x0080
} VMRDeinterlaceTech;
typedef struct tagVMRPRESENTATIONINFO
{
DWORD dwFlags;
LPDIRECTDRAWSURFACE7 lpSurf;
REFERENCE_TIME rtStart;
REFERENCE_TIME rtEnd;
SIZE szAspectRatio;
RECT rcSrc;
RECT rcDst;
DWORD dwTypeSpecificFlags;
DWORD dwInterlaceFlags;
} VMRPRESENTATIONINFO;
typedef struct tagVMRALLOCATIONINFO
{
DWORD dwFlags;
LPBITMAPINFOHEADER lpHdr;
LPDDPIXELFORMAT lpPixFmt;
SIZE szAspectRatio;
DWORD dwMinBuffers;
DWORD dwMaxBuffers;
DWORD dwInterlaceFlags;
SIZE szNativeSize;
} VMRALLOCATIONINFO;
typedef struct _NORMALIZEDRECT
{
float left;
float top;
float right;
float bottom;
} NORMALIZEDRECT, *PNORMALIZEDRECT;
typedef struct tagVMRGUID
{
GUID* pGUID;
GUID GUID;
} VMRGUID;
typedef struct tagVMRMONITORINFO
{
VMRGUID guid;
RECT rcMonitor;
HMONITOR hMon;
DWORD dwFlags;
wchar_t szDevice[VMRDEVICENAMELEN];
wchar_t szDescription[VMRDEVICEDESCRIPTIONLEN];
LARGE_INTEGER liDriverVersion;
DWORD dwVendorId;
DWORD dwDeviceId;
DWORD dwSubSysId;
DWORD dwRevision;
} VMRMONITORINFO;
typedef struct _VMRFrequency
{
DWORD dwNumerator;
DWORD dwDenominator;
} VMRFrequency;
typedef struct _VMRVideoDesc
{
DWORD dwSize;
DWORD dwSampleWidth;
DWORD dwSampleHeight;
BOOL SingleFieldPerSample;
DWORD dwFourCC;
VMRFrequency InputSampleFreq;
VMRFrequency OutputFrameFreq;
} VMRVideoDesc;
typedef struct _VMRDeinterlaceCaps
{
DWORD dwSize;
DWORD dwNumPreviousOutputFrames;
DWORD dwNumForwardRefSamples;
DWORD dwNumBackwardRefSamples;
VMRDeinterlaceTech DeinterlaceTechnology;
} VMRDeinterlaceCaps;
typedef struct _VMRALPHABITMAP
{
DWORD dwFlags;
HDC hdc;
LPDIRECTDRAWSURFACE7 pDDS;
RECT rSrc;
NORMALIZEDRECT rDest;
FLOAT fAlpha;
COLORREF clrSrcKey;
} VMRALPHABITMAP, *PVMRALPHABITMAP;
typedef struct _VMRVIDEOSTREAMINFO
{
LPDIRECTDRAWSURFACE7 pddsVideoSurface;
DWORD dwWidth;
DWORD dwHeight;
FLOAT dwStrmID;
FLOAT fAlpha;
DDCOLORKEY ddClrKey;
NORMALIZEDRECT rNormal;
} VMRVIDEOSTREAMINFO;
[
local,
object,
local,
uuid(CE704FE7-E71E-41fb-BAA2-C4403E1182F5),
pointer_default(unique)
]
interface IVMRImagePresenter : IUnknown
{
HRESULT StartPresenting([in] DWORD_PTR dwUserID);
HRESULT StopPresenting([in] DWORD_PTR dwUserID);
HRESULT PresentImage([in] DWORD_PTR dwUserID, [in] VMRPRESENTATIONINFO* lpPresInfo);
};
[
local,
object,
local,
uuid(31ce832e-4484-458b-8cca-f4d7e3db0b52),
pointer_default(unique)
]
interface IVMRSurfaceAllocator : IUnknown
{
HRESULT AllocateSurface([in] DWORD_PTR dwUserID, [in] VMRALLOCATIONINFO* lpAllocInfo, [in] [out] DWORD* lpdwActualBuffers, [out] LPDIRECTDRAWSURFACE7 *lplpSurface);
HRESULT FreeSurface([in] DWORD_PTR dwID);
HRESULT PrepareSurface([in] DWORD_PTR dwUserID, [in] LPDIRECTDRAWSURFACE7 lpSurface, [in] DWORD dwSurfaceFlags);
HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify* lpIVMRSurfAllocNotify);
};
[
local,
object,
local,
uuid(aada05a8-5a4e-4729-af0b-cea27aed51e2),
pointer_default(unique)
]
interface IVMRSurfaceAllocatorNotify : IUnknown
{
HRESULT AdviseSurfaceAllocator([in] DWORD_PTR dwUserID, [in] IVMRSurfaceAllocator* lpIVRMSurfaceAllocator);
HRESULT SetDDrawDevice([in] LPDIRECTDRAW7 lpDDrawDevice, [in] HMONITOR hMonitor);
HRESULT ChangeDDrawDevice([in] LPDIRECTDRAW7 lpDDrawDevice, [in] HMONITOR hMonitor);
HRESULT RestoreDDrawSurfaces();
HRESULT NotifyEvent([in] LONG EventCode, [in] LONG_PTR Param1, [in] LONG_PTR Param2);
HRESULT SetBorderColor([in] COLORREF clrBorder);
};
[
local,
object,
local,
uuid(0eb1088c-4dcd-46f0-878f-39dae86a51b7),
pointer_default(unique)
]
interface IVMRWindowlessControl : IUnknown
{
HRESULT GetNativeVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight, [out] LONG* lpARWidth, [out] LONG* lpARHeight);
HRESULT GetMinIdealVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight);
HRESULT GetMaxIdealVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight);
HRESULT SetVideoPosition([in] const LPRECT lpSRCRect, [in] const LPRECT lpDSTRect);
HRESULT GetVideoPosition([out] LPRECT lpSRCRect, [out] LPRECT lpDSTRect);
HRESULT GetAspectRatioMode([out] DWORD* lpAspectRatioMode);
HRESULT SetAspectRatioMode([in] DWORD AspectRatioMode);
HRESULT SetVideoClippingWindow([in] HWND hwnd);
HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc);
HRESULT DisplayModeChanged();
HRESULT GetCurrentImage([out] BYTE** lpDib);
HRESULT SetBorderColor([in] COLORREF Clr);
HRESULT GetBorderColor([out] COLORREF* lpClr);
HRESULT SetColorKey([in] COLORREF Clr);
HRESULT GetColorKey([out] COLORREF* lpClr);
};
[
local,
object,
local,
uuid(1c1a17b0-bed0-415d-974b-dc6696131599),
pointer_default(unique)
]
interface IVMRMixerControl : IUnknown
{
HRESULT SetAlpha([in] DWORD dwStreamID, [in] float Alpha);
HRESULT GetAlpha([in] DWORD dwStreamID, [out] float* pAlpha);
HRESULT SetZOrder([in] DWORD dwStreamID, [in] DWORD dwZ);
HRESULT GetZOrder([in] DWORD dwStreamID, [out] DWORD* pZ);
HRESULT SetOutputRect([in] DWORD dwStreamID, [in] const NORMALIZEDRECT *pRect);
HRESULT GetOutputRect([in] DWORD dwStreamID, [out] NORMALIZEDRECT *pRect);
HRESULT SetBackgroundClr([in] COLORREF ClrBkg);
HRESULT GetBackgroundClr([in] COLORREF* lpClrBkg);
HRESULT SetMixingPrefs([in] DWORD dwMixerPrefs);
HRESULT GetMixingPrefs([out] DWORD* pdwMixerPrefs);
};
[
object,
local,
uuid(9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce),
pointer_default(unique)
]
interface IVMRMonitorConfig : IUnknown
{
HRESULT SetMonitor([in] const VMRGUID *pGUID);
HRESULT GetMonitor([out] VMRGUID *pGUID);
HRESULT SetDefaultMonitor([in] const VMRGUID *pGUID);
HRESULT GetDefaultMonitor([out] VMRGUID *pGUID);
HRESULT GetAvailableMonitors([out, size_is(dwMaxInfoArraySize)] VMRMONITORINFO* pInfo, [in] DWORD dwMaxInfoArraySize, [out] DWORD* pdwNumDevices);
};
[
object,
local,
uuid(9e5530c5-7034-48b4-bb46-0b8a6efc8e36),
pointer_default(unique)
]
interface IVMRFilterConfig : IUnknown
{
HRESULT SetImageCompositor([in] IVMRImageCompositor* lpVMRImgCompositor);
HRESULT SetNumberOfStreams([in] DWORD dwMaxStreams);
HRESULT GetNumberOfStreams([out] DWORD* pdwMaxStreams);
HRESULT SetRenderingPrefs([in] DWORD dwRenderFlags);
HRESULT GetRenderingPrefs([out] DWORD* pdwRenderFlags);
HRESULT SetRenderingMode([in] DWORD Mode);
HRESULT GetRenderingMode([out] DWORD* pMode);
}
[
object,
local,
uuid(ede80b5c-bad6-4623-b537-65586c9f8dfd),
pointer_default(unique)
]
interface IVMRAspectRatioControl : IUnknown
{
HRESULT GetAspectRatioMode([out] LPDWORD lpdwARMode);
HRESULT SetAspectRatioMode([in] DWORD dwARMode);
}
[
object,
local,
uuid(bb057577-0db8-4e6a-87a7-1a8c9a505a0f),
pointer_default(unique)
]
interface IVMRDeinterlaceControl : IUnknown
{
HRESULT GetNumberOfDeinterlaceModes([in] VMRVideoDesc* lpVideoDescription, [in] [out] LPDWORD lpdwNumDeinterlaceModes, [out] LPGUID lpDeinterlaceModes);
HRESULT GetDeinterlaceModeCaps([in] LPGUID lpDeinterlaceMode, [in] VMRVideoDesc* lpVideoDescription, [in] [out] VMRDeinterlaceCaps* lpDeinterlaceCaps);
HRESULT GetDeinterlaceMode([in] DWORD dwStreamID, [out] LPGUID lpDeinterlaceMode );
HRESULT SetDeinterlaceMode([in] DWORD dwStreamID, [in] LPGUID lpDeinterlaceMode);
HRESULT GetDeinterlacePrefs([out] LPDWORD lpdwDeinterlacePrefs);
HRESULT SetDeinterlacePrefs([in] DWORD dwDeinterlacePrefs);
HRESULT GetActualDeinterlaceMode([in] DWORD dwStreamID, [out] LPGUID lpDeinterlaceMode);
}
[
object,
local,
uuid(1E673275-0257-40aa-AF20-7C608D4A0428),
pointer_default(unique)
]
interface IVMRMixerBitmap : IUnknown
{
HRESULT SetAlphaBitmap([in] const VMRALPHABITMAP *pBmpParms);
HRESULT UpdateAlphaBitmapParameters([in] PVMRALPHABITMAP pBmpParms);
HRESULT GetAlphaBitmapParameters([out] PVMRALPHABITMAP pBmpParms);
};
[
local,
object,
local,
uuid(7a4fb5af-479f-4074-bb40-ce6722e43c82),
pointer_default(unique)
]
interface IVMRImageCompositor : IUnknown
{
HRESULT InitCompositionTarget([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget);
HRESULT TermCompositionTarget([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget);
HRESULT SetStreamMediaType([in] DWORD dwStrmID, [in] AM_MEDIA_TYPE* pmt, [in] BOOL fTexture);
HRESULT CompositeImage([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget, [in] AM_MEDIA_TYPE* pmtRenderTarget, [in] REFERENCE_TIME rtStart, [in] REFERENCE_TIME rtEnd, [in] DWORD dwClrBkGnd, [in] VMRVIDEOSTREAMINFO* pVideoStreamInfo, [in] UINT cStreams);
};
[
object,
local,
uuid(058d1f11-2a54-4bef-bd54-df706626b727),
pointer_default(unique)
]
interface IVMRVideoStreamControl: IUnknown
{
HRESULT SetColorKey([in] LPDDCOLORKEY lpClrKey);
HRESULT GetColorKey([out] LPDDCOLORKEY lpClrKey);
HRESULT SetStreamActiveState([in] BOOL fActive);
HRESULT GetStreamActiveState([out] BOOL* lpfActive);
};
[
local,
object,
local,
uuid(a9849bbe-9ec8-4263-b764-62730f0d15d0),
pointer_default(unique)
]
interface IVMRSurface : IUnknown
{
HRESULT IsSurfaceLocked();
HRESULT LockSurface([out] BYTE** lpSurface);
HRESULT UnlockSurface();
HRESULT GetSurface([out] LPDIRECTDRAWSURFACE7 *lplpSurface);
};
[
local,
object,
local,
uuid(9f3a1c85-8555-49ba-935f-be5b5b29d178),
pointer_default(unique)
]
interface IVMRImagePresenterConfig : IUnknown
{
HRESULT SetRenderingPrefs([in] DWORD dwRenderFlags);
HRESULT GetRenderingPrefs([out] DWORD* dwRenderFlags);
}
[
local,
object,
local,
uuid(e6f7ce40-4673-44f1-8f77-5499d68cb4ea),
pointer_default(unique)
]
interface IVMRImagePresenterExclModeConfig : IVMRImagePresenterConfig
{
HRESULT SetXlcModeDDObjAndPrimarySurface([in] LPDIRECTDRAW7 lpDDObj, [in] LPDIRECTDRAWSURFACE7 lpPrimarySurf);
HRESULT GetXlcModeDDObjAndPrimarySurface([out] LPDIRECTDRAW7* lpDDObj, [out] LPDIRECTDRAWSURFACE7* lpPrimarySurf);
}
[
local,
object,
local,
uuid(aac18c18-e186-46d2-825d-a1f8dc8e395a),
pointer_default(unique)
]
interface IVPManager : IUnknown
{
HRESULT SetVideoPortIndex([in] DWORD dwVideoPortIndex);
HRESULT GetVideoPortIndex([out] DWORD* pdwVideoPortIndex);
};

33
include/dxsdk/amaudio.h Normal file
View file

@ -0,0 +1,33 @@
#ifndef __AMAUDIO__
#define __AMAUDIO__
#ifdef __cplusplus
extern "C" {
#endif
#include <mmsystem.h>
#include <dsound.h>
#undef INTERFACE
#define INTERFACE IAMDirectSound
DECLARE_INTERFACE_(IAMDirectSound,IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(GetDirectSoundInterface)(THIS_ LPDIRECTSOUND *lplpds) PURE;
STDMETHOD(GetPrimaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER *lplpdsb) PURE;
STDMETHOD(GetSecondaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER *lplpdsb) PURE;
STDMETHOD(ReleaseDirectSoundInterface)(THIS_ LPDIRECTSOUND lpds) PURE;
STDMETHOD(ReleasePrimaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER lpdsb) PURE;
STDMETHOD(ReleaseSecondaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER lpdsb) PURE;
STDMETHOD(SetFocusWindow)(THIS_ HWND, BOOL) PURE ;
STDMETHOD(GetFocusWindow)(THIS_ HWND *, BOOL*) PURE ;
};
#ifdef __cplusplus
}
#endif
#endif

22
include/dxsdk/amparse.h Normal file
View file

@ -0,0 +1,22 @@
#ifndef __AMPARSE__
#define __AMPARSE__
#ifdef __cplusplus
extern "C" {
#endif
DEFINE_GUID(IID_IAMParse, 0xC47A3420, 0x005C, 0x11D2, 0x90, 0x38, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x98);
DECLARE_INTERFACE_(IAMParse, IUnknown)
{
STDMETHOD(GetParseTime) (THIS_ REFERENCE_TIME *prtCurrent) PURE;
STDMETHOD(SetParseTime) (THIS_ REFERENCE_TIME rtCurrent) PURE;
STDMETHOD(Flush) (THIS) PURE;
};
#ifdef __cplusplus
}
#endif
#endif

212
include/dxsdk/amstream.idl Normal file
View file

@ -0,0 +1,212 @@
import "unknwn.idl";
import "mmstream.idl";
import "strmif.idl";
cpp_quote("#include <ddraw.h>")
cpp_quote("#include <mmsystem.h>")
cpp_quote("#include <mmstream.h>")
cpp_quote("#include <ddstream.h>")
cpp_quote("#include <austream.h>")
interface IAMMultiMediaStream;
interface IAMMediaStream;
interface IMediaStreamFilter;
interface IDirectDraw;
interface IDirectDrawSurface;
interface IAMMediaTypeStream;
interface IAMMediaTypeSample;
enum
{
AMMSF_NOGRAPHTHREAD = 0x00000001
};
enum
{
AMMSF_ADDDEFAULTRENDERER = 0x00000001,
AMMSF_CREATEPEER = 0x00000002,
AMMSF_STOPIFNOSAMPLES = 0x00000004,
AMMSF_NOSTALL = 0x00000008
};
enum
{
AMMSF_RENDERTYPEMASK = 0x00000003,
AMMSF_RENDERTOEXISTING = 0x00000000,
AMMSF_RENDERALLSTREAMS = 0x00000001,
AMMSF_NORENDER = 0x00000002,
AMMSF_NOCLOCK = 0x00000004,
AMMSF_RUN = 0x00000008
};
typedef [v1_enum] enum
{
Disabled = 0,
ReadData = 1,
RenderData = 2
} OUTPUT_STATE;
[
object,
uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D),
dual,
pointer_default(unique)
]
interface IDirectShowStream : IDispatch
{
[propget, id(1)] HRESULT FileName([out, retval] BSTR *pVal);
[propput, id(1)] HRESULT FileName([in] BSTR newVal);
[propget, id(2)] HRESULT Video([out, retval] OUTPUT_STATE *pVal);
[propput, id(2)] HRESULT Video([in] OUTPUT_STATE newVal);
[propget, id(3)] HRESULT Audio([out, retval] OUTPUT_STATE *pVal);
[propput, id(3)] HRESULT Audio([in] OUTPUT_STATE newVal);
};
[
object,
uuid(BEBE595C-9A6F-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IAMMultiMediaStream : IMultiMediaStream
{
HRESULT Initialize([in] STREAM_TYPE StreamType, [in] DWORD dwFlags, [in] IGraphBuilder *pFilterGraph);
HRESULT GetFilterGraph([out] IGraphBuilder **ppGraphBuilder);
HRESULT GetFilter([out] IMediaStreamFilter **ppFilter);
HRESULT AddMediaStream([in] IUnknown *pStreamObject, [in] const MSPID *PurposeId, [in] DWORD dwFlags, [out] IMediaStream **ppNewStream);
HRESULT OpenFile([in] LPCWSTR pszFileName, [in] DWORD dwFlags);
HRESULT OpenMoniker([in] IBindCtx *pCtx, [in] IMoniker *pMoniker, [in] DWORD dwFlags);
HRESULT Render([in] DWORD dwFlags);
}
[
object,
uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IAMMediaStream : IMediaStream
{
HRESULT Initialize([in] IUnknown *pSourceObject, [in] DWORD dwFlags, [in] REFMSPID PurposeId, [in] const STREAM_TYPE StreamType);
HRESULT SetState([in] FILTER_STATE State);
HRESULT JoinAMMultiMediaStream([in] IAMMultiMediaStream *pAMMultiMediaStream);
HRESULT JoinFilter([in] IMediaStreamFilter *pMediaStreamFilter);
HRESULT JoinFilterGraph([in] IFilterGraph *pFilterGraph);
};
[
object,
local,
uuid(BEBE595E-9A6F-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IMediaStreamFilter : IBaseFilter
{
HRESULT AddMediaStream([in] IAMMediaStream *pAMMediaStream);
HRESULT GetMediaStream([in] REFMSPID idPurpose, [out] IMediaStream **ppMediaStream);
HRESULT EnumMediaStreams([in] long Index, [out] IMediaStream **ppMediaStream);
HRESULT SupportSeeking([in] BOOL bRenderer);
HRESULT ReferenceTimeToStreamTime([in] [out] REFERENCE_TIME *pTime);
HRESULT GetCurrentStreamTime([out] REFERENCE_TIME *pCurrentStreamTime);
HRESULT WaitUntil([in] REFERENCE_TIME WaitStreamTime);
HRESULT Flush([in] BOOL bCancelEOS);
HRESULT EndOfStream();
};
[
object,
local,
uuid(AB6B4AFC-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IDirectDrawMediaSampleAllocator : IUnknown
{
HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw);
};
[
object,
local,
uuid(AB6B4AFE-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IDirectDrawMediaSample : IUnknown
{
HRESULT GetSurfaceAndReleaseLock([out] IDirectDrawSurface **ppDirectDrawSurface, [out] RECT * pRect);
HRESULT LockMediaSamplePointer(void);
};
[
object,
local,
uuid(AB6B4AFA-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IAMMediaTypeStream : IMediaStream
{
HRESULT GetFormat([out] AM_MEDIA_TYPE * pMediaType, [in] DWORD dwFlags);
HRESULT SetFormat([in] AM_MEDIA_TYPE * pMediaType, [in] DWORD dwFlags);
HRESULT CreateSample([in] long lSampleSize, [in] BYTE * pbBuffer, [in] DWORD dwFlags, [in] IUnknown *pUnkOuter, [out] IAMMediaTypeSample ** ppAMMediaTypeSample);
HRESULT GetStreamAllocatorRequirements([out] ALLOCATOR_PROPERTIES *pProps);
HRESULT SetStreamAllocatorRequirements([in] ALLOCATOR_PROPERTIES *pProps);
};
[
object,
local,
uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IAMMediaTypeSample : IStreamSample
{
HRESULT SetPointer([in] BYTE *pBuffer, [in] long lSize);
HRESULT GetPointer([out] BYTE ** ppBuffer);
long GetSize(void);
HRESULT GetTime([out] REFERENCE_TIME * pTimeStart, [out] REFERENCE_TIME * pTimeEnd);
HRESULT SetTime([in] REFERENCE_TIME * pTimeStart, [in] REFERENCE_TIME * pTimeEnd);
HRESULT IsSyncPoint(void);
HRESULT SetSyncPoint(BOOL bIsSyncPoint);
HRESULT IsPreroll(void);
HRESULT SetPreroll(BOOL bIsPreroll);
long GetActualDataLength(void);
HRESULT SetActualDataLength(long Len);
HRESULT GetMediaType(AM_MEDIA_TYPE **ppMediaType);
HRESULT SetMediaType(AM_MEDIA_TYPE *pMediaType);
HRESULT IsDiscontinuity(void);
HRESULT SetDiscontinuity(BOOL bDiscontinuity);
HRESULT GetMediaTime([out] LONGLONG * pTimeStart, [out] LONGLONG * pTimeEnd);
HRESULT SetMediaTime([in] LONGLONG * pTimeStart, [in] LONGLONG * pTimeEnd);
};
[
uuid(4E6CDE29-C0C4-11d0-8FF1-00C04FD9189D)
]
library DirectShowStreamLib
{
importlib("stdole2.tlb");
[
uuid(49c47ce5-9ba4-11d0-8212-00c04fc32c45)
]
coclass AMMultiMediaStream
{
[default] dispinterface IDirectShowStream;
};
};
cpp_quote("#ifndef __cplusplus")
cpp_quote("EXTERN_C const CLSID CLSID_AMMultiMediaStream;")
cpp_quote("#endif")
cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
cpp_quote("DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0xd, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")

69
include/dxsdk/amva.h Normal file
View file

@ -0,0 +1,69 @@
#ifndef __AMVA_INCLUDED__
#define __AMVA_INCLUDED__
#ifdef __cplusplus
extern "C" {
#endif
#define AMVA_QUERYRENDERSTATUSF_READ 0x00000001
#define AMVA_TYPEINDEX_OUTPUTFRAME 0xFFFFFFFF
typedef struct _tag_AMVABUFFERINFO
{
DWORD dwTypeIndex;
DWORD dwBufferIndex;
DWORD dwDataOffset;
DWORD dwDataSize;
} AMVABUFFERINFO, *LPAMVABUFFERINFO;
typedef struct _tag_AMVAInternalMemInfo
{
DWORD dwScratchMemAlloc;
} AMVAInternalMemInfo, *LPAMVAInternalMemInfo;
typedef struct _tag_AMVAUncompDataInfo
{
DWORD dwUncompWidth;
DWORD dwUncompHeight;
DDPIXELFORMAT ddUncompPixelFormat;
} AMVAUncompDataInfo, *LPAMVAUncompDataInfo;
typedef struct _tag_AMVAUncompBufferInfo
{
DWORD dwMinNumSurfaces;
DWORD dwMaxNumSurfaces;
DDPIXELFORMAT ddUncompPixelFormat;
} AMVAUncompBufferInfo, *LPAMVAUncompBufferInfo;
typedef struct _tag_AMVABeginFrameInfo
{
DWORD dwDestSurfaceIndex;
LPVOID pInputData;
DWORD dwSizeInputData;
LPVOID pOutputData;
DWORD dwSizeOutputData;
} AMVABeginFrameInfo, *LPAMVABeginFrameInfo;
typedef struct _tag_AMVACompBufferInfo
{
DWORD dwNumCompBuffers;
DWORD dwWidthToCreate;
DWORD dwHeightToCreate;
DWORD dwBytesToAllocate;
DDSCAPS2 ddCompCaps;
DDPIXELFORMAT ddPixelFormat;
} AMVACompBufferInfo, *LPAMVACompBufferInfo;
typedef struct _tag_AMVAEndFrameInfo
{
DWORD dwSizeMiscData;
LPVOID pMiscData;
} AMVAEndFrameInfo, *LPAMVAEndFrameInfo;
#ifdef __cplusplus
};
#endif
#endif

260
include/dxsdk/amvideo.h Normal file
View file

@ -0,0 +1,260 @@
/*
* amvideo.h
*
* DirectX header
*
* Copyright Magnus Olsen (magnus@greatlord.com)
*/
#ifndef __AMVIDEO__
#define __AMVIDEO__
#ifdef __cplusplus
extern "C" {
#endif
#include <ddraw.h>
#define AMDDS_NONE 0x00
#define AMDDS_DCIPS 0x01
#define AMDDS_PS 0x02
#define AMDDS_RGBOVR 0x04
#define AMDDS_YUVOVR 0x08
#define AMDDS_RGBOFF 0x10
#define AMDDS_YUVOFF 0x20
#define AMDDS_RGBFLP 0x40
#define AMDDS_YUVFLP 0x80
#define AMDDS_ ALL 0xFF
#define AMDDS_DEFAULT AMDDS_ALL
#define AMDDS_YUV (AMDDS_YUVOFF | AMDDS_YUVOVR | AMDDS_YUVFLP)
#define AMDDS_RGB (AMDDS_RGBOFF | AMDDS_RGBOVR | AMDDS_RGBFLP)
#define AMDDS_PRIMARY (AMDDS_DCIPS | AMDDS_PS)
#define iPALETTE_COLORS 256
#define iEGA_COLORS 16
#define iMASK_COLORS 3
#define iTRUECOLOR 16
#define iRED 0
#define iGREEN 1
#define iBLUE 2
#define iPALETTE 8
#define iMAXBITS 8
typedef struct tag_TRUECOLORINFO
{
DWORD dwBitMasks[iMASK_COLORS];
RGBQUAD bmiColors[iPALETTE_COLORS];
} TRUECOLORINFO;
typedef struct tagVIDEOINFOHEADER
{
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
BITMAPINFOHEADER bmiHeader;
} VIDEOINFOHEADER;
typedef struct tagVIDEOINFO
{
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
BITMAPINFOHEADER bmiHeader;
union
{
RGBQUAD bmiColors[iPALETTE_COLORS];
DWORD dwBitMasks[iMASK_COLORS];
TRUECOLORINFO TrueColorInfo;
};
} VIDEOINFO;
typedef struct tagMPEG1VIDEOINFO
{
VIDEOINFOHEADER hdr;
DWORD dwStartTimeCode;
DWORD cbSequenceHeader;
BYTE bSequenceHeader[1];
} MPEG1VIDEOINFO;
typedef struct tagAnalogVideoInfo
{
RECT rcSource;
RECT rcTarget;
DWORD dwActiveWidth;
DWORD dwActiveHeight;
REFERENCE_TIME AvgTimePerFrame;
} ANALOGVIDEOINFO;
#define TRUECOLOR(PBMIH) ((TRUECOLORINFO *)(((LPBYTE)&((PBMIH)->bmiHeader)) + (PBMIH)->bmiHeader.biSize))
#define COLORS(PBMIH) ((RGBQUAD *)(((LPBYTE)&((PBMIH)->bmiHeader)) + (PBMIH)->bmiHeader.biSize))
#define BITMASKS(PBMIH) ((DWORD *)(((LPBYTE)&((PBMIH)->bmiHeader)) + (PBMIH)->bmiHeader.biSize))
#define SIZE_EGA_PALETTE (iEGA_COLORS * sizeof(RGBQUAD))
#define SIZE_PALETTE (iPALETTE_COLORS * sizeof(RGBQUAD))
#define SIZE_MASKS (iMASK_COLORS * sizeof(DWORD))
#define SIZE_PREHEADER (FIELD_OFFSET(VIDEOINFOHEADER,bmiHeader))
#define SIZE_VIDEOHEADER (sizeof(BITMAPINFOHEADER) + SIZE_PREHEADER)
#define WIDTHBYTES(BTIS) ((DWORD)(((BTIS)+31) & (~31)) / 8)
#define DIBWIDTHBYTES(BI) (DWORD)(BI).biBitCount) * (DWORD)WIDTHBYTES((DWORD)(BI).biWidth
#define _DIBSIZE(BI) (DIBWIDTHBYTES(BI) * (DWORD)(BI).biHeight)
#define DIBSIZE(BI) ((BI).biHeight < 0 ? (-1)*(_DIBSIZE(BI)) : _DIBSIZE(BI))
#define BIT_MASKS_MATCH(PBMIH1,PBMIH2) \
((PBMIH2)->dwBitMasks[iGREEN] == (PBMIH1)->dwBitMasks[iGREEN]) && \
(((PBMIH2)->dwBitMasks[iRED] == (PBMIH1)->dwBitMasks[iRED]) && \
((PBMIH2)->dwBitMasks[iBLUE] == (PBMIH1)->dwBitMasks[iBLUE]))
#define RESET_MASKS(PBMIH) (ZeroMemory((PVOID)(PBMIH)->dwBitFields,SIZE_MASKS))
#define RESET_HEADER(PBMIH) (ZeroMemory((PVOID)(PBMIH),SIZE_VIDEOHEADER))
#define RESET_PALETTE(PBMIH) (ZeroMemory((PVOID)(PBMIH)->bmiColors,SIZE_PALETTE));
#define PALETTISED(PBMIH) ((PBMIH)->bmiHeader.biBitCount <= iPALETTE)
#define PALETTE_ENTRIES(PBMIH) ((DWORD) 1 << (PBMIH)->bmiHeader.biBitCount)
#define HEADER(pVideoInfo) (&(((VIDEOINFOHEADER *) (pVideoInfo))->bmiHeader))
#define MAX_SIZE_MPEG1_SEQUENCE_INFO 140
#define MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)
#define SIZE_MPEG1VIDEOINFO(pv) (FIELD_OFFSET(MPEG1VIDEOINFO, bSequenceHeader[0]) + \
(pv)->cbSequenceHeader)
#undef INTERFACE
#define INTERFACE IDirectDrawVideo
DECLARE_INTERFACE_(IDirectDrawVideo, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(GetSwitches)(THIS_ DWORD *pSwitches) PURE;
STDMETHOD(SetSwitches)(THIS_ DWORD Switches) PURE;
STDMETHOD(GetCaps)(THIS_ DDCAPS *pCaps) PURE;
STDMETHOD(GetEmulatedCaps)(THIS_ DDCAPS *pCaps) PURE;
STDMETHOD(GetSurfaceDesc)(THIS_ DDSURFACEDESC *pSurfaceDesc) PURE;
STDMETHOD(GetFourCCCodes)(THIS_ DWORD *pCount,DWORD *pCodes) PURE;
STDMETHOD(SetDirectDraw)(THIS_ LPDIRECTDRAW pDirectDraw) PURE;
STDMETHOD(GetDirectDraw)(THIS_ LPDIRECTDRAW *ppDirectDraw) PURE;
STDMETHOD(GetSurfaceType)(THIS_ DWORD *pSurfaceType) PURE;
STDMETHOD(SetDefault)(THIS) PURE;
STDMETHOD(UseScanLine)(THIS_ long UseScanLine) PURE;
STDMETHOD(CanUseScanLine)(THIS_ long *UseScanLine) PURE;
STDMETHOD(UseOverlayStretch)(THIS_ long UseOverlayStretch) PURE;
STDMETHOD(CanUseOverlayStretch)(THIS_ long *UseOverlayStretch) PURE;
STDMETHOD(UseWhenFullScreen)(THIS_ long UseWhenFullScreen) PURE;
STDMETHOD(WillUseFullScreen)(THIS_ long *UseWhenFullScreen) PURE;
};
#undef INTERFACE
#define INTERFACE IFullScreenVideo
DECLARE_INTERFACE_(IFullScreenVideo, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(CountModes)(THIS_ long *pModes) PURE;
STDMETHOD(GetModeInfo)(THIS_ long Mode,long *pWidth,long *pHeight,long *pDepth) PURE;
STDMETHOD(GetCurrentMode)(THIS_ long *pMode) PURE;
STDMETHOD(IsModeAvailable)(THIS_ long Mode) PURE;
STDMETHOD(IsModeEnabled)(THIS_ long Mode) PURE;
STDMETHOD(SetEnabled)(THIS_ long Mode,long bEnabled) PURE;
STDMETHOD(GetClipFactor)(THIS_ long *pClipFactor) PURE;
STDMETHOD(SetClipFactor)(THIS_ long ClipFactor) PURE;
STDMETHOD(SetMessageDrain)(THIS_ HWND hwnd) PURE;
STDMETHOD(GetMessageDrain)(THIS_ HWND *hwnd) PURE;
STDMETHOD(SetMonitor)(THIS_ long Monitor) PURE;
STDMETHOD(GetMonitor)(THIS_ long *Monitor) PURE;
STDMETHOD(HideOnDeactivate)(THIS_ long Hide) PURE;
STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
STDMETHOD(SetCaption)(THIS_ BSTR strCaption) PURE;
STDMETHOD(GetCaption)(THIS_ BSTR *pstrCaption) PURE;
STDMETHOD(SetDefault)(THIS) PURE;
};
#undef INTERFACE
#define INTERFACE IQualProp
DECLARE_INTERFACE_(IQualProp, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(get_FramesDroppedInRenderer)(THIS_ int *pcFrames) PURE;
STDMETHOD(get_FramesDrawn)(THIS_ int *pcFramesDrawn) PURE;
STDMETHOD(get_AvgFrameRate)(THIS_ int *piAvgFrameRate) PURE;
STDMETHOD(get_Jitter)(THIS_ int *iJitter) PURE;
STDMETHOD(get_AvgSyncOffset)(THIS_ int *piAvg) PURE;
STDMETHOD(get_DevSyncOffset)(THIS_ int *piDev) PURE;
};
#undef INTERFACE
#define INTERFACE IBaseVideoMixer
DECLARE_INTERFACE_(IBaseVideoMixer, IUnknown)
{
STDMETHOD(SetLeadPin)(THIS_ int iPin) PURE;
STDMETHOD(GetLeadPin)(THIS_ int *piPin) PURE;
STDMETHOD(GetInputPinCount)(THIS_ int *piPinCount) PURE;
STDMETHOD(IsUsingClock)(THIS_ int *pbValue) PURE;
STDMETHOD(SetUsingClock)(THIS_ int bValue) PURE;
STDMETHOD(GetClockPeriod)(THIS_ int *pbValue) PURE;
STDMETHOD(SetClockPeriod)(THIS_ int bValue) PURE;
};
#undef INTERFACE
#define INTERFACE IFullScreenVideoEx
DECLARE_INTERFACE_(IFullScreenVideoEx, IFullScreenVideo)
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(CountModes)(THIS_ long *pModes) PURE;
STDMETHOD(GetModeInfo)(THIS_ long Mode,long *pWidth,long *pHeight,long *pDepth) PURE;
STDMETHOD(GetCurrentMode)(THIS_ long *pMode) PURE;
STDMETHOD(IsModeAvailable)(THIS_ long Mode) PURE;
STDMETHOD(IsModeEnabled)(THIS_ long Mode) PURE;
STDMETHOD(SetEnabled)(THIS_ long Mode,long bEnabled) PURE;
STDMETHOD(GetClipFactor)(THIS_ long *pClipFactor) PURE;
STDMETHOD(SetClipFactor)(THIS_ long ClipFactor) PURE;
STDMETHOD(SetMessageDrain)(THIS_ HWND hwnd) PURE;
STDMETHOD(GetMessageDrain)(THIS_ HWND *hwnd) PURE;
STDMETHOD(SetMonitor)(THIS_ long Monitor) PURE;
STDMETHOD(GetMonitor)(THIS_ long *Monitor) PURE;
STDMETHOD(HideOnDeactivate)(THIS_ long Hide) PURE;
STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
STDMETHOD(SetCaption)(THIS_ BSTR strCaption) PURE;
STDMETHOD(GetCaption)(THIS_ BSTR *pstrCaption) PURE;
STDMETHOD(SetDefault)(THIS) PURE;
STDMETHOD(SetAcceleratorTable)(THIS_ HWND hwnd,HACCEL hAccel) PURE;
STDMETHOD(GetAcceleratorTable)(THIS_ HWND *phwnd,HACCEL *phAccel) PURE;
STDMETHOD(KeepPixelAspectRatio)(THIS_ long KeepAspect) PURE;
STDMETHOD(IsKeepPixelAspectRatio)(THIS_ long *pKeepAspect) PURE;
};
typedef enum
{
AM_PROPERTY_FRAMESTEP_STEP = 0x01,
AM_PROPERTY_FRAMESTEP_CANCEL = 0x02,
AM_PROPERTY_FRAMESTEP_CANSTEP = 0x03,
AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 0x04
} AM_PROPERTY_FRAMESTEP;
typedef struct _AM_FRAMESTEP_STEP
{
DWORD dwFramesToStep;
} AM_FRAMESTEP_STEP;
#ifdef __cplusplus
}
#endif
#endif

17
include/dxsdk/atsmedia.h Normal file
View file

@ -0,0 +1,17 @@
#if !defined(_BDAMEDIA_)
#error BDAMEDIA.H must be included before ATSCMEDIA.H
#endif
#if !defined(_KSMEDIA_)
#error KSMEDIA.H must be included before BDAMEDIA.H
#endif
#if !defined(_ATSCMEDIA_)
#define _ATSCMEDIA_
#define BDANETWORKTYPE_ATSC DEFINE_GUIDNAMED(BDANETWORKTYPE_ATSC)
#define STATIC_BDANETWORKTYPE_ATSC 0x71985F51, 0x1CA1, 0x11D3, 0x9C, 0xC8, 0x0, 0xC0, 0x4F, 0x79, 0x71, 0xE0
DEFINE_GUIDSTRUCT("71985F51-1CA1-11D3-9CC8-00C04F7971E0", BDANETWORKTYPE_ATSC);
#endif

28
include/dxsdk/audevcod.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef __AUDEVCOD__
#define __AUDEVCOD__
#define EC_SND_DEVICE_ERROR_BASE 0x0200
#define EC_SNDDEV_IN_ERROR (EC_SND_DEVICE_ERROR_BASE + 0x00)
#define EC_SNDDEV_OUT_ERROR (EC_SND_DEVICE_ERROR_BASE + 0x01)
typedef enum _tagSND_DEVICE_ERROR
{
SNDDEV_ERROR_Open=1,
SNDDEV_ERROR_Close=2,
SNDDEV_ERROR_GetCaps=3,
SNDDEV_ERROR_PrepareHeader=4,
SNDDEV_ERROR_UnprepareHeader=5,
SNDDEV_ERROR_Reset=6,
SNDDEV_ERROR_Restart=7,
SNDDEV_ERROR_GetPosition=8,
SNDDEV_ERROR_Write=9,
SNDDEV_ERROR_Pause=10,
SNDDEV_ERROR_Stop=11,
SNDDEV_ERROR_Start=12,
SNDDEV_ERROR_AddBuffer=13,
SNDDEV_ERROR_Query=14,
} SNDDEV_ERR;
#endif

View file

@ -0,0 +1,64 @@
import "unknwn.idl";
import "mmstream.idl";
// hack
cpp_quote("#if 0")
typedef struct tWAVEFORMATEX WAVEFORMATEX;
cpp_quote ("#endif")
interface IAudioMediaStream;
interface IAudioStreamSample;
interface IMemoryData;
interface IAudioData;
[
object,
local,
uuid(f7537560-a3be-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IAudioMediaStream : IMediaStream
{
HRESULT GetFormat([out] WAVEFORMATEX *pWaveFormatCurrent);
HRESULT SetFormat([in] const WAVEFORMATEX *lpWaveFormat);
HRESULT CreateSample([in] IAudioData *pAudioData, [in] DWORD dwFlags, [out] IAudioStreamSample **ppSample);
}
[
object,
local,
uuid(54c719c0-af60-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IAudioData : IMemoryData
{
HRESULT GetFormat([out] WAVEFORMATEX *pWaveFormatCurrent);
HRESULT SetFormat([in] const WAVEFORMATEX *lpWaveFormat);
}
[
object,
local,
uuid(327fc560-af60-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IMemoryData : IUnknown
{
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);
}
[
object,
local,
uuid(345fee00-aba5-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IAudioStreamSample : IStreamSample
{
HRESULT GetAudioData([out] IAudioData **ppAudio);
}

307
include/dxsdk/aviriff.h Normal file
View file

@ -0,0 +1,307 @@
#if !defined AVIRIFF_H
#define AVIRIFF_H
#if !defined NUMELMS
#define NUMELMS(aa) (sizeof(aa)/sizeof((aa)[0]))
#endif
#include <pshpack2.h>
#define FCC(ch4) ((((DWORD)(ch4) & 0xFF) << 24) | (((DWORD)(ch4) & 0xFF00) << 8) | (((DWORD)(ch4) & 0xFF0000) >> 8) | (((DWORD)(ch4) & 0xFF000000) >> 24))
#define RIFFROUND(cb) ((cb) + ((cb)&1))
#define RIFFNEXT(pChunk) (LPRIFFCHUNK)((LPBYTE)(pChunk) + sizeof(RIFFCHUNK) + RIFFROUND(((LPRIFFCHUNK)pChunk)->cb))
#define TIMECODE_RATE_30DROP 0
#define TIMECODE_SMPTE_BINARY_GROUP 0x07
#define TIMECODE_SMPTE_COLOR_FRAME 0x08
#define AVI_INDEX_OF_INDEXES 0x00
#define AVI_INDEX_OF_CHUNKS 0x01
#define AVI_INDEX_OF_TIMED_CHUNKS 0x02
#define AVI_INDEX_OF_SUB_2FIELD 0x03
#define AVI_INDEX_IS_DATA 0x80
#define AVI_INDEX_SUB_DEFAULT 0x00
#define AVI_INDEX_SUB_2FIELD 0x01
#define STDINDEXSIZE 0x4000
#define NUMINDEX(wLongsPerEntry) ((STDINDEXSIZE-32)/4/(wLongsPerEntry))
#define NUMINDEXFILL(wLongsPerEntry) ((STDINDEXSIZE/4) - NUMINDEX(wLongsPerEntry))
#define Valid_SUPERINDEX(pi) (*(DWORD *)(&((pi)->wLongsPerEntry)) == (4 | (AVI_INDEX_OF_INDEXES << 24)))
#define AVISTDINDEX_DELTAFRAME ( 0x80000000)
#define AVISTDINDEX_SIZEMASK (~0x80000000)
#ifndef ckidSTREAMHEADER
#define ckidSTREAMHEADER FCC('strh')
#endif
#ifndef ckidSTREAMFORMAT
#define ckidSTREAMFORMAT FCC('strf')
#endif
#define ckidMAINAVIHEADER FCC('avih')
#define ckidODML FCC('odml')
#define ckidAVIEXTHEADER FCC('dmlh')
#define ckidSTREAMLIST FCC('strl')
#define ckidAVIOLDINDEX FCC('idx1')
#define ckidAVISUPERINDEX FCC('indx')
#ifndef TIMECODE_DEFINED
#define TIMECODE_DEFINED
typedef union _timecode
{
struct
{
WORD wFrameRate;
WORD wFrameFract;
LONG cFrames;
};
DWORDLONG qw;
} TIMECODE;
#endif
typedef struct _riffchunk
{
FOURCC fcc;
DWORD cb;
} RIFFCHUNK, *LPRIFFCHUNK;
typedef struct _rifflist
{
FOURCC fcc;
DWORD cb;
FOURCC fccListType;
} RIFFLIST, *LPRIFFLIST;
typedef struct _avimainheader
{
FOURCC fcc;
DWORD cb;
DWORD dwMicroSecPerFrame;
DWORD dwMaxBytesPerSec;
DWORD dwPaddingGranularity;
DWORD dwFlags;
#define AVIF_HASINDEX 0x00000010
#define AVIF_MUSTUSEINDEX 0x00000020
#define AVIF_ISINTERLEAVED 0x00000100
#define AVIF_TRUSTCKTYPE 0x00000800
#define AVIF_WASCAPTUREFILE 0x00010000
#define AVIF_COPYRIGHTED 0x00020000
DWORD dwTotalFrames;
DWORD dwInitialFrames;
DWORD dwStreams;
DWORD dwSuggestedBufferSize;
DWORD dwWidth;
DWORD dwHeight;
DWORD dwReserved[4];
} AVIMAINHEADER;
typedef struct _aviextheader
{
FOURCC fcc;
DWORD cb;
DWORD dwGrandFrames;
DWORD dwFuture[61];
} AVIEXTHEADER;
typedef struct _avistreamheader
{
FOURCC fcc;
DWORD cb;
FOURCC fccType;
#ifndef streamtypeVIDEO
#define streamtypeVIDEO FCC('vids')
#define streamtypeAUDIO FCC('auds')
#define streamtypeMIDI FCC('mids')
#define streamtypeTEXT FCC('txts')
#endif
FOURCC fccHandler;
DWORD dwFlags;
#define AVISF_DISABLED 0x00000001
#define AVISF_VIDEO_PALCHANGES 0x00010000
WORD wPriority;
WORD wLanguage;
DWORD dwInitialFrames;
DWORD dwScale;
DWORD dwRate;
DWORD dwStart;
DWORD dwLength;
DWORD dwSuggestedBufferSize;
DWORD dwQuality;
DWORD dwSampleSize;
struct
{
short int left;
short int top;
short int right;
short int bottom;
} rcFrame;
} AVISTREAMHEADER;
#pragma warning(disable:4200)
typedef struct _avioldindex
{
FOURCC fcc;
DWORD cb;
struct _avioldindex_entry
{
DWORD dwChunkId;
DWORD dwFlags;
#ifndef AVIIF_LIST
#define AVIIF_LIST 0x00000001
#define AVIIF_KEYFRAME 0x00000010
#endif
#define AVIIF_NO_TIME 0x00000100
#define AVIIF_COMPRESSOR 0x0FFF0000
DWORD dwOffset;
DWORD dwSize;
} aIndex[];
} AVIOLDINDEX;
typedef struct _timecodedata
{
TIMECODE time;
DWORD dwSMPTEflags;
DWORD dwUser;
} TIMECODEDATA;
typedef struct _avimetaindex
{
FOURCC fcc;
UINT cb;
WORD wLongsPerEntry;
BYTE bIndexSubType;
BYTE bIndexType;
DWORD nEntriesInUse;
DWORD dwChunkId;
DWORD dwReserved[3];
DWORD adwIndex[];
} AVIMETAINDEX;
typedef struct _avisuperindex
{
FOURCC fcc;
UINT cb;
WORD wLongsPerEntry;
BYTE bIndexSubType;
BYTE bIndexType;
DWORD nEntriesInUse;
DWORD dwChunkId;
DWORD dwReserved[3];
struct _avisuperindex_entry
{
DWORDLONG qwOffset;
DWORD dwSize;
DWORD dwDuration;
} aIndex[NUMINDEX(4)];
} AVISUPERINDEX;
typedef struct _avistdindex_entry
{
DWORD dwOffset;
DWORD dwSize;
} AVISTDINDEX_ENTRY;
typedef struct _avistdindex
{
FOURCC fcc;
UINT cb;
WORD wLongsPerEntry;
BYTE bIndexSubType;
BYTE bIndexType;
DWORD nEntriesInUse;
DWORD dwChunkId;
DWORDLONG qwBaseOffset;
DWORD dwReserved_3;
AVISTDINDEX_ENTRY aIndex[NUMINDEX(2)];
} AVISTDINDEX;
typedef struct _avitimedindex_entry
{
DWORD dwOffset;
DWORD dwSize;
DWORD dwDuration;
} AVITIMEDINDEX_ENTRY;
typedef struct _avitimedindex
{
FOURCC fcc;
UINT cb;
WORD wLongsPerEntry;
BYTE bIndexSubType;
BYTE bIndexType;
DWORD nEntriesInUse;
DWORD dwChunkId;
DWORDLONG qwBaseOffset;
DWORD dwReserved_3;
AVITIMEDINDEX_ENTRY aIndex[NUMINDEX(3)];
DWORD adwTrailingFill[NUMINDEXFILL(3)];
} AVITIMEDINDEX;
typedef struct _avitimecodeindex
{
FOURCC fcc;
UINT cb;
WORD wLongsPerEntry;
BYTE bIndexSubType;
BYTE bIndexType;
DWORD nEntriesInUse;
DWORD dwChunkId;
DWORD dwReserved[3];
TIMECODEDATA aIndex[NUMINDEX(sizeof(TIMECODEDATA)/sizeof(LONG))];
} AVITIMECODEINDEX;
typedef struct _avitcdlindex_entry
{
DWORD dwTick;
TIMECODE time;
DWORD dwSMPTEflags;
DWORD dwUser;
TCHAR szReelId[12];
} AVITCDLINDEX_ENTRY;
typedef struct _avitcdlindex
{
FOURCC fcc;
UINT cb;
WORD wLongsPerEntry;
BYTE bIndexSubType;
BYTE bIndexType;
DWORD nEntriesInUse;
DWORD dwChunkId;
DWORD dwReserved[3];
AVITCDLINDEX_ENTRY aIndex[NUMINDEX(7)];
DWORD adwTrailingFill[NUMINDEXFILL(7)];
} AVITCDLINDEX;
typedef struct _avifieldindex_chunk
{
FOURCC fcc;
DWORD cb;
WORD wLongsPerEntry;
BYTE bIndexSubType;
BYTE bIndexType;
DWORD nEntriesInUse;
DWORD dwChunkId;
DWORDLONG qwBaseOffset;
DWORD dwReserved3;
struct _avifieldindex_entry
{
DWORD dwOffset;
DWORD dwSize;
DWORD dwOffsetField2;
} aIndex[];
} AVIFIELDINDEX, *PAVIFIELDINDEX;
#include <poppack.h>
#endif

379
include/dxsdk/bdatypes.h Normal file
View file

@ -0,0 +1,379 @@
#ifndef _BDATYPES_
#define _BDATYPES_ 1
#define MIN_DIMENSION 1
#ifdef __midl
#define V1_ENUM [v1_enum]
#else
#define V1_ENUM
#endif
#define BDA_FREQUENCY_NOT_SET -1
#define BDA_FREQUENCY_NOT_DEFINED 0
#define BDA_RANGE_NOT_SET -1
#define BDA_RANGE_NOT_DEFINED 0
#define BDA_CHAN_BANDWITH_NOT_SET -1
#define BDA_CHAN_BANDWITH_NOT_DEFINED 0
#define BDA_FREQUENCY_MULTIPLIER_NOT_SET -1
#define BDA_FREQUENCY_MULTIPLIER_NOT_DEFINED 0
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;
typedef struct tagKS_BDA_FRAME_INFO
{
ULONG ExtendedHeaderSize;
DWORD dwFrameFlags;
ULONG ulEvent;
ULONG ulChannelNumber;
ULONG ulSubchannelNumber;
ULONG ulReason;
} KS_BDA_FRAME_INFO, *PKS_BDA_FRAME_INFO;
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;
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;
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;
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;
typedef enum
{
BDA_CHANGES_COMPLETE = 0,
BDA_CHANGES_PENDING
} BDA_CHANGE_STATE, * PBDA_CHANGE_STATE;
typedef enum
{
BDA_SIGNAL_UNAVAILABLE = 0,
BDA_SIGNAL_INACTIVE,
BDA_SIGNAL_ACTIVE
} BDA_SIGNAL_STATE, * PBDA_SIGNAL_STATE;
typedef struct _BDANODE_DESCRIPTOR
{
ULONG ulBdaNodeType;
GUID guidFunction;
GUID guidName;
} BDANODE_DESCRIPTOR, *PBDANODE_DESCRIPTOR;
typedef enum
{
MEDIA_TRANSPORT_PACKET,
MEDIA_ELEMENTARY_STREAM,
MEDIA_MPEG2_PSI,
MEDIA_TRANSPORT_PAYLOAD
} MEDIA_SAMPLE_CONTENT ;
typedef struct _BDA_TABLE_SECTION
{
ULONG ulPrimarySectionId;
ULONG ulSecondarySectionId;
ULONG ulcbSectionLength;
ULONG argbSectionData[MIN_DIMENSION];
} BDA_TABLE_SECTION, *PBDA_TABLE_SECTION;
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;
typedef enum DVBSystemType
{
DVB_Cable,
DVB_Terrestrial,
DVB_Satellite,
} DVBSystemType;
typedef struct _BDA_CA_MODULE_UI
{
ULONG ulFormat;
ULONG ulbcDesc;
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;
V1_ENUM enum
{
BDA_UNDEFINED_CHANNEL = -1,
};
typedef V1_ENUM enum ComponentCategory
{
CategoryNotSet = -1,
CategoryOther = 0,
CategoryVideo,
CategoryAudio,
CategoryText,
CategoryData,
} ComponentCategory;
typedef enum ComponentStatus
{
StatusActive,
StatusInactive,
StatusUnavailable,
} ComponentStatus;
typedef enum ATSCComponentTypeFlags
{
ATSCCT_AC3 = 0x00000001,
} ATSCComponentTypeFlags;
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;
typedef struct _MPEG2_TRANSPORT_STRIDE
{
DWORD dwOffset ;
DWORD dwPacketLength ;
DWORD dwStride ;
} MPEG2_TRANSPORT_STRIDE, *PMPEG2_TRANSPORT_STRIDE ;
typedef V1_ENUM enum BinaryConvolutionCodeRate
{
BDA_BCC_RATE_NOT_SET = -1,
BDA_BCC_RATE_NOT_DEFINED = 0,
BDA_BCC_RATE_1_2 = 1,
BDA_BCC_RATE_2_3,
BDA_BCC_RATE_3_4,
BDA_BCC_RATE_3_5,
BDA_BCC_RATE_4_5,
BDA_BCC_RATE_5_6,
BDA_BCC_RATE_5_11,
BDA_BCC_RATE_7_8,
BDA_BCC_RATE_MAX,
} BinaryConvolutionCodeRate;
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 FECMethod
{
BDA_FEC_METHOD_NOT_SET = -1,
BDA_FEC_METHOD_NOT_DEFINED = 0,
BDA_FEC_VITERBI = 1,
BDA_FEC_RS_204_188,
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,
BDA_MOD_ANALOG_FREQUENCY,
BDA_MOD_MAX,
} ModulationType;
typedef V1_ENUM enum TransmissionMode
{
BDA_XMIT_MODE_NOT_SET = -1,
BDA_XMIT_MODE_NOT_DEFINED = 0,
BDA_XMIT_MODE_2K = 1,
BDA_XMIT_MODE_8K,
BDA_XMIT_MODE_MAX,
} TransmissionMode;
typedef V1_ENUM enum Polarisation
{
BDA_POLARISATION_NOT_SET = -1,
BDA_POLARISATION_NOT_DEFINED = 0,
BDA_POLARISATION_LINEAR_H = 1,
BDA_POLARISATION_LINEAR_V,
BDA_POLARISATION_CIRCULAR_L,
BDA_POLARISATION_CIRCULAR_R,
BDA_POLARISATION_MAX,
} Polarisation;
typedef V1_ENUM enum GuardInterval
{
BDA_GUARD_NOT_SET = -1,
BDA_GUARD_NOT_DEFINED = 0,
BDA_GUARD_1_32 = 1,
BDA_GUARD_1_16,
BDA_GUARD_1_8,
BDA_GUARD_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,
BDA_HALPHA_2,
BDA_HALPHA_4,
BDA_HALPHA_MAX,
} HierarchyAlpha;
#endif

15
include/dxsdk/comlite.h Normal file
View file

@ -0,0 +1,15 @@
#ifndef _INC_COMLITE_
#define _INC_COMLITE_
#define QzCLSIDFromString CLSIDFromString
#define QzCreateFilterObject CoCreateInstance
#define QzFreeUnusedLibraries CoFreeUnusedLibraries
#define QzGetMalloc CoGetMalloc
#define QzInitialize CoInitialize
#define QzTaskMemAlloc CoTaskMemAlloc
#define QzTaskMemRealloc CoTaskMemRealloc
#define QzTaskMemFree CoTaskMemFree
#define QzUninitialize CoUninitialize
#define QzStringFromGUID2 StringFromGUID2
#endif

250
include/dxsdk/d3d8caps.h Normal file
View file

@ -0,0 +1,250 @@
#ifndef _D3D8CAPS_H
#define _D3D8CAPS_H
#ifndef DIRECT3D_VERSION
#define DIRECT3D_VERSION 0x0800
#endif
#if(DIRECT3D_VERSION >= 0x0800)
#if defined(_X86_) || defined(_IA64_)
#pragma pack(4)
#endif
#define D3DCAPS_READ_SCANLINE 0x00020000
#define D3DCAPS2_NO2DDURING3DSCENE 0x00000002
#define D3DCAPS2_FULLSCREENGAMMA 0x00020000
#define D3DCAPS2_CANRENDERWINDOWED 0x00080000
#define D3DCAPS2_CANCALIBRATEGAMMA 0x00100000
#define D3DCAPS2_RESERVED 0x02000000
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000
#define D3DCAPS2_DYNAMICTEXTURES 0x20000000
#define D3DCAPS3_RESERVED 0x8000001F
#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020
#define D3DPRESENT_INTERVAL_DEFAULT 0x00000000
#define D3DPRESENT_INTERVAL_ONE 0x00000001
#define D3DPRESENT_INTERVAL_TWO 0x00000002
#define D3DPRESENT_INTERVAL_THREE 0x00000004
#define D3DPRESENT_INTERVAL_FOUR 0x00000008
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000
#define D3DCURSORCAPS_COLOR 0x00000001
#define D3DCURSORCAPS_LOWRES 0x00000002
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x00002000
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000
#define D3DDEVCAPS_HWRASTERIZATION 0x00080000
#define D3DDEVCAPS_PUREDEVICE 0x00100000
#define D3DDEVCAPS_QUINTICRTPATCHES 0x00200000
#define D3DDEVCAPS_RTPATCHES 0x00400000
#define D3DDEVCAPS_RTPATCHHANDLEZERO 0x00800000
#define D3DDEVCAPS_NPATCHES 0x01000000
#define D3DPMISCCAPS_MASKZ 0x00000002
#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004
#define D3DPMISCCAPS_CULLNONE 0x00000010
#define D3DPMISCCAPS_CULLCW 0x00000020
#define D3DPMISCCAPS_CULLCCW 0x00000040
#define D3DPMISCCAPS_COLORWRITEENABLE 0x00000080
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x00000100
#define D3DPMISCCAPS_CLIPTLVERTS 0x00000200
#define D3DPMISCCAPS_TSSARGTEMP 0x00000400
#define D3DPMISCCAPS_BLENDOP 0x00000800
#define D3DPMISCCAPS_NULLREFERENCE 0x00001000
#define D3DLINECAPS_TEXTURE 0x00000001
#define D3DLINECAPS_ZTEST 0x00000002
#define D3DLINECAPS_BLEND 0x00000004
#define D3DLINECAPS_ALPHACMP 0x00000008
#define D3DLINECAPS_FOG 0x00000010
#define D3DPRASTERCAPS_DITHER 0x00000001
#define D3DPRASTERCAPS_PAT 0x00000008
#define D3DPRASTERCAPS_ZTEST 0x00000010
#define D3DPRASTERCAPS_FOGVERTEX 0x00000080
#define D3DPRASTERCAPS_FOGTABLE 0x00000100
#define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000
#define D3DPRASTERCAPS_ZBIAS 0x00004000
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000
#define D3DPRASTERCAPS_FOGRANGE 0x00010000
#define D3DPRASTERCAPS_ANISOTROPY 0x00020000
#define D3DPRASTERCAPS_WBUFFER 0x00040000
#define D3DPRASTERCAPS_WFOG 0x00100000
#define D3DPRASTERCAPS_ZFOG 0x00200000
#define D3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000
#define D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE 0x00800000
#define D3DPCMPCAPS_NEVER 0x00000001
#define D3DPCMPCAPS_LESS 0x00000002
#define D3DPCMPCAPS_EQUAL 0x00000004
#define D3DPCMPCAPS_LESSEQUAL 0x00000008
#define D3DPCMPCAPS_GREATER 0x00000010
#define D3DPCMPCAPS_NOTEQUAL 0x00000020
#define D3DPCMPCAPS_GREATEREQUAL 0x00000040
#define D3DPCMPCAPS_ALWAYS 0x00000080
#define D3DPBLENDCAPS_ZERO 0x00000001
#define D3DPBLENDCAPS_ONE 0x00000002
#define D3DPBLENDCAPS_SRCCOLOR 0x00000004
#define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008
#define D3DPBLENDCAPS_SRCALPHA 0x00000010
#define D3DPBLENDCAPS_INVSRCALPHA 0x00000020
#define D3DPBLENDCAPS_DESTALPHA 0x00000040
#define D3DPBLENDCAPS_INVDESTALPHA 0x00000080
#define D3DPBLENDCAPS_DESTCOLOR 0x00000100
#define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200
#define D3DPBLENDCAPS_SRCALPHASAT 0x00000400
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00000008
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000
#define D3DPSHADECAPS_FOGGOURAUD 0x00080000
#define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001
#define D3DPTEXTURECAPS_POW2 0x00000002
#define D3DPTEXTURECAPS_ALPHA 0x00000004
#define D3DPTEXTURECAPS_SQUAREONLY 0x00000020
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100
#define D3DPTEXTURECAPS_PROJECTED 0x00000400
#define D3DPTEXTURECAPS_CUBEMAP 0x00000800
#define D3DPTEXTURECAPS_VOLUMEMAP 0x00002000
#define D3DPTEXTURECAPS_MIPMAP 0x00004000
#define D3DPTEXTURECAPS_MIPVOLUMEMAP 0x00008000
#define D3DPTEXTURECAPS_MIPCUBEMAP 0x00010000
#define D3DPTEXTURECAPS_CUBEMAP_POW2 0x00020000
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2 0x00040000
#define D3DPTFILTERCAPS_MINFPOINT 0x00000100
#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400
#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000
#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000
#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000
#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000
#define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000
#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000
#define D3DPTADDRESSCAPS_WRAP 0x00000001
#define D3DPTADDRESSCAPS_MIRROR 0x00000002
#define D3DPTADDRESSCAPS_CLAMP 0x00000004
#define D3DPTADDRESSCAPS_BORDER 0x00000008
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010
#define D3DPTADDRESSCAPS_MIRRORONCE 0x00000020
#define D3DSTENCILCAPS_KEEP 0x00000001
#define D3DSTENCILCAPS_ZERO 0x00000002
#define D3DSTENCILCAPS_REPLACE 0x00000004
#define D3DSTENCILCAPS_INCRSAT 0x00000008
#define D3DSTENCILCAPS_DECRSAT 0x00000010
#define D3DSTENCILCAPS_INVERT 0x00000020
#define D3DSTENCILCAPS_INCR 0x00000040
#define D3DSTENCILCAPS_DECR 0x00000080
#define D3DTEXOPCAPS_DISABLE 0x00000001
#define D3DTEXOPCAPS_SELECTARG1 0x00000002
#define D3DTEXOPCAPS_SELECTARG2 0x00000004
#define D3DTEXOPCAPS_MODULATE 0x00000008
#define D3DTEXOPCAPS_MODULATE2X 0x00000010
#define D3DTEXOPCAPS_MODULATE4X 0x00000020
#define D3DTEXOPCAPS_ADD 0x00000040
#define D3DTEXOPCAPS_ADDSIGNED 0x00000080
#define D3DTEXOPCAPS_ADDSIGNED2X 0x00000100
#define D3DTEXOPCAPS_SUBTRACT 0x00000200
#define D3DTEXOPCAPS_ADDSMOOTH 0x00000400
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000
#define D3DTEXOPCAPS_PREMODULATE 0x00010000
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000
#define D3DTEXOPCAPS_BUMPENVMAP 0x00200000
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000
#define D3DTEXOPCAPS_DOTPRODUCT3 0x00800000
#define D3DTEXOPCAPS_MULTIPLYADD 0x01000000
#define D3DTEXOPCAPS_LERP 0x02000000
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000FFFF
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000
#define D3DFVFCAPS_PSIZE 0x00100000
#define D3DVTXPCAPS_TEXGEN 0x00000001
#define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010
#define D3DVTXPCAPS_LOCALVIEWER 0x00000020
#define D3DVTXPCAPS_TWEENING 0x00000040
#define D3DVTXPCAPS_NO_VSDT_UBYTE4 0x00000080
typedef struct _D3DCAPS8
{
D3DDEVTYPE DeviceType;
UINT AdapterOrdinal;
DWORD Caps;
DWORD Caps2;
DWORD Caps3;
DWORD PresentationIntervals;
DWORD CursorCaps;
DWORD DevCaps;
DWORD PrimitiveMiscCaps;
DWORD RasterCaps;
DWORD ZCmpCaps;
DWORD SrcBlendCaps;
DWORD DestBlendCaps;
DWORD AlphaCmpCaps;
DWORD ShadeCaps;
DWORD TextureCaps;
DWORD TextureFilterCaps;
DWORD CubeTextureFilterCaps;
DWORD VolumeTextureFilterCaps;
DWORD TextureAddressCaps;
DWORD VolumeTextureAddressCaps;
DWORD LineCaps;
DWORD MaxTextureWidth;
DWORD MaxTextureHeight;
DWORD MaxVolumeExtent;
DWORD MaxTextureRepeat;
DWORD MaxTextureAspectRatio;
DWORD MaxAnisotropy;
float MaxVertexW;
float GuardBandLeft;
float GuardBandTop;
float GuardBandRight;
float GuardBandBottom;
float ExtentsAdjust;
DWORD StencilCaps;
DWORD FVFCaps;
DWORD TextureOpCaps;
DWORD MaxTextureBlendStages;
DWORD MaxSimultaneousTextures;
DWORD VertexProcessingCaps;
DWORD MaxActiveLights;
DWORD MaxUserClipPlanes;
DWORD MaxVertexBlendMatrices;
DWORD MaxVertexBlendMatrixIndex;
float MaxPointSize;
DWORD MaxPrimitiveCount;
DWORD MaxVertexIndex;
DWORD MaxStreams;
DWORD MaxStreamStride;
DWORD VertexShaderVersion;
DWORD MaxVertexShaderConst;
DWORD PixelShaderVersion;
float MaxPixelShaderValue;
} D3DCAPS8;
#pragma pack()
#endif
#endif

339
include/dxsdk/d3d9caps.h Normal file
View file

@ -0,0 +1,339 @@
#ifndef _d3d9CAPS_H
#define _d3d9CAPS_H
#ifndef DIRECT3D_VERSION
#define DIRECT3D_VERSION 0x0900
#endif //DIRECT3D_VERSION
// include this file content only if compiling for DX9 interfaces
#if(DIRECT3D_VERSION >= 0x0900)
#if defined(_X86_) || defined(_IA64)
#pragma pack(4)
#endif
#define D3DCAPS_READ_SCANLINE 0x00020000
#define D3DCAPS2_FULLSCREENGAMMA 0x00020000
#define D3DCAPS2_CANCALIBRATEGAMMA 0x00100000
#define D3DCAPS2_RESERVED 0x02000000
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000
#define D3DCAPS2_DYNAMICTEXTURES 0x20000000
#define D3DCAPS2_CANAUTOGENMIPMAP 0x40000000
#define D3DCAPS3_RESERVED 0x8000001F
#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020
#define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION 0x00000080
#define D3DCAPS3_COPY_TO_VIDMEM 0x00000100
#define D3DCAPS3_COPY_TO_SYSTEMMEM 0x00000200
#define D3DPRESENT_INTERVAL_DEFAULT 0x00000000
#define D3DPRESENT_INTERVAL_ONE 0x00000001
#define D3DPRESENT_INTERVAL_TWO 0x00000002
#define D3DPRESENT_INTERVAL_THREE 0x00000004
#define D3DPRESENT_INTERVAL_FOUR 0x00000008
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000
#define D3DCURSORCAPS_COLOR 0x00000001
#define D3DCURSORCAPS_LOWRES 0x00000002
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x00002000
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000
#define D3DDEVCAPS_HWRASTERIZATION 0x00080000
#define D3DDEVCAPS_PUREDEVICE 0x00100000
#define D3DDEVCAPS_QUINTICRTPATCHES 0x00200000
#define D3DDEVCAPS_RTPATCHES 0x00400000
#define D3DDEVCAPS_RTPATCHHANDLEZERO 0x00800000
#define D3DDEVCAPS_NPATCHES 0x01000000
#define D3DPMISCCAPS_MASKZ 0x00000002
#define D3DPMISCCAPS_CULLNONE 0x00000010
#define D3DPMISCCAPS_CULLCW 0x00000020
#define D3DPMISCCAPS_CULLCCW 0x00000040
#define D3DPMISCCAPS_COLORWRITEENABLE 0x00000080
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x00000100
#define D3DPMISCCAPS_CLIPTLVERTS 0x00000200
#define D3DPMISCCAPS_TSSARGTEMP 0x00000400
#define D3DPMISCCAPS_BLENDOP 0x00000800
#define D3DPMISCCAPS_NULLREFERENCE 0x00001000
#define D3DPMISCCAPS_INDEPENDENTWRITEMASKS 0x00004000
#define D3DPMISCCAPS_PERSTAGECONSTANT 0x00008000
#define D3DPMISCCAPS_FOGANDSPECULARALPHA 0x00010000
#define D3DPMISCCAPS_SEPARATEALPHABLEND 0x00020000
#define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS 0x00040000
#define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x00080000
#define D3DPMISCCAPS_FOGVERTEXCLAMPED 0x00100000
#define D3DLINECAPS_TEXTURE 0x00000001
#define D3DLINECAPS_ZTEST 0x00000002
#define D3DLINECAPS_BLEND 0x00000004
#define D3DLINECAPS_ALPHACMP 0x00000008
#define D3DLINECAPS_FOG 0x00000010
#define D3DLINECAPS_ANTIALIAS 0x00000020
#define D3DPRASTERCAPS_DITHER 0x00000001
#define D3DPRASTERCAPS_ZTEST 0x00000010
#define D3DPRASTERCAPS_FOGVERTEX 0x00000080
#define D3DPRASTERCAPS_FOGTABLE 0x00000100
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000
#define D3DPRASTERCAPS_FOGRANGE 0x00010000
#define D3DPRASTERCAPS_ANISOTROPY 0x00020000
#define D3DPRASTERCAPS_WBUFFER 0x00040000
#define D3DPRASTERCAPS_WFOG 0x00100000
#define D3DPRASTERCAPS_ZFOG 0x00200000
#define D3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000
#define D3DPRASTERCAPS_SCISSORTEST 0x01000000
#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS 0x02000000
#define D3DPRASTERCAPS_DEPTHBIAS 0x04000000
#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE 0x08000000
#define D3DPCMPCAPS_NEVER 0x00000001
#define D3DPCMPCAPS_LESS 0x00000002
#define D3DPCMPCAPS_EQUAL 0x00000004
#define D3DPCMPCAPS_LESSEQUAL 0x00000008
#define D3DPCMPCAPS_GREATER 0x00000010
#define D3DPCMPCAPS_NOTEQUAL 0x00000020
#define D3DPCMPCAPS_GREATEREQUAL 0x00000040
#define D3DPCMPCAPS_ALWAYS 0x00000080
#define D3DPBLENDCAPS_ZERO 0x00000001
#define D3DPBLENDCAPS_ONE 0x00000002
#define D3DPBLENDCAPS_SRCCOLOR 0x00000004
#define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008
#define D3DPBLENDCAPS_SRCALPHA 0x00000010
#define D3DPBLENDCAPS_INVSRCALPHA 0x00000020
#define D3DPBLENDCAPS_DESTALPHA 0x00000040
#define D3DPBLENDCAPS_INVDESTALPHA 0x00000080
#define D3DPBLENDCAPS_DESTCOLOR 0x00000100
#define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200
#define D3DPBLENDCAPS_SRCALPHASAT 0x00000400
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
#define D3DPBLENDCAPS_BLENDFACTOR 0x00002000
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00000008
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000
#define D3DPSHADECAPS_FOGGOURAUD 0x00080000
#define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001
#define D3DPTEXTURECAPS_POW2 0x00000002
#define D3DPTEXTURECAPS_ALPHA 0x00000004
#define D3DPTEXTURECAPS_SQUAREONLY 0x00000020
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100
#define D3DPTEXTURECAPS_PROJECTED 0x00000400
#define D3DPTEXTURECAPS_CUBEMAP 0x00000800
#define D3DPTEXTURECAPS_VOLUMEMAP 0x00002000
#define D3DPTEXTURECAPS_MIPMAP 0x00004000
#define D3DPTEXTURECAPS_MIPVOLUMEMAP 0x00008000
#define D3DPTEXTURECAPS_MIPCUBEMAP 0x00010000
#define D3DPTEXTURECAPS_CUBEMAP_POW2 0x00020000
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2 0x00040000
#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV 0x00200000
#define D3DPTFILTERCAPS_MINFPOINT 0x00000100
#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400
#define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD 0x00000800
#define D3DPTFILTERCAPS_MINFGAUSSIANQUAD 0x00001000
#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000
#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000
#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000
#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000
#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD 0x08000000
#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD 0x10000000
#define D3DPTADDRESSCAPS_WRAP 0x00000001
#define D3DPTADDRESSCAPS_MIRROR 0x00000002
#define D3DPTADDRESSCAPS_CLAMP 0x00000004
#define D3DPTADDRESSCAPS_BORDER 0x00000008
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010
#define D3DPTADDRESSCAPS_MIRRORONCE 0x00000020
#define D3DSTENCILCAPS_KEEP 0x00000001
#define D3DSTENCILCAPS_ZERO 0x00000002
#define D3DSTENCILCAPS_REPLACE 0x00000004
#define D3DSTENCILCAPS_INCRSAT 0x00000008
#define D3DSTENCILCAPS_DECRSAT 0x00000010
#define D3DSTENCILCAPS_INVERT 0x00000020
#define D3DSTENCILCAPS_INCR 0x00000040
#define D3DSTENCILCAPS_DECR 0x00000080
#define D3DSTENCILCAPS_TWOSIDED 0x00000100
#define D3DTEXOPCAPS_DISABLE 0x00000001
#define D3DTEXOPCAPS_SELECTARG1 0x00000002
#define D3DTEXOPCAPS_SELECTARG2 0x00000004
#define D3DTEXOPCAPS_MODULATE 0x00000008
#define D3DTEXOPCAPS_MODULATE2X 0x00000010
#define D3DTEXOPCAPS_MODULATE4X 0x00000020
#define D3DTEXOPCAPS_ADD 0x00000040
#define D3DTEXOPCAPS_ADDSIGNED 0x00000080
#define D3DTEXOPCAPS_ADDSIGNED2X 0x00000100
#define D3DTEXOPCAPS_SUBTRACT 0x00000200
#define D3DTEXOPCAPS_ADDSMOOTH 0x00000400
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000
#define D3DTEXOPCAPS_PREMODULATE 0x00010000
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000
#define D3DTEXOPCAPS_BUMPENVMAP 0x00200000
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000
#define D3DTEXOPCAPS_DOTPRODUCT3 0x00800000
#define D3DTEXOPCAPS_MULTIPLYADD 0x01000000
#define D3DTEXOPCAPS_LERP 0x02000000
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000FFFF
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000
#define D3DFVFCAPS_PSIZE 0x00100000
#define D3DVTXPCAPS_TEXGEN 0x00000001
#define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010
#define D3DVTXPCAPS_LOCALVIEWER 0x00000020
#define D3DVTXPCAPS_TWEENING 0x00000040
#define D3DVTXPCAPS_TEXGEN_SPHEREMAP 0x00000100
#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER 0x00000200
#define D3DDEVCAPS2_STREAMOFFSET 0x00000001
#define D3DDEVCAPS2_DMAPNPATCH 0x00000002
#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH 0x00000004
#define D3DDEVCAPS2_ADAPTIVETESSNPATCH 0x00000008
#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES 0x00000010
#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH 0x00000020
#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET 0x00000040
#define D3DDTCAPS_UBYTE4 0x00000001
#define D3DDTCAPS_UBYTE4N 0x00000002
#define D3DDTCAPS_SHORT2N 0x00000004
#define D3DDTCAPS_SHORT4N 0x00000008
#define D3DDTCAPS_USHORT2N 0x00000010
#define D3DDTCAPS_USHORT4N 0x00000020
#define D3DDTCAPS_UDEC3 0x00000040
#define D3DDTCAPS_DEC3N 0x00000080
#define D3DDTCAPS_FLOAT16_2 0x00000100
#define D3DDTCAPS_FLOAT16_4 0x00000200
#define D3DVS20CAPS_PREDICATION (1<<0)
#define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
#define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
#define D3DVS20_MAX_NUMTEMPS 32
#define D3DVS20_MIN_NUMTEMPS 12
#define D3DVS20_MAX_STATICFLOWCONTROLDEPTH 4
#define D3DVS20_MIN_STATICFLOWCONTROLDEPTH 1
#define D3DPS20CAPS_ARBITRARYSWIZZLE (1<<0)
#define D3DPS20CAPS_GRADIENTINSTRUCTIONS (1<<1)
#define D3DPS20CAPS_PREDICATION (1<<2)
#define D3DPS20CAPS_NODEPENDENTREADLIMIT (1<<3)
#define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT (1<<4)
#define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
#define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
#define D3DPS20_MAX_NUMTEMPS 32
#define D3DPS20_MIN_NUMTEMPS 12
#define D3DPS20_MAX_STATICFLOWCONTROLDEPTH 4
#define D3DPS20_MIN_STATICFLOWCONTROLDEPTH 0
#define D3DPS20_MAX_NUMINSTRUCTIONSLOTS 512
#define D3DPS20_MIN_NUMINSTRUCTIONSLOTS 96
#define D3DMIN30SHADERINSTRUCTIONS 512
#define D3DMAX30SHADERINSTRUCTIONS 32768
typedef struct _D3DVSHADERCAPS2_0
{
DWORD Caps;
INT DynamicFlowControlDepth;
INT NumTemps;
INT StaticFlowControlDepth;
} D3DVSHADERCAPS2_0;
typedef struct _D3DPSHADERCAPS2_0
{
DWORD Caps;
INT DynamicFlowControlDepth;
INT NumTemps;
INT StaticFlowControlDepth;
INT NumInstructionSlots;
} D3DPSHADERCAPS2_0;
typedef struct _D3DCAPS9
{
D3DDEVTYPE DeviceType;
UINT AdapterOrdinal;
DWORD Caps;
DWORD Caps2;
DWORD Caps3;
DWORD PresentationIntervals;
DWORD CursorCaps;
DWORD DevCaps;
DWORD PrimitiveMiscCaps;
DWORD RasterCaps;
DWORD ZCmpCaps;
DWORD SrcBlendCaps;
DWORD DestBlendCaps;
DWORD AlphaCmpCaps;
DWORD ShadeCaps;
DWORD TextureCaps;
DWORD TextureFilterCaps;
DWORD CubeTextureFilterCaps;
DWORD VolumeTextureFilterCaps;
DWORD TextureAddressCaps;
DWORD VolumeTextureAddressCaps;
DWORD LineCaps;
DWORD MaxTextureWidth;
DWORD MaxTextureHeight;
DWORD MaxVolumeExtent;
DWORD MaxTextureRepeat;
DWORD MaxTextureAspectRatio;
DWORD MaxAnisotropy;
float MaxVertexW;
float GuardBandLeft;
float GuardBandTop;
float GuardBandRight;
float GuardBandBottom;
float ExtentsAdjust;
DWORD StencilCaps;
DWORD FVFCaps;
DWORD TextureOpCaps;
DWORD MaxTextureBlendStages;
DWORD MaxSimultaneousTextures;
DWORD VertexProcessingCaps;
DWORD MaxActiveLights;
DWORD MaxUserClipPlanes;
DWORD MaxVertexBlendMatrices;
DWORD MaxVertexBlendMatrixIndex;
float MaxPointSize;
DWORD MaxPrimitiveCount;
DWORD MaxVertexIndex;
DWORD MaxStreams;
DWORD MaxStreamStride;
DWORD VertexShaderVersion;
DWORD MaxVertexShaderConst;
DWORD PixelShaderVersion;
float PixelShader1xMaxValue;
DWORD DevCaps2;
float MaxNpatchTessellationLevel;
DWORD Reserved5;
UINT MasterAdapterOrdinal;
UINT AdapterOrdinalInGroup;
UINT NumberOfAdaptersInGroup;
DWORD DeclTypes;
DWORD NumSimultaneousRTs;
DWORD StretchRectFilterCaps;
D3DVSHADERCAPS2_0 VS20Caps;
D3DPSHADERCAPS2_0 PS20Caps;
DWORD VertexTextureFilterCaps;
DWORD MaxVShaderInstructionsExecuted;
DWORD MaxPShaderInstructionsExecuted;
DWORD MaxVertexShader30InstructionSlots;
DWORD MaxPixelShader30InstructionSlots;
} D3DCAPS9;
#pragma pack()
#endif
#endif

423
include/dxsdk/d3dcaps.h Normal file
View file

@ -0,0 +1,423 @@
#ifndef _D3DCAPS_H
#define _D3DCAPS_H
#include "ddraw.h"
#ifndef DIRECT3D_VERSION
#define DIRECT3D_VERSION 0x0700
#endif
#if defined(_X86_) || defined(_IA64_)
#pragma pack(4)
#endif
#define D3DTRANSFORMCAPS_CLIP 0x00000001
#define D3DLIGHTINGMODEL_RGB 0x00000001
#define D3DLIGHTINGMODEL_MONO 0x00000002
#define D3DLIGHTCAPS_POINT 0x00000001
#define D3DLIGHTCAPS_SPOT 0x00000002
#define D3DLIGHTCAPS_DIRECTIONAL 0x00000004
#define D3DPMISCCAPS_MASKPLANES 0x00000001
#define D3DPMISCCAPS_MASKZ 0x00000002
#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004
#define D3DPMISCCAPS_CONFORMANT 0x00000008
#define D3DPMISCCAPS_CULLNONE 0x00000010
#define D3DPMISCCAPS_CULLCW 0x00000020
#define D3DPMISCCAPS_CULLCCW 0x00000040
#define D3DPRASTERCAPS_DITHER 0x00000001
#define D3DPRASTERCAPS_ROP2 0x00000002
#define D3DPRASTERCAPS_XOR 0x00000004
#define D3DPRASTERCAPS_PAT 0x00000008
#define D3DPRASTERCAPS_ZTEST 0x00000010
#define D3DPRASTERCAPS_SUBPIXEL 0x00000020
#define D3DPRASTERCAPS_SUBPIXELX 0x00000040
#define D3DPRASTERCAPS_FOGVERTEX 0x00000080
#define D3DPRASTERCAPS_FOGTABLE 0x00000100
#define D3DPRASTERCAPS_STIPPLE 0x00000200
#define D3DPCMPCAPS_NEVER 0x00000001
#define D3DPCMPCAPS_LESS 0x00000002
#define D3DPCMPCAPS_EQUAL 0x00000004
#define D3DPCMPCAPS_LESSEQUAL 0x00000008
#define D3DPCMPCAPS_GREATER 0x00000010
#define D3DPCMPCAPS_NOTEQUAL 0x00000020
#define D3DPCMPCAPS_GREATEREQUAL 0x00000040
#define D3DPCMPCAPS_ALWAYS 0x00000080
#define D3DPBLENDCAPS_ZERO 0x00000001
#define D3DPBLENDCAPS_ONE 0x00000002
#define D3DPBLENDCAPS_SRCCOLOR 0x00000004
#define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008
#define D3DPBLENDCAPS_SRCALPHA 0x00000010
#define D3DPBLENDCAPS_INVSRCALPHA 0x00000020
#define D3DPBLENDCAPS_DESTALPHA 0x00000040
#define D3DPBLENDCAPS_INVDESTALPHA 0x00000080
#define D3DPBLENDCAPS_DESTCOLOR 0x00000100
#define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200
#define D3DPBLENDCAPS_SRCALPHASAT 0x00000400
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
#define D3DPSHADECAPS_COLORFLATMONO 0x00000001
#define D3DPSHADECAPS_COLORFLATRGB 0x00000002
#define D3DPSHADECAPS_COLORGOURAUDMONO 0x00000004
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00000008
#define D3DPSHADECAPS_COLORPHONGMONO 0x00000010
#define D3DPSHADECAPS_COLORPHONGRGB 0x00000020
#define D3DPSHADECAPS_SPECULARFLATMONO 0x00000040
#define D3DPSHADECAPS_SPECULARFLATRGB 0x00000080
#define D3DPSHADECAPS_SPECULARGOURAUDMONO 0x00000100
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200
#define D3DPSHADECAPS_SPECULARPHONGMONO 0x00000400
#define D3DPSHADECAPS_SPECULARPHONGRGB 0x00000800
#define D3DPSHADECAPS_ALPHAFLATBLEND 0x00001000
#define D3DPSHADECAPS_ALPHAFLATSTIPPLED 0x00002000
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000
#define D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED 0x00008000
#define D3DPSHADECAPS_ALPHAPHONGBLEND 0x00010000
#define D3DPSHADECAPS_ALPHAPHONGSTIPPLED 0x00020000
#define D3DPSHADECAPS_FOGFLAT 0x00040000
#define D3DPSHADECAPS_FOGGOURAUD 0x00080000
#define D3DPSHADECAPS_FOGPHONG 0x00100000
#define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001
#define D3DPTEXTURECAPS_POW2 0x00000002
#define D3DPTEXTURECAPS_ALPHA 0x00000004
#define D3DPTEXTURECAPS_TRANSPARENCY 0x00000008
#define D3DPTEXTURECAPS_BORDER 0x00000010
#define D3DPTEXTURECAPS_SQUAREONLY 0x00000020
#define D3DPTFILTERCAPS_NEAREST 0x00000001
#define D3DPTFILTERCAPS_LINEAR 0x00000002
#define D3DPTFILTERCAPS_MIPNEAREST 0x00000004
#define D3DPTFILTERCAPS_MIPLINEAR 0x00000008
#define D3DPTFILTERCAPS_LINEARMIPNEAREST 0x00000010
#define D3DPTFILTERCAPS_LINEARMIPLINEAR 0x00000020
#define D3DPTBLENDCAPS_DECAL 0x00000001
#define D3DPTBLENDCAPS_MODULATE 0x00000002
#define D3DPTBLENDCAPS_DECALALPHA 0x00000004
#define D3DPTBLENDCAPS_MODULATEALPHA 0x00000008
#define D3DPTBLENDCAPS_DECALMASK 0x00000010
#define D3DPTBLENDCAPS_MODULATEMASK 0x00000020
#define D3DPTBLENDCAPS_COPY 0x00000040
#define D3DPTADDRESSCAPS_WRAP 0x00000001
#define D3DPTADDRESSCAPS_MIRROR 0x00000002
#define D3DPTADDRESSCAPS_CLAMP 0x00000004
#define D3DDEVICEDESCSIZE (sizeof(D3DDEVICEDESC))
#define D3DDEVICEDESC7SIZE (sizeof(D3DDEVICEDESC7))
#define D3DDD_COLORMODEL 0x00000001
#define D3DDD_DEVCAPS 0x00000002
#define D3DDD_TRANSFORMCAPS 0x00000004
#define D3DDD_LIGHTINGCAPS 0x00000008
#define D3DDD_BCLIPPING 0x00000010
#define D3DDD_LINECAPS 0x00000020
#define D3DDD_TRICAPS 0x00000040
#define D3DDD_DEVICERENDERBITDEPTH 0x00000080
#define D3DDD_DEVICEZBUFFERBITDEPTH 0x00000100
#define D3DDD_MAXBUFFERSIZE 0x00000200
#define D3DDD_MAXVERTEXCOUNT 0x00000400
#define D3DDEVCAPS_FLOATTLVERTEX 0x00000001
#define D3DDEVCAPS_SORTINCREASINGZ 0x00000002
#define D3DDEVCAPS_SORTDECREASINGZ 0X00000004
#define D3DDEVCAPS_SORTEXACT 0x00000008
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200
#define D3DFDS_COLORMODEL 0x00000001
#define D3DFDS_GUID 0x00000002
#define D3DFDS_HARDWARE 0x00000004
#define D3DFDS_TRIANGLES 0x00000008
#define D3DFDS_LINES 0x00000010
#define D3DFDS_MISCCAPS 0x00000020
#define D3DFDS_RASTERCAPS 0x00000040
#define D3DFDS_ZCMPCAPS 0x00000080
#define D3DFDS_ALPHACMPCAPS 0x00000100
#define D3DFDS_SRCBLENDCAPS 0x00000200
#define D3DFDS_DSTBLENDCAPS 0x00000400
#define D3DFDS_SHADECAPS 0x00000800
#define D3DFDS_TEXTURECAPS 0x00001000
#define D3DFDS_TEXTUREFILTERCAPS 0x00002000
#define D3DFDS_TEXTUREBLENDCAPS 0x00004000
#define D3DFDS_TEXTUREADDRESSCAPS 0x00008000
#define D3DDEB_BUFSIZE 0x00000001
#define D3DDEB_CAPS 0x00000002
#define D3DDEB_LPDATA 0x00000004
#define D3DDEBCAPS_SYSTEMMEMORY 0x00000001
#define D3DDEBCAPS_VIDEOMEMORY 0x00000002
#define D3DDEBCAPS_MEM (D3DDEBCAPS_SYSTEMMEMORY|D3DDEBCAPS_VIDEOMEMORY)
#if(DIRECT3D_VERSION < 0x700)
#define D3DLIGHTCAPS_PARALLELPOINT 0x00000008
#endif
#if(DIRECT3D_VERSION < 0x500)
#define D3DLIGHTCAPS_GLSPOT 0x00000010
#endif
#if(DIRECT3D_VERSION >= 0x0500)
#define D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT 0x00000400
#define D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT 0x00000800
#define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000
#define D3DPRASTERCAPS_ZBIAS 0x00004000
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000
#define D3DPRASTERCAPS_FOGRANGE 0x00010000
#define D3DPRASTERCAPS_ANISOTROPY 0x00020000
#define D3DPTBLENDCAPS_ADD 0x00000080
#define D3DPTADDRESSCAPS_BORDER 0x00000008
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000
#endif
#if(DIRECT3D_VERSION >= 0x0600)
#define D3DPRASTERCAPS_WBUFFER 0x00040000
#define D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT 0x00080000
#define D3DPRASTERCAPS_WFOG 0x00100000
#define D3DPRASTERCAPS_ZFOG 0x00200000
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100
#define D3DPTFILTERCAPS_MINFPOINT 0x00000100
#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400
#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000
#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000
#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000
#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000
#define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000
#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000
#define D3DSTENCILCAPS_KEEP 0x00000001
#define D3DSTENCILCAPS_ZERO 0x00000002
#define D3DSTENCILCAPS_REPLACE 0x00000004
#define D3DSTENCILCAPS_INCRSAT 0x00000008
#define D3DSTENCILCAPS_DECRSAT 0x00000010
#define D3DSTENCILCAPS_INVERT 0x00000020
#define D3DSTENCILCAPS_INCR 0x00000040
#define D3DSTENCILCAPS_DECR 0x00000080
#define D3DTEXOPCAPS_DISABLE 0x00000001
#define D3DTEXOPCAPS_SELECTARG1 0x00000002
#define D3DTEXOPCAPS_SELECTARG2 0x00000004
#define D3DTEXOPCAPS_MODULATE 0x00000008
#define D3DTEXOPCAPS_MODULATE2X 0x00000010
#define D3DTEXOPCAPS_MODULATE4X 0x00000020
#define D3DTEXOPCAPS_ADD 0x00000040
#define D3DTEXOPCAPS_ADDSIGNED 0x00000080
#define D3DTEXOPCAPS_ADDSIGNED2X 0x00000100
#define D3DTEXOPCAPS_SUBTRACT 0x00000200
#define D3DTEXOPCAPS_ADDSMOOTH 0x00000400
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000
#define D3DTEXOPCAPS_PREMODULATE 0x00010000
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000
#define D3DTEXOPCAPS_BUMPENVMAP 0x00200000
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000
#define D3DTEXOPCAPS_DOTPRODUCT3 0x00800000
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000FFFF
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x00002000
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000
#endif
#if(DIRECT3D_VERSION >= 0x0700)
#define D3DPTEXTURECAPS_PROJECTED 0x00000400
#define D3DPTEXTURECAPS_CUBEMAP 0x00000800
#define D3DPTEXTURECAPS_COLORKEYBLEND 0x00001000
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000
#define D3DDEVCAPS_HWRASTERIZATION 0x00080000
#define D3DVTXPCAPS_TEXGEN 0x00000001
#define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002
#define D3DVTXPCAPS_VERTEXFOG 0x00000004
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010
#define D3DVTXPCAPS_LOCALVIEWER 0x00000020
#endif
typedef struct _D3DTRANSFORMCAPS
{
DWORD dwSize;
DWORD dwCaps;
} D3DTRANSFORMCAPS, *LPD3DTRANSFORMCAPS;
typedef struct _D3DLIGHTINGCAPS
{
DWORD dwSize;
DWORD dwCaps;
DWORD dwLightingModel;
DWORD dwNumLights;
} D3DLIGHTINGCAPS, *LPD3DLIGHTINGCAPS;
typedef struct _D3DPrimCaps
{
DWORD dwSize;
DWORD dwMiscCaps;
DWORD dwRasterCaps;
DWORD dwZCmpCaps;
DWORD dwSrcBlendCaps;
DWORD dwDestBlendCaps;
DWORD dwAlphaCmpCaps;
DWORD dwShadeCaps;
DWORD dwTextureCaps;
DWORD dwTextureFilterCaps;
DWORD dwTextureBlendCaps;
DWORD dwTextureAddressCaps;
DWORD dwStippleWidth;
DWORD dwStippleHeight;
} D3DPRIMCAPS, *LPD3DPRIMCAPS;
typedef struct _D3DDeviceDesc
{
DWORD dwSize;
DWORD dwFlags;
D3DCOLORMODEL dcmColorModel;
DWORD dwDevCaps;
D3DTRANSFORMCAPS dtcTransformCaps;
BOOL bClipping;
D3DLIGHTINGCAPS dlcLightingCaps;
D3DPRIMCAPS dpcLineCaps;
D3DPRIMCAPS dpcTriCaps;
DWORD dwDeviceRenderBitDepth;
DWORD dwDeviceZBufferBitDepth;
DWORD dwMaxBufferSize;
DWORD dwMaxVertexCount;
#if(DIRECT3D_VERSION >= 0x0500)
DWORD dwMinTextureWidth, dwMinTextureHeight;
DWORD dwMaxTextureWidth, dwMaxTextureHeight;
DWORD dwMinStippleWidth, dwMaxStippleWidth;
DWORD dwMinStippleHeight, dwMaxStippleHeight;
#endif
#if(DIRECT3D_VERSION >= 0x0600)
DWORD dwMaxTextureRepeat;
DWORD dwMaxTextureAspectRatio;
DWORD dwMaxAnisotropy;
D3DVALUE dvGuardBandLeft;
D3DVALUE dvGuardBandTop;
D3DVALUE dvGuardBandRight;
D3DVALUE dvGuardBandBottom;
D3DVALUE dvExtentsAdjust;
DWORD dwStencilCaps;
DWORD dwFVFCaps;
DWORD dwTextureOpCaps;
WORD wMaxTextureBlendStages;
WORD wMaxSimultaneousTextures;
#endif
} D3DDEVICEDESC, *LPD3DDEVICEDESC;
#if(DIRECT3D_VERSION >= 0x0700)
typedef struct _D3DDeviceDesc7
{
DWORD dwDevCaps;
D3DPRIMCAPS dpcLineCaps;
D3DPRIMCAPS dpcTriCaps;
DWORD dwDeviceRenderBitDepth;
DWORD dwDeviceZBufferBitDepth;
DWORD dwMinTextureWidth;
DWORD dwMinTextureHeight;
DWORD dwMaxTextureWidth;
DWORD dwMaxTextureHeight;
DWORD dwMaxTextureRepeat;
DWORD dwMaxTextureAspectRatio;
DWORD dwMaxAnisotropy;
D3DVALUE dvGuardBandLeft;
D3DVALUE dvGuardBandTop;
D3DVALUE dvGuardBandRight;
D3DVALUE dvGuardBandBottom;
D3DVALUE dvExtentsAdjust;
DWORD dwStencilCaps;
DWORD dwFVFCaps;
DWORD dwTextureOpCaps;
WORD wMaxTextureBlendStages;
WORD wMaxSimultaneousTextures;
DWORD dwMaxActiveLights;
D3DVALUE dvMaxVertexW;
GUID deviceGUID;
WORD wMaxUserClipPlanes;
WORD wMaxVertexBlendMatrices;
DWORD dwVertexProcessingCaps;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
DWORD dwReserved4;
} D3DDEVICEDESC7, *LPD3DDEVICEDESC7;
#endif
typedef struct _D3DFINDDEVICESEARCH
{
DWORD dwSize;
DWORD dwFlags;
BOOL bHardware;
D3DCOLORMODEL dcmColorModel;
GUID guid;
DWORD dwCaps;
D3DPRIMCAPS dpcPrimCaps;
} D3DFINDDEVICESEARCH, *LPD3DFINDDEVICESEARCH;
typedef struct _D3DFINDDEVICERESULT
{
DWORD dwSize;
GUID guid;
D3DDEVICEDESC ddHwDesc;
D3DDEVICEDESC ddSwDesc;
} D3DFINDDEVICERESULT, *LPD3DFINDDEVICERESULT;
typedef struct _D3DExecuteBufferDesc
{
DWORD dwSize;
DWORD dwFlags;
DWORD dwCaps;
DWORD dwBufferSize;
LPVOID lpData;
} D3DEXECUTEBUFFERDESC, *LPD3DEXECUTEBUFFERDESC;
#if(DIRECT3D_VERSION == 0x0700)
typedef struct _D3DDEVINFO_TEXTUREMANAGER
{
BOOL bThrashing;
DWORD dwApproxBytesDownloaded;
DWORD dwNumEvicts;
DWORD dwNumVidCreates;
DWORD dwNumTexturesUsed;
DWORD dwNumUsedTexInVid;
DWORD dwWorkingSet;
DWORD dwWorkingSetBytes;
DWORD dwTotalManaged;
DWORD dwTotalBytes;
DWORD dwLastPri;
} D3DDEVINFO_TEXTUREMANAGER, *LPD3DDEVINFO_TEXTUREMANAGER;
typedef struct _D3DDEVINFO_TEXTURING
{
DWORD dwNumLoads;
DWORD dwApproxBytesLoaded;
DWORD dwNumPreLoads;
DWORD dwNumSet;
DWORD dwNumCreates;
DWORD dwNumDestroys;
DWORD dwNumSetPriorities;
DWORD dwNumSetLODs;
DWORD dwNumLocks;
DWORD dwNumGetDCs;
} D3DDEVINFO_TEXTURING, *LPD3DDEVINFO_TEXTURING;
#endif
typedef HRESULT (CALLBACK * LPD3DENUMDEVICESCALLBACK)(GUID *lpGuid, LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC, LPD3DDEVICEDESC, LPVOID);
#if(DIRECT3D_VERSION >= 0x0700)
typedef HRESULT (CALLBACK * LPD3DENUMDEVICESCALLBACK7)(LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC7, LPVOID);
#endif
#pragma pack()
#endif

28
include/dxsdk/d3drmwin.h Normal file
View file

@ -0,0 +1,28 @@
#ifndef __D3DRMWIN_H__
#define __D3DRMWIN_H__
#ifndef WIN32
#define WIN32
#endif
#include "d3drm.h"
#include "ddraw.h"
#include "d3d.h"
#undef INTERFACE
#define INTERFACE IDirect3DRMWinDevice
DECLARE_INTERFACE_(IDirect3DRMWinDevice, IDirect3DRMObject)
{
IUNKNOWN_METHODS(PURE);
IDIRECT3DRMOBJECT_METHODS(PURE);
STDMETHOD(HandlePaint) (THIS_ HDC hdc) PURE;
STDMETHOD(HandleActivate) (THIS_ WORD wparam) PURE;
};
DEFINE_GUID(IID_IDirect3DRMWinDevice, 0xC5016CC0, 0xD273, 0x11CE, 0xAC, 0x48, 0x0, 0x0, 0xC0, 0x38, 0x25, 0xA1);
WIN_TYPES(IDirect3DRMWinDevice, DIRECT3DRMWINDEVICE);
#endif

227
include/dxsdk/d3dvec.inl Normal file
View file

@ -0,0 +1,227 @@
#include <math.h>
inline _D3DVECTOR::_D3DVECTOR(D3DVALUE f)
{
x = y = z = f;
}
inline
_D3DVECTOR::_D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z)
{
x = _x;
y = _y;
z = _z;
}
inline _D3DVECTOR::_D3DVECTOR(const D3DVALUE f[3])
{
x = f[0];
y = f[1];
z = f[2];
}
inline const D3DVALUE& _D3DVECTOR::operator[](int i) const
{
return (&x)[i];
}
inline D3DVALUE& _D3DVECTOR::operator[](int i)
{
return (&x)[i];
}
inline _D3DVECTOR& _D3DVECTOR::operator += (const _D3DVECTOR& v)
{
x += v.x;
y += v.y;
z += v.z;
return *this;
}
inline _D3DVECTOR& _D3DVECTOR::operator -= (const _D3DVECTOR& v)
{
x -= v.x;
y -= v.y;
z -= v.z;
return *this;
}
inline _D3DVECTOR& _D3DVECTOR::operator *= (const _D3DVECTOR& v)
{
x *= v.x;
y *= v.y;
z *= v.z;
return *this;
}
inline _D3DVECTOR& _D3DVECTOR::operator /= (const _D3DVECTOR& v)
{
x /= v.x;
y /= v.y;
z /= v.z;
return *this;
}
inline _D3DVECTOR& _D3DVECTOR::operator *= (D3DVALUE s)
{
x *= s;
y *= s;
z *= s;
return *this;
}
inline _D3DVECTOR& _D3DVECTOR::operator /= (D3DVALUE s)
{
x /= s;
y /= s;
z /= s;
return *this;
}
inline _D3DVECTOR operator + (const _D3DVECTOR& v)
{
return v;
}
inline _D3DVECTOR operator - (const _D3DVECTOR& v)
{
return _D3DVECTOR(-v.x, -v.y, -v.z);
}
inline _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return _D3DVECTOR(v1.x+v2.x, v1.y+v2.y, v1.z+v2.z);
}
inline _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return _D3DVECTOR(v1.x-v2.x, v1.y-v2.y, v1.z-v2.z);
}
inline _D3DVECTOR operator * (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return _D3DVECTOR(v1.x*v2.x, v1.y*v2.y, v1.z*v2.z);
}
inline _D3DVECTOR operator / (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return _D3DVECTOR(v1.x/v2.x, v1.y/v2.y, v1.z/v2.z);
}
inline int operator < (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return v1[0] < v2[0] && v1[1] < v2[1] && v1[2] < v2[2];
}
inline int operator <= (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return v1[0] <= v2[0] && v1[1] <= v2[1] && v1[2] <= v2[2];
}
inline _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s)
{
return _D3DVECTOR(s*v.x, s*v.y, s*v.z);
}
inline _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v)
{
return _D3DVECTOR(s*v.x, s*v.y, s*v.z);
}
inline _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s)
{
return _D3DVECTOR(v.x/s, v.y/s, v.z/s);
}
inline int operator == (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return v1.x==v2.x && v1.y==v2.y && v1.z == v2.z;
}
inline D3DVALUE Magnitude (const _D3DVECTOR& v)
{
return (D3DVALUE) sqrt(SquareMagnitude(v));
}
inline D3DVALUE SquareMagnitude (const _D3DVECTOR& v)
{
return v.x*v.x + v.y*v.y + v.z*v.z;
}
inline _D3DVECTOR Normalize (const _D3DVECTOR& v)
{
return v / Magnitude(v);
}
inline D3DVALUE Min (const _D3DVECTOR& v)
{
D3DVALUE ret = v.x;
if (v.y < ret)
ret = v.y;
if (v.z < ret)
ret = v.z;
return ret;
}
inline D3DVALUE Max (const _D3DVECTOR& v)
{
D3DVALUE ret = v.x;
if (ret < v.y)
ret = v.y;
if (ret < v.z)
ret = v.z;
return ret;
}
inline _D3DVECTOR Minimize (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return _D3DVECTOR( v1[0] < v2[0] ? v1[0] : v2[0],
v1[1] < v2[1] ? v1[1] : v2[1],
v1[2] < v2[2] ? v1[2] : v2[2]);
}
inline _D3DVECTOR Maximize (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return _D3DVECTOR( v1[0] > v2[0] ? v1[0] : v2[0],
v1[1] > v2[1] ? v1[1] : v2[1],
v1[2] > v2[2] ? v1[2] : v2[2]);
}
inline D3DVALUE DotProduct (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
return v1.x*v2.x + v1.y * v2.y + v1.z*v2.z;
}
inline _D3DVECTOR CrossProduct (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
{
_D3DVECTOR result;
result[0] = v1[1] * v2[2] - v1[2] * v2[1];
result[1] = v1[2] * v2[0] - v1[0] * v2[2];
result[2] = v1[0] * v2[1] - v1[1] * v2[0];
return result;
}
inline _D3DMATRIX operator* (const _D3DMATRIX& a, const _D3DMATRIX& b)
{
_D3DMATRIX ret;
for (int i=0; i<4; i++)
{
for (int j=0; j<4; j++)
{
ret(i, j) = 0.0f;
for (int k=0; k<4; k++)
{
ret(i, j) += a(i, k) * b(k, j);
}
}
}
return ret;
}

64
include/dxsdk/d3dx9.h Normal file
View file

@ -0,0 +1,64 @@
#ifdef __D3DX_INTERNAL__
#error Incorrect D3DX header used
#endif
#ifndef __D3DX9_H__
#define __D3DX9_H__
#include <limits.h>
#define D3DFMT_FROM_FILE ((D3DFORMAT) -3)
#define D3DX_DEFAULT ((UINT) -1)
#define D3DX_DEFAULT_FLOAT FLT_MAX
#define D3DX_DEFAULT_NONPOW2 ((UINT) -2)
#define D3DX_FROM_FILE ((UINT) -3)
#ifndef D3DXINLINE
#ifdef _MSC_VER
#if (_MSC_VER >= 1200)
#define D3DXINLINE __forceinline
#else
#define D3DXINLINE __inline
#endif
#elif __GNUC__
#define D3DXINLINE __inline
#else
#ifdef __cplusplus
#define D3DXINLINE inline
#else
#define D3DXINLINE
#endif
#endif
#endif
#include "d3d9.h"
#include "d3dx9math.h"
#include "d3dx9core.h"
#include "d3dx9xof.h"
#include "d3dx9mesh.h"
#include "d3dx9shader.h"
#include "d3dx9effect.h"
#include "d3dx9tex.h"
#include "d3dx9shape.h"
#include "d3dx9anim.h"
#define _FACDD 0x876
#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code )
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_INVALIDDATA = MAKE_DDHRESULT(2905),
D3DXERR_LOADEDMESHASNODATA = MAKE_DDHRESULT(2906),
D3DXERR_DUPLICATENAMEDFRAGMENT = MAKE_DDHRESULT(2907),
D3DXERR_CANNOTREMOVELASTITEM = MAKE_DDHRESULT(2908),
};
#endif

View file

@ -0,0 +1,95 @@
#include "d3dx9.h"
#ifndef __D3DX9SHAPES_H__
#define __D3DX9SHAPES_H__
#ifdef __cplusplus
extern "C" {
#endif
HRESULT WINAPI
D3DXCreateBox(
LPDIRECT3DDEVICE9 pDevice,
FLOAT Width,
FLOAT Height,
FLOAT Depth,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency);
HRESULT WINAPI
D3DXCreateCylinder(
LPDIRECT3DDEVICE9 pDevice,
FLOAT Radius1,
FLOAT Radius2,
FLOAT Length,
UINT Slices,
UINT Stacks,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency);
HRESULT WINAPI
D3DXCreatePolygon(
LPDIRECT3DDEVICE9 pDevice,
FLOAT Length,
UINT Sides,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency);
HRESULT WINAPI
D3DXCreateSphere(
LPDIRECT3DDEVICE9 pDevice,
FLOAT Radius,
UINT Slices,
UINT Stacks,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency);
HRESULT WINAPI
D3DXCreateTeapot(
LPDIRECT3DDEVICE9 pDevice,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency);
HRESULT WINAPI
D3DXCreateTextA(
LPDIRECT3DDEVICE9 pDevice,
HDC hDC,
LPCSTR pText,
FLOAT Deviation,
FLOAT Extrusion,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency,
LPGLYPHMETRICSFLOAT pGlyphMetrics);
HRESULT WINAPI
D3DXCreateTextW(
LPDIRECT3DDEVICE9 pDevice,
HDC hDC,
LPCWSTR pText,
FLOAT Deviation,
FLOAT Extrusion,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency,
LPGLYPHMETRICSFLOAT pGlyphMetrics);
HRESULT WINAPI
D3DXCreateTorus(
LPDIRECT3DDEVICE9 pDevice,
FLOAT InnerRadius,
FLOAT OuterRadius,
UINT Sides,
UINT Rings,
LPD3DXMESH* ppMesh,
LPD3DXBUFFER* ppAdjacency);
#ifdef UNICODE
#define D3DXCreateText D3DXCreateTextW
#else
#define D3DXCreateText D3DXCreateTextA
#endif
#ifdef __cplusplus
}
#endif
#endif

173
include/dxsdk/d3dx9xof.h Normal file
View file

@ -0,0 +1,173 @@
#include "d3dx9.h"
#if !defined( __D3DX9XOF_H__ )
#define __D3DX9XOF_H__
#if defined( __cplusplus )
extern "C" {
#endif
#if defined( _WIN32 ) && !defined( _NO_COM )
DEFINE_GUID( IID_ID3DXFile, 0xcef08CF9, 0x7B4F, 0x4429, 0x96, 0x24, 0x2A, 0x69, 0x0A, 0x93, 0x32, 0x01 );
DEFINE_GUID( IID_ID3DXFileSaveObject, 0xcef08CFA, 0x7B4F, 0x4429, 0x96, 0x24, 0x2A, 0x69, 0x0A, 0x93, 0x32, 0x01 );
DEFINE_GUID( IID_ID3DXFileSaveData, 0xcef08CFB, 0x7B4F, 0x4429, 0x96, 0x24, 0x2A, 0x69, 0x0A, 0x93, 0x32, 0x01 );
DEFINE_GUID( IID_ID3DXFileEnumObject, 0xcef08CFC, 0x7B4F, 0x4429, 0x96, 0x24, 0x2A, 0x69, 0x0A, 0x93, 0x32, 0x01 );
DEFINE_GUID( IID_ID3DXFileData, 0xcef08CFD, 0x7B4F, 0x4429, 0x96, 0x24, 0x2A, 0x69, 0x0A, 0x93, 0x32, 0x01 );
#endif
#define D3DXF_FILEFORMAT_BINARY 0
#define D3DXF_FILEFORMAT_TEXT 1
#define D3DXF_FILEFORMAT_COMPRESSED 2
#define D3DXF_FILESAVE_TOFILE 0x00
#define D3DXF_FILESAVE_TOWFILE 0x01
#define D3DXF_FILELOAD_FROMFILE 0x00
#define D3DXF_FILELOAD_FROMWFILE 0x01
#define D3DXF_FILELOAD_FROMRESOURCE 0x02
#define D3DXF_FILELOAD_FROMMEMORY 0x03
#define _FACD3DXF 0x876
#define D3DXFERR_BADOBJECT MAKE_HRESULT( 1, _FACD3DXF, 900 )
#define D3DXFERR_BADVALUE MAKE_HRESULT( 1, _FACD3DXF, 901 )
#define D3DXFERR_BADTYPE MAKE_HRESULT( 1, _FACD3DXF, 902 )
#define D3DXFERR_NOTFOUND MAKE_HRESULT( 1, _FACD3DXF, 903 )
#define D3DXFERR_NOTDONEYET MAKE_HRESULT( 1, _FACD3DXF, 904 )
#define D3DXFERR_FILENOTFOUND MAKE_HRESULT( 1, _FACD3DXF, 905 )
#define D3DXFERR_RESOURCENOTFOUND MAKE_HRESULT( 1, _FACD3DXF, 906 )
#define D3DXFERR_BADRESOURCE MAKE_HRESULT( 1, _FACD3DXF, 907 )
#define D3DXFERR_BADFILETYPE MAKE_HRESULT( 1, _FACD3DXF, 908 )
#define D3DXFERR_BADFILEVERSION MAKE_HRESULT( 1, _FACD3DXF, 909 )
#define D3DXFERR_BADFILEFLOATSIZE MAKE_HRESULT( 1, _FACD3DXF, 910 )
#define D3DXFERR_BADFILE MAKE_HRESULT( 1, _FACD3DXF, 911 )
#define D3DXFERR_PARSEERROR MAKE_HRESULT( 1, _FACD3DXF, 912 )
#define D3DXFERR_BADARRAYSIZE MAKE_HRESULT( 1, _FACD3DXF, 913 )
#define D3DXFERR_BADDATAREFERENCE MAKE_HRESULT( 1, _FACD3DXF, 914 )
#define D3DXFERR_NOMOREOBJECTS MAKE_HRESULT( 1, _FACD3DXF, 915 )
#define D3DXFERR_NOMOREDATA MAKE_HRESULT( 1, _FACD3DXF, 916 )
#define D3DXFERR_BADCACHEFILE MAKE_HRESULT( 1, _FACD3DXF, 917 )
typedef DWORD D3DXF_FILEFORMAT;
typedef DWORD D3DXF_FILESAVEOPTIONS;
typedef DWORD D3DXF_FILELOADOPTIONS;
typedef struct _D3DXF_FILELOADMEMORY
{
LPCVOID lpMemory;
SIZE_T dSize;
} D3DXF_FILELOADMEMORY;
typedef struct _D3DXF_FILELOADRESOURCE
{
HMODULE hModule;
LPCSTR lpName;
LPCSTR lpType;
} D3DXF_FILELOADRESOURCE;
#if defined( __cplusplus )
#if !defined( DECLSPEC_UUID )
#if _MSC_VER >= 1100
#define DECLSPEC_UUID( x ) __declspec( uuid( x ) )
#else
#define DECLSPEC_UUID( x )
#endif
#endif
#if defined( _COM_SMARTPTR_TYPEDEF )
interface DECLSPEC_UUID( "CEF08CF9-7B4F-4429-9624-2A690A933201" ) ID3DXFile;
interface DECLSPEC_UUID( "CEF08CFA-7B4F-4429-9624-2A690A933201" ) ID3DXFileSaveObject;
interface DECLSPEC_UUID( "CEF08CFB-7B4F-4429-9624-2A690A933201" ) ID3DXFileSaveData;
interface DECLSPEC_UUID( "CEF08CFC-7B4F-4429-9624-2A690A933201" ) ID3DXFileEnumObject;
interface DECLSPEC_UUID( "CEF08CFD-7B4F-4429-9624-2A690A933201" ) ID3DXFileData;
#endif
#endif
#undef INTERFACE
#define INTERFACE ID3DXFile
DECLARE_INTERFACE_( ID3DXFile, IUnknown )
{
STDMETHOD( QueryInterface )( THIS_ REFIID, LPVOID* ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
STDMETHOD( CreateEnumObject )( THIS_ LPCVOID, D3DXF_FILELOADOPTIONS, ID3DXFileEnumObject** ) PURE;
STDMETHOD( CreateSaveObject )( THIS_ LPCVOID, D3DXF_FILESAVEOPTIONS, D3DXF_FILEFORMAT, ID3DXFileSaveObject** ) PURE;
STDMETHOD( RegisterTemplates )( THIS_ LPCVOID, SIZE_T ) PURE;
STDMETHOD( RegisterEnumTemplates )( THIS_ ID3DXFileEnumObject* ) PURE;
};
#undef INTERFACE
#define INTERFACE ID3DXFileEnumObject
DECLARE_INTERFACE_( ID3DXFileEnumObject, IUnknown )
{
STDMETHOD( QueryInterface )( THIS_ REFIID, LPVOID* ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
STDMETHOD( GetFile )( THIS_ ID3DXFile** ) PURE;
STDMETHOD( GetChildren )( THIS_ SIZE_T* ) PURE;
STDMETHOD( GetChild )( THIS_ SIZE_T, ID3DXFileData** ) PURE;
STDMETHOD( GetDataObjectById )( THIS_ REFGUID, ID3DXFileData** ) PURE;
STDMETHOD( GetDataObjectByName )( THIS_ LPCSTR, ID3DXFileData** ) PURE;
};
#undef INTERFACE
#define INTERFACE ID3DXFileData
DECLARE_INTERFACE_( ID3DXFileData, IUnknown )
{
STDMETHOD( QueryInterface )( THIS_ REFIID, LPVOID* ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
STDMETHOD( GetEnum )( THIS_ ID3DXFileEnumObject** ) PURE;
STDMETHOD( GetName )( THIS_ LPSTR, SIZE_T* ) PURE;
STDMETHOD( GetId )( THIS_ LPGUID ) PURE;
STDMETHOD( Lock )( THIS_ SIZE_T*, LPCVOID* ) PURE;
STDMETHOD( Unlock )( THIS ) PURE;
STDMETHOD( GetType )( THIS_ GUID* ) PURE;
STDMETHOD_( BOOL, IsReference )( THIS ) PURE;
STDMETHOD( GetChildren )( THIS_ SIZE_T* ) PURE;
STDMETHOD( GetChild )( THIS_ SIZE_T, ID3DXFileData** ) PURE;
};
#undef INTERFACE
#define INTERFACE ID3DXFileSaveData
DECLARE_INTERFACE_( ID3DXFileSaveData, IUnknown )
{
STDMETHOD( QueryInterface )( THIS_ REFIID, LPVOID* ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
STDMETHOD( GetSave )( THIS_ ID3DXFileSaveObject** ) PURE;
STDMETHOD( GetName )( THIS_ LPSTR, SIZE_T* ) PURE;
STDMETHOD( GetId )( THIS_ LPGUID ) PURE;
STDMETHOD( GetType )( THIS_ GUID* ) PURE;
STDMETHOD( AddDataObject )( THIS_ REFGUID, LPCSTR, CONST GUID*, SIZE_T, LPCVOID, ID3DXFileSaveData** ) PURE;
STDMETHOD( AddDataReference )( THIS_ LPCSTR, CONST GUID* ) PURE;
};
#undef INTERFACE
#define INTERFACE ID3DXFileSaveObject
DECLARE_INTERFACE_( ID3DXFileSaveObject, IUnknown )
{
STDMETHOD( QueryInterface )( THIS_ REFIID, LPVOID* ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
STDMETHOD( GetFile )( THIS_ ID3DXFile** ) PURE;
STDMETHOD( AddDataObject )( THIS_ REFGUID, LPCSTR, CONST GUID*, SIZE_T, LPCVOID, ID3DXFileSaveData** ) PURE;
STDMETHOD( Save )( THIS ) PURE;
};
#ifndef WIN_TYPES
#define WIN_TYPES(itype, ptype) typedef interface itype *LP##ptype, **LPLP##ptype
#endif
WIN_TYPES(ID3DXFile, D3DXFILE);
WIN_TYPES(ID3DXFileEnumObject, D3DXFILEENUMOBJECT);
WIN_TYPES(ID3DXFileSaveObject, D3DXFILESAVEOBJECT);
WIN_TYPES(ID3DXFileData, D3DXFILEDATA);
WIN_TYPES(ID3DXFileSaveData, D3DXFILESAVEDATA);
#if defined( __cplusplus )
}
#endif
#endif

2572
include/dxsdk/ddraw.h Normal file

File diff suppressed because it is too large Load diff

178
include/dxsdk/ddrawex.h Normal file
View file

@ -0,0 +1,178 @@
#ifndef __DDRAWEXH__
#define __DDRAWEXH__
#ifdef __cplusplus
extern "C" {
#endif
#include <ddraw.h>
DEFINE_GUID(CLSID_DirectDrawFactory, 0x4FD2A832, 0x86C8, 0x11D0, 0x8F, 0xCA, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D);
DEFINE_GUID(IID_IDirectDrawFactory, 0x4FD2A833, 0x86C8, 0x11D0, 0x8F, 0xCA, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D);
DEFINE_GUID(IID_IDirectDraw3, 0x618F8AD4, 0x8B7A, 0x11D0, 0x8F, 0xCC, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D);
#define DDSCAPS_DATAEXCHANGE (DDSCAPS_SYSTEMMEMORY|DDSCAPS_VIDEOMEMORY)
#define DDERR_LOADFAILED MAKE_DDHRESULT( 901 )
#define DDERR_BADVERSIONINFO MAKE_DDHRESULT( 902 )
#define DDERR_BADPROCADDRESS MAKE_DDHRESULT( 903 )
#define DDERR_LEGACYUSAGE MAKE_DDHRESULT( 904 )
typedef struct IDirectDraw3 *LPDIRECTDRAW3;
#ifndef DIRECTDRAW_VERSION
#define DDSD_LPSURFACE 0x00000800
DEFINE_GUID( IID_IDirectDrawSurface3, 0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB );
typedef struct IDirectDrawSurface3 *LPDIRECTDRAWSURFACE3;
#if defined( _WIN32 ) && !defined( _NO_COM )
#undef INTERFACE
#define INTERFACE IDirectDrawSurface3
DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown )
{
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE3) PURE;
STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE;
STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX) PURE;
STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE;
STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD) PURE;
STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE3) PURE;
STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE;
STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE3, DWORD) PURE;
STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE3*) PURE;
STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE;
STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE;
STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER *) PURE;
STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
STDMETHOD(GetDC)(THIS_ HDC *) PURE;
STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE;
STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE;
STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE *) PURE;
STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE;
STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE;
STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE;
STDMETHOD(IsLost)(THIS) PURE;
STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE;
STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
STDMETHOD(Restore)(THIS) PURE;
STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE;
STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE;
STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE;
STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE;
STDMETHOD(Unlock)(THIS_ LPVOID) PURE;
STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX) PURE;
STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE;
STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE3) PURE;
STDMETHOD(GetDDInterface)(THIS_ LPVOID *) PURE;
STDMETHOD(PageLock)(THIS_ DWORD) PURE;
STDMETHOD(PageUnlock)(THIS_ DWORD) PURE;
STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC, DWORD ) PURE;
};
#endif
#endif
#if defined( _WIN32 ) && !defined( _NO_COM )
#undef INTERFACE
#define INTERFACE IDirectDrawFactory
DECLARE_INTERFACE_(IDirectDrawFactory, IUnknown)
{
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(CreateDirectDraw) (THIS_ GUID * pGUID, HWND hWnd, DWORD dwCoopLevelFlags, DWORD dwReserved, IUnknown *pUnkOuter, IDirectDraw **ppDirectDraw) PURE;
STDMETHOD(DirectDrawEnumerate) (THIS_ LPDDENUMCALLBACK lpCallback, LPVOID lpContext) PURE;
};
#endif
#if defined( _WIN32 ) && !defined( _NO_COM )
#undef INTERFACE
#define INTERFACE IDirectDraw3
DECLARE_INTERFACE_(IDirectDraw3,IUnknown)
{
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(Compact)(THIS) PURE;
STDMETHOD(CreateClipper)(THIS_ DWORD dwFlags, LPDIRECTDRAWCLIPPER *lplpDDClipper, IUnknown *pUnkOuter) PURE;
STDMETHOD(CreatePalette)(THIS_ DWORD dwFlags, LPPALETTEENTRY lpColorTable, LPDIRECTDRAWPALETTE *lplpDDPalette, IUnknown *pUnkOuter) PURE;
STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSURFACE *lplpDDSurface, IUnknown *pUnkOuter) PURE;
STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDSurface, LPDIRECTDRAWSURFACE *lplpDupDDSurface) PURE;
STDMETHOD(EnumDisplayModes)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback) PURE;
STDMETHOD(EnumSurfaces)(THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpEnumSurfacesCallback) PURE;
STDMETHOD(FlipToGDISurface)(THIS) PURE;
STDMETHOD(GetCaps)(THIS_ LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) PURE;
STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD lpNumCodes, LPDWORD lpCodes) PURE;
STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE *lplpGDIDDSurface) PURE;
STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD lpdwFrequency) PURE;
STDMETHOD(GetScanLine)(THIS_ LPDWORD lpdwScanLine) PURE;
STDMETHOD(GetVerticalBlankStatus)(THIS_ BOOL *lpbIsInVB) PURE;
STDMETHOD(Initialize)(THIS_ GUID *lpGUID) PURE;
STDMETHOD(RestoreDisplayMode)(THIS) PURE;
STDMETHOD(SetCooperativeLevel)(THIS_ HWND hWnd, DWORD dwFlags) PURE;
STDMETHOD(SetDisplayMode)(THIS_ DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) PURE;
STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD dwFlags, HANDLE hEvent) PURE;
STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree) PURE;
STDMETHOD(GetSurfaceFromDC)(THIS_ HDC hdc, LPDIRECTDRAWSURFACE *pSurf) PURE;
};
#if !defined(__cplusplus) || defined(CINTERFACE)
#define IDirectDraw3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirectDraw3_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirectDraw3_Release(p) (p)->lpVtbl->Release(p)
#define IDirectDraw3_Compact(p) (p)->lpVtbl->Compact(p)
#define IDirectDraw3_CreateClipper(p,a,b,c) (p)->lpVtbl->CreateClipper(p,a,b,c)
#define IDirectDraw3_CreatePalette(p,a,b,c,d) (p)->lpVtbl->CreatePalette(p,a,b,c,d)
#define IDirectDraw3_CreateSurface(p,a,b,c) (p)->lpVtbl->CreateSurface(p,a,b,c)
#define IDirectDraw3_DuplicateSurface(p,a,b) (p)->lpVtbl->DuplicateSurface(p,a,b)
#define IDirectDraw3_EnumDisplayModes(p,a,b,c,d) (p)->lpVtbl->EnumDisplayModes(p,a,b,c,d)
#define IDirectDraw3_EnumSurfaces(p,a,b,c,d) (p)->lpVtbl->EnumSurfaces(p,a,b,c,d)
#define IDirectDraw3_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p)
#define IDirectDraw3_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b)
#define IDirectDraw3_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
#define IDirectDraw3_GetFourCCCodes(p,a,b) (p)->lpVtbl->GetFourCCCodes(p,a,b)
#define IDirectDraw3_GetGDISurface(p,a) (p)->lpVtbl->GetGDISurface(p,a)
#define IDirectDraw3_GetMonitorFrequency(p,a) (p)->lpVtbl->GetMonitorFrequency(p,a)
#define IDirectDraw3_GetScanLine(p,a) (p)->lpVtbl->GetScanLine(p,a)
#define IDirectDraw3_GetVerticalBlankStatus(p,a) (p)->lpVtbl->GetVerticalBlankStatus(p,a)
#define IDirectDraw3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
#define IDirectDraw3_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p)
#define IDirectDraw3_SetCooperativeLevel(p,a,b) (p)->lpVtbl->SetCooperativeLevel(p,a,b)
#define IDirectDraw3_SetDisplayMode(p,a,b,c,d,e) (p)->lpVtbl->SetDisplayMode(p,a,b,c,d,e)
#define IDirectDraw3_WaitForVerticalBlank(p,a,b) (p)->lpVtbl->WaitForVerticalBlank(p,a,b)
#define IDirectDraw3_GetAvailableVidMem(p,a,b,c) (p)->lpVtbl->GetAvailableVidMem(p,a,b,c)
#define IDirectDraw3_GetSurfaceFromDC(p,a,b) (p)->lpVtbl->GetSurfaceFromDC(p,a,b)
#else
#define IDirectDraw3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
#define IDirectDraw3_AddRef(p) (p)->AddRef()
#define IDirectDraw3_Release(p) (p)->Release()
#define IDirectDraw3_Compact(p) (p)->Compact()
#define IDirectDraw3_CreateClipper(p,a,b,c) (p)->CreateClipper(a,b,c)
#define IDirectDraw3_CreatePalette(p,a,b,c,d) (p)->CreatePalette(a,b,c,d)
#define IDirectDraw3_CreateSurface(p,a,b,c) (p)->CreateSurface(a,b,c)
#define IDirectDraw3_DuplicateSurface(p,a,b) (p)->DuplicateSurface(a,b)
#define IDirectDraw3_EnumDisplayModes(p,a,b,c,d) (p)->EnumDisplayModes(a,b,c,d)
#define IDirectDraw3_EnumSurfaces(p,a,b,c,d) (p)->EnumSurfaces(a,b,c,d)
#define IDirectDraw3_FlipToGDISurface(p) (p)->FlipToGDISurface()
#define IDirectDraw3_GetCaps(p,a,b) (p)->GetCaps(a,b)
#define IDirectDraw3_GetDisplayMode(p,a) (p)->GetDisplayMode(a)
#define IDirectDraw3_GetFourCCCodes(p,a,b) (p)->GetFourCCCodes(a,b)
#define IDirectDraw3_GetGDISurface(p,a) (p)->GetGDISurface(a)
#define IDirectDraw3_GetMonitorFrequency(p,a) (p)->GetMonitorFrequency(a)
#define IDirectDraw3_GetScanLine(p,a) (p)->GetScanLine(a)
#define IDirectDraw3_GetVerticalBlankStatus(p,a) (p)->GetVerticalBlankStatus(a)
#define IDirectDraw3_Initialize(p,a) (p)->Initialize(a)
#define IDirectDraw3_RestoreDisplayMode(p) (p)->RestoreDisplayMode()
#define IDirectDraw3_SetCooperativeLevel(p,a,b) (p)->SetCooperativeLevel(a,b)
#define IDirectDraw3_SetDisplayMode(p,a,b,c,d,e) (p)->SetDisplayMode(a,b,c,d,e)
#define IDirectDraw3_WaitForVerticalBlank(p,a,b) (p)->WaitForVerticalBlank(a,b)
#define IDirectDraw3_GetAvailableVidMem(p,a,b,c) (p)->GetAvailableVidMem(a,b,c)
#define IDirectDraw3_GetSurfaceFromDC(p,a,b) (p)->GetSurfaceFromDC(a,b)
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif

View file

@ -0,0 +1,50 @@
import "unknwn.idl";
import "mmstream.idl";
cpp_quote("#if 0")
typedef void * LPDDSURFACEDESC;
typedef struct tDDSURFACEDESC DDSURFACEDESC;
cpp_quote("#endif")
cpp_quote("#include <ddraw.h>")
enum
{
DDSFF_PROGRESSIVERENDER = 0x00000001
};
interface IDirectDraw;
interface IDirectDrawSurface;
interface IDirectDrawPalette;
interface IDirectDrawMediaStream;
interface IDirectDrawStreamSample;
[
object,
local,
uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IDirectDrawStreamSample : IStreamSample
{
HRESULT GetSurface([out] IDirectDrawSurface ** ppDirectDrawSurface, [out] RECT * pRect);
HRESULT SetRect([in] const RECT * pRect);
};
[
object,
local,
uuid(F4104FCE-9A70-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IDirectDrawMediaStream : IMediaStream
{
HRESULT GetFormat([out] DDSURFACEDESC *pDDSDCurrent, [out] IDirectDrawPalette **ppDirectDrawPalette, [out] DDSURFACEDESC *pDDSDDesired, [out] DWORD *pdwFlags);
HRESULT SetFormat([in] const DDSURFACEDESC *pDDSurfaceDesc, [in] IDirectDrawPalette *pDirectDrawPalette);
HRESULT GetDirectDraw([out] IDirectDraw **ppDirectDraw);
HRESULT SetDirectDraw([in] IDirectDraw *pDirectDraw);
HRESULT CreateSample([in] IDirectDrawSurface *pSurface, [in] const RECT *pRect, [in] DWORD dwFlags, [out]IDirectDrawStreamSample **ppSample);
HRESULT GetTimePerFrame([out] STREAM_TIME *pFrameTime);
};

19
include/dxsdk/devenum.idl Normal file
View file

@ -0,0 +1,19 @@
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")
[
object,
uuid(29840822-5B84-11D0-BD3B-00A0C911CE86),
pointer_default(unique)
]
interface ICreateDevEnum : IUnknown
{
import "oaidl.idl";
HRESULT CreateClassEnumerator( [in] REFCLSID clsidDeviceClass,
[out] IEnumMoniker ** ppEnumMoniker,
[in] DWORD dwFlags);
}

153
include/dxsdk/dls1.h Normal file
View file

@ -0,0 +1,153 @@
#ifndef _INC_DLS1
#define _INC_DLS1
#define CONN_SRC_NONE 0x0000
#define CONN_SRC_LFO 0x0001
#define CONN_SRC_KEYONVELOCITY 0x0002
#define CONN_SRC_KEYNUMBER 0x0003
#define CONN_SRC_EG1 0x0004
#define CONN_SRC_EG2 0x0005
#define CONN_SRC_PITCHWHEEL 0x0006
#define CONN_SRC_CC1 0x0081
#define CONN_SRC_CC7 0x0087
#define CONN_SRC_CC10 0x008a
#define CONN_SRC_CC11 0x008b
#define CONN_DST_NONE 0x0000
#define CONN_DST_ATTENUATION 0x0001
#define CONN_DST_PITCH 0x0003
#define CONN_DST_PAN 0x0004
#define CONN_DST_LFO_FREQUENCY 0x0104
#define CONN_DST_LFO_STARTDELAY 0x0105
#define CONN_DST_EG1_ATTACKTIME 0x0206
#define CONN_DST_EG1_DECAYTIME 0x0207
#define CONN_DST_EG1_RELEASETIME 0x0209
#define CONN_DST_EG1_SUSTAINLEVEL 0x020a
#define CONN_DST_EG2_ATTACKTIME 0x030a
#define CONN_DST_EG2_DECAYTIME 0x030b
#define CONN_DST_EG2_RELEASETIME 0x030d
#define CONN_DST_EG2_SUSTAINLEVEL 0x030e
#define CONN_TRN_NONE 0x0000
#define CONN_TRN_CONCAVE 0x0001
#define FOURCC_DLS mmioFOURCC('D','L','S',' ')
#define FOURCC_DLID mmioFOURCC('d','l','i','d')
#define FOURCC_COLH mmioFOURCC('c','o','l','h')
#define FOURCC_WVPL mmioFOURCC('w','v','p','l')
#define FOURCC_PTBL mmioFOURCC('p','t','b','l')
#define FOURCC_PATH mmioFOURCC('p','a','t','h')
#define FOURCC_wave mmioFOURCC('w','a','v','e')
#define FOURCC_LINS mmioFOURCC('l','i','n','s')
#define FOURCC_INS mmioFOURCC('i','n','s',' ')
#define FOURCC_INSH mmioFOURCC('i','n','s','h')
#define FOURCC_LRGN mmioFOURCC('l','r','g','n')
#define FOURCC_RGN mmioFOURCC('r','g','n',' ')
#define FOURCC_RGNH mmioFOURCC('r','g','n','h')
#define FOURCC_LART mmioFOURCC('l','a','r','t')
#define FOURCC_ART1 mmioFOURCC('a','r','t','1')
#define FOURCC_WLNK mmioFOURCC('w','l','n','k')
#define FOURCC_WSMP mmioFOURCC('w','s','m','p')
#define FOURCC_VERS mmioFOURCC('v','e','r','s')
#define F_INSTRUMENT_DRUMS 0x80000000
#define F_RGN_OPTION_SELFNONEXCLUSIVE 0x0001
#define WAVELINK_CHANNEL_LEFT 0x0001
#define WAVELINK_CHANNEL_RIGHT 0x0002
#define F_WAVELINK_PHASE_MASTER 0x0001
#define POOL_CUE_NULL 0xffffffff
#define F_WSMP_NO_TRUNCATION 0x0001l
#define F_WSMP_NO_COMPRESSION 0x0002l
#define WLOOP_TYPE_FORWARD 0
typedef struct _CONNECTION
{
USHORT usSource;
USHORT usControl;
USHORT usDestination;
USHORT usTransform;
LONG lScale;
}CONNECTION, *LPCONNECTION;
typedef struct _CONNECTIONLIST
{
ULONG cbSize;
ULONG cConnections;
} CONNECTIONLIST, *LPCONNECTIONLIST;
typedef struct _DLSVERSION
{
DWORD dwVersionMS;
DWORD dwVersionLS;
} DLSVERSION, *LPDLSVERSION;
typedef struct _DLSHEADER
{
ULONG cInstruments;
}DLSHEADER, *LPDLSHEADER;
typedef struct _DLSID
{
ULONG ulData1;
USHORT usData2;
USHORT usData3;
BYTE abData4[8];
} DLSID, FAR *LPDLSID;
typedef struct _INSTHEADER
{
ULONG cRegions;
MIDILOCALE Locale;
}INSTHEADER, *LPINSTHEADER;
typedef struct _POOLCUE
{
ULONG ulOffset;
}POOLCUE, *LPPOOLCUE;
typedef struct _POOLTABLE
{
ULONG cbSize;
ULONG cCues;
} POOLTABLE, FAR *LPPOOLTABLE;
typedef struct _RGNRANGE
{
USHORT usLow;
USHORT usHigh;
} RGNRANGE, *LPRGNRANGE;
typedef struct _RGNHEADER
{
RGNRANGE RangeKey;
RGNRANGE RangeVelocity;
USHORT fusOptions;
USHORT usKeyGroup;
}RGNHEADER, *LPRGNHEADER;
typedef struct _rloop
{
ULONG cbSize;
ULONG ulType;
ULONG ulStart;
ULONG ulLength;
} WLOOP, *LPWLOOP;
typedef struct _rwsmp
{
ULONG cbSize;
USHORT usUnityNote;
SHORT sFineTune;
LONG lAttenuation;
ULONG fulOptions;
ULONG cSampleLoops;
} WSMPL, *LPWSMPL;
typedef struct _WAVELINK
{
USHORT fusOptions;
USHORT usPhaseGroup;
ULONG ulChannel;
ULONG ulTableIndex;
}WAVELINK, *LPWAVELINK;
#endif

73
include/dxsdk/dls2.h Normal file
View file

@ -0,0 +1,73 @@
#ifndef _INC_DLS2
#define _INC_DLS2
DEFINE_GUID(DLSID_GMInHardware, 0x178F2F24, 0xC364, 0x11D1, 0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12);
DEFINE_GUID(DLSID_GSInHardware, 0x178F2F25, 0xC364, 0x11D1, 0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12);
DEFINE_GUID(DLSID_XGInHardware, 0x178F2F26, 0xC364, 0x11D1, 0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12);
DEFINE_GUID(DLSID_SupportsDLS1, 0x178F2F27, 0xC364, 0x11D1, 0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12);
DEFINE_GUID(DLSID_SupportsDLS2, 0xF14599E5, 0x4689, 0x11D2, 0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xd8, 0xB6);
DEFINE_GUID(DLSID_SampleMemorySize, 0x178F2F28, 0xC364, 0x11D1, 0xA7, 0x60, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12);
DEFINE_GUID(DLSID_ManufacturersID, 0xB03E1181, 0x8095, 0x11D2, 0xA1, 0xEF, 0x00, 0x60, 0x08, 0x33, 0xDB, 0xD8);
DEFINE_GUID(DLSID_ProductID, 0xB03E1182, 0x8095, 0x11D2, 0xA1, 0xEF, 0x00, 0x60, 0x08, 0x33, 0xDB, 0xD8);
DEFINE_GUID(DLSID_SamplePlaybackRate, 0x2A91F713, 0xA4BF, 0x11D2, 0xBB, 0xDF, 0x00, 0x60, 0x08, 0x33, 0xDB, 0xD8);
#define CONN_SRC_POLYPRESSURE 0x0007
#define CONN_SRC_CHANNELPRESSURE 0x0008
#define CONN_SRC_VIBRATO 0x0009
#define CONN_SRC_MONOPRESSURE 0x000A
#define CONN_SRC_CC91 0x00DB
#define CONN_SRC_CC93 0x00DD
#define CONN_DST_GAIN 0x0001
#define CONN_DST_KEYNUMBER 0x0005
#define CONN_DST_LEFT 0x0010
#define CONN_DST_RIGHT 0x0011
#define CONN_DST_CENTER 0x0012
#define CONN_DST_LEFTREAR 0x0013
#define CONN_DST_RIGHTREAR 0x0014
#define CONN_DST_LFE_CHANNEL 0x0015
#define CONN_DST_CHORUS 0x0080
#define CONN_DST_REVERB 0x0081
#define CONN_DST_VIB_FREQUENCY 0x0114
#define CONN_DST_VIB_STARTDELAY 0x0115
#define CONN_DST_EG1_DELAYTIME 0x020B
#define CONN_DST_EG1_HOLDTIME 0x020C
#define CONN_DST_EG1_SHUTDOWNTIME 0x020D
#define CONN_DST_EG2_DELAYTIME 0x030F
#define CONN_DST_EG2_HOLDTIME 0x0310
#define CONN_DST_FILTER_CUTOFF 0x0500
#define CONN_DST_FILTER_Q 0x0501
#define DLS_CDL_AND 0x0001
#define DLS_CDL_OR 0x0002
#define DLS_CDL_XOR 0x0003
#define DLS_CDL_ADD 0x0004
#define DLS_CDL_SUBTRACT 0x0005
#define DLS_CDL_MULTIPLY 0x0006
#define DLS_CDL_DIVIDE 0x0007
#define DLS_CDL_LOGICAL_AND 0x0008
#define DLS_CDL_LOGICAL_OR 0x0009
#define DLS_CDL_LT 0x000A
#define DLS_CDL_LE 0x000B
#define DLS_CDL_GT 0x000C
#define DLS_CDL_GE 0x000D
#define DLS_CDL_EQ 0x000E
#define DLS_CDL_NOT 0x000F
#define DLS_CDL_CONST 0x0010
#define DLS_CDL_QUERY 0x0011
#define DLS_CDL_QUERYSUPPORTED 0x0012
#define CONN_TRN_CONVEX 0x0002
#define CONN_TRN_SWITCH 0x0003
#define FOURCC_RGN2 mmioFOURCC('r','g','n','2')
#define FOURCC_LAR2 mmioFOURCC('l','a','r','2')
#define FOURCC_ART2 mmioFOURCC('a','r','t','2')
#define FOURCC_CDL mmioFOURCC('c','d','l',' ')
#define FOURCC_DLID mmioFOURCC('d','l','i','d')
#define F_WAVELINK_MULTICHANNEL 0x0002
#define WLOOP_TYPE_RELEASE 1
#endif

175
include/dxsdk/dmdls.h Normal file
View file

@ -0,0 +1,175 @@
ifndef _DMDLS_
#define _DMDLS_
#include "dls1.h"
#define DMUS_DOWNLOADINFO_INSTRUMENT 1
#define DMUS_DOWNLOADINFO_WAVE 2
#define DMUS_DOWNLOADINFO_INSTRUMENT2 3
#define DMUS_DOWNLOADINFO_WAVEARTICULATION 4
#define DMUS_DOWNLOADINFO_STREAMINGWAVE 5
#define DMUS_DOWNLOADINFO_ONESHOTWAVE 6
#define DMUS_DEFAULT_SIZE_OFFSETTABLE 1
#define DMUS_INSTRUMENT_GM_INSTRUMENT (1 << 0)
#define DMUS_MIN_DATA_SIZE 4
typedef long PCENT;
typedef long GCENT;
typedef long TCENT;
typedef long PERCENT;
typedef LONGLONG REFERENCE_TIME;
typedef REFERENCE_TIME *LPREFERENCE_TIME;
#ifndef MAKE_FOURCC
#define MAKEFOURCC(ch0, ch1, ch2, ch3) ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
typedef DWORD FOURCC;
#endif
typedef struct _DMUS_LFOPARAMS
{
PCENT pcFrequency;
TCENT tcDelay;
GCENT gcVolumeScale;
PCENT pcPitchScale;
GCENT gcMWToVolume;
PCENT pcMWToPitch;
} DMUS_LFOPARAMS;
typedef struct _DMUS_VEGPARAMS
{
TCENT tcAttack;
TCENT tcDecay;
PERCENT ptSustain;
TCENT tcRelease;
TCENT tcVel2Attack;
TCENT tcKey2Decay;
} DMUS_VEGPARAMS;
typedef struct _DMUS_PEGPARAMS
{
TCENT tcAttack;
TCENT tcDecay;
PERCENT ptSustain;
TCENT tcRelease;
TCENT tcVel2Attack;
TCENT tcKey2Decay;
PCENT pcRange;
} DMUS_PEGPARAMS;
typedef struct _DMUS_MSCPARAMS
{
PERCENT ptDefaultPan;
} DMUS_MSCPARAMS;
typedef struct _DMUS_DOWNLOADINFO
{
DWORD dwDLType;
DWORD dwDLId;
DWORD dwNumOffsetTableEntries;
DWORD cbSize;
} DMUS_DOWNLOADINFO;
typedef struct _DMUS_OFFSETTABLE
{
ULONG ulOffsetTable[DMUS_DEFAULT_SIZE_OFFSETTABLE];
} DMUS_OFFSETTABLE;
typedef struct _DMUS_INSTRUMENT
{
ULONG ulPatch;
ULONG ulFirstRegionIdx;
ULONG ulGlobalArtIdx;
ULONG ulFirstExtCkIdx;
ULONG ulCopyrightIdx;
ULONG ulFlags;
} DMUS_INSTRUMENT;
typedef struct _DMUS_REGION
{
RGNRANGE RangeKey;
RGNRANGE RangeVelocity;
USHORT fusOptions;
USHORT usKeyGroup;
ULONG ulRegionArtIdx;
ULONG ulNextRegionIdx;
ULONG ulFirstExtCkIdx;
WAVELINK WaveLink;
WSMPL WSMP;
WLOOP WLOOP[1];
} DMUS_REGION;
typedef struct _DMUS_NOTERANGE
{
DWORD dwLowNote;
DWORD dwHighNote;
} DMUS_NOTERANGE, *LPDMUS_NOTERANGE;
typedef struct _DMUS_COPYRIGHT
{
ULONG cbSize;
BYTE byCopyright[DMUS_MIN_DATA_SIZE];
} DMUS_COPYRIGHT;
typedef struct _DMUS_EXTENSIONCHUNK
{
ULONG cbSize;
ULONG ulNextExtCkIdx;
FOURCC ExtCkID;
BYTE byExtCk[DMUS_MIN_DATA_SIZE];
} DMUS_EXTENSIONCHUNK;
typedef struct _DMUS_WAVE
{
ULONG ulFirstExtCkIdx;
ULONG ulCopyrightIdx;
ULONG ulWaveDataIdx;
WAVEFORMATEX WaveformatEx;
} DMUS_WAVE;
typedef struct _DMUS_WAVEDATA
{
ULONG cbSize;
BYTE byData[DMUS_MIN_DATA_SIZE];
} DMUS_WAVEDATA;
typedef struct _DMUS_ARTICULATION
{
ULONG ulArt1Idx;
ULONG ulFirstExtCkIdx;
} DMUS_ARTICULATION;
typedef struct _DMUS_ARTICULATION2
{
ULONG ulArtIdx;
ULONG ulFirstExtCkIdx;
ULONG ulNextArtIdx;
} DMUS_ARTICULATION2;
typedef struct _DMUS_WAVEDL
{
ULONG cbWaveData;
} DMUS_WAVEDL, *LPDMUS_WAVEDL;
typedef struct _DMUS_ARTICPARAMS
{
DMUS_LFOPARAMS LFO;
DMUS_VEGPARAMS VolEG;
DMUS_PEGPARAMS PitchEG;
DMUS_MSCPARAMS Misc;
} DMUS_ARTICPARAMS;
typedef struct _DMUS_WAVEARTDL
{
ULONG ulDownloadIdIdx;
ULONG ulBus;
ULONG ulBuffers;
ULONG ulMasterDLId;
USHORT usOptions;
} DMUS_WAVEARTDL, *LPDMUS_WAVEARTDL;
#endif

115
include/dxsdk/dmksctrl.h Normal file
View file

@ -0,0 +1,115 @@
ifndef _DMKSCTRL_
#define _DMKSCTRL_
#if _MSC_VER >= 1200
#pragma warning(push)
#endif
#include <pshpack8.h>
#include <objbase.h>
DEFINE_GUID(IID_IKsControl, 0x28F54685, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96);
#ifndef _KSMEDIA_
DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MIDI, 0x1D262760, 0xE957, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00);
DEFINE_GUID(KSDATAFORMAT_SUBTYPE_DIRECTMUSIC, 0x1A82F8BC, 0x3F8B, 0x11D2, 0xB7, 0x74, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1);
#endif
#ifndef STATIC_IID_IKsControl
#define STATIC_IID_IKsControl 0x28F54685L, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
#endif
#if !defined(_NTRTL_)
#ifndef STATICGUIDOF
#define STATICGUIDOF(guid) STATIC_##guid
#endif
#ifndef DEFINE_GUIDEX
#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name
#endif
#endif
#ifndef _KS_
#define _KS_
#define KSMETHOD_TYPE_NONE 0x00000000
#define KSMETHOD_TYPE_READ 0x00000001
#define KSMETHOD_TYPE_WRITE 0x00000002
#define KSMETHOD_TYPE_MODIFY 0x00000003
#define KSMETHOD_TYPE_SOURCE 0x00000004
#define KSMETHOD_TYPE_SEND 0x00000001
#define KSMETHOD_TYPE_SETSUPPORT 0x00000100
#define KSMETHOD_TYPE_BASICSUPPORT 0x00000200
#define KSPROPERTY_TYPE_GET 0x00000001
#define KSPROPERTY_TYPE_SET 0x00000002
#define KSPROPERTY_TYPE_SETSUPPORT 0x00000100
#define KSPROPERTY_TYPE_BASICSUPPORT 0x00000200
#define KSPROPERTY_TYPE_RELATIONS 0x00000400
#define KSPROPERTY_TYPE_SERIALIZESET 0x00000800
#define KSPROPERTY_TYPE_UNSERIALIZESET 0x00001000
#define KSPROPERTY_TYPE_SERIALIZERAW 0x00002000
#define KSPROPERTY_TYPE_UNSERIALIZERAW 0x00004000
#define KSPROPERTY_TYPE_SERIALIZESIZE 0x00008000
#define KSPROPERTY_TYPE_DEFAULTVALUES 0x00010000
#define KSPROPERTY_TYPE_TOPOLOGY 0x10000000
#if (defined(_MSC_EXTENSIONS) || defined(__cplusplus)) && !defined(CINTERFACE)
typedef struct
{
union
{
struct
{
GUID Set;
ULONG Id;
ULONG Flags;
};
LONGLONG Alignment;
};
} KSIDENTIFIER, *PKSIDENTIFIER,KSPROPERTY, *PKSPROPERTY, KSMETHOD, *PKSMETHOD, KSEVENT, *PKSEVENT;
#else
typedef struct
{
union
{
struct
{
GUID Set;
ULONG Id;
ULONG Flags;
} Data;
LONGLONG Alignment;
};
} KSIDENTIFIER, *PKSIDENTIFIER,KSPROPERTY, *PKSPROPERTY, KSMETHOD, *PKSMETHOD, KSEVENT, *PKSEVENT;
#endif
#endif
#ifndef _IKsControl_
#define _IKsControl_
#ifdef DECLARE_INTERFACE_
#undef INTERFACE
#define INTERFACE IKsControl
DECLARE_INTERFACE_(IKsControl, IUnknown)
{
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(KsProperty)(THIS_ IN PKSPROPERTY Property, IN ULONG PropertyLength, IN OUT LPVOID PropertyData,
IN ULONG DataLength, OUT ULONG* BytesReturned) PURE;
STDMETHOD(KsMethod)(THIS_ IN PKSMETHOD Method, IN ULONG MethodLength, IN OUT LPVOID MethodData,
IN ULONG DataLength, OUT ULONG* BytesReturned) PURE;
STDMETHOD(KsEvent)(THIS_ IN PKSEVENT Event OPTIONAL, IN ULONG EventLength, IN OUT LPVOID EventData,
IN ULONG DataLength, OUT ULONG* BytesReturned) PURE;
};
#endif
#endif
#include <poppack.h>
#if _MSC_VER >= 1200
#pragma warning(pop)
#endif
#endif

19
include/dxsdk/dmo.h Normal file
View file

@ -0,0 +1,19 @@
#ifndef __DMO_H__
#define __DMO_H__
#include "mediaerr.h"
#ifdef FIX_LOCK_NAME
#define Lock DMOLock
#endif
#include "mediaobj.h"
#ifdef FIX_LOCK_NAME
#undef Lock
#endif
#include "dmoreg.h"
#include "dmort.h"

View file

@ -0,0 +1,18 @@
import "unknwn.idl";
import "objidl.idl";
import "mediaobj.idl";
cpp_quote("DEFINE_GUID(CLSID_DMOWrapperFilter, 0x94297043,0xbd82,0x4dfd,0xb0,0xde,0x81,0x77,0x73,0x9c,0x6d,0x20);")
cpp_quote("DEFINE_GUID(CLSID_DMOFilterCategory, 0xbcd5796c,0xbd52,0x4d30,0xab,0x76,0x70,0xf9,0x75,0xb8,0x91,0x99);")
[
object,
uuid(52d6f586-9f0f-4824-8fc8-e32ca04930c2),
]
interface IDMOWrapperFilter : IUnknown
{
HRESULT Init(REFCLSID clsidDMO, REFCLSID catDMO);
}

75
include/dxsdk/dmoreg.h Normal file
View file

@ -0,0 +1,75 @@
#ifndef __DMOREG_H__
#define __DMOREG_H__
#include "mediaobj.h"
DEFINE_GUID(DMOCATEGORY_ACOUSTIC_ECHO_CANCEL, 0xBF963D80, 0xC559, 0x11D0, 0x8A, 0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1);
DEFINE_GUID(DMOCATEGORY_AGC, 0xE88C9BA0, 0xC557, 0x11D0, 0x8A, 0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1);
DEFINE_GUID(DMOCATEGORY_AUDIO_CAPTURE_EFFECT, 0xF665AAba, 0x3E09, 0x4920, 0xAA, 0x5F,0x21,0x98,0x11,0x14,0x8F,0x09);
DEFINE_GUID(DMOCATEGORY_AUDIO_DECODER, 0x57F2db8b, 0xE6BB, 0x4513, 0x9D, 0x43,0xDC,0xD2,0xA6,0x59,0x31,0x25);
DEFINE_GUID(DMOCATEGORY_AUDIO_EFFECT, 0xF3602b3f, 0x0592, 0x48DF, 0xA4, 0xCD,0x67,0x47,0x21,0xE7,0xEB,0xEB);
DEFINE_GUID(DMOCATEGORY_AUDIO_ENCODER, 0x33D9A761, 0x90C8, 0x11D0, 0xBD, 0x43,0x00,0xA0,0xC9,0x11,0xCE,0x86);
DEFINE_GUID(DMOCATEGORY_AUDIO_NOISE_SUPPRESS, 0xE07f903f, 0x62FD, 0x4e60, 0x8C, 0xDD,0xDE,0xA7,0x23,0x66,0x65,0xB5);
DEFINE_GUID(DMOCATEGORY_VIDEO_DECODER, 0x4A69b442, 0x28BE, 0x4991, 0x96, 0x9C,0xB5,0x00,0xAD,0xF5,0xd8,0xA8);
DEFINE_GUID(DMOCATEGORY_VIDEO_EFFECT, 0xd990eE14, 0x776C, 0x4723, 0xBE, 0x46,0x3D,0xA2,0xF5,0x6F,0x10,0xB9);
DEFINE_GUID(DMOCATEGORY_VIDEO_ENCODER, 0x33D9A760, 0x90C8, 0x11D0, 0xBD, 0x43,0x00,0xA0,0xC9,0x11,0xCE,0x86);
typedef struct _DMO_PARTIAL_MEDIATYPE
{
GUID type;
GUID subtype;
} DMO_PARTIAL_MEDIATYPE, *PDMO_PARTIAL_MEDIATYPE;
enum DMO_REGISTER_FLAGS
{
DMO_REGISTERF_IS_KEYED = 0x00000001
};
enum DMO_ENUM_FLAGS
{
DMO_ENUMF_INCLUDE_KEYED = 0x00000001
};
STDAPI
DMOEnum(
REFGUID guidCategory,
DWORD dwFlags,
DWORD cInTypes,
const DMO_PARTIAL_MEDIATYPE *pInTypes,
DWORD cOutTypes,
const DMO_PARTIAL_MEDIATYPE *pOutTypes,
IEnumDMO **ppEnum);
STDAPI
DMOGetName(
REFCLSID clsidDMO,
WCHAR szName[80]);
STDAPI DMOGetTypes(
REFCLSID clsidDMO,
unsigned long ulInputTypesRequested,
unsigned long *pulInputTypesSupplied,
DMO_PARTIAL_MEDIATYPE *pInputTypes,
unsigned long ulOutputTypesRequested,
unsigned long *pulOutputTypesSupplied,
DMO_PARTIAL_MEDIATYPE *pOutputTypes
);
STDAPI
DMORegister(
LPCWSTR szName,
REFCLSID clsidDMO,
REFGUID guidCategory,
DWORD dwFlags,
DWORD cInTypes,
const DMO_PARTIAL_MEDIATYPE *pInTypes,
DWORD cOutTypes,
const DMO_PARTIAL_MEDIATYPE *pOutTypes);
STDAPI
DMOUnregister(
REFCLSID clsidDMO,
REFGUID guidCategory);
#endif

13
include/dxsdk/dmort.h Normal file
View file

@ -0,0 +1,13 @@
#ifndef __DMORT_H__
#define __DMORT_H__
STDAPI MoCopyMediaType(DMO_MEDIA_TYPE *pmtDest, const DMO_MEDIA_TYPE *pmtSrc);
STDAPI MoCreateMediaType(DMO_MEDIA_TYPE **ppmt, DWORD cbFormat);
STDAPI MoDeleteMediaType(DMO_MEDIA_TYPE *pmt);
STDAPI MoDuplicateMediaType(DMO_MEDIA_TYPE **ppmtDest, const DMO_MEDIA_TYPE *pmtSrc);
STDAPI MoFreeMediaType(DMO_MEDIA_TYPE *pmt);
STDAPI MoInitMediaType(DMO_MEDIA_TYPE *pmt, DWORD cbFormat);
#endif

19
include/dxsdk/dmusbuff.h Normal file
View file

@ -0,0 +1,19 @@
#ifndef _DMusBuff_
#define _DMusBuff_
#define DMUS_EVENT_STRUCTURED 0x00000001
#define QWORD_ALIGN(x) (((x) + 7) & ~7)
#define DMUS_EVENT_SIZE(cb) QWORD_ALIGN(sizeof(DMUS_EVENTHEADER) + cb)
#include <pshpack4.h>
typedef struct _DMUS_EVENTHEADER
{
DWORD cbEvent;
DWORD dwChannelGroup;
REFERENCE_TIME rtDelta;
DWORD dwFlags;
} DMUS_EVENTHEADER, *LPDMUS_EVENTHEADER;
#include <poppack.h>
#endif

112
include/dxsdk/dmusics.h Normal file
View file

@ -0,0 +1,112 @@
#ifndef _DMUSICS_
#define _DMUSICS_
#include "dmusicc.h"
#define REGSTR_PATH_SOFTWARESYNTHS "Software\\Microsoft\\DirectMusic\\SoftwareSynths"
interface IDirectMusicSynth;
interface IDirectMusicSynthSink;
#ifndef __cplusplus
typedef interface IDirectMusicSynth IDirectMusicSynth;
typedef interface IDirectMusicSynthSink IDirectMusicSynthSink;
#endif
#ifndef _DMUS_VOICE_STATE_DEFINED
#define _DMUS_VOICE_STATE_DEFINED
DEFINE_GUID(IID_IDirectMusicSynth, 0x9823661, 0x5C85, 0x11D2, 0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6);
DEFINE_GUID(IID_IDirectMusicSynth8, 0x53CAB625, 0x2711, 0x4C9F, 0x9D, 0xE7, 0x1B, 0x7F, 0x92, 0x5F, 0x6F, 0xC8);
DEFINE_GUID(IID_IDirectMusicSynthSink, 0x09823663, 0x5C85, 0x11D2, 0xAF, 0xA6, 0x00, 0xAA, 0x00, 0x24, 0xD8, 0xB6);
DEFINE_GUID(GUID_DMUS_PROP_SetSynthSink, 0x0A3A5BA5, 0x37B6, 0x11D2, 0xB9, 0xF9, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12);
DEFINE_GUID(GUID_DMUS_PROP_SinkUsesDSound, 0xBE208857, 0x8952, 0x11D2, 0xBA, 0x1C, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x12);
#define REFRESH_F_LASTBUFFER 0x00000001
typedef struct _DMUS_VOICE_STATE
{
BOOL bExists;
SAMPLE_POSITION spPosition;
} DMUS_VOICE_STATE;
#endif
#undef INTERFACE
#define INTERFACE IDirectMusicSynth
DECLARE_INTERFACE_(IDirectMusicSynth, IUnknown)
{
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(Open) (THIS_ LPDMUS_PORTPARAMS pPortParams) PURE;
STDMETHOD(Close) (THIS) PURE;
STDMETHOD(SetNumChannelGroups) (THIS_ DWORD dwGroups) PURE;
STDMETHOD(Download) (THIS_ LPHANDLE phDownload, LPVOID pvData, LPBOOL pbFree ) PURE;
STDMETHOD(Unload) (THIS_ HANDLE hDownload, HRESULT ( CALLBACK *lpFreeHandle)(HANDLE,HANDLE), HANDLE hUserData ) PURE;
STDMETHOD(PlayBuffer) (THIS_ REFERENCE_TIME rt,LPBYTE pbBuffer, DWORD cbBuffer) PURE;
STDMETHOD(GetRunningStats) (THIS_ LPDMUS_SYNTHSTATS pStats) PURE;
STDMETHOD(GetPortCaps) (THIS_ LPDMUS_PORTCAPS pCaps) PURE;
STDMETHOD(SetMasterClock) (THIS_ IReferenceClock *pClock) PURE;
STDMETHOD(GetLatencyClock) (THIS_ IReferenceClock **ppClock) PURE;
STDMETHOD(Activate) (THIS_ BOOL fEnable) PURE;
STDMETHOD(SetSynthSink) (THIS_ IDirectMusicSynthSink *pSynthSink) PURE;
STDMETHOD(Render) (THIS_ short *pBuffer, DWORD dwLength, LONGLONG llPosition) PURE;
STDMETHOD(SetChannelPriority) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority) PURE;
STDMETHOD(GetChannelPriority) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority) PURE;
STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSize) PURE;
STDMETHOD(GetAppend) (THIS_ DWORD* pdwAppend) PURE;
};
#undef INTERFACE
#define INTERFACE IDirectMusicSynth8
DECLARE_INTERFACE_(IDirectMusicSynth8, IDirectMusicSynth)
{
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(Open) (THIS_ LPDMUS_PORTPARAMS pPortParams) PURE;
STDMETHOD(Close) (THIS) PURE;
STDMETHOD(SetNumChannelGroups) (THIS_ DWORD dwGroups) PURE;
STDMETHOD(Download) (THIS_ LPHANDLE phDownload, LPVOID pvData, LPBOOL pbFree ) PURE;
STDMETHOD(Unload) (THIS_ HANDLE hDownload, HRESULT ( CALLBACK *lpFreeHandle)(HANDLE,HANDLE), HANDLE hUserData ) PURE;
STDMETHOD(PlayBuffer) (THIS_ REFERENCE_TIME rt, LPBYTE pbBuffer, DWORD cbBuffer) PURE;
STDMETHOD(GetRunningStats) (THIS_ LPDMUS_SYNTHSTATS pStats) PURE;
STDMETHOD(GetPortCaps) (THIS_ LPDMUS_PORTCAPS pCaps) PURE;
STDMETHOD(SetMasterClock) (THIS_ IReferenceClock *pClock) PURE;
STDMETHOD(GetLatencyClock) (THIS_ IReferenceClock **ppClock) PURE;
STDMETHOD(Activate) (THIS_ BOOL fEnable) PURE;
STDMETHOD(SetSynthSink) (THIS_ IDirectMusicSynthSink *pSynthSink) PURE;
STDMETHOD(Render) (THIS_ short *pBuffer, DWORD dwLength, LONGLONG llPosition) PURE;
STDMETHOD(SetChannelPriority) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority) PURE;
STDMETHOD(GetChannelPriority) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority) PURE;
STDMETHOD(GetFormat) (THIS_ LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSize) PURE;
STDMETHOD(GetAppend) (THIS_ DWORD* pdwAppend) PURE;
STDMETHOD(PlayVoice) (THIS_ REFERENCE_TIME rt, DWORD dwVoiceId, DWORD dwChannelGroup, DWORD dwChannel, DWORD dwDLId, long prPitch, long vrVolume, SAMPLE_TIME stVoiceStart, SAMPLE_TIME stLoopStart, SAMPLE_TIME stLoopEnd) PURE;
STDMETHOD(StopVoice) (THIS_ REFERENCE_TIME rt, DWORD dwVoiceId ) PURE;
STDMETHOD(GetVoiceState) (THIS_ DWORD dwVoice[], DWORD cbVoice, DMUS_VOICE_STATE dwVoiceState[] ) PURE;
STDMETHOD(Refresh) (THIS_ DWORD dwDownloadID, DWORD dwFlags) PURE;
STDMETHOD(AssignChannelToBuses) (THIS_ DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwBuses, DWORD cBuses) PURE;
};
#undef INTERFACE
#define INTERFACE IDirectMusicSynthSink
DECLARE_INTERFACE_(IDirectMusicSynthSink, IUnknown)
{
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(Init) (THIS_ IDirectMusicSynth *pSynth) PURE;
STDMETHOD(SetMasterClock) (THIS_ IReferenceClock *pClock) PURE;
STDMETHOD(GetLatencyClock) (THIS_ IReferenceClock **ppClock) PURE;
STDMETHOD(Activate) (THIS_ BOOL fEnable) PURE;
STDMETHOD(SampleToRefTime) (THIS_ LONGLONG llSampleTime, REFERENCE_TIME *prfTime) PURE;
STDMETHOD(RefTimeToSample) (THIS_ REFERENCE_TIME rfTime, LONGLONG *pllSampleTime) PURE;
STDMETHOD(SetDirectSound) (THIS_ LPDIRECTSOUND pDirectSound, LPDIRECTSOUNDBUFFER pDirectSoundBuffer) PURE;
STDMETHOD(GetDesiredBufferSize) (THIS_ LPDWORD pdwBufferSizeInSamples) PURE;
};
#endif

168
include/dxsdk/dsconf.h Normal file
View file

@ -0,0 +1,168 @@
#ifndef __DSCONF_INCLUDED__
#define __DSCONF_INCLUDED__
#ifndef __DSOUND_INCLUDED__
#error dsound.h not included
#endif
#ifdef __cplusplus
extern "C" {
#endif
DEFINE_GUID(CLSID_DirectSoundPrivate, 0x11AB3EC0, 0x25EC, 0x11D1, 0xA4, 0xD8, 0x0, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA);
DEFINE_GUID(DSPROPSETID_DirectSoundDevice, 0x84624F82, 0x25EC, 0x11D1, 0xA4, 0xD8, 0x0, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA);
typedef enum
{
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A = 1,
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 = 2,
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 = 3,
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W = 4,
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A = 5,
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W = 6,
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A = 7,
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W = 8,
} DSPROPERTY_DIRECTSOUNDDEVICE;
typedef enum
{
DIRECTSOUNDDEVICE_TYPE_EMULATED,
DIRECTSOUNDDEVICE_TYPE_VXD,
DIRECTSOUNDDEVICE_TYPE_WDM
} DIRECTSOUNDDEVICE_TYPE;
typedef enum
{
DIRECTSOUNDDEVICE_DATAFLOW_RENDER,
DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
} DIRECTSOUNDDEVICE_DATAFLOW;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
{
LPSTR DeviceName;
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
GUID DeviceId;
} DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
{
LPWSTR DeviceName;
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
GUID DeviceId;
} DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
{
GUID DeviceId;
CHAR DescriptionA[0x100];
WCHAR DescriptionW[0x100];
CHAR ModuleA[MAX_PATH];
WCHAR ModuleW[MAX_PATH];
DIRECTSOUNDDEVICE_TYPE Type;
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
ULONG WaveDeviceId;
ULONG Devnode;
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
{
DIRECTSOUNDDEVICE_TYPE Type;
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
GUID DeviceId;
LPSTR Description;
LPSTR Module;
LPSTR Interface;
ULONG WaveDeviceId;
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
{
DIRECTSOUNDDEVICE_TYPE Type;
DIRECTSOUNDDEVICE_DATAFLOW DataFlow;
GUID DeviceId;
LPWSTR Description;
LPWSTR Module;
LPWSTR Interface;
ULONG WaveDeviceId;
} DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA;
#if DIRECTSOUND_VERSION >= 0x0700
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
#endif
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
#endif
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
#endif
typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, LPVOID);
typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, LPVOID);
typedef BOOL (CALLBACK *LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW)(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, LPVOID);
#if DIRECTSOUND_VERSION >= 0x0700
#ifdef UNICODE
#define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW
#else
#define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA
#endif
#else
#define LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1
#endif
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
{
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 Callback;
LPVOID Context;
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
{
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA Callback;
LPVOID Context;
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA;
typedef struct _DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
{
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW Callback;
LPVOID Context;
} DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA, *PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA;
#if DIRECTSOUND_VERSION >= 0x0700
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
#endif
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
#endif
#ifdef __cplusplus
}
#endif
#endif

190
include/dxsdk/dsetup.h Normal file
View file

@ -0,0 +1,190 @@
#ifndef __DSETUP_H__
#define __DSETUP_H__
#include <windows.h>
#ifdef _WIN32
#define COM_NO_WINDOWS_H
#include <objbase.h>
#else
#endif
#ifdef __cplusplus
extern "C" {
#endif
enum _DSETUP_CB_PROGRESS_PHASE
{
DSETUP_INITIALIZING,
DSETUP_EXTRACTING,
DSETUP_COPYING,
DSETUP_FINALIZING
};
typedef struct _DSETUP_CB_PROGRESS
{
DWORD dwPhase;
DWORD dwInPhaseMaximum;
DWORD dwInPhaseProgress;
DWORD dwOverallMaximum;
DWORD dwOverallProgress;
} DSETUP_CB_PROGRESS;
#ifdef _WIN32
INT WINAPI DirectXUnRegisterApplication( HWND hWnd, LPGUID lpGUID);
#ifndef ANSI_ONLY
typedef struct _DIRECTXREGISTERAPPW
{
DWORD dwSize;
DWORD dwFlags;
LPWSTR lpszApplicationName;
LPGUID lpGUID;
LPWSTR lpszFilename;
LPWSTR lpszCommandLine;
LPWSTR lpszPath;
LPWSTR lpszCurrentDirectory;
} DIRECTXREGISTERAPPW, *PDIRECTXREGISTERAPPW, *LPDIRECTXREGISTERAPPW;
typedef struct _DIRECTXREGISTERAPP2W
{
DWORD dwSize;
DWORD dwFlags;
LPWSTR lpszApplicationName;
LPGUID lpGUID;
LPWSTR lpszFilename;
LPWSTR lpszCommandLine;
LPWSTR lpszPath;
LPWSTR lpszCurrentDirectory;
LPWSTR lpszLauncherName;
} DIRECTXREGISTERAPP2W, *PDIRECTXREGISTERAPP2W, *LPDIRECTXREGISTERAPP2W;
INT WINAPI DirectXSetupW( HWND hWnd, LPWSTR lpszRootPath, DWORD dwFlags);
INT WINAPI DirectXRegisterApplicationW( HWND hWnd, LPVOID lpDXRegApp);
UINT WINAPI DirectXSetupGetEULAW( LPWSTR lpszEULA, UINT cchEULA, WORD LangID);
#endif
#ifndef UNICODE_ONLY
typedef struct _DIRECTXREGISTERAPPA
{
DWORD dwSize;
DWORD dwFlags;
LPSTR lpszApplicationName;
LPGUID lpGUID;
LPSTR lpszFilename;
LPSTR lpszCommandLine;
LPSTR lpszPath;
LPSTR lpszCurrentDirectory;
} DIRECTXREGISTERAPPA, *PDIRECTXREGISTERAPPA, *LPDIRECTXREGISTERAPPA;
typedef struct _DIRECTXREGISTERAPP2A
{
DWORD dwSize;
DWORD dwFlags;
LPSTR lpszApplicationName;
LPGUID lpGUID;
LPSTR lpszFilename;
LPSTR lpszCommandLine;
LPSTR lpszPath;
LPSTR lpszCurrentDirectory;
LPSTR lpszLauncherName;
} DIRECTXREGISTERAPP2A, *PDIRECTXREGISTERAPP2A, *LPDIRECTXREGISTERAPP2A;
INT WINAPI DirectXSetupA( HWND hWnd, LPSTR lpszRootPath, DWORD dwFlags);
INT WINAPI DirectXRegisterApplicationA( HWND hWnd, LPVOID lpDXRegApp);
UINT WINAPI DirectXSetupGetEULAA( LPSTR lpszEULA, UINT cchEULA, WORD LangID);
#endif
#ifdef UNICODE
typedef DIRECTXREGISTERAPPW DIRECTXREGISTERAPP;
typedef PDIRECTXREGISTERAPPW PDIRECTXREGISTERAPP;
typedef LPDIRECTXREGISTERAPPW LPDIRECTXREGISTERAPP;
typedef DIRECTXREGISTERAPP2W DIRECTXREGISTERAPP2;
typedef PDIRECTXREGISTERAPP2W PDIRECTXREGISTERAPP2;
typedef LPDIRECTXREGISTERAPP2W LPDIRECTXREGISTERAPP2;
typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPWSTR, DWORD);
typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID);
typedef UINT (WINAPI * LPDIRECTXSETUPGETEULA)(LPWSTR, UINT, WORD);
#define DirectXSetup DirectXSetupW
#define DirectXRegisterApplication DirectXRegisterApplicationW
#define DirectXSetupGetEULA DirectXSetupGetEULAW
#else
typedef DIRECTXREGISTERAPPA DIRECTXREGISTERAPP;
typedef PDIRECTXREGISTERAPPA PDIRECTXREGISTERAPP;
typedef LPDIRECTXREGISTERAPPA LPDIRECTXREGISTERAPP;
typedef DIRECTXREGISTERAPP2A DIRECTXREGISTERAPP2;
typedef PDIRECTXREGISTERAPP2A PDIRECTXREGISTERAPP2;
typedef LPDIRECTXREGISTERAPP2A LPDIRECTXREGISTERAPP2;
typedef INT (WINAPI * LPDIRECTXSETUP)(HWND, LPSTR, DWORD);
typedef INT (WINAPI * LPDIRECTXREGISTERAPPLICATION)(HWND, LPVOID);
typedef UINT (WINAPI * LPDIRECTXSETUPGETEULA)(LPSTR, UINT, WORD);
#define DirectXSetup DirectXSetupA
#define DirectXRegisterApplication DirectXRegisterApplicationA
#define DirectXSetupGetEULA DirectXSetupGetEULAA
#endif
typedef DWORD (*DSETUP_CALLBACK)( DWORD Reason, DWORD MsgType, LPSTR szMessage,
LPSTR szName, void *pInfo);
INT WINAPI DirectXSetupSetCallback(DSETUP_CALLBACK Callback);
INT WINAPI DirectXSetupGetVersion(DWORD *lpdwVersion, DWORD *lpdwMinorVersion);
INT WINAPI DirectXSetupShowEULA(HWND hWndParent);
#endif
#define FOURCC_VERS mmioFOURCC('v','e','r','s')
#define DSETUPERR_SUCCESS_RESTART 1
#define DSETUPERR_SUCCESS 0
#define DSETUPERR_BADWINDOWSVERSION -1
#define DSETUPERR_SOURCEFILENOTFOUND -2
#define DSETUPERR_NOCOPY -5
#define DSETUPERR_OUTOFDISKSPACE -6
#define DSETUPERR_CANTFINDINF -7
#define DSETUPERR_CANTFINDDIR -8
#define DSETUPERR_INTERNAL -9
#define DSETUPERR_UNKNOWNOS -11
#define DSETUPERR_NEWERVERSION -14
#define DSETUPERR_NOTADMIN -15
#define DSETUPERR_UNSUPPORTEDPROCESSOR -16
#define DSETUPERR_MISSINGCAB_MANAGEDDX -17
#define DSETUPERR_NODOTNETFRAMEWORKINSTALLED -18
#define DSETUPERR_CABDOWNLOADFAIL -19
#define DSETUP_DDRAWDRV 0x00000008
#define DSETUP_DSOUNDDRV 0x00000010
#define DSETUP_DXCORE 0x00010000
#define DSETUP_DIRECTX (DSETUP_DXCORE|DSETUP_DDRAWDRV|DSETUP_DSOUNDDRV)
#define DSETUP_MANAGEDDX 0x00004000
#define DSETUP_TESTINSTALL 0x00020000
#define DSETUP_DDRAW 0x00000001
#define DSETUP_DSOUND 0x00000002
#define DSETUP_DPLAY 0x00000004
#define DSETUP_DPLAYSP 0x00000020
#define DSETUP_DVIDEO 0x00000040
#define DSETUP_D3D 0x00000200
#define DSETUP_DINPUT 0x00000800
#define DSETUP_DIRECTXSETUP 0x00001000
#define DSETUP_NOUI 0x00002000
#define DSETUP_PROMPTFORDRIVERS 0x10000000
#define DSETUP_RESTOREDRIVERS 0x20000000
#define DSETUP_CB_MSG_NOMESSAGE 0
#define DSETUP_CB_MSG_INTERNAL_ERROR 10
#define DSETUP_CB_MSG_BEGIN_INSTALL 13
#define DSETUP_CB_MSG_BEGIN_INSTALL_RUNTIME 14
#define DSETUP_CB_MSG_PROGRESS 18
#define DSETUP_CB_MSG_WARNING_DISABLED_COMPONENT 19
#ifdef __cplusplus
};
#endif
#endif

View file

@ -0,0 +1,28 @@
import "unknwn.idl";
import "objidl.idl";
import "strmif.idl";
import "wmsdkidl.idl";
cpp_quote( "EXTERN_GUID( IID_IConfigAsfWriter,0x45086030,0xF7E4,0x486a,0xB5,0x04,0x82,0x6B,0xB5,0x79,0x2A,0x3B );" )
interface IConfigAsfWriter;
interface IWMProfile;
[
object,
uuid(45086030-F7E4-486a-B504-826BB5792A3B),
pointer_default(unique)
]
interface IConfigAsfWriter : IUnknown
{
HRESULT ConfigureFilterUsingProfileId([in] DWORD dwProfileId);
HRESULT GetCurrentProfileId([out] DWORD *pdwProfileId);
HRESULT ConfigureFilterUsingProfileGuid([in] REFGUID guidProfile);
HRESULT GetCurrentProfileGuid([out] GUID *pProfileGuid);
HRESULT ConfigureFilterUsingProfile([in] IWMProfile * pProfile);
HRESULT GetCurrentProfile([out] IWMProfile **ppProfile);
HRESULT SetIndexMode( [in] BOOL bIndexFile );
HRESULT GetIndexMode( [out] BOOL *pbIndexFile );
}

35
include/dxsdk/dv.h Normal file
View file

@ -0,0 +1,35 @@
#ifndef _DV_H_
#define _DV_H_
typedef struct Tag_DVAudInfo
{
BYTE bAudStyle[2];
BYTE bAudQu[2];
BYTE bNumAudPin;
WORD wAvgSamplesPerPinPerFrm[2];
WORD wBlkMode;
WORD wDIFMode;
WORD wBlkDiv;
} DVAudInfo;
#define DV_AUDIOMODE 0x00000f00
#define DV_AUDIOQU 0x07000000
#define DV_AUDIOSMP 0x38000000
#define DV_CAP_AUD16Bits 0x00
#define DV_CAP_AUD12Bits 0x01
#define DV_HD 0x01
#define DV_DVSD_NTSC_FRAMESIZE 120000
#define DV_DVSD_PAL_FRAMESIZE 144000
#define DV_NTSC 0
#define DV_NTSCPAL 0x00200000
#define DV_PAL 1
#define DV_SMCHN 0x0000e000
#define DV_SD 0x00
#define DV_SL 0x02
#define DV_STYPE 0x001f0000
#define SIZE_DVINFO 0x20
#endif

6
include/dxsdk/dvdif.idl Normal file
View file

@ -0,0 +1,6 @@
import "unknwn.idl";
import "objidl.idl";
cpp_quote("#include <ddraw.h>")
// fixme it is not completed

85
include/dxsdk/dx7todx8.h Normal file
View file

@ -0,0 +1,85 @@
#ifndef _DX7TODX8_H_
#define RGBA_MAKE D3DCOLOR_RGBA
#define RGB_MAKE D3DCOLOR_XRGB
#define D3DRGBA D3DCOLOR_COLORVALUE
#define D3DRGB(_r,_g,_b) D3DCOLOR_COLORVALUE(_r,_g,_b,1.f)
#define D3DTRANSFORMSTATE_FORCE_DWORD D3DTS_FORCE_DWORD
#define D3DTRANSFORMSTATE_PROJECTION D3DTS_PROJECTION
#define D3DTRANSFORMSTATE_TEXTURE0 D3DTS_TEXTURE0
#define D3DTRANSFORMSTATE_TEXTURE1 D3DTS_TEXTURE1
#define D3DTRANSFORMSTATE_TEXTURE2 D3DTS_TEXTURE2
#define D3DTRANSFORMSTATE_TEXTURE3 D3DTS_TEXTURE3
#define D3DTRANSFORMSTATE_TEXTURE4 D3DTS_TEXTURE4
#define D3DTRANSFORMSTATE_TEXTURE5 D3DTS_TEXTURE5
#define D3DTRANSFORMSTATE_TEXTURE6 D3DTS_TEXTURE6
#define D3DTRANSFORMSTATE_TEXTURE7 D3DTS_TEXTURE7
#define D3DTRANSFORMSTATE_VIEW D3DTS_VIEW
#define D3DTRANSFORMSTATE_WORLD D3DTS_WORLD
#define D3DTRANSFORMSTATE_WORLD1 D3DTS_WORLD1
#define D3DTRANSFORMSTATE_WORLD2 D3DTS_WORLD2
#define D3DTRANSFORMSTATE_WORLD3 D3DTS_WORLD3
#define D3DRENDERSTATE_ALPHABLENDENABLE D3DRS_ALPHABLENDENABLE
#define D3DRENDERSTATE_ALPHAFUNC D3DRS_ALPHAFUNC
#define D3DRENDERSTATE_ALPHAREF D3DRS_ALPHAREF
#define D3DRENDERSTATE_ALPHATESTENABLE D3DRS_ALPHATESTENABLE
#define D3DRENDERSTATE_AMBIENT D3DRS_AMBIENT
#define D3DRENDERSTATE_AMBIENTMATERIALSOURCE D3DRS_AMBIENTMATERIALSOURCE
#define D3DRENDERSTATE_CLIPPING D3DRS_CLIPPING
#define D3DRENDERSTATE_CLIPPLANEENABLE D3DRS_CLIPPLANEENABLE
#define D3DRENDERSTATE_COLORVERTEX D3DRS_COLORVERTEX
#define D3DRENDERSTATE_CULLMODE D3DRS_CULLMODE
#define D3DRENDERSTATE_DESTBLEND D3DRS_DESTBLEND
#define D3DRENDERSTATE_DIFFUSEMATERIALSOURCE D3DRS_DIFFUSEMATERIALSOURCE
#define D3DRENDERSTATE_DITHERENABLE D3DRS_DITHERENABLE
#define D3DRENDERSTATE_EDGEANTIALIAS D3DRS_EDGEANTIALIAS
#define D3DRENDERSTATE_EMISSIVEMATERIALSOURCE D3DRS_EMISSIVEMATERIALSOURCE
#define D3DRENDERSTATE_EXTENTS D3DRS_EXTENTS
#define D3DRENDERSTATE_FILLMODE D3DRS_FILLMODE
#define D3DRENDERSTATE_FOGCOLOR D3DRS_FOGCOLOR
#define D3DRENDERSTATE_FOGDENSITY D3DRS_FOGDENSITY
#define D3DRENDERSTATE_FOGENABLE D3DRS_FOGENABLE
#define D3DRENDERSTATE_FOGEND D3DRS_FOGEND
#define D3DRENDERSTATE_FOGSTART D3DRS_FOGSTART
#define D3DRENDERSTATE_FOGTABLEMODE D3DRS_FOGTABLEMODE
#define D3DRENDERSTATE_FOGVERTEXMODE D3DRS_FOGVERTEXMODE
#define D3DRENDERSTATE_LASTPIXEL D3DRS_LASTPIXEL
#define D3DRENDERSTATE_LIGHTING D3DRS_LIGHTING
#define D3DRENDERSTATE_LINEPATTERN D3DRS_LINEPATTERN
#define D3DRENDERSTATE_LOCALVIEWER D3DRS_LOCALVIEWER
#define D3DRENDERSTATE_NORMALIZENORMALS D3DRS_NORMALIZENORMALS
#define D3DRENDERSTATE_RANGEFOGENABLE D3DRS_RANGEFOGENABLE
#define D3DRENDERSTATE_SHADEMODE D3DRS_SHADEMODE
#define D3DRENDERSTATE_SPECULARENABLE D3DRS_SPECULARENABLE
#define D3DRENDERSTATE_SPECULARMATERIALSOURCE D3DRS_SPECULARMATERIALSOURCE
#define D3DRENDERSTATE_SRCBLEND D3DRS_SRCBLEND
#define D3DRENDERSTATE_STENCILENABLE D3DRS_STENCILENABLE
#define D3DRENDERSTATE_STENCILFAIL D3DRS_STENCILFAIL
#define D3DRENDERSTATE_STENCILFUNC D3DRS_STENCILFUNC
#define D3DRENDERSTATE_STENCILMASK D3DRS_STENCILMASK
#define D3DRENDERSTATE_STENCILPASS D3DRS_STENCILPASS
#define D3DRENDERSTATE_STENCILREF D3DRS_STENCILREF
#define D3DRENDERSTATE_STENCILZFAIL D3DRS_STENCILZFAIL
#define D3DRENDERSTATE_STENCILWRITEMASK D3DRS_STENCILWRITEMASK
#define D3DRENDERSTATE_TEXTUREFACTOR D3DRS_TEXTUREFACTOR
#define D3DRENDERSTATE_VERTEXBLEND D3DRS_VERTEXBLEND
#define D3DRENDERSTATE_WRAP0 D3DRS_WRAP0
#define D3DRENDERSTATE_WRAP1 D3DRS_WRAP1
#define D3DRENDERSTATE_WRAP2 D3DRS_WRAP2
#define D3DRENDERSTATE_WRAP3 D3DRS_WRAP3
#define D3DRENDERSTATE_WRAP4 D3DRS_WRAP4
#define D3DRENDERSTATE_WRAP5 D3DRS_WRAP5
#define D3DRENDERSTATE_WRAP6 D3DRS_WRAP6
#define D3DRENDERSTATE_WRAP7 D3DRS_WRAP7
#define D3DRENDERSTATE_ZBIAS D3DRS_ZBIAS
#define D3DRENDERSTATE_ZENABLE D3DRS_ZENABLE
#define D3DRENDERSTATE_ZFUNC D3DRS_ZFUNC
#define D3DRENDERSTATE_ZVISIBLE D3DRS_ZVISIBLE
#define D3DRENDERSTATE_ZWRITEENABLE D3DRS_ZWRITEENABLE
#define _DX7TODX8_H_
#endif

93
include/dxsdk/dxdiag.h Normal file
View file

@ -0,0 +1,93 @@
#ifndef _DXDIAG_H_
#define _DXDIAG_H_
#include <ole2.h>
#define DXDIAG_DX9_SDK_VERSION 111
#ifdef __cplusplus
extern "C" {
#endif
DEFINE_GUID(CLSID_DxDiagProvider, 0xA65B8071, 0x3BFE, 0x4213, 0x9A, 0x5B, 0x49, 0x1D, 0xA4, 0x46, 0x1C, 0xA7);
DEFINE_GUID(IID_IDxDiagProvider, 0x9C6B4CB0, 0x23F8, 0x49CC, 0xA3, 0xED, 0x45, 0xA5, 0x50, 0x00, 0xA6, 0xD2);
DEFINE_GUID(IID_IDxDiagContainer, 0x7D0F462F, 0x4064, 0x4862, 0xBC, 0x7F, 0x93, 0x3E, 0x50, 0x58, 0xC1, 0x0F);
typedef struct _DXDIAG_INIT_PARAMS
{
DWORD dwSize;
DWORD dwDxDiagHeaderVersion;
BOOL bAllowWHQLChecks;
VOID* pReserved;
} DXDIAG_INIT_PARAMS;
typedef struct IDxDiagContainer *LPDXDIAGCONTAINER, *PDXDIAGCONTAINER;
#undef INTERFACE
#define INTERFACE IDxDiagContainer
DECLARE_INTERFACE_(IDxDiagContainer,IUnknown)
{
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(GetNumberOfChildContainers) (THIS_ DWORD *pdwCount) PURE;
STDMETHOD(EnumChildContainerNames) (THIS_ DWORD dwIndex, LPWSTR pwszContainer, DWORD cchContainer) PURE;
STDMETHOD(GetChildContainer) (THIS_ LPCWSTR pwszContainer, IDxDiagContainer **ppInstance) PURE;
STDMETHOD(GetNumberOfProps) (THIS_ DWORD *pdwCount) PURE;
STDMETHOD(EnumPropNames) (THIS_ DWORD dwIndex, LPWSTR pwszPropName, DWORD cchPropName) PURE;
STDMETHOD(GetProp) (THIS_ LPCWSTR pwszPropName, VARIANT *pvarProp) PURE;
};
typedef struct IDxDiagProvider *LPDXDIAGPROVIDER, *PDXDIAGPROVIDER;
#undef INTERFACE
#define INTERFACE IDxDiagProvider
DECLARE_INTERFACE_(IDxDiagProvider,IUnknown)
{
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(Initialize) (THIS_ DXDIAG_INIT_PARAMS* pParams) PURE;
STDMETHOD(GetRootContainer) (THIS_ IDxDiagContainer **ppInstance) PURE;
};
#define DXDIAG_E_INSUFFICIENT_BUFFER ((HRESULT)0x8007007AL)
#if !defined(__cplusplus) || defined(CINTERFACE)
#define IDxDiagProvider_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDxDiagProvider_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDxDiagProvider_Release(p) (p)->lpVtbl->Release(p)
#define IDxDiagProvider_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
#define IDxDiagProvider_GetRootContainer(p,a) (p)->lpVtbl->GetRootContainer(p,a)
#define IDxDiagContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IDxDiagContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDxDiagContainer_Release(p) (p)->lpVtbl->Release(p)
#define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->lpVtbl->GetNumberOfChildContainers(p,a)
#define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->lpVtbl->EnumChildContainerNames(p,a,b,c)
#define IDxDiagContainer_GetChildContainer(p,a,b) (p)->lpVtbl->GetChildContainer(p,a,b)
#define IDxDiagContainer_GetNumberOfProps(p,a) (p)->lpVtbl->GetNumberOfProps(p,a)
#define IDxDiagContainer_EnumProps(p,a,b) (p)->lpVtbl->EnumProps(p,a,b,c)
#define IDxDiagContainer_GetProp(p,a,b) (p)->lpVtbl->GetProp(p,a,b)
#else
#define IDxDiagProvider_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b)
#define IDxDiagProvider_AddRef(p) (p)->AddRef(p)
#define IDxDiagProvider_Release(p) (p)->Release(p)
#define IDxDiagProvider_Initialize(p,a,b) (p)->Initialize(p,a,b)
#define IDxDiagProvider_GetRootContainer(p,a) (p)->GetRootContainer(p,a)
#define IDxDiagContainer_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b)
#define IDxDiagContainer_AddRef(p) (p)->AddRef(p)
#define IDxDiagContainer_Release(p) (p)->Release(p)
#define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->GetNumberOfChildContainers(p,a)
#define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->EnumChildContainerNames(p,a,b,c)
#define IDxDiagContainer_GetChildContainer(p,a,b) (p)->GetChildContainer(p,a,b)
#define IDxDiagContainer_GetNumberOfProps(p,a) (p)->GetNumberOfProps(p,a)
#define IDxDiagContainer_EnumProps(p,a,b) (p)->EnumProps(p,a,b,c)
#define IDxDiagContainer_GetProp(p,a,b) (p)->GetProp(p,a,b)
#endif
#ifdef __cplusplus
}
#endif
#endif

45
include/dxsdk/dxerr8.h Normal file
View file

@ -0,0 +1,45 @@
#ifndef _DXERR8_H_
#define _DXERR8_H_
#ifdef __cplusplus
extern "C" {
#endif
const char* WINAPI DXGetErrorString8A(HRESULT hr);
const char* WINAPI DXGetErrorDescription8A(HRESULT hr);
HRESULT WINAPI DXTraceA( const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, BOOL bPopMsgBox );
const WCHAR* WINAPI DXGetErrorString8W(HRESULT hr);
const WCHAR* WINAPI DXGetErrorDescription8W(HRESULT hr);
HRESULT WINAPI DXTraceW( const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, BOOL bPopMsgBox );
#ifdef UNICODE
#define DXGetErrorString8 DXGetErrorString8W
#define DXGetErrorDescription8 DXGetErrorDescription8W
#define DXTrace DXTraceW
#else
#define DXGetErrorString8 DXGetErrorString8A
#define DXGetErrorDescription8 DXGetErrorDescription8A
#define DXTrace DXTraceA
#endif
#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 )
#else
#define DXTRACE_MSG(str) (0L)
#define DXTRACE_ERR(str,hr) (hr)
#define DXTRACE_ERR_NOMSGBOX(str,hr) (hr)
#endif
#ifdef __cplusplus
}
#endif
#endif

44
include/dxsdk/dxerr9.h Normal file
View file

@ -0,0 +1,44 @@
#ifndef _DXERR9_H_
#define _DXERR9_H_
#ifdef __cplusplus
extern "C" {
#endif
const char* WINAPI DXGetErrorString9A(HRESULT hr);
const char* WINAPI DXGetErrorDescription9A(HRESULT hr);
HRESULT WINAPI DXTraceA( const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, BOOL bPopMsgBox );
const WCHAR* WINAPI DXGetErrorString9W(HRESULT hr);
const WCHAR* WINAPI DXGetErrorDescription9W(HRESULT hr);
HRESULT WINAPI DXTraceW( const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, BOOL bPopMsgBox );
#ifdef UNICODE
#define DXGetErrorString9 DXGetErrorString9W
#define DXGetErrorDescription9 DXGetErrorDescription9W
#define DXTrace DXTraceW
#else
#define DXGetErrorString9 DXGetErrorString9A
#define DXGetErrorDescription9 DXGetErrorDescription9A
#define DXTrace DXTraceA
#endif
#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, FALSE )
#define DXTRACE_ERR_MSGBOX(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, TRUE )
#else
#define DXTRACE_MSG(str) (0L)
#define DXTRACE_ERR(str,hr) (hr)
#define DXTRACE_ERR_MSGBOX(str,hr) (hr)
#endif
#ifdef __cplusplus
}
#endif
#endif

180
include/dxsdk/dxfile.h Normal file
View file

@ -0,0 +1,180 @@
#ifndef __DXFILE_H__
#define __DXFILE_H__
#ifdef __cplusplus
extern "C" {
#endif
typedef DWORD DXFILEFORMAT;
typedef DWORD DXFILELOADOPTIONS;
DEFINE_GUID(IID_IDirectXFile, 0x3D82AB40, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(IID_IDirectXFileEnumObject, 0x3D82AB41, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(IID_IDirectXFileSaveObject, 0x3D82AB42, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(IID_IDirectXFileObject, 0x3D82AB43, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(IID_IDirectXFileData, 0x3D82AB44, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(IID_IDirectXFileDataReference, 0x3D82AB45, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(IID_IDirectXFileBinary, 0x3D82AB46, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_DXFILEHeader, 0x3D82AB43, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(CLSID_CDirectXFile, 0x4516EC43, 0x8F20, 0x11D0, 0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3);
#ifndef WIN_TYPES
#define WIN_TYPES(itype, ptype) typedef interface itype *LP##ptype, **LPLP##ptype
#endif
#define DXFILEFORMAT_BINARY 0
#define DXFILEFORMAT_TEXT 1
#define DXFILEFORMAT_COMPRESSED 2
#define DXFILELOAD_FROMFILE 0x00L
#define DXFILELOAD_FROMRESOURCE 0x01L
#define DXFILELOAD_FROMMEMORY 0x02L
#define DXFILELOAD_FROMSTREAM 0x04L
#define DXFILELOAD_FROMURL 0x08L
#define _FACDD 0x876
#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code )
#define DXFILE_OK 0
#define DXFILEERR_BADOBJECT MAKE_DDHRESULT(850)
#define DXFILEERR_BADVALUE MAKE_DDHRESULT(851)
#define DXFILEERR_BADTYPE MAKE_DDHRESULT(852)
#define DXFILEERR_BADSTREAMHANDLE MAKE_DDHRESULT(853)
#define DXFILEERR_BADALLOC MAKE_DDHRESULT(854)
#define DXFILEERR_NOTFOUND MAKE_DDHRESULT(855)
#define DXFILEERR_NOTDONEYET MAKE_DDHRESULT(856)
#define DXFILEERR_FILENOTFOUND MAKE_DDHRESULT(857)
#define DXFILEERR_RESOURCENOTFOUND MAKE_DDHRESULT(858)
#define DXFILEERR_URLNOTFOUND MAKE_DDHRESULT(859)
#define DXFILEERR_BADRESOURCE MAKE_DDHRESULT(860)
#define DXFILEERR_BADFILETYPE MAKE_DDHRESULT(861)
#define DXFILEERR_BADFILEVERSION MAKE_DDHRESULT(862)
#define DXFILEERR_BADFILEFLOATSIZE MAKE_DDHRESULT(863)
#define DXFILEERR_BADFILECOMPRESSIONTYPE MAKE_DDHRESULT(864)
#define DXFILEERR_BADFILE MAKE_DDHRESULT(865)
#define DXFILEERR_PARSEERROR MAKE_DDHRESULT(866)
#define DXFILEERR_NOTEMPLATE MAKE_DDHRESULT(867)
#define DXFILEERR_BADARRAYSIZE MAKE_DDHRESULT(868)
#define DXFILEERR_BADDATAREFERENCE MAKE_DDHRESULT(869)
#define DXFILEERR_INTERNALERROR MAKE_DDHRESULT(870)
#define DXFILEERR_NOMOREOBJECTS MAKE_DDHRESULT(871)
#define DXFILEERR_BADINTRINSICS MAKE_DDHRESULT(872)
#define DXFILEERR_NOMORESTREAMHANDLES MAKE_DDHRESULT(873)
#define DXFILEERR_NOMOREDATA MAKE_DDHRESULT(874)
#define DXFILEERR_BADCACHEFILE MAKE_DDHRESULT(875)
#define DXFILEERR_NOINTERNET MAKE_DDHRESULT(876)
WIN_TYPES(IDirectXFile, DIRECTXFILE);
WIN_TYPES(IDirectXFileEnumObject, DIRECTXFILEENUMOBJECT);
WIN_TYPES(IDirectXFileSaveObject, DIRECTXFILESAVEOBJECT);
WIN_TYPES(IDirectXFileObject, DIRECTXFILEOBJECT);
WIN_TYPES(IDirectXFileData, DIRECTXFILEDATA);
WIN_TYPES(IDirectXFileDataReference, DIRECTXFILEDATAREFERENCE);
WIN_TYPES(IDirectXFileBinary, DIRECTXFILEBINARY);
typedef struct _DXFILELOADRESOURCE
{
HMODULE hModule;
LPCTSTR lpName;
LPCTSTR lpType;
}DXFILELOADRESOURCE, *LPDXFILELOADRESOURCE;
typedef struct _DXFILELOADMEMORY
{
LPVOID lpMemory;
DWORD dSize;
}DXFILELOADMEMORY, *LPDXFILELOADMEMORY;
STDAPI DirectXFileCreate(LPDIRECTXFILE *lplpDirectXFile);
#define IDIRECTXFILEOBJECT_METHODS(kind) \
STDMETHOD(GetName) (THIS_ LPSTR, LPDWORD) kind; \
STDMETHOD(GetId) (THIS_ LPGUID) kind
#define IUNKNOWN_METHODS(kind) \
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) kind; \
STDMETHOD_(ULONG, AddRef) (THIS) kind; \
STDMETHOD_(ULONG, Release) (THIS) kind
#undef INTERFACE
#define INTERFACE IDirectXFile
DECLARE_INTERFACE_(IDirectXFile, IUnknown)
{
IUNKNOWN_METHODS(PURE);
STDMETHOD(CreateEnumObject) (THIS_ LPVOID, DXFILELOADOPTIONS, LPDIRECTXFILEENUMOBJECT *) PURE;
STDMETHOD(CreateSaveObject) (THIS_ LPCSTR, DXFILEFORMAT, LPDIRECTXFILESAVEOBJECT *) PURE;
STDMETHOD(RegisterTemplates) (THIS_ LPVOID, DWORD) PURE;
};
#undef INTERFACE
#define INTERFACE IDirectXFileEnumObject
DECLARE_INTERFACE_(IDirectXFileEnumObject, IUnknown)
{
IUNKNOWN_METHODS(PURE);
STDMETHOD(GetNextDataObject) (THIS_ LPDIRECTXFILEDATA *) PURE;
STDMETHOD(GetDataObjectById) (THIS_ REFGUID, LPDIRECTXFILEDATA *) PURE;
STDMETHOD(GetDataObjectByName) (THIS_ LPCSTR, LPDIRECTXFILEDATA *) PURE;
};
#undef INTERFACE
#define INTERFACE IDirectXFileSaveObject
DECLARE_INTERFACE_(IDirectXFileSaveObject, IUnknown)
{
IUNKNOWN_METHODS(PURE);
STDMETHOD(SaveTemplates) (THIS_ DWORD, const GUID **) PURE;
STDMETHOD(CreateDataObject) (THIS_ REFGUID, LPCSTR, const GUID *,
DWORD, LPVOID, LPDIRECTXFILEDATA *) PURE;
STDMETHOD(SaveData) (THIS_ LPDIRECTXFILEDATA) PURE;
};
#undef INTERFACE
#define INTERFACE IDirectXFileObject
DECLARE_INTERFACE_(IDirectXFileObject, IUnknown)
{
IUNKNOWN_METHODS(PURE);
IDIRECTXFILEOBJECT_METHODS(PURE);
};
#undef INTERFACE
#define INTERFACE IDirectXFileData
DECLARE_INTERFACE_(IDirectXFileData, IDirectXFileObject)
{
IUNKNOWN_METHODS(PURE);
IDIRECTXFILEOBJECT_METHODS(PURE);
STDMETHOD(GetData) (THIS_ LPCSTR, DWORD *, void **) PURE;
STDMETHOD(GetType) (THIS_ const GUID **) PURE;
STDMETHOD(GetNextObject) (THIS_ LPDIRECTXFILEOBJECT *) PURE;
STDMETHOD(AddDataObject) (THIS_ LPDIRECTXFILEDATA) PURE;
STDMETHOD(AddDataReference) (THIS_ LPCSTR, const GUID *) PURE;
STDMETHOD(AddBinaryObject) (THIS_ LPCSTR, const GUID *, LPCSTR, LPVOID, DWORD) PURE;
};
#undef INTERFACE
#define INTERFACE IDirectXFileDataReference
DECLARE_INTERFACE_(IDirectXFileDataReference, IDirectXFileObject)
{
IUNKNOWN_METHODS(PURE);
IDIRECTXFILEOBJECT_METHODS(PURE);
STDMETHOD(Resolve) (THIS_ LPDIRECTXFILEDATA *) PURE;
};
#undef INTERFACE
#define INTERFACE IDirectXFileBinary
DECLARE_INTERFACE_(IDirectXFileBinary, IDirectXFileObject)
{
IUNKNOWN_METHODS(PURE);
IDIRECTXFILEOBJECT_METHODS(PURE);
STDMETHOD(GetSize) (THIS_ DWORD *) PURE;
STDMETHOD(GetMimeType) (THIS_ LPCSTR *) PURE;
STDMETHOD(Read) (THIS_ LPVOID, DWORD, LPDWORD) PURE;
};
#ifdef __cplusplus
};
#endif
#endif

View file

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../tools/rbuild/project.dtd">
<module name="dxsdk" type="idlheader">
<file>amstream.idl</file>
<file>austream.idl</file>
<file>ddstream.idl</file>
<file>dmodshow.idl</file>
<file>dyngraph.idl</file>
<file>mixerocx.idl</file>
<file>mediaobj.idl</file>
<file>medparam.idl</file>
<file>mmstream.idl</file>
<file>regbag.idl</file>
<file>tvratings.idl</file>
<file>vidcap.idl</file>
<file>Videoacc.idl</file>
<file>Vmrender.idl</file>
<file>strmif.idl</file>
<file>dvdif.idl</file>
<file>devenum.idl</file>
</module>

10
include/dxsdk/dxsdkver.h Normal file
View file

@ -0,0 +1,10 @@
#ifndef _DXSDKVER_H_
#define _DXSDKVER_H_
#define _DXSDK_PRODUCT_MAJOR 9
#define _DXSDK_PRODUCT_MINOR 04
#define _DXSDK_BUILD_MAJOR 91
#define _DXSDK_BUILD_MINOR 0000
#endif

116
include/dxsdk/dyngraph.idl Normal file
View file

@ -0,0 +1,116 @@
cpp_quote("#if 0")
import "unknwn.idl";
typedef int IBaseFilter ;
typedef int IEnumFilters;
typedef int IPin;
typedef int REFERENCE_TIME;
typedef int AM_MEDIA_TYPE;
cpp_quote("#endif")
interface IPinConnection;
interface IPinFlowControl;
interface IGraphConfig;
interface IGraphConfigCallback;
enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS
{
AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001,
};
typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS
{
AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001,
AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002,
AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004
} AM_GRAPH_CONFIG_RECONNECT_FLAGS;
enum _REM_FILTER_FLAGS
{
REMFILTERF_LEAVECONNECTED = 0x00000001
};
typedef enum _AM_FILTER_FLAGS
{
AM_FILTER_FLAGS_REMOVABLE = 0x00000001
} AM_FILTER_FLAGS;
[
local,
object,
uuid(4a9a62d3-27d4-403d-91e9-89f540e55534),
pointer_default(unique)
]
interface IPinConnection : IUnknown
{
HRESULT DynamicQueryAccept([in] const AM_MEDIA_TYPE *pmt);
HRESULT NotifyEndOfStream([in] HANDLE hNotifyEvent);
HRESULT IsEndPin();
HRESULT DynamicDisconnect();
};
[
local,
object,
uuid(c56e9858-dbf3-4f6b-8119-384af2060deb),
pointer_default(unique)
]
interface IPinFlowControl : IUnknown
{
HRESULT Block([in] DWORD dwBlockFlags, [in] HANDLE hEvent);
}
[
local,
object,
uuid(03A1EB8E-32BF-4245-8502-114D08A9CB88),
pointer_default(unique)
]
interface IGraphConfig : IUnknown
{
HRESULT Reconnect([in] IPin *pOutputPin, [in] IPin *pInputPin, [in] const AM_MEDIA_TYPE *pmtFirstConnection, IBaseFilter *pUsingFilter, [in] HANDLE hAbortEvent, [in] DWORD dwFlags);
HRESULT Reconfigure([in] IGraphConfigCallback *pCallback, [in] PVOID pvContext, [in] DWORD dwFlags, [in] HANDLE hAbortEvent);
HRESULT AddFilterToCache([in] IBaseFilter *pFilter);
HRESULT EnumCacheFilter([out] IEnumFilters **pEnum);
HRESULT RemoveFilterFromCache([in]IBaseFilter *pFilter);
HRESULT GetStartTime([out] REFERENCE_TIME *prtStart);
HRESULT PushThroughData([in] IPin *pOutputPin, [in] IPinConnection *pConnection, [in] HANDLE hEventAbort);
HRESULT SetFilterFlags([in] IBaseFilter *pFilter, [in] DWORD dwFlags);
HRESULT GetFilterFlags([in] IBaseFilter *pFilter, [out] DWORD *pdwFlags);
HRESULT RemoveFilterEx( [in] IBaseFilter *pFilter, DWORD Flags );
}
[
local,
object,
uuid(ade0fd60-d19d-11d2-abf6-00a0c905f375),
pointer_default(unique)
]
interface IGraphConfigCallback : IUnknown
{
HRESULT Reconfigure(PVOID pvContext, DWORD dwFlags);
}
[
local,
object,
uuid(DCFBDCF6-0DC2-45f5-9AB2-7C330EA09C29),
pointer_default(unique)
]
interface IFilterChain : IUnknown
{
HRESULT StartChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
HRESULT PauseChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
HRESULT StopChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
HRESULT RemoveChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
}

38
include/dxsdk/errors.h Normal file
View file

@ -0,0 +1,38 @@
#ifndef __ERRORS__
#define __ERRORS__
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _AMOVIE_
#define AMOVIEAPI DECLSPEC_IMPORT
#else
#define AMOVIEAPI
#endif
#define VFW_FIRST_CODE 0x200
#define MAX_ERROR_TEXT_LEN 160
#include <vfwmsgs.h>
typedef BOOL (WINAPI* AMGETERRORTEXTPROCA)(HRESULT, char *, DWORD);
typedef BOOL (WINAPI* AMGETERRORTEXTPROCW)(HRESULT, WCHAR *, DWORD);
AMOVIEAPI DWORD WINAPI AMGetErrorTextA( HRESULT hr , char *pbuffer , DWORD MaxLen);
AMOVIEAPI DWORD WINAPI AMGetErrorTextW( HRESULT hr , WCHAR *pbuffer , DWORD MaxLen);
#ifdef UNICODE
#define AMGetErrorText AMGetErrorTextW
typedef AMGETERRORTEXTPROCW AMGETERRORTEXTPROC;
#else
#define AMGetErrorText AMGetErrorTextA
typedef AMGETERRORTEXTPROCA AMGETERRORTEXTPROC;
#endif
#ifdef __cplusplus
}
#endif
#endif

62
include/dxsdk/evcode.h Normal file
View file

@ -0,0 +1,62 @@
#ifndef AM_WMT_EVENT_DATA_DEFINED
#define AM_WMT_EVENT_DATA_DEFINED
typedef struct
{
HRESULT hrStatus;
void * pData;
} AM_WMT_EVENT_DATA;
#endif
#define EC_ACTIVATE 0x13
#define EC_BUFFERING_DATA 0x11
#define EC_BUILT 0x300
#define EC_CLOCK_CHANGED 0x0D
#define EC_CLOCK_UNSET 0x51
#define EC_COMPLETE 0x01
#define EC_CODECAPI_EVENT 0x57
#define EC_DISPLAY_CHANGED 0x16
#define EC_DEVICE_LOST 0x1f
#define EC_ERROR_STILLPLAYING 0x08
#define EC_ERRORABORT 0x03
#define EC_END_OF_SEGMENT 0x1C
#define EC_EXTDEVICE_MODE_CHANGE 0x31
#define EC_FULLSCREEN_LOST 0x12
#define EC_GRAPH_CHANGED 0x50
#define EC_LENGTH_CHANGED 0x1E
#define EC_NOTIFY_WINDOW 0x19
#define EC_NEED_RESTART 0x14
#define EC_OLE_EVENT 0x18
#define EC_PAUSED 0x0E
#define EC_PALETTE_CHANGED 0x09
#define EC_PREPROCESS_COMPLETE 0x56
#define EC_OPENING_FILE 0x10
#define EC_QUALITY_CHANGE 0x0B
#define EC_REPAINT 0x05
#define EC_STREAM_ERROR_STOPPED 0x06
#define EC_STREAM_ERROR_STILLPLAYING 0x07
#define EC_SYSTEMBASE 0x00
#define EC_SHUTTING_DOWN 0x0C
#define EC_STEP_COMPLETE 0x24
#define EC_STREAM_CONTROL_STOPPED 0x1A
#define EC_STREAM_CONTROL_STARTED 0x1B
#define EC_SEGMENT_STARTED 0x1D
#define EC_STARVATION 0x17
#define EC_STATE_CHANGE 0x32
#define EC_TIME 0x04
#define EC_TIMECODE_AVAILABLE 0x30
#define EC_USER 0x8000
#define EC_USERABORT 0x02
#define EC_UNBUILT 0x301
#define EC_VMR_SURFACE_FLIPPED 0x54
#define EC_VMR_RENDERDEVICE_SET 0x53
#define EC_VMR_RECONNECTION_FAILED 0x55
#define EC_VIDEO_SIZE_CHANGED 0x0A
#define EC_WINDOW_DESTROYED 0x15
#define EC_WMT_EVENT_BASE 0x0251
#define EC_WMT_INDEX_EVENT EC_WMT_EVENT_BASE
#define EC_WMT_EVENT EC_WMT_EVENT_BASE+1
#define VMR_RENDER_DEVICE_OVERLAY 0x01
#define VMR_RENDER_DEVICE_VIDMEM 0x02
#define VMR_RENDER_DEVICE_SYSMEM 0x04

68
include/dxsdk/il21dec.h Normal file
View file

@ -0,0 +1,68 @@
#ifndef __IL21DEC__
#define __IL21DEC__
typedef enum _AM_LINE21_CCSTYLE
{
AM_L21_CCSTYLE_None = 0,
AM_L21_CCSTYLE_PopOn,
AM_L21_CCSTYLE_PaintOn,
AM_L21_CCSTYLE_RollUp
} AM_LINE21_CCSTYLE, *PAM_LINE21_CCSTYLE;
typedef enum _AM_LINE21_CCSERVICE
{
AM_L21_CCSERVICE_None = 0,
AM_L21_CCSERVICE_Caption1,
AM_L21_CCSERVICE_Caption2,
AM_L21_CCSERVICE_Text1,
AM_L21_CCSERVICE_Text2,
AM_L21_CCSERVICE_XDS,
AM_L21_CCSERVICE_DefChannel = 10,
AM_L21_CCSERVICE_Invalid
} AM_LINE21_CCSERVICE, *PAM_LINE21_CCSERVICE;
typedef enum _AM_LINE21_DRAWBGMODE
{
AM_L21_DRAWBGMODE_Opaque,
AM_L21_DRAWBGMODE_Transparent
} AM_LINE21_DRAWBGMODE, *PAM_LINE21_DRAWBGMODE;
typedef enum _AM_LINE21_CCSTATE
{
AM_L21_CCSTATE_Off = 0,
AM_L21_CCSTATE_On
} AM_LINE21_CCSTATE, *PAM_LINE21_CCSTATE;
typedef enum _AM_LINE21_CCLEVEL
{
AM_L21_CCLEVEL_TC2 = 0
} AM_LINE21_CCLEVEL, *PAM_LINE21_CCLEVEL;
#ifdef __cplusplus
extern "C" {
#endif
DECLARE_INTERFACE_(IAMLine21Decoder, IUnknown)
{
public:
STDMETHOD(GetDecoderLevel)(THIS_ AM_LINE21_CCLEVEL *lpLevel) PURE;
STDMETHOD(GetCurrentService)(THIS_ AM_LINE21_CCSERVICE *lpService) PURE;
STDMETHOD(SetCurrentService)(THIS_ AM_LINE21_CCSERVICE Service) PURE;
STDMETHOD(GetServiceState)(THIS_ AM_LINE21_CCSTATE *lpState) PURE;
STDMETHOD(SetServiceState)(THIS_ AM_LINE21_CCSTATE State) PURE;
STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE;
STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE;
STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE;
STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE;
STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE;
STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE;
STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE *lpMode) PURE;
STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE Mode) PURE;
} ;
#ifdef __cplusplus
}
#endif
#endif

18
include/dxsdk/ksguid.h Normal file
View file

@ -0,0 +1,18 @@
#define INITGUID
#include <guiddef.h>
#ifndef STATICGUIDOF
#define STATICGUIDOF(guid) STATIC_##guid
#endif
#if !defined( DEFINE_WAVEFORMATEX_GUID )
#define DEFINE_WAVEFORMATEX_GUID(x) (USHORT)(x), 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
#endif
#if defined( DEFINE_GUIDEX )
#undef DEFINE_GUIDEX
#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID __declspec(selectany) name = { STATICGUIDOF(name) }
#else
#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID __declspec(selectany) name = { STATICGUIDOF(name) }
#endif

50
include/dxsdk/ksuuids.h Normal file
View file

@ -0,0 +1,50 @@
#ifndef __KSUUIDS__
#define __KSUUIDS__
OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_PROVIDER,0xE06D8031, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(FORMAT_MPEG2Video,0xE06D80e3, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(FORMAT_DolbyAC3,0xE06D80e4, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(AM_KSPROPSETID_DVD_RateChange,0x3577EB09, 0x9582, 0x477F, 0xB2, 0x9C, 0xB0, 0xC4, 0x52, 0xA4, 0xFF, 0x9A)
OUR_GUID_ENTRY(AM_KSPROPSETID_DvdKaraoke,0xAE4720AE, 0xAA71, 0x42D8, 0xB8, 0x2A, 0xFF, 0xFD, 0xF5, 0x8B, 0x76, 0xFD)
OUR_GUID_ENTRY(AM_KSPROPSETID_FrameStep,0xC830ACBD, 0xAB07, 0x492F, 0x88, 0x52, 0x45, 0xB6, 0x98, 0x7C, 0x29, 0x79)
OUR_GUID_ENTRY(AM_KSCATEGORY_CAPTURE,0x65E8773DL, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96)
OUR_GUID_ENTRY(AM_KSCATEGORY_VIDEO,0x6994AD05L, 0x93EF, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96)
OUR_GUID_ENTRY(AM_KSCATEGORY_TVTUNER,0xa799a800L, 0xA46D, 0x11D0, 0xA1, 0x8C, 0x00, 0xA0, 0x24, 0x01, 0xdc, 0xD4)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_LPCM_AUDIO,0xE06D8032, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_DSI,0xE06D8030, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_PROGRAM,0xE06D8022, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_TRANSPORT,0xE06D8023, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(MEDIASUBTYPE_DTS,0xE06D8033, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(MEDIASUBTYPE_SDDS,0xE06D8034, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(MEDIATYPE_DVD_ENCRYPTED_PACK,0xED0B916A, 0x044D, 0x11D1, 0xAA, 0x78, 0x00, 0xC0, 0x04F, 0xC3, 0x1D, 0x60)
OUR_GUID_ENTRY(MEDIATYPE_DVD_NAVIGATION,0xE06D802E, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_NAVIGATION_PCI,0xE06D802F, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_AUDIO,0xE06D802B, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(MEDIASUBTYPE_DOLBY_AC3,0xE06D802C, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(IID_IKsPin,0xb61178D1L, 0xA2D9, 0x11CF, 0x9E, 0x53, 0x00, 0xAA, 0x00, 0xA2, 0x16, 0xA1)
OUR_GUID_ENTRY(IID_IKsInterfaceHandler,0xD3ABC7E0L, 0x9A61, 0x11D0, 0xA4, 0x0D, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96)
OUR_GUID_ENTRY(IID_IKsDataTypeHandler,0x5FFBAA02L, 0x49A3, 0x11D0, 0x9F, 0x36, 0x00, 0xAA, 0x00, 0xA2, 0x16, 0xA1)
OUR_GUID_ENTRY(AM_KSCATEGORY_RENDER,0x65E8773EL, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96)
OUR_GUID_ENTRY(AM_KSCATEGORY_DATACOMPRESSOR,0x1E84C900L, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00)
OUR_GUID_ENTRY(AM_KSCATEGORY_AUDIO,0x6994AD04L, 0x93EF, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96)
OUR_GUID_ENTRY(FORMAT_MPEG2Audio,0xE06D80e5, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(FORMAT_DVD_LPCMAudio,0xE06D80E6, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(AM_KSPROPSETID_AC3,0xBFABE720, 0x6E1F, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00)
OUR_GUID_ENTRY(AM_KSPROPSETID_DvdSubPic,0xAC390460, 0x43AF, 0x11D0, 0xbd, 0x6A, 0x00, 0x35, 0x05, 0xc1, 0x03, 0xA9)
OUR_GUID_ENTRY(AM_KSPROPSETID_CopyProt,0x0E8A0A40, 0x6AEF, 0x11D0, 0x9E, 0xD0, 0x00, 0xA0, 0x24, 0xCA, 0x19, 0xB3)
OUR_GUID_ENTRY(AM_KSPROPSETID_TSRateChange,0xA503C5C0, 0x1D1D, 0x11D1, 0xAD, 0x80, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0)
OUR_GUID_ENTRY(IID_IKsPinFactory, 0xCD5EBE6BL, 0x8B6E, 0x11D1, 0x8A, 0xE0, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96)
OUR_GUID_ENTRY(MEDIATYPE_MPEG2_PACK,0x36523B13, 0x8EE5, 0x11D1, 0x8C, 0xA3, 0x00, 0x60, 0xB0, 0x57, 0x66, 0x4A)
OUR_GUID_ENTRY(MEDIATYPE_MPEG2_PES,0xE06D8020, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x5F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG2_VIDEO,0xE06D8026, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x5F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(FORMAT_MPEG2_VIDEO,0xE06D80e3, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x5F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(FORMAT_VIDEOINFO2,0xF72A76A0L, 0xEB0A, 0x11D0, 0xAC, 0xE4, 0x0, 0x0, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVD_SUBPICTURE,0xE06D802d, 0xDB46, 0x11CF, 0xB4, 0xD1, 0x00, 0x80, 0x05F, 0x6C, 0xBB, 0xEA)
OUR_GUID_ENTRY(AM_INTERFACESETID_Standard, 0x1A8766A0L, 0x62CE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00)
OUR_GUID_ENTRY(IID_IKsControl,0x28F54685L, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96)
OUR_GUID_ENTRY(AM_KSCATEGORY_CROSSBAR,0xa799a801L, 0xA46D, 0x11D0, 0xA1, 0x8C, 0x00, 0xA0, 0x24, 0x01, 0xdc, 0xD4)
OUR_GUID_ENTRY(AM_KSCATEGORY_TVAUDIO,0xa799a802L, 0xA46D, 0x11D0, 0xA1, 0x8C, 0x00, 0xA0, 0x24, 0x01, 0xdc, 0xD4)
OUR_GUID_ENTRY(AM_KSCATEGORY_VBICODEC,0x07dAD660L, 0x22F1, 0x11D1, 0xa9, 0xF4, 0x00, 0xc0, 0x4F, 0xBB, 0xDE, 0x8F)
OUR_GUID_ENTRY(AM_KSCATEGORY_SPLITTER,0x0A4252A0L, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00)
#endif

11
include/dxsdk/mediaerr.h Normal file
View file

@ -0,0 +1,11 @@
#ifndef _MEDIAERR_H_
#define _MEDIAERR_H_
#define DMO_E_INVALIDSTREAMINDEX 0x80040201
#define DMO_E_INVALIDTYPE 0x80040202
#define DMO_E_TYPE_NOT_SET 0x80040203
#define DMO_E_NOTACCEPTING 0x80040204
#define DMO_E_TYPE_NOT_ACCEPTED 0x80040205
#define DMO_E_NO_MORE_ITEMS 0x80040206
#endif _MEDIAERR_H_

189
include/dxsdk/mediaobj.idl Normal file
View file

@ -0,0 +1,189 @@
import "unknwn.idl";
import "objidl.idl";
cpp_quote("#ifdef __strmif_h__")
cpp_quote("typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;")
cpp_quote("#else")
typedef struct _DMOMediaType
{
GUID majortype;
GUID subtype;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
ULONG lSampleSize;
GUID formattype;
IUnknown *pUnk;
ULONG cbFormat;
[size_is(cbFormat)] BYTE * pbFormat;
} DMO_MEDIA_TYPE;
typedef LONGLONG REFERENCE_TIME;
cpp_quote("#endif")
enum _DMO_INPUT_DATA_BUFFER_FLAGS
{
DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001,
DMO_INPUT_DATA_BUFFERF_TIME = 0x00000002,
DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004
};
enum _DMO_OUTPUT_DATA_BUFFER_FLAGS
{
DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001,
DMO_OUTPUT_DATA_BUFFERF_TIME = 0x00000002,
DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004,
DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x01000000
};
enum _DMO_INPUT_STATUS_FLAGS
{
DMO_INPUT_STATUSF_ACCEPT_DATA = 0x00000001
};
enum _DMO_INPUT_STREAM_INFO_FLAGS
{
DMO_INPUT_STREAMF_WHOLE_SAMPLES = 0x00000001,
DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002,
DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004,
DMO_INPUT_STREAMF_HOLDS_BUFFERS = 0x00000008
};
enum _DMO_OUTPUT_STREAM_INFO_FLAGS
{
DMO_OUTPUT_STREAMF_WHOLE_SAMPLES = 0x00000001,
DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002,
DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004,
DMO_OUTPUT_STREAMF_DISCARDABLE = 0x00000008,
DMO_OUTPUT_STREAMF_OPTIONAL = 0x00000010
};
enum _DMO_SET_TYPE_FLAGS
{
DMO_SET_TYPEF_TEST_ONLY = 0x00000001,
DMO_SET_TYPEF_CLEAR = 0x00000002
};
enum _DMO_PROCESS_OUTPUT_FLAGS
{
DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001
};
enum _DMO_INPLACE_PROCESS_FLAGS
{
DMO_INPLACE_NORMAL = 0x00000000,
DMO_INPLACE_ZERO = 0x00000001
};
enum _DMO_QUALITY_STATUS_FLAGS
{
DMO_QUALITY_STATUS_ENABLED = 0x00000001
};
enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS
{
DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x00000001
};
[
object,
uuid(59eff8b9-938c-4a26-82f2-95cb84cdc837)
]
interface IMediaBuffer : IUnknown
{
HRESULT SetLength(DWORD cbLength);
HRESULT GetMaxLength([out] DWORD *pcbMaxLength);
HRESULT GetBufferAndLength([out] BYTE **ppBuffer, [out] DWORD *pcbLength);
}
typedef struct _DMO_OUTPUT_DATA_BUFFER
{
IMediaBuffer *pBuffer;
DWORD dwStatus;
REFERENCE_TIME rtTimestamp;
REFERENCE_TIME rtTimelength;
} DMO_OUTPUT_DATA_BUFFER, *PDMO_OUTPUT_DATA_BUFFER;
[
object,
uuid(d8ad0f58-5494-4102-97c5-ec798e59bcf4)
]
interface IMediaObject : IUnknown
{
HRESULT GetStreamCount([out] DWORD *pcInputStreams, [out] DWORD *pcOutputStreams);
HRESULT GetInputStreamInfo(DWORD dwInputStreamIndex, [out] DWORD *pdwFlags);
HRESULT GetOutputStreamInfo(DWORD dwOutputStreamIndex, [out] DWORD *pdwFlags);
HRESULT GetInputType(DWORD dwInputStreamIndex, DWORD dwTypeIndex, [out] DMO_MEDIA_TYPE *pmt);
HRESULT GetOutputType(DWORD dwOutputStreamIndex, DWORD dwTypeIndex, [out] DMO_MEDIA_TYPE *pmt);
HRESULT SetInputType(DWORD dwInputStreamIndex, [in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags);
HRESULT SetOutputType(DWORD dwOutputStreamIndex, [in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags);
HRESULT GetInputCurrentType(DWORD dwInputStreamIndex, [out] DMO_MEDIA_TYPE *pmt);
HRESULT GetOutputCurrentType(DWORD dwOutputStreamIndex, [out] DMO_MEDIA_TYPE *pmt);
HRESULT GetInputSizeInfo(DWORD dwInputStreamIndex, [out] DWORD *pcbSize, [out] DWORD *pcbMaxLookahead, [out] DWORD *pcbAlignment);
HRESULT GetOutputSizeInfo(DWORD dwOutputStreamIndex, [out] DWORD *pcbSize, [out] DWORD *pcbAlignment);
HRESULT GetInputMaxLatency(DWORD dwInputStreamIndex, [out] REFERENCE_TIME *prtMaxLatency);
HRESULT SetInputMaxLatency(DWORD dwInputStreamIndex, REFERENCE_TIME rtMaxLatency);
HRESULT Flush();
HRESULT Discontinuity(DWORD dwInputStreamIndex);
HRESULT AllocateStreamingResources();
HRESULT FreeStreamingResources();
HRESULT GetInputStatus(DWORD dwInputStreamIndex, [out] DWORD *dwFlags);
HRESULT ProcessInput(DWORD dwInputStreamIndex, IMediaBuffer *pBuffer, DWORD dwFlags, REFERENCE_TIME rtTimestamp, REFERENCE_TIME rtTimelength);
HRESULT ProcessOutput(DWORD dwFlags,DWORD cOutputBufferCount, [in,out,size_is(cOutputBufferCount)]
DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, [out] DWORD *pdwStatus);
HRESULT Lock(LONG bLock);
};
[
object,
uuid(2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f)
]
interface IEnumDMO : IUnknown
{
HRESULT Next(DWORD cItemsToFetch, [out, size_is(cItemsToFetch), length_is(*pcItemsFetched)] CLSID *pCLSID, [out, size_is(cItemsToFetch), length_is(*pcItemsFetched), string] WCHAR **Names, [out] DWORD *pcItemsFetched);
HRESULT Skip(DWORD cItemsToSkip);
HRESULT Reset(void);
HRESULT Clone([out] IEnumDMO **ppEnum);
}
[
object,
uuid(651b9ad0-0fc7-4aa9-9538-d89931010741)
]
interface IMediaObjectInPlace : IUnknown
{
HRESULT Process([in] ULONG ulSize, [in,out,size_is(ulSize)] BYTE* pData, [in] REFERENCE_TIME refTimeStart, [in] DWORD dwFlags);
HRESULT Clone([out] IMediaObjectInPlace **ppMediaObject);
HRESULT GetLatency([out] REFERENCE_TIME *pLatencyTime);
}
[
object,
uuid(65abea96-cf36-453f-af8a-705e98f16260)
]
interface IDMOQualityControl : IUnknown
{
HRESULT SetNow([in] REFERENCE_TIME rtNow);
HRESULT SetStatus([in] DWORD dwFlags);
HRESULT GetStatus([out] DWORD *pdwFlags);
}
[
object,
uuid(be8f4f4e-5b16-4d29-b350-7f6b5d9298ac)
]
interface IDMOVideoOutputOptimizations : IUnknown
{
HRESULT QueryOperationModePreferences (ULONG ulOutputStreamIndex, DWORD *pdwRequestedCapabilities);
HRESULT SetOperationMode (ULONG ulOutputStreamIndex, DWORD dwEnabledFeatures);
HRESULT GetCurrentOperationMode (ULONG ulOutputStreamIndex, DWORD *pdwEnabledFeatures);
HRESULT GetCurrentSampleRequirements (ULONG ulOutputStreamIndex, DWORD *pdwRequestedFeatures
);
}

107
include/dxsdk/medparam.idl Normal file
View file

@ -0,0 +1,107 @@
import "oaidl.idl";
import "ocidl.idl";
import "strmif.idl";
typedef float MP_DATA;
typedef enum _MP_Type
{
MPT_INT,
MPT_FLOAT,
MPT_BOOL,
MPT_ENUM,
MPT_MAX,
} MP_TYPE;
cpp_quote("const MP_DATA MPBOOL_TRUE = 1.0;")
cpp_quote("const MP_DATA MPBOOL_FALSE = 0.0;")
typedef enum _MP_CURVE_TYPE
{
MP_CURVE_JUMP = 0x0001,
MP_CURVE_LINEAR = 0x0002,
MP_CURVE_SQUARE = 0x0004,
MP_CURVE_INVSQUARE = 0x0008,
MP_CURVE_SINE = 0x0010,
} MP_CURVE_TYPE;
typedef DWORD MP_CAPS;
const MP_CAPS MP_CAPS_CURVE_JUMP = MP_CURVE_JUMP;
const MP_CAPS MP_CAPS_CURVE_LINEAR = MP_CURVE_LINEAR;
const MP_CAPS MP_CAPS_CURVE_SQUARE = MP_CURVE_SQUARE;
const MP_CAPS MP_CAPS_CURVE_INVSQUARE = MP_CURVE_INVSQUARE;
const MP_CAPS MP_CAPS_CURVE_SINE = MP_CURVE_SINE;
typedef struct _MP_PARAMINFO
{
MP_TYPE mpType;
MP_CAPS mopCaps;
MP_DATA mpdMinValue;
MP_DATA mpdMaxValue;
MP_DATA mpdNeutralValue;
WCHAR szUnitText[32];
WCHAR szLabel[32];
} MP_PARAMINFO;
typedef DWORD DWORD;
const DWORD DWORD_ALLPARAMS = -1;
typedef DWORD MP_TIMEDATA;
cpp_quote("DEFINE_GUID(GUID_TIME_REFERENCE, 0x93ad712b, 0xdaa0, 0x4ffe, 0xbc, 0x81, 0xb0, 0xce, 0x50, 0x0f, 0xcd, 0xd9);")
cpp_quote("DEFINE_GUID(GUID_TIME_MUSIC, 0x0574c49d, 0x5b04, 0x4b15, 0xa5, 0x42, 0xae, 0x28, 0x20, 0x30, 0x11, 0x7b);")
cpp_quote("DEFINE_GUID(GUID_TIME_SAMPLES, 0xa8593d05, 0x0c43, 0x4984, 0x9a, 0x63, 0x97, 0xaf, 0x9e, 0x02, 0xc4, 0xc0);")
typedef DWORD MP_FLAGS;
const MP_FLAGS MPF_ENVLP_STANDARD = 0x0000;
const MP_FLAGS MPF_ENVLP_BEGIN_CURRENTVAL = 0x0001;
const MP_FLAGS MPF_ENVLP_BEGIN_NEUTRALVAL = 0x0002;
typedef struct _MP_ENVELOPE_SEGMENT
{
REFERENCE_TIME rtStart;
REFERENCE_TIME rtEnd;
MP_DATA valStart;
MP_DATA valEnd;
MP_CURVE_TYPE iCurve;
MP_FLAGS flags;
} MP_ENVELOPE_SEGMENT;
const MP_FLAGS MPF_PUNCHIN_REFTIME = 0;
const MP_FLAGS MPF_PUNCHIN_NOW = 0x0001;
const MP_FLAGS MPF_PUNCHIN_STOPPED = 0x0002;
[
object,
uuid(6d6cbb60-a223-44aa-842f-a2f06750be6d),
version(1.0)
]
interface IMediaParamInfo : IUnknown
{
HRESULT GetParamCount ([out] DWORD * pdwParams);
HRESULT GetParamInfo ([in] DWORD dwParamIndex, [out] MP_PARAMINFO * pInfo);
HRESULT GetParamText ([in] DWORD dwParamIndex, [out] WCHAR **ppwchText);
HRESULT GetNumTimeFormats ([out] DWORD * pdwNumTimeFormats);
HRESULT GetSupportedTimeFormat([in] DWORD dwFormatIndex, [out] GUID *pguidTimeFormat);
HRESULT GetCurrentTimeFormat ([out] GUID *pguidTimeFormat, [out] MP_TIMEDATA *pTimeData);
}
[
object,
uuid(6d6cbb61-a223-44aa-842f-a2f06750be6e),
version(1.0)
]
interface IMediaParams : IUnknown
{
HRESULT GetParam ([in] DWORD dwParamIndex, [out] MP_DATA *pValue);
HRESULT SetParam ([in] DWORD dwParamIndex, [in] MP_DATA value);
HRESULT AddEnvelope ([in] DWORD dwParamIndex, [in] DWORD cSegments, [in] MP_ENVELOPE_SEGMENT * pEnvelopeSegments);
HRESULT FlushEnvelope ([in] DWORD dwParamIndex, [in] REFERENCE_TIME refTimeStart, [in] REFERENCE_TIME refTimeEnd);
HRESULT SetTimeFormat ([in] GUID guidTimeFormat, [in] MP_TIMEDATA mpTimeData);
}

View file

@ -0,0 +1,42 @@
import "unknwn.idl";
#define MIXER_DATA_ASPECT_RATIO 0x00000001
#define MIXER_DATA_NATIVE_SIZE 0x00000002
#define MIXER_DATA_PALETTE 0x00000004
#define MIXER_STATE_MASK 0x00000003
#define MIXER_STATE_UNCONNECTED 0x00000000
#define MIXER_STATE_CONNECTED_STOPPED 0x00000001
#define MIXER_STATE_CONNECTED_PAUSED 0x00000002
#define MIXER_STATE_CONNECTED_PLAYING 0x00000003
interface IMixerOCXNotify;
interface IMixerOCX;
[
object,
uuid(81A3BD31-DEE1-11d1-8508-00A0C91F9CA0),
pointer_default(unique)
]
interface IMixerOCXNotify : IUnknown
{
HRESULT OnInvalidateRect([in] LPCRECT lpcRect);
HRESULT OnStatusChange([in] ULONG ulStatusFlags);
HRESULT OnDataChange([in] ULONG ulDataFlags);
};
[
object,
uuid(81A3BD32-DEE1-11d1-8508-00A0C91F9CA0),
pointer_default(unique)
]
interface IMixerOCX : IUnknown
{
HRESULT OnDisplayChange([in] ULONG ulBitsPerPixel, [in] ULONG ulScreenWidth, [in] ULONG ulScreenHeight);
HRESULT GetAspectRatio([out] LPDWORD pdwPictAspectRatioX, [out] LPDWORD pdwPictAspectRatioY);
HRESULT GetVideoSize([out] LPDWORD pdwVideoWidth, [out] LPDWORD pdwVideoHeight);
HRESULT GetStatus([out] LPDWORD *pdwStatus);
HRESULT OnDraw([in] HDC hdcDraw, [in] LPCRECT prcDraw);
HRESULT SetDrawRegion([in] LPPOINT lpptTopLeftSC, [in] LPCRECT prcDrawCC, [in] LPCRECT lprcClip);
HRESULT Advise([in] IMixerOCXNotify *pmdns);
HRESULT UnAdvise();
};

128
include/dxsdk/mmstream.idl Normal file
View file

@ -0,0 +1,128 @@
import "unknwn.idl";
cpp_quote("DEFINE_GUID(MSPID_PrimaryVideo, 0xA35FF56A, 0x9FDA, 0x11D0, 0x8F, 0xDF, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D);")
cpp_quote("DEFINE_GUID(MSPID_PrimaryAudio, 0xA35FF56B, 0x9FDA, 0x11D0, 0x8F, 0xDF, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D);")
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_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)")
// FIXME HACK remove the // for two cpp_quote
cpp_quote("#if 0");
typedef LPVOID PAPCFUNC;
cpp_quote("#endif");
cpp_quote("#if(_WIN32_WINNT < 0x0400)")
cpp_quote("typedef void (__stdcall * PAPCFUNC)(DWORD_PTR dwParam);")
cpp_quote("#endif")
typedef LONGLONG STREAM_TIME;
typedef GUID MSPID;
typedef REFGUID REFMSPID;
enum
{
MMSSF_HASCLOCK = 0x00000001,
MMSSF_SUPPORTSEEK = 0x00000002,
MMSSF_ASYNCHRONOUS = 0x00000004
};
typedef enum
{
STREAMTYPE_READ = 0,
STREAMTYPE_WRITE = 1,
STREAMTYPE_TRANSFORM= 2
} STREAM_TYPE;
enum
{
SSUPDATE_ASYNC = 0x00000001,
SSUPDATE_CONTINUOUS = 0x00000002
};
typedef enum
{
COMPSTAT_NOUPDATEOK = 0x00000001,
COMPSTAT_WAIT = 0x00000002,
COMPSTAT_ABORT = 0x00000004
} COMPLETION_STATUS_FLAGS;
typedef enum
{
STREAMSTATE_STOP = 0,
STREAMSTATE_RUN = 1
} STREAM_STATE;
interface IMultiMediaStream;
interface IMediaStream;
interface IStreamSample;
[
object,
local,
uuid(B502D1BC-9A57-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IMultiMediaStream : IUnknown
{
HRESULT GetInformation([out] DWORD *pdwFlags, [out] STREAM_TYPE *pStreamType);
HRESULT GetMediaStream([in] REFMSPID idPurpose, [out] IMediaStream **ppMediaStream);
HRESULT EnumMediaStreams([in] long Index, [out] IMediaStream **ppMediaStream);
HRESULT GetState([out] STREAM_STATE *pCurrentState);
HRESULT SetState([in] STREAM_STATE NewState);
HRESULT GetTime([out] STREAM_TIME *pCurrentTime);
HRESULT GetDuration([out] STREAM_TIME *pDuration);
HRESULT Seek([in] STREAM_TIME SeekTime);
HRESULT GetEndOfStreamEventHandle([out] HANDLE *phEOS);
};
[
object,
uuid(B502D1BD-9A57-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IMediaStream : IUnknown
{
HRESULT GetMultiMediaStream([out] IMultiMediaStream **ppMultiMediaStream);
HRESULT GetInformation([out] MSPID *pPurposeId, [out] STREAM_TYPE *pType);
HRESULT SetSameFormat([in] IMediaStream *pStreamThatHasDesiredFormat, [in] DWORD dwFlags);
HRESULT AllocateSample([in] DWORD dwFlags, [out] IStreamSample **ppSample);
HRESULT CreateSharedSample([in] IStreamSample *pExistingSample, [in] DWORD dwFlags, [out] IStreamSample **ppNewSample);
HRESULT SendEndOfStream(DWORD dwFlags);
};
[
object,
local,
uuid(B502D1BE-9A57-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IStreamSample : IUnknown
{
HRESULT GetMediaStream([in] IMediaStream **ppMediaStream);
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 Update([in] DWORD dwFlags, [in] HANDLE hEvent, [in] PAPCFUNC pfnAPC, [in] DWORD_PTR dwAPCData);
HRESULT CompletionStatus( [in] DWORD dwFlags, [in] DWORD dwMilliseconds);
};

47
include/dxsdk/mpconfig.h Normal file
View file

@ -0,0 +1,47 @@
#ifndef __IMPConfig__
#define __IMPConfig__
#ifdef __cplusplus
extern "C" {
#endif
typedef enum _AM_ASPECT_RATIO_MODE
{
AM_ARMODE_STRETCHED,
AM_ARMODE_LETTER_BOX,
AM_ARMODE_CROP,
AM_ARMODE_STRETCHED_AS_PRIMARY
} AM_ASPECT_RATIO_MODE;
DECLARE_INTERFACE_(IMixerPinConfig, IUnknown)
{
STDMETHOD (SetRelativePosition)(THIS_ IN DWORD dwLeft, IN DWORD dwTop,
IN DWORD dwRight, IN DWORD dwBottom) PURE;
STDMETHOD (GetRelativePosition)(THIS_ OUT DWORD *pdwLeft,OUT DWORD *pdwTop,
OUT DWORD *pdwRight, OUT DWORD *pdwBottom) PURE;
STDMETHOD (SetZOrder)(THIS_ IN DWORD dwZOrder) PURE;
STDMETHOD (GetZOrder)(THIS_ OUT DWORD *pdwZOrder) PURE;
STDMETHOD (SetColorKey)(THIS_ IN COLORKEY *pColorKey) PURE;
STDMETHOD (GetColorKey)(THIS_ OUT COLORKEY *pColorKey, OUT DWORD *pColor) PURE;
STDMETHOD (SetBlendingParameter)(THIS_ IN DWORD dwBlendingParameter) PURE;
STDMETHOD (GetBlendingParameter)(THIS_ OUT DWORD *pdwBlendingParameter) PURE;
STDMETHOD (SetAspectRatioMode)(THIS_ IN AM_ASPECT_RATIO_MODE amAspectRatioMode) PURE;
STDMETHOD (GetAspectRatioMode)(THIS_ OUT AM_ASPECT_RATIO_MODE* pamAspectRatioMode) PURE;
STDMETHOD (SetStreamTransparent)(THIS_ IN BOOL bStreamTransparent) PURE;
STDMETHOD (GetStreamTransparent)(THIS_ OUT BOOL *pbStreamTransparent) PURE;
};
DECLARE_INTERFACE_(IMixerPinConfig2, IMixerPinConfig)
{
STDMETHOD (SetOverlaySurfaceColorControls)(THIS_ IN LPDDCOLORCONTROL pColorControl) PURE;
STDMETHOD (GetOverlaySurfaceColorControls)(THIS_ OUT LPDDCOLORCONTROL pColorControl) PURE;
};
#ifdef __cplusplus
}
#endif
#endif

53
include/dxsdk/mpegtype.h Normal file
View file

@ -0,0 +1,53 @@
#ifndef __MPEGTYPE__
#define __MPEGTYPE__
#ifdef __cplusplus
extern "C" {
#endif
typedef struct tagAM_MPEGSTREAMTYPE
{
DWORD dwStreamId;
DWORD dwReserved;
AM_MEDIA_TYPE mt;
BYTE bFormat[1];
} AM_MPEGSTREAMTYPE;
typedef struct tagAM_MPEGSYSTEMTYPE
{
DWORD dwBitRate;
DWORD cStreams;
AM_MPEGSTREAMTYPE Streams[1];
} AM_MPEGSYSTEMTYPE;
DECLARE_INTERFACE_(IMpegAudioDecoder, IUnknown)
{
STDMETHOD(get_FrequencyDivider) (THIS_ unsigned long *pDivider) PURE;
STDMETHOD(put_FrequencyDivider) (THIS_ unsigned long Divider) PURE;
STDMETHOD(get_DecoderAccuracy) (THIS_ unsigned long *pAccuracy) PURE;
STDMETHOD(put_DecoderAccuracy) (THIS_ unsigned long Accuracy) PURE;
STDMETHOD(get_Stereo) (THIS_ unsigned long *pStereo ) PURE;
STDMETHOD(put_Stereo) (THIS_ unsigned long Stereo) PURE;
STDMETHOD(get_DecoderWordSize) (THIS_ unsigned long *pWordSize) PURE;
STDMETHOD(put_DecoderWordSize) (THIS_ unsigned long WordSize) PURE;
STDMETHOD(get_IntegerDecode) (THIS_ unsigned long *pIntDecode) PURE;
STDMETHOD(put_IntegerDecode) (THIS_ unsigned long IntDecode) PURE;
STDMETHOD(get_DualMode) (THIS_ unsigned long *pIntDecode) PURE;
STDMETHOD(put_DualMode) (THIS_ unsigned long IntDecode) PURE;
STDMETHOD(get_AudioFormat) (THIS_ MPEG1WAVEFORMAT *lpFmt) PURE;
};
#ifdef
}
#endif
#endif
#define AM_MPEGSTREAMTYPE_ELEMENTLENGTH(pStreamType) FIELD_OFFSET(AM_MPEGSTREAMTYPE, bFormat[(pStreamType)->mt.cbFormat])
#define AM_MPEGSTREAMTYPE_NEXT(pStreamType) ((AM_MPEGSTREAMTYPE *)((PBYTE)(pStreamType) + ((AM_MPEGSTREAMTYPE_ELEMENTLENGTH(pStreamType) + 7) & ~7)))
#define AM_MPEG_AUDIO_DUAL_MERGE 0
#define AM_MPEG_AUDIO_DUAL_LEFT 1
#define AM_MPEG_AUDIO_DUAL_RIGHT 2

20
include/dxsdk/regbag.idl Normal file
View file

@ -0,0 +1,20 @@
cpp_quote("#pragma once")
#ifndef DO_NO_IMPORTS
import "objidl.idl";
import "oaidl.idl";
import "ocidl.idl";
#endif
[object,
hidden, restricted,
uuid(8A674B48-1F63-11d3-B64C-00C04F79498E),
pointer_default(unique),
local
]
interface ICreatePropBagOnRegKey : IUnknown
{
HRESULT Create([in] HKEY hkey, [in] LPCOLESTR subkey, [in] DWORD ulOptions, [in] DWORD samDesired, REFIID iid, [out] LPVOID *ppBag);
};

57
include/dxsdk/rmxfguid.h Normal file
View file

@ -0,0 +1,57 @@
#ifndef __RMXFGUID_H_
#define __RMXFGUID_H_
DEFINE_GUID(TID_D3DRMInfo, 0x2B957100, 0x9E9A, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMMesh, 0x3D82AB44, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMVECtor, 0x3D82AB5E, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMMeshFAce, 0x3D82AB5F, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMMaterial, 0x3D82AB4D, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMMaterialArray, 0x35FF44E1, 0x6C7C, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMFrame, 0x3D82AB46, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMFrameTransformMatrix, 0xF6F23F41, 0x7686, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMMeshMaterialList, 0xF6F23F42, 0x7686, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMMeshTexturECoords, 0xF6F23F40, 0x7686, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMMeshNormals, 0xF6F23F43, 0x7686, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMCoords2d, 0xF6F23F44, 0x7686, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMMatrix4x4, 0xF6F23F45, 0x7686, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMAnimation, 0x3D82AB4F, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMAnimationSet, 0x3D82AB50, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMAnimationKey, 0x10DD46A8, 0x775B, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMFloatKeys, 0x10DD46A9, 0x775B, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMMaterialAmbientColor, 0x01411840, 0x7786, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMMaterialDiffusEColor, 0x01411841, 0x7786, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMMaterialSpECularColor, 0x01411842, 0x7786, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMMaterialEmissivEColor, 0xD3E16E80, 0x7835, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3);
DEFINE_GUID(TID_D3DRMMaterialPower, 0x01411843, 0x7786, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMColorRGBA, 0x35FF44E0, 0x6C7C, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMColorRGB, 0xD3E16E81, 0x7835, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMGuid, 0xA42790E0, 0x7810, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMTextureFilename, 0xA42790E1, 0x7810, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMTextureReference, 0xA42790E2, 0x7810, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMIndexEDColor, 0x1630B820, 0x7842, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMMeshVertexColors, 0x1630B821, 0x7842, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMMaterialWrap, 0x4885AE60, 0x78E8, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMBoolEAn, 0x537DA6A0, 0xCA37, 0x11D0, 0x94, 0x1C, 0x00, 0x80, 0xC8, 0x0C, 0xFA, 0x7B);
DEFINE_GUID(TID_D3DRMMeshFAceWraps, 0xED1EC5C0, 0xC0A8, 0x11D0, 0x94, 0x1C, 0x00, 0x80, 0xC8, 0x0C, 0xFA, 0x7B);
DEFINE_GUID(TID_D3DRMBoolEAn2d, 0x4885AE63, 0x78E8, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMTimEDFloatKeys, 0xF406b180, 0x7B3B, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMAnimationOptions, 0xE2BF56C0, 0x840F, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMFramePosition, 0xE2BF56C1, 0x840F, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMFrameVelocity, 0xE2BF56C2, 0x840F, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMFrameRotation, 0xE2BF56C3, 0x840F, 0x11CF, 0x8F, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xA3);
DEFINE_GUID(TID_D3DRMLight, 0x3D82AB4A, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMCamera, 0x3D82AB51, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMAppDAta, 0xE5745280, 0xB24F, 0x11CF, 0x9D, 0xD5, 0x00, 0xAA, 0x00, 0xA7, 0x1A, 0x2F);
DEFINE_GUID(TID_D3DRMLightUmbra, 0xAED22740, 0xB31F, 0x11CF, 0x9D, 0xD5, 0x00, 0xAA, 0x00, 0xA7, 0x1A, 0x2F);
DEFINE_GUID(TID_D3DRMLightRange, 0xAED22742, 0xB31F, 0x11CF, 0x9D, 0xD5, 0x00, 0xAA, 0x00, 0xA7, 0x1A, 0x2F);
DEFINE_GUID(TID_D3DRMLightPenumbra, 0xAED22741, 0xB31F, 0x11CF, 0x9D, 0xd5, 0x00, 0xAA, 0x00, 0xA7, 0x1A, 0x2F);
DEFINE_GUID(TID_D3DRMLightAttenuation, 0xA8A98BA0, 0xC5E5, 0x11CF, 0xB9, 0x41, 0x00, 0x80, 0xC8, 0x0C, 0xFA, 0x7b);
DEFINE_GUID(TID_D3DRMInlinEDAta, 0x3A23EEA0, 0x94B1, 0x11D0, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMUrl, 0x3A23EEA1, 0x94B1, 0x11D0, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
DEFINE_GUID(TID_D3DRMProgressiveMesh, 0x8A63C360, 0x997D, 0x11D0, 0x94, 0x1C, 0x00, 0x80, 0xC8, 0x0C, 0xFA, 0x7B);
DEFINE_GUID(TID_D3DRMExternalVisual, 0x98116AA0, 0xBDBA, 0x11D1, 0x82, 0xC0, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x71);
DEFINE_GUID(TID_D3DRMStringProperty, 0x7F0F21E0, 0xBFE1, 0x11D1, 0x82, 0xC0, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x71);
DEFINE_GUID(TID_D3DRMPropertyBAg, 0x7F0F21E1, 0xBFE1, 0x11D1, 0x82, 0xC0, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x71);
DEFINE_GUID(TID_D3DRMRightHandED, 0x7F5d5EA0, 0xd53A, 0x11D1, 0x82, 0xC0, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x71);
#endif

9
include/dxsdk/strmif.idl Normal file
View file

@ -0,0 +1,9 @@
import "unknwn.idl";
import "objidl.idl";
#include <devenum.idl>
#include <axcore.idl>
#include <axextend.idl>
#include <dvdif.idl>
#include <dyngraph.idl>
#include "Vmrender.idl"

181
include/dxsdk/tvratings.idl Normal file
View file

@ -0,0 +1,181 @@
import "oaidl.idl";
import "ocidl.idl";
typedef enum
{
MPAA = 0,
US_TV = 1,
Canadian_English = 2,
Canadian_French = 3,
Reserved4 = 4,
System5 = 5,
System6 = 6,
Reserved7 = 7,
TvRat_kSystems = 8,
TvRat_SystemDontKnow = 255
} EnTvRat_System;
typedef enum
{
TvRat_0 = 0,
TvRat_1 = 1,
TvRat_2 = 2,
TvRat_3 = 3,
TvRat_4 = 4,
TvRat_5 = 5,
TvRat_6 = 6,
TvRat_7 = 7,
TvRat_kLevels = 8,
TvRat_LevelDontKnow = 255
} EnTvRat_GenericLevel;
typedef enum
{
MPAA_NotApplicable = TvRat_0,
MPAA_G = TvRat_1,
MPAA_PG = TvRat_2,
MPAA_PG13 = TvRat_3,
MPAA_R = TvRat_4,
MPAA_NC17 = TvRat_5,
MPAA_X = TvRat_6,
MPAA_NotRated = TvRat_7
} EnTvRat_MPAA;
typedef enum
{
US_TV_None = TvRat_0,
US_TV_Y = TvRat_1,
US_TV_Y7 = TvRat_2,
US_TV_G = TvRat_3,
US_TV_PG = TvRat_4,
US_TV_14 = TvRat_5,
US_TV_MA = TvRat_6,
US_TV_None7 = TvRat_7
} EnTvRat_US_TV;
typedef enum
{
CAE_TV_Exempt = TvRat_0,
CAE_TV_C = TvRat_1,
CAE_TV_C8 = TvRat_2,
CAE_TV_G = TvRat_3,
CAE_TV_PG = TvRat_4,
CAE_TV_14 = TvRat_5,
CAE_TV_18 = TvRat_6,
CAE_TV_Reserved = TvRat_7
} EnTvRat_CAE_TV;
typedef enum
{
CAF_TV_Exempt = TvRat_0,
CAF_TV_G = TvRat_1,
CAF_TV_8 = TvRat_2,
CAF_TV_13 = TvRat_3,
CAF_TV_16 = TvRat_4,
CAF_TV_18 = TvRat_5,
CAF_TV_Reserved6 = TvRat_6,
CAF_TV_Reserved = TvRat_7
} EnTvRat_CAF_TV;
typedef enum
{
BfAttrNone = 0,
BfIsBlocked = 1,
BfIsAttr_1 = 2,
BfIsAttr_2 = 4,
BfIsAttr_3 = 8,
BfIsAttr_4 = 16,
BfIsAttr_5 = 32,
BfIsAttr_6 = 64,
BfIsAttr_7 = 128,
BfValidAttrSubmask = 255
} BfEnTvRat_GenericAttributes;
typedef enum
{
US_TV_IsBlocked = BfIsBlocked,
US_TV_IsViolent = BfIsAttr_1,
US_TV_IsSexualSituation = BfIsAttr_2,
US_TV_IsAdultLanguage = BfIsAttr_3,
US_TV_IsSexuallySuggestiveDialog = BfIsAttr_4,
US_TV_ValidAttrSubmask = 31
} BfEnTvRat_Attributes_US_TV;
typedef enum
{
MPAA_IsBlocked = BfIsBlocked,
MPAA_ValidAttrSubmask = 1
} BfEnTvRat_Attributes_MPAA;
typedef enum
{
CAE_IsBlocked = BfIsBlocked,
CAE_ValidAttrSubmask = 1
} BfEnTvRat_Attributes_CAE_TV;
typedef enum
{
CAF_IsBlocked = BfIsBlocked,
CAF_ValidAttrSubmask = 1
} BfEnTvRat_Attributes_CAF_TV;
[
object,
uuid(C5C5C5B0-3ABC-11D6-B25B-00C04FA0C026),
dual,
pointer_default(unique)
]
interface IXDSToRat : IDispatch
{
[id(1)]
HRESULT Init();
[id(2)]
HRESULT ParseXDSBytePair([in] BYTE byte1, [in] BYTE byte2, [out] EnTvRat_System *pEnSystem, [out] EnTvRat_GenericLevel *pEnLevel, [out] LONG *plBfEnAttributes);
};
[
object,
uuid(C5C5C5B1-3ABC-11D6-B25B-00C04FA0C026),
dual,
pointer_default(unique)
]
interface IEvalRat : IDispatch
{
[propget, id(1)]
HRESULT BlockedRatingAttributes([in] EnTvRat_System enSystem, [in] EnTvRat_GenericLevel enLevel, [out, retval] LONG *plbfAttrs);
[propput, id(1)]
HRESULT BlockedRatingAttributes([in] EnTvRat_System enSystem, [in] EnTvRat_GenericLevel enLevel, [in] LONG lbfAttrs);
[propget, id(2)]
HRESULT BlockUnRated([out, retval] BOOL *pfBlockUnRatedShows);
[propput, id(2)]
HRESULT BlockUnRated([in] BOOL fBlockUnRatedShows);
[id(3)]
HRESULT MostRestrictiveRating([in] EnTvRat_System enSystem1, [in] EnTvRat_GenericLevel enEnLevel1, [in] LONG lbfEnAttr1, [in] EnTvRat_System enSystem2, [in] EnTvRat_GenericLevel enEnLevel2, [in] LONG lbfEnAttr2, [out] EnTvRat_System *penSystem, [out] EnTvRat_GenericLevel *penEnLevel, [out] LONG *plbfEnAttr);
[id(4)]
HRESULT TestRating([in] EnTvRat_System enShowSystem, [in] EnTvRat_GenericLevel enShowLevel, [in] LONG lbfEnShowAttributes);
};
[uuid(C5C5C500-3ABC-11D6-B25B-00C04FA0C026)]
library TVRATINGSLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[uuid(C5C5C5F0-3ABC-11D6-B25B-00C04FA0C026)]
coclass XDSToRat
{
[default] interface IXDSToRat;
};
[uuid(C5C5C5F1-3ABC-11D6-B25B-00C04FA0C026)]
coclass EvalRat
{
[default] interface IEvalRat;
};
};

393
include/dxsdk/uuids.h Normal file
View file

@ -0,0 +1,393 @@
#ifndef OUR_GUID_ENTRY
#define OUR_GUID_ENTRY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8);
#endif
#define MEDIATYPE_NULL GUID_NULL
#define MEDIASUBTYPE_NULL GUID_NULL
#define MEDIASUBTYPE_HASALPHA(mt) ( ((mt).subtype == MEDIASUBTYPE_ARGB4444) || \
((mt).subtype == MEDIASUBTYPE_ARGB32) || \
((mt).subtype == MEDIASUBTYPE_AYUV) || \
((mt).subtype == MEDIASUBTYPE_AI44) || \
((mt).subtype == MEDIASUBTYPE_IA44) || \
((mt).subtype == MEDIASUBTYPE_ARGB1555) || \
((mt).subtype == MEDIASUBTYPE_ARGB32_D3D_DX7_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB4444_D3D_DX7_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB1555_D3D_DX7_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB32_D3D_DX9_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB4444_D3D_DX9_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB1555_D3D_DX9_RT) )
#define MEDIASUBTYPE_HASALPHA7(mt) (((mt).subtype == MEDIASUBTYPE_ARGB32_D3D_DX7_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB4444_D3D_DX7_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB1555_D3D_DX7_RT) )
#define MEDIASUBTYPE_D3D_DX7_RT(mt) (((mt).subtype == MEDIASUBTYPE_ARGB32_D3D_DX7_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB4444_D3D_DX7_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB1555_D3D_DX7_RT) || \
((mt).subtype == MEDIASUBTYPE_RGB32_D3D_DX7_RT) || \
((mt).subtype == MEDIASUBTYPE_RGB16_D3D_DX7_RT))
#define MEDIASUBTYPE_HASALPHA9(mt) (((mt).subtype == MEDIASUBTYPE_ARGB32_D3D_DX9_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB4444_D3D_DX9_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB1555_D3D_DX9_RT) )
#define MEDIASUBTYPE_D3D_DX9_RT(mt) (((mt).subtype == MEDIASUBTYPE_ARGB32_D3D_DX9_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB4444_D3D_DX9_RT) || \
((mt).subtype == MEDIASUBTYPE_ARGB1555_D3D_DX9_RT) || \
((mt).subtype == MEDIASUBTYPE_RGB32_D3D_DX9_RT) || \
((mt).subtype == MEDIASUBTYPE_RGB16_D3D_DX9_RT))
#ifndef __DDRAW_INCLUDED__
OUR_GUID_ENTRY(CLSID_DirectDraw, 0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35)
OUR_GUID_ENTRY(CLSID_DirectDrawClipper, 0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56)
OUR_GUID_ENTRY(IID_IDirectDraw, 0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60)
OUR_GUID_ENTRY(IID_IDirectDraw2, 0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56)
OUR_GUID_ENTRY(IID_IDirectDrawSurface, 0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60)
OUR_GUID_ENTRY(IID_IDirectDrawSurface2, 0x57805885,0x6EEC,0x11CF,0x94,0x41,0xA8,0x23,0x03,0xC1,0x0E,0x27)
OUR_GUID_ENTRY(IID_IDirectDrawSurface3, 0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB)
OUR_GUID_ENTRY(IID_IDirectDrawSurface4, 0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B)
OUR_GUID_ENTRY(IID_IDirectDrawSurface7, 0x06675A80,0x3B9b,0x11D2,0xB9,0x2F,0x00,0x60,0x97,0x97,0xEA,0x5B)
OUR_GUID_ENTRY(IID_IDirectDrawPalette, 0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60)
OUR_GUID_ENTRY(IID_IDirectDrawClipper, 0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60)
OUR_GUID_ENTRY(IID_IDirectDrawColorControl, 0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8)
#endif
#ifndef __DVP_INCLUDED__
OUR_GUID_ENTRY(IID_IDDVideoPortContainer, 0x6C142760,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60)
#endif
#ifndef __DDKM_INCLUDED__
OUR_GUID_ENTRY(IID_IDirectDrawKernel, 0x8D56C120,0x6A08,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8)
OUR_GUID_ENTRY(IID_IDirectDrawSurfaceKernel, 0x60755DA0,0x6A40,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8)
#endif
OUR_GUID_ENTRY(MEDIASUBTYPE_None, 0xE436EB8E, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIATYPE_Video, 0x73646976, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIATYPE_Audio, 0x73647561, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIATYPE_Text, 0x73747874, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIATYPE_Midi, 0x7364696D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIATYPE_Stream, 0xE436EB83, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIATYPE_Interleaved, 0x73766169, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIATYPE_File, 0x656c6966, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIATYPE_ScriptCommand, 0x73636d64, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIATYPE_AUXLine21Data, 0x670aea80, 0x3A82, 0x11D0, 0xB7, 0x9B, 0x00, 0xAA, 0x09, 0x37, 0x67, 0xA7)
OUR_GUID_ENTRY(MEDIATYPE_VBI, 0xF72A76E1, 0xEB0A, 0x11D0, 0xAC, 0xE4, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(MEDIATYPE_Timecode, 0x0482DEE3, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIATYPE_LMRT, 0x74726C6D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIATYPE_URL_STREAM, 0x736c7275, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_CLPL, 0x4C504C43, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_YUYV, 0x56595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_IYUV, 0x56555949, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_YVU9, 0x39555659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_Y411, 0x31313459, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_Y41P, 0x50313459, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_YUY2, 0x32595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_YVYU, 0x55595659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_UYVY, 0x59565955, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_Y211, 0x31313259, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_CLJR, 0x524A4C43, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_IF09, 0x39304649, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_CPLA, 0x414C5043, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_MJPG, 0x47504A4D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_TVMJ, 0x4A4D5654, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_WAKE, 0x454B4157, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_CFCC, 0x43434643, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_IJPG, 0x47504A49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_Plum, 0x6D756C50, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVCS, 0x53435644, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_DVSD, 0x44535644, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_MDVF, 0x4656444D, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB1, 0xE436EB78, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB4, 0xE436EB79, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB8, 0xE436EB7A, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB565, 0xE436EB7B, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB555, 0xE436EB7C, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB24, 0xE436EB7D, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB32, 0xE436EB7E, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB1555, 0x297C55AF, 0xE209, 0x4CB3, 0xB7, 0x57, 0xC7, 0x6D, 0x6B, 0x9C, 0x88, 0xA8)
OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB4444, 0x6E6415E6, 0x5C24, 0x425F, 0x93, 0xCD, 0x80, 0x10, 0x2B, 0x3D, 0x1C, 0xCA)
OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB32, 0x773C9AC0, 0x3274, 0x11D0, 0xB7, 0x24, 0x00, 0xAA, 0x00, 0x6C, 0x1A, 0x01)
OUR_GUID_ENTRY(MEDIASUBTYPE_A2R10G10B10, 0x2F8BB76D, 0xB644, 0x4550, 0xAC, 0xF3, 0xD3, 0x0C, 0xAA, 0x65, 0xD5, 0xC5)
OUR_GUID_ENTRY(MEDIASUBTYPE_A2B10G10R10, 0x576F7893, 0xBDF6, 0x48C4, 0x87, 0x5F, 0xAE, 0x7B, 0x81, 0x83, 0x45, 0x67)
OUR_GUID_ENTRY(MEDIASUBTYPE_AYUV, 0x56555941, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_AI44, 0x34344941, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_IA44, 0x34344149, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB32_D3D_DX7_RT, 0x32335237, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB16_D3D_DX7_RT, 0x36315237, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB32_D3D_DX7_RT, 0x38384137, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB4444_D3D_DX7_RT, 0x34344137, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB1555_D3D_DX7_RT, 0x35314137, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB32_D3D_DX9_RT, 0x32335239, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_RGB16_D3D_DX9_RT, 0x36315239, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB32_D3D_DX9_RT, 0x38384139, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB4444_D3D_DX9_RT, 0x34344139, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_ARGB1555_D3D_DX9_RT, 0x35314139, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_YV12, 0x32315659, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_NV12, 0x3231564E, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_IMC1, 0x31434D49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_IMC2, 0x32434D49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_IMC3, 0x33434D49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_IMC4, 0x34434D49, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_S340, 0x30343353, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_S342, 0x32343353, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_Overlay, 0xE436EB7F, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Packet, 0xE436EB80, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Payload, 0xE436EB81, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1AudioPayload, 0x00000050, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIATYPE_MPEG1SystemStream, 0xE436EB82, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1System, 0xE436EB84, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1VideoCD, 0xE436EB85, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Video, 0xE436EB86, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_MPEG1Audio, 0xE436EB87, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_Avi, 0xE436EB88, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_Asf, 0x3DB80F90, 0x9412, 0x11D1, 0xAD, 0xED, 0x00, 0x00, 0xF8, 0x75, 0x4B, 0x99)
OUR_GUID_ENTRY(MEDIASUBTYPE_QTMovie, 0xE436EB89, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_QTRpza, 0x617A7072, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_QTSmc, 0x20636D73, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_QTRle, 0x20656C72, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_QTJpeg, 0x6765706A, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_PCMAudio_Obsolete, 0xE436EB8A, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_PCM, 0x00000001, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_WAVE, 0xE436EB8B, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_AU, 0xE436EB8C, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_AIFF, 0xE436EB8D, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(MEDIASUBTYPE_dvsd, 0x64737664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_dvhd, 0x64687664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_dvsl, 0x6C737664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_dv25, 0x35327664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_dv50, 0x30357664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_dvh1, 0x31687664, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_BytePair, 0x6E8D4A22, 0x310C, 0x11D0, 0xB7, 0x9A, 0x00, 0xAA, 0x00, 0x37, 0x67, 0xA7)
OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_GOPPacket, 0x6E8D4A23, 0x310C, 0x11D0, 0xB7, 0x9A, 0x00, 0xAA, 0x00, 0x37, 0x67, 0xA7)
OUR_GUID_ENTRY(MEDIASUBTYPE_Line21_VBIRawData, 0x6E8D4A24, 0x310C, 0x11D0, 0xB7, 0x9A, 0x00, 0xAA, 0x00, 0x37, 0x67, 0xA7)
OUR_GUID_ENTRY(MEDIASUBTYPE_TELETEXT, 0xF72A76E3, 0xEB0A, 0x11D0, 0xAC, 0xE4, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(MEDIASUBTYPE_WSS, 0x2791D576, 0x8E7A, 0x466F, 0x9E, 0x90, 0x5D, 0x3F, 0x30, 0x83, 0x73, 0x8B)
OUR_GUID_ENTRY(MEDIASUBTYPE_VPS, 0xA1B3F620, 0x9792, 0x4D8D, 0x81, 0xA4, 0x86, 0xAF, 0x25, 0x77, 0x20, 0x90)
OUR_GUID_ENTRY(MEDIASUBTYPE_DRM_Audio, 0x00000009, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_IEEE_FLOAT, 0x00000003, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_DOLBY_AC3_SPDIF, 0x00000092, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_RAW_SPORT, 0x00000240, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_SPDIF_TAG_241h, 0x00000241, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71)
OUR_GUID_ENTRY(MEDIASUBTYPE_DssVideo, 0xA0AF4F81, 0xE163, 0x11D0, 0xBA, 0xD9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1A)
OUR_GUID_ENTRY(MEDIASUBTYPE_DssAudio, 0xA0AF4F82, 0xE163, 0x11D0, 0xBA, 0xD9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1A)
OUR_GUID_ENTRY(MEDIASUBTYPE_VPVideo, 0x5A9B6A40, 0x1A22, 0x11D1, 0xBA, 0xD9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1A)
OUR_GUID_ENTRY(MEDIASUBTYPE_VPVBI, 0x5A9B6A41, 0x1A22, 0x11D1, 0xBA, 0xD9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1A)
OUR_GUID_ENTRY(CLSID_CaptureGraphBuilder, 0xBF87B6E0, 0x8C27, 0x11D0, 0xB3, 0xF0, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5)
OUR_GUID_ENTRY(CLSID_CaptureGraphBuilder2, 0xBF87B6E1, 0x8C27, 0x11D0, 0xB3, 0xF0, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5)
OUR_GUID_ENTRY(CLSID_ProtoFilterGraph, 0xE436EBB0, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_SystemClock, 0xE436EBB1, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_FilterMapper, 0xE436EBB2, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_FilterGraph, 0xE436EBB3, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_FilterGraphNoThread, 0xE436EBB8, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_MPEG1Doc, 0xE4BBD160, 0x4269, 0x11CE, 0x83, 0x8D, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(CLSID_FileSource, 0x701722E0, 0x8AE3, 0x11CE, 0xA8, 0x5C, 0x00, 0xAA, 0x00, 0x2F, 0xEA, 0xB5)
OUR_GUID_ENTRY(CLSID_MPEG1PacketPlayer, 0x26C25940, 0x4CA9, 0x11CE, 0xA8, 0x28, 0x00, 0xAA, 0x00, 0x2F, 0xEA, 0xB5)
OUR_GUID_ENTRY(CLSID_MPEG1Splitter, 0x336475D0, 0x942A, 0x11CE, 0xA8, 0x70, 0x00, 0xAA, 0x00, 0x2F, 0xEA, 0xB5)
OUR_GUID_ENTRY(CLSID_CMpegVideoCodec, 0xFEB50740, 0x7BEF, 0x11CE, 0x9B, 0xD9, 0x00, 0x00, 0xE2, 0x02, 0x59, 0x9C)
OUR_GUID_ENTRY(CLSID_CMpegAudioCodec, 0x4A2286E0, 0x7BEF, 0x11CE, 0x9B, 0xD9, 0x00, 0x00, 0xE2, 0x02, 0x59, 0x9C)
OUR_GUID_ENTRY(CLSID_TextRender, 0xE30629D3, 0x27E5, 0x11CE, 0x87, 0x5D, 0x00, 0x60, 0x8C, 0xB7, 0x80, 0x66)
OUR_GUID_ENTRY(CLSID_InfTee, 0xF8388A40, 0xD5BB, 0x11D0, 0xBE, 0x5A, 0x00, 0x80, 0xC7, 0x06, 0x56, 0x8E)
OUR_GUID_ENTRY(CLSID_AviSplitter, 0x1B544C20, 0xFD0B, 0x11CE, 0x8C, 0x63, 0x00, 0xAA, 0x00, 0x44, 0xB5, 0x1E)
OUR_GUID_ENTRY(CLSID_AviReader, 0x1B544C21, 0xFD0B, 0x11CE, 0x8C, 0x63, 0x00, 0xAA, 0x00, 0x44, 0xB5, 0x1E)
OUR_GUID_ENTRY(CLSID_VfwCapture, 0x1B544C22, 0xFD0B, 0x11CE, 0x8C, 0x63, 0x00, 0xAA, 0x00, 0x44, 0xB5, 0x1E)
OUR_GUID_ENTRY(CLSID_CaptureProperties, 0x1B544C22, 0xFD0B, 0x11CE, 0x8C, 0x63, 0x00, 0xAA, 0x00, 0x44, 0xB5, 0x1F)
OUR_GUID_ENTRY(CLSID_FGControl, 0xE436EBB4, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_MOVReader, 0x44584800, 0xF8EE, 0x11CE, 0xB2, 0xD4, 0x00, 0xDD, 0x01, 0x10, 0x1B, 0x85)
OUR_GUID_ENTRY(CLSID_QuickTimeParser, 0xD51bd5A0, 0x7548, 0x11CF, 0xA5, 0x20, 0x00, 0x80, 0xC7, 0x7E, 0xF5, 0x8A)
OUR_GUID_ENTRY(CLSID_QTDec, 0xFDFE9681, 0x74A3, 0x11D0, 0xAF, 0xA7, 0x00, 0xAA, 0x00, 0xB6, 0x7A, 0x42)
OUR_GUID_ENTRY(CLSID_AVIDoc, 0xD3588AB0, 0x0781, 0x11CE, 0xB0, 0x3A, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_VideoRenderer, 0x70E102B0, 0x5556, 0x11CE, 0x97, 0xC0, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(CLSID_Colour, 0x1643E180, 0x90F5, 0x11CE, 0x97, 0xD5, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(CLSID_Dither, 0x1DA08500, 0x9EDC, 0x11CF, 0xBC, 0x10, 0x00, 0xAA, 0x00, 0xAC, 0x74, 0xF6)
OUR_GUID_ENTRY(CLSID_ModexRenderer, 0x07167665, 0x5011, 0x11CF, 0xBF, 0x33, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(CLSID_AudioRender, 0xE30629D1, 0x27e5, 0x11CE, 0x87, 0x5D, 0x00, 0x60, 0x8C, 0xB7, 0x80, 0x66)
OUR_GUID_ENTRY(CLSID_AudioProperties, 0x05589FAF, 0xC356, 0x11CE, 0xBF, 0x01, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(CLSID_DSoundRender, 0x79376820, 0x07D0, 0x11CF, 0xA2, 0x4D, 0x00, 0x20, 0xAF, 0xD7, 0x97, 0x67)
OUR_GUID_ENTRY(CLSID_AudioRecord, 0xE30629D2, 0x27e5, 0x11CE, 0x87, 0x5D, 0x00, 0x60, 0x8C, 0xB7, 0x80, 0x66)
OUR_GUID_ENTRY(CLSID_AudioInputMixerProperties, 0x2CA8CA52, 0x3C3f, 0x11D2, 0xB7, 0x3D, 0x00, 0xC0, 0x4F, 0xB6, 0xBD, 0x3D)
OUR_GUID_ENTRY(CLSID_AVIDec, 0xCF49D4E0, 0x1115, 0x11CE, 0xB0, 0x3A, 0x00, 0x20, 0xAF, 0x0b, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_AVIDraw, 0xA888DF60, 0x1E90, 0x11CF, 0xAC, 0x98, 0x00, 0xAA, 0x00, 0x4C, 0x0F, 0xa9)
OUR_GUID_ENTRY(CLSID_ACMWrapper, 0x6A08CF80, 0x0E18, 0x11CF, 0xA2, 0x4D, 0x00, 0x20, 0xAF, 0xD7, 0x97, 0x67)
OUR_GUID_ENTRY(CLSID_AsyncReader, 0xE436EBB5, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_URLReader, 0xE436EBB6, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_PersistMonikerPID, 0xE436EBB7, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70)
OUR_GUID_ENTRY(CLSID_AVICo, 0xD76E2820, 0x1563, 0x11CF, 0xAC, 0x98, 0x00, 0xAA, 0x00, 0x4C, 0x0F, 0xA9)
OUR_GUID_ENTRY(CLSID_FileWriter, 0x8596E5F0, 0x0DA5, 0x11D0, 0xBD, 0x21, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_AviDest, 0xE2510970, 0xF137, 0x11CE, 0x8B, 0x67, 0x00, 0xAA, 0x00, 0xA3, 0xF1, 0xA6)
OUR_GUID_ENTRY(CLSID_AviMuxProptyPage, 0xC647B5C0, 0x157C, 0x11D0, 0xBD, 0x23, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_AviMuxProptyPage1, 0x0A9AE910, 0x85C0, 0x11D0, 0xBD, 0x42, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_AVIMIDIRender, 0x07B65360, 0xC445, 0x11CE, 0xAF, 0xDE, 0x00, 0xAA, 0x00, 0x6C, 0x14, 0xF4)
OUR_GUID_ENTRY(CLSID_WMAsfReader, 0x187463A0, 0x5BB7, 0x11D3, 0xAC, 0xBE, 0x00, 0x80, 0xC7, 0x5E, 0x24, 0x6E)
OUR_GUID_ENTRY(CLSID_WMAsfWriter, 0x7c23220E, 0x55BB, 0x11D3, 0x8B, 0x16, 0x00, 0xC0, 0x4F, 0xB6, 0xBD, 0x3D)
OUR_GUID_ENTRY(CLSID_MPEG2Demultiplexer, 0xAFB6C280, 0x2C41, 0x11D3, 0x8A, 0x60, 0x00, 0x00, 0xF8, 0x1E, 0x0E, 0x4A)
OUR_GUID_ENTRY(CLSID_MMSPLITTER, 0x3AE86B20, 0x7Be8, 0x11D1, 0xAB, 0xE6, 0x00, 0xA0, 0xC9, 0x05, 0xF3, 0x75)
OUR_GUID_ENTRY(CLSID_StreamBufferSink, 0x2DB47AE5, 0xCF39, 0x43C2, 0xB4, 0xD6, 0x0C, 0xD8, 0xD9, 0x09, 0x46, 0xF4)
OUR_GUID_ENTRY(CLSID_StreamBufferSource, 0xC9F5FE02, 0xF851, 0x4EB5, 0x99, 0xEe, 0xAD, 0x60, 0x2A, 0xF1, 0xE6, 0x19)
OUR_GUID_ENTRY(CLSID_StreamBufferConfig, 0xFA8A68B2, 0xC864, 0x4BA2, 0xAD, 0x53, 0xD3, 0x87, 0x6a, 0x87, 0x49, 0x4B)
OUR_GUID_ENTRY(CLSID_Mpeg2VideoStreamAnalyzer, 0x6CFad761, 0x735D, 0x4AA5, 0x8A, 0xFC, 0xAF, 0x91, 0xA7, 0xD6, 0x1E, 0xBA)
OUR_GUID_ENTRY(CLSID_StreamBufferRecordingAttributes, 0xCCAA63AC, 0x1057, 0x4778, 0xAE, 0x92, 0x12, 0x06, 0xAB, 0x9A, 0xCE, 0xE6)
OUR_GUID_ENTRY(CLSID_StreamBufferComposeRecording, 0xD682C4BA, 0xa90a, 0x42FE, 0xB9, 0xE1, 0x03, 0x10, 0x98, 0x49, 0xC4, 0x23)
OUR_GUID_ENTRY(CLSID_DVVideoCodec, 0xB1B77C00, 0xC3E4, 0x11CF, 0xAF, 0x79, 0x00, 0xAA, 0x00, 0xB6, 0x7A, 0x42)
OUR_GUID_ENTRY(CLSID_DVVideoEnc, 0x13AA3650, 0xBB6F, 0x11D0, 0xAF, 0xB9, 0x00, 0xAA, 0x00, 0xB6, 0x7A, 0x42)
OUR_GUID_ENTRY(CLSID_DVSplitter, 0x4EB31670, 0x9FC6, 0x11CF, 0xAF, 0x6E, 0x00, 0xAA, 0x00, 0xB6, 0x7A, 0x42)
OUR_GUID_ENTRY(CLSID_DVMux, 0x129D7E40, 0xC10D, 0x11D0, 0xAF, 0xB9, 0x00, 0xAA, 0x00, 0xB6, 0x7A, 0x42)
OUR_GUID_ENTRY(CLSID_SeekingPassThru, 0x060AF76C, 0x68DD, 0x11D0, 0x8F, 0xC1, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D)
OUR_GUID_ENTRY(CLSID_Line21Decoder, 0x6E8D4A20, 0x310C, 0x11D0, 0xB7, 0x9A, 0x00, 0xAA, 0x00, 0x37, 0x67, 0xA7)
OUR_GUID_ENTRY(CLSID_Line21Decoder2, 0xE4206432, 0x01A1, 0x4BEE, 0xB3, 0xE1, 0x37, 0x02, 0xC8, 0xED, 0xC5, 0x74)
OUR_GUID_ENTRY(CLSID_OverlayMixer, 0xCD8743A1, 0x3736, 0x11D0, 0x9E, 0x69, 0x00, 0xC0, 0x4F, 0xD7, 0xC1, 0x5B)
OUR_GUID_ENTRY(CLSID_VBISurfaces, 0x814B9800, 0x1C88, 0x11D1, 0xBA, 0xD9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1A)
OUR_GUID_ENTRY(CLSID_WSTDecoder, 0x70BC06E0, 0x5666, 0x11D3, 0xA1, 0x84, 0x00, 0x10, 0x5A, 0xEF, 0x9F, 0x33)
OUR_GUID_ENTRY(CLSID_MjpegDec, 0x301056D0, 0x6Dff, 0x11D2, 0x9E, 0xEB, 0x00, 0x60, 0x08, 0x03, 0x9E, 0x37)
OUR_GUID_ENTRY(CLSID_MJPGEnc, 0xB80ab0A0, 0x7416, 0x11D2, 0x9E, 0xEB, 0x00, 0x60, 0x08, 0x03, 0x9E, 0x37)
OUR_GUID_ENTRY(CLSID_SystemDeviceEnum, 0x62BE5D10, 0x60EB, 0x11D0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_CDeviceMoniker, 0x4315D437, 0x5B8C, 0x11D0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_VideoInputDeviceCategory, 0x860BB310, 0x5D01, 0x11D0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_CVidCapClassManager, 0x860BB310, 0x5D01, 0x11D0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_LegacyAmFilterCategory, 0x083863F1, 0x70DE, 0x11D0, 0xBD, 0x40, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_CQzFilterClassManager, 0x083863F1, 0x70DE, 0x11D0, 0xBD, 0x40, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_VideoCompressorCategory, 0x33D9A760, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_CIcmCoClassManager, 0x33D9A760, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_AudioCompressorCategory, 0x33D9A761, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_CAcmCoClassManager, 0x33D9A761, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_AudioInputDeviceCategory, 0x33D9A762, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_CWaveinClassManager, 0x33D9A762, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_AudioRendererCategory, 0xE0F158E1, 0xCB04, 0x11D0, 0xBD, 0x4E, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_CWaveOutClassManager, 0xE0F158E1, 0xCB04, 0x11D0, 0xBD, 0x4E, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_MidiRendererCategory, 0x4EFE2452, 0x168A, 0x11D1, 0xBC, 0x76, 0x00, 0xC0, 0x4F, 0xB9, 0x45, 0x3B)
OUR_GUID_ENTRY(CLSID_CMidiOutClassManager, 0x4EFE2452, 0x168A, 0x11D1, 0xBC, 0x76, 0x00, 0xC0, 0x4F, 0xB9, 0x45, 0x3B)
OUR_GUID_ENTRY(CLSID_TransmitCategory, 0xCC7BFB41, 0xF175, 0x11D1, 0xA3, 0x92, 0x00, 0xE0, 0x29, 0x1F, 0x39, 0x59)
OUR_GUID_ENTRY(CLSID_DeviceControlCategory, 0xCC7BFB46, 0xF175, 0x11D1, 0xA3, 0x92, 0x00, 0xE0, 0x29, 0x1F, 0x39, 0x59)
OUR_GUID_ENTRY(CLSID_ActiveMovieCategories, 0xDA4E3DA0, 0xd07d, 0x11D0, 0xBD, 0x50, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_DVDHWDecodersCategory, 0x2721AE20, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00)
OUR_GUID_ENTRY(CLSID_MediaEncoderCategory, 0x7D22E920, 0x5CA9, 0x4787, 0x8C, 0x2B, 0xA6, 0x77, 0x9B, 0xD1, 0x17, 0x81)
OUR_GUID_ENTRY(CLSID_MediaMultiplexerCategory, 0x236C9559, 0xADCE, 0x4736, 0xBF, 0x72, 0xBA, 0xB3, 0x4E, 0x39, 0x21, 0x96)
OUR_GUID_ENTRY(CLSID_FilterMapper2, 0xCDA42200, 0xBD88, 0x11D0, 0xBD, 0x4E, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_MemoryAllocator, 0x1E651CC0, 0xB199, 0x11D0, 0x82, 0x12, 0x00, 0xC0, 0x4F, 0xC3, 0x2C, 0x45)
OUR_GUID_ENTRY(CLSID_MediaPropertyBag, 0xCDBD8D00, 0xC193, 0x11D0, 0xBD, 0x4E, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86)
OUR_GUID_ENTRY(CLSID_DvdGraphBuilder, 0xFCC152B7, 0xF372, 0x11D0, 0x8E, 0x00, 0x00, 0xC0, 0x4F, 0xD7, 0xC0, 0x8B)
OUR_GUID_ENTRY(CLSID_DVDNavigator, 0x9B8C4620, 0x2C1A, 0x11D0, 0x84, 0x93, 0x00, 0xA0, 0x24, 0x38, 0xAD, 0x48)
OUR_GUID_ENTRY(CLSID_DVDState, 0xF963C5CF, 0xa659, 0x4A93, 0x96, 0x38, 0xCA, 0xF3, 0xCD, 0x27, 0x7D, 0x13)
OUR_GUID_ENTRY(CLSID_SmartTee, 0xCC58E280, 0x8AA1, 0x11D1, 0xB3, 0xF1, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5)
OUR_GUID_ENTRY(FORMAT_None, 0x0F6417D6, 0xC318, 0x11D0, 0xA4, 0x3F, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96)
OUR_GUID_ENTRY(FORMAT_VideoInfo, 0x05589F80, 0xC356, 0x11CE, 0xBF, 0x01, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(FORMAT_VideoInfo2, 0xF72A76A0, 0xEB0a, 0x11D0, 0xAC, 0xE4, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(FORMAT_WaveFormatEx, 0x05589F81, 0xC356, 0x11CE, 0xBF, 0x01, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(FORMAT_MPEGVideo, 0x05589F82, 0xC356, 0x11CE, 0xBF, 0x01, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(FORMAT_MPEGStreams, 0x05589F83, 0xC356, 0x11CE, 0xBF, 0x01, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(FORMAT_DvInfo, 0x05589F84, 0xC356, 0x11CE, 0xBF, 0x01, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(CLSID_DirectDrawProperties, 0x944d4C00, 0xDD52, 0x11CE, 0xBF, 0x0E, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(CLSID_PerformanceProperties, 0x59CE6880, 0xACF8, 0x11CF, 0xB5, 0x6E, 0x00, 0x80, 0xC7, 0xC4, 0xB6, 0x8A)
OUR_GUID_ENTRY(CLSID_QualityProperties, 0x418AFB70, 0xF8B8, 0x11CE, 0xAA, 0xC6, 0x00, 0x20, 0xAF, 0x0B, 0x99, 0xA3)
OUR_GUID_ENTRY(IID_IBaseVideoMixer, 0x61DED640, 0xE912, 0x11CE, 0xA0, 0x99, 0x00, 0xAA, 0x00, 0x47, 0x9A, 0x58)
OUR_GUID_ENTRY(IID_IDirectDrawVideo, 0x36d39EB0, 0xDD75, 0x11CE, 0xBF, 0x0E, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(IID_IQualProp, 0x1BD0ECB0, 0xF8E2, 0x11CE, 0xAA, 0xC6, 0x00, 0x20, 0xAF, 0x0B, 0x99, 0xA3)
OUR_GUID_ENTRY(CLSID_VPObject, 0xCE292861, 0xFC88, 0x11D0, 0x9E, 0x69, 0x00, 0xC0, 0x4F, 0xD7, 0xC1, 0x5B)
OUR_GUID_ENTRY(IID_IVPObject, 0xCE292862, 0xFC88, 0x11D0, 0x9E, 0x69, 0x00, 0xC0, 0x4F, 0xD7, 0xC1, 0x5B)
OUR_GUID_ENTRY(IID_IVPControl, 0x25DF12C1, 0x3De0, 0x11D1, 0x9E, 0x69, 0x00, 0xC0, 0x4F, 0xD7, 0xC1, 0x5B)
OUR_GUID_ENTRY(CLSID_VPVBIObject, 0x814B9801, 0x1C88, 0x11D1, 0xBA, 0xD9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1A)
OUR_GUID_ENTRY(IID_IVPVBIObject, 0x814B9802, 0x1C88, 0x11D1, 0xBA, 0xD9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1A)
OUR_GUID_ENTRY(IID_IVPConfig, 0xBC29A660, 0x30e3, 0x11D0, 0x9E, 0x69, 0x00, 0xC0, 0x4F, 0xD7, 0xC1, 0x5B)
OUR_GUID_ENTRY(IID_IVPNotify, 0xC76794A1, 0xD6c5, 0x11D0, 0x9E, 0x69, 0x00, 0xC0, 0x4F, 0xD7, 0xC1, 0x5B)
OUR_GUID_ENTRY(IID_IVPNotify2, 0xEBF47183, 0x8764, 0x11D1, 0x9E, 0x69, 0x00, 0xC0, 0x4F, 0xD7, 0xC1, 0x5B)
OUR_GUID_ENTRY(IID_IVPVBIConfig, 0xEC529B00, 0x1A1F, 0x11D1, 0xBA, 0xD9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1A)
OUR_GUID_ENTRY(IID_IVPVBINotify, 0xEC529B01, 0x1A1F, 0x11D1, 0xBA, 0xD9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1A)
OUR_GUID_ENTRY(IID_IMixerPinConfig, 0x593CDDE1, 0x0759, 0x11D1, 0x9E, 0x69, 0x00, 0xC0, 0x4F, 0xD7, 0xC1, 0x5B)
OUR_GUID_ENTRY(IID_IMixerPinConfig2, 0xEBF47182, 0x8764, 0x11D1, 0x9E, 0x69, 0x00, 0xC0, 0x4F, 0xD7, 0xC1, 0x5B)
OUR_GUID_ENTRY(CLSID_ModexProperties, 0x0618AA30, 0x6BC4, 0x11CF, 0xBF, 0x36, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(IID_IFullScreenVideo, 0xDD1D7110, 0x7836, 0x11CF, 0xBF, 0x47, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A)
OUR_GUID_ENTRY(IID_IFullScreenVideoEx, 0x53479470, 0xF1DD, 0x11CF, 0xBC, 0x42, 0x00, 0xAA, 0x00, 0xAC, 0x74, 0xF6)
OUR_GUID_ENTRY(CLSID_DVDecPropertiesPage, 0x101193C0, 0x0BFE, 0x11D0, 0xAF, 0x91, 0x00, 0xAA, 0x00, 0xB6, 0x7A, 0x42)
OUR_GUID_ENTRY(CLSID_DVEncPropertiesPage, 0x4150F050, 0xBB6F, 0x11D0, 0xAF, 0xB9, 0x00, 0xAA, 0x00, 0xB6, 0x7A, 0x42)
OUR_GUID_ENTRY(CLSID_DVMuxPropertyPage, 0x4Db880E0, 0xC10D, 0x11D0, 0xAF, 0xB9, 0x00, 0xAA, 0x00, 0xB6, 0x7A, 0x42)
OUR_GUID_ENTRY(IID_IAMDirectSound, 0x546F4260, 0xD53E, 0x11CF, 0xB3, 0xF0, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5)
OUR_GUID_ENTRY(IID_IMpegAudioDecoder, 0xB45DD570, 0x3C77, 0x11D1, 0xAB, 0xE1, 0x00, 0xA0, 0xC9, 0x05, 0xF3, 0x75)
OUR_GUID_ENTRY(IID_IAMLine21Decoder, 0x6E8D4A21, 0x310C, 0x11D0, 0xB7, 0x9A, 0x00, 0xAA, 0x00, 0x37, 0x67, 0xA7)
OUR_GUID_ENTRY(IID_IAMWstDecoder, 0xC056dE21, 0x75c2, 0x11D3, 0xA1, 0x84, 0x00, 0x10, 0x5A, 0xEF, 0x9F, 0x33)
OUR_GUID_ENTRY(CLSID_WstDecoderPropertyPage, 0x004E27F80, 0x91E4, 0x11D3, 0xA1, 0x84, 0x00, 0x10, 0x5A, 0xEF, 0x9F, 0x33)
OUR_GUID_ENTRY(FORMAT_AnalogVideo, 0xE0F158EE0, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIATYPE_AnalogVideo, 0xE0F158EE1, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_NTSC_M, 0xE0F158EE2, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_B, 0xE0F158EE5, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_D, 0xE0F158EE6, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_G, 0xE0F158EE7, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_H, 0xE0F158EE8, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_I, 0xE0F158EE9, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_M, 0xE0F158EEA, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_N, 0xE0F158EEB, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_PAL_N_COMBO, 0xE0F158EEC, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_B, 0xE0F158EF0, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_D, 0xE0F158EF1, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_G, 0xE0F158EF2, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_H, 0xE0F158EF3, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_K, 0xE0F158EF4, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_K1, 0xE0F158EF5, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIASUBTYPE_AnalogVideo_SECAM_L, 0xE0F158EF6, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(MEDIATYPE_AnalogAudio, 0x00482dEE1, 0x7817, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
#include "ksuuids.h"
OUR_GUID_ENTRY(TIME_FORMAT_NONE,0L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
OUR_GUID_ENTRY(TIME_FORMAT_FRAME, 0x7B785570, 0x8C82, 0x11CF, 0xBC, 0x0C, 0x00, 0xAA, 0x00, 0xAC, 0x74, 0xF6)
OUR_GUID_ENTRY(TIME_FORMAT_BYTE, 0x7B785571, 0x8C82, 0x11CF, 0xBC, 0x0C, 0x00, 0xAA, 0x00, 0xAC, 0x74, 0xF6)
OUR_GUID_ENTRY(TIME_FORMAT_SAMPLE, 0x7B785572, 0x8C82, 0x11CF, 0xBC, 0x0C, 0x00, 0xAA, 0x00, 0xAC, 0x74, 0xF6)
OUR_GUID_ENTRY(TIME_FORMAT_FIELD, 0x7B785573, 0x8C82, 0x11CF, 0xBC, 0x0C, 0x00, 0xAA, 0x00, 0xAC, 0x74, 0xF6)
OUR_GUID_ENTRY(TIME_FORMAT_MEDIA_TIME, 0x7B785574, 0x8C82, 0x11CF, 0xBC, 0x0C, 0x00, 0xAA, 0x00, 0xAC, 0x74, 0xF6)
OUR_GUID_ENTRY(AMPROPSETID_Pin, 0x9B00f101, 0x1567, 0x11D1, 0xB3, 0xF1, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5)
OUR_GUID_ENTRY(PIN_CATEGORY_CAPTURE, 0xFb6c4281, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_PREVIEW, 0xFb6c4282, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_ANALOGVIDEOIN, 0xFb6c4283, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_VBI, 0xFb6c4284, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_VIDEOPORT, 0xFb6c4285, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_NABTS, 0xFb6c4286, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_EDS, 0xFb6c4287, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_TELETEXT, 0xFb6c4288, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_CC, 0xFb6c4289, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_STILL, 0xFb6c428a, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_TIMECODE, 0xFb6c428b, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(PIN_CATEGORY_VIDEOPORT_VBI, 0xFb6c428c, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA)
OUR_GUID_ENTRY(LOOK_UPSTREAM_ONLY, 0xAC798be0, 0x98e3, 0x11D1, 0xB3, 0xF1, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5)
OUR_GUID_ENTRY(LOOK_DOWNSTREAM_ONLY, 0xAC798be1, 0x98e3, 0x11D1, 0xB3, 0xF1, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5)
OUR_GUID_ENTRY(CLSID_TVTunerFilterPropertyPage, 0x266eee41, 0x6C63, 0x11CF, 0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65)
OUR_GUID_ENTRY(CLSID_CrossbarFilterPropertyPage, 0x71f96461, 0x78f3, 0x11D0, 0xA1, 0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56)
OUR_GUID_ENTRY(CLSID_TVAudioFilterPropertyPage, 0x71f96463, 0x78f3, 0x11D0, 0xA1, 0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56)
OUR_GUID_ENTRY(CLSID_VideoProcAmpPropertyPage, 0x71f96464, 0x78f3, 0x11D0, 0xA1, 0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56)
OUR_GUID_ENTRY(CLSID_CameraControlPropertyPage, 0x71f96465, 0x78f3, 0x11D0, 0xA1, 0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56)
OUR_GUID_ENTRY(CLSID_AnalogVideoDecoderPropertyPage, 0x71f96466, 0x78f3, 0x11D0, 0xA1, 0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56)
OUR_GUID_ENTRY(CLSID_VideoStreamConfigPropertyPage, 0x71f96467, 0x78f3, 0x11D0, 0xA1, 0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56)
OUR_GUID_ENTRY(CLSID_AudioRendererAdvancedProperties, 0x37e92a92, 0xD9aa, 0x11D2, 0xBF, 0x84, 0x8E, 0xF2, 0xB1, 0x55, 0x5A, 0xED)
OUR_GUID_ENTRY(CLSID_VideoMixingRenderer, 0xB87BEB7B, 0x8D29, 0x423f, 0xAE, 0x4D, 0x65, 0x82, 0xC1, 0x01, 0x75, 0xAC)
OUR_GUID_ENTRY(CLSID_VideoRendererDefault, 0x6BC1CFFA, 0x8FC1, 0x4261, 0xAC, 0x22, 0xCF, 0xB4, 0xCC, 0x38, 0xDB, 0x50)
OUR_GUID_ENTRY(CLSID_AllocPresenter, 0x99d54f63, 0x1A69, 0x41ae, 0xAA, 0x4D, 0xC9, 0x76, 0xEB, 0x3F, 0x07, 0x13)
OUR_GUID_ENTRY(CLSID_AllocPresenterDDXclMode, 0x4444ac9e, 0x242e, 0x471b, 0xA3, 0xC7, 0x45, 0xdc, 0xd4, 0x63, 0x52, 0xBC)
OUR_GUID_ENTRY(CLSID_VideoPortManager, 0x6f26a6cd, 0x967b, 0x47fd, 0x87, 0x4A, 0x7A, 0xED, 0x2C, 0x9D, 0x25, 0xa2)
OUR_GUID_ENTRY(CLSID_VideoMixingRenderer9, 0x51b4abf3, 0x748f, 0x4E3b, 0xa2, 0x76, 0xC8, 0x28, 0x33, 0x0E, 0x92, 0x6a)
OUR_GUID_ENTRY(CLSID_ATSCNetworkProvider, 0x0dad2fdd, 0x5Fd7, 0x11D3, 0x8F, 0x50, 0x00, 0xC0, 0x4F, 0x79, 0x71, 0xE2)
OUR_GUID_ENTRY(CLSID_ATSCNetworkPropertyPage, 0xE3444d16, 0x5Ac4, 0x4386, 0x88, 0xDF, 0x13, 0xFD, 0x23, 0x0E, 0x1D, 0xda)
OUR_GUID_ENTRY(CLSID_DVBSNetworkProvider, 0xFa4b375a, 0x45b4, 0x4D45, 0x84, 0x40, 0x26, 0x39, 0x57, 0xB1, 0x16, 0x23)
OUR_GUID_ENTRY(CLSID_DVBTNetworkProvider, 0x216c62df, 0x6D7f, 0x4E9a, 0x85, 0x71, 0x05, 0xF1, 0x4E, 0xdb, 0x76, 0x6a)
OUR_GUID_ENTRY(CLSID_DVBCNetworkProvider, 0xdc0c0fe7, 0x0485, 0x4266, 0xB9, 0x3F, 0x68, 0xFb, 0xF8, 0x0E, 0xD8, 0x34)
OUR_GUID_ENTRY(CLSID_DShowTVEFilter, 0x05500280, 0xFAA5, 0x4DF9, 0x82, 0x46, 0xBF, 0xC2, 0x3A, 0xC5, 0xCE, 0xA8)
OUR_GUID_ENTRY(CLSID_TVEFilterTuneProperties, 0x05500281, 0xFAA5, 0x4DF9, 0x82, 0x46, 0xBF, 0xC2, 0x3A, 0xC5, 0xCE, 0xA8)
OUR_GUID_ENTRY(CLSID_TVEFilterCCProperties, 0x05500282, 0xFAA5, 0x4DF9, 0x82, 0x46, 0xBF, 0xC2, 0x3A, 0xC5, 0xCE, 0xA8)
OUR_GUID_ENTRY(CLSID_TVEFilterStatsProperties, 0x05500283, 0xFAA5, 0x4DF9, 0x82, 0x46, 0xBF, 0xC2, 0x3A, 0xC5, 0xCE, 0xA8)
OUR_GUID_ENTRY(CLSID_IVideoEncoderProxy, 0xB43c4eec, 0x8C32, 0x4791, 0x91, 0x02, 0x50, 0x8A, 0xda, 0x5E, 0xE8, 0xE7)
OUR_GUID_ENTRY(CLSID_ICodecAPIProxy, 0x7ff0997a, 0x1999, 0x4286, 0xA7, 0x3C, 0x62, 0x2B, 0x88, 0x14, 0xE7, 0xEB )
OUR_GUID_ENTRY(CLSID_IVideoEncoderCodecAPIProxy, 0xB05dabd9, 0x56e5, 0x4Fdc, 0xAF, 0xA4, 0x8A, 0x47, 0xE9, 0x1F, 0x1C, 0x9C )
#ifndef __ENCODER_API_GUIDS__
#define __ENCODER_API_GUIDS__
OUR_GUID_ENTRY(ENCAPIPARAM_BITRATE, 0x49cc4c43, 0xCA83, 0x4AD4, 0xa9, 0xAF, 0xF3, 0x69, 0x6a, 0xF6, 0x66, 0xDF)
OUR_GUID_ENTRY(ENCAPIPARAM_PEAK_BITRATE, 0x703f16a9, 0x3D48, 0x44A1, 0xB0, 0x77, 0x01, 0x8D, 0xFF, 0x91, 0x5D, 0x19)
OUR_GUID_ENTRY(ENCAPIPARAM_BITRATE_MODE, 0xEe5fb25c, 0xC713, 0x40D1, 0x9D, 0x58, 0xC0, 0xD7, 0x24, 0x1E, 0x25, 0x0F)
OUR_GUID_ENTRY(CODECAPI_CHANGELISTS, 0x62b12acf, 0xF6B0, 0x47D9, 0x94, 0x56, 0x96, 0xF2, 0x2C, 0x4E, 0x0B, 0x9D)
OUR_GUID_ENTRY(CODECAPI_VIDEO_ENCODER, 0x7112e8e1, 0x3D03, 0x47EF, 0x8E, 0x60, 0x03, 0xF1, 0xCF, 0x53, 0x73, 0x01)
OUR_GUID_ENTRY(CODECAPI_AUDIO_ENCODER, 0xB9d19a3e, 0xF897, 0x429C, 0xBC, 0x46, 0x81, 0x38, 0xB7, 0x27, 0x2B, 0x2D)
OUR_GUID_ENTRY(CODECAPI_SETALLDEFAULTS, 0x6C5e6a7c, 0xACF8, 0x4F55, 0xa9, 0x99, 0x1A, 0x62, 0x81, 0x09, 0x05, 0x1B)
OUR_GUID_ENTRY(CODECAPI_ALLSETTINGS, 0x6a577e92, 0x83E1, 0x4113, 0xAD, 0xC2, 0x4F, 0xCE, 0xC3, 0x2F, 0x83, 0xA1)
OUR_GUID_ENTRY(CODECAPI_SUPPORTSEVENTS, 0x0581af97, 0x7693, 0x4Dbd, 0x9D, 0xCA, 0x3F, 0x9E, 0xBD, 0x65, 0x85, 0xA1 )
OUR_GUID_ENTRY(CODECAPI_CURRENTCHANGELIST, 0x1Cb14e83, 0x7d72, 0x4657, 0x83, 0xFD, 0x47, 0xa2, 0xC5, 0xB9, 0xD1, 0x3D )
#endif
#undef OUR_GUID_ENTRY

60
include/dxsdk/vidcap.idl Normal file
View file

@ -0,0 +1,60 @@
import "unknwn.idl";
import "strmif.idl";
cpp_quote("#include \"ks.h\"")
cpp_quote("#ifndef _KS_")
typedef struct {
ULONG FromNode;
ULONG FromNodePin;
ULONG ToNode;
ULONG ToNodePin;
} KSTOPOLOGY_CONNECTION, *PKSTOPOLOGY_CONNECTION;
cpp_quote("#endif")
[
object,
local,
uuid(720D4AC0-7533-11D0-A5D6-28DB04C10000),
pointer_default(unique)
]
interface IKsTopologyInfo : IUnknown
{
HRESULT get_NumCategories([out] DWORD *pdwNumCategories);
HRESULT get_Category([in] DWORD dwIndex, [out] GUID *pCategory);
HRESULT get_NumConnections([out] DWORD *pdwNumConnections);
HRESULT get_ConnectionInfo([in] DWORD dwIndex, [out] KSTOPOLOGY_CONNECTION *pConnectionInfo);
HRESULT get_NodeName([in] DWORD dwNodeId, [out] WCHAR *pwchNodeName, [in] DWORD dwBufSize, [out] DWORD *pdwNameLen);
HRESULT get_NumNodes([out] DWORD *pdwNumNodes);
HRESULT get_NodeType([in] DWORD dwNodeId, [out] GUID *pNodeType);
HRESULT CreateNodeInstance([in] DWORD dwNodeId, [in] REFIID iid, [out] void **ppvObject);
}
[
object,
local,
uuid(11737C14-24A7-4bb5-81A0-0D003813B0C4),
pointer_default(unique)
]
interface IKsNodeControl :IUnknown
{
HRESULT put_NodeId([in] DWORD dwNodeId);
HRESULT put_KsControl([in] PVOID pKsControl);
}
[
object,
local,
uuid(1ABDAECA-68B6-4F83-9371-B413907C7B9F),
pointer_default(unique)
]
interface ISelector : IUnknown
{
HRESULT get_NumSources([out] DWORD *pdwNumSources);
HRESULT get_SourceNodeId([out] DWORD *pdwPinId);
HRESULT put_SourceNodeId([in] DWORD dwPinId);
}

58
include/dxsdk/vpconfig.h Normal file
View file

@ -0,0 +1,58 @@
#ifndef __IVPConfig__
#define __IVPConfig__
#ifdef __cplusplus
extern "C" {
#endif
DECLARE_INTERFACE_(IVPBaseConfig, IUnknown)
{
public:
STDMETHOD (GetConnectInfo)(THIS_ IN OUT LPDWORD pdwNumConnectInfo,
IN OUT LPDDVIDEOPORTCONNECT pddVPConnectInfo) PURE;
STDMETHOD (SetConnectInfo)(THIS_ IN DWORD dwChosenEntry) PURE;
STDMETHOD (GetVPDataInfo)(THIS_ IN OUT LPAMVPDATAINFO pamvpDataInfo) PURE;
STDMETHOD (GetMaxPixelRate)(THIS_ IN OUT LPAMVPSIZE pamvpSize,
OUT LPDWORD pdwMaxPixelsPerSecond) PURE;
STDMETHOD (InformVPInputFormats)(THIS_ IN DWORD dwNumFormats,
IN LPDDPIXELFORMAT pDDPixelFormats) PURE;
STDMETHOD (GetVideoFormats)(THIS_ IN OUT LPDWORD pdwNumFormats,
IN OUT LPDDPIXELFORMAT pddPixelFormats) PURE;
STDMETHOD (SetVideoFormat)(THIS_ IN DWORD dwChosenEntry) PURE;
STDMETHOD (SetInvertPolarity)(THIS_ ) PURE;
STDMETHOD (GetOverlaySurface)(THIS_ OUT LPDIRECTDRAWSURFACE* ppddOverlaySurface) PURE;
STDMETHOD (SetDirectDrawKernelHandle)(THIS_ IN ULONG_PTR dwDDKernelHandle) PURE;
STDMETHOD (SetVideoPortID)(THIS_ IN DWORD dwVideoPortID) PURE;
STDMETHOD (SetDDSurfaceKernelHandles)(THIS_ IN DWORD cHandles,
IN ULONG_PTR *rgDDKernelHandles) PURE;
STDMETHOD (SetSurfaceParameters)(THIS_ IN DWORD dwPitch, IN DWORD dwXOrigin,
IN DWORD dwYOrigin) PURE;
};
DECLARE_INTERFACE_(IVPConfig, IVPBaseConfig)
{
public:
STDMETHOD (IsVPDecimationAllowed)(THIS_ OUT LPBOOL pbIsDecimationAllowed) PURE;
STDMETHOD (SetScalingFactors)(THIS_ IN LPAMVPSIZE pamvpSize) PURE;
};
DECLARE_INTERFACE_(IVPVBIConfig, IVPBaseConfig)
{
public:
};
#ifdef __cplusplus
}
#endif
#endif

38
include/dxsdk/vpnotify.h Normal file
View file

@ -0,0 +1,38 @@
#ifndef __IVPNotify__
#define __IVPNotify__
#ifdef __cplusplus
extern "C" {
#endif
DECLARE_INTERFACE_(IVPBaseNotify, IUnknown)
{
public:
STDMETHOD (RenegotiateVPParameters)(THIS_) PURE;
};
DECLARE_INTERFACE_(IVPNotify, IVPBaseNotify)
{
public:
STDMETHOD (SetDeinterlaceMode)(THIS_ IN AMVP_MODE mode) PURE;
STDMETHOD (GetDeinterlaceMode)(THIS_ OUT AMVP_MODE *pMode) PURE;
};
DECLARE_INTERFACE_(IVPNotify2, IVPNotify)
{
public:
STDMETHOD (SetVPSyncMaster)(THIS_ IN BOOL bVPSyncMaster) PURE;
STDMETHOD (GetVPSyncMaster)(THIS_ OUT BOOL *pbVPSyncMaster) PURE;
};
DECLARE_INTERFACE_(IVPVBINotify, IVPBaseNotify)
{
public:
};
#ifdef __cplusplus
}
#endif
#endif

62
include/dxsdk/vptype.h Normal file
View file

@ -0,0 +1,62 @@
#ifndef __IVPType__
#define __IVPType__
#ifdef __cplusplus
extern "C" {
#endif
typedef enum _AMVP_MODE
{
AMVP_MODE_WEAVE,
AMVP_MODE_BOBINTERLEAVED,
AMVP_MODE_BOBNONINTERLEAVED,
AMVP_MODE_SKIPEVEN,
AMVP_MODE_SKIPODD
} AMVP_MODE;
typedef enum _AMVP_SELECT_FORMAT_BY
{
AMVP_DO_NOT_CARE,
AMVP_BEST_BANDWIDTH,
AMVP_INPUT_SAME_AS_OUTPUT
} AMVP_SELECT_FORMAT_BY;
typedef struct _AMVPSIZE
{
DWORD dwWidth;
DWORD dwHeight;
} AMVPSIZE, *LPAMVPSIZE;
typedef struct _AMVPDIMINFO
{
DWORD dwFieldWidth;
DWORD dwFieldHeight;
DWORD dwVBIWidth;
DWORD dwVBIHeight;
RECT rcValidRegion;
} AMVPDIMINFO, *LPAMVPDIMINFO;
typedef struct _AMVPDATAINFO
{
DWORD dwSize;
DWORD dwMicrosecondsPerField;
AMVPDIMINFO amvpDimInfo;
DWORD dwPictAspectRatioX;
DWORD dwPictAspectRatioY;
BOOL bEnableDoubleClock;
BOOL bEnableVACT;
BOOL bDataIsInterlaced;
LONG lHalfLinesOdd;
BOOL bFieldPolarityInverted;
DWORD dwNumLinesInVREF;
LONG lHalfLinesEven;
DWORD dwReserved1;
} AMVPDATAINFO, *LPAMVPDATAINFO;
#ifdef __cplusplus
}
#endif
#endif