mirror of
https://github.com/reactos/reactos.git
synced 2026-07-06 12:44:24 +08:00
- set svn:eol-style native
svn path=/trunk/; revision=26904
This commit is contained in:
@@ -1,307 +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>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#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
|
||||
@@ -1,175 +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
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -1,93 +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
|
||||
#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
|
||||
|
||||
Reference in New Issue
Block a user