Commit 5d0160ea authored by Alexandre Julliard's avatar Alexandre Julliard

Get rid of the non-standard Ixxx_METHODS macro definitions, declare

the interfaces explicitly instead.
parent 739e5b06
......@@ -590,9 +590,6 @@ HIMAGELIST WINAPI ImageList_LoadImageW(HINSTANCE,LPCWSTR,INT,INT,
COLORREF,UINT,UINT);
#define ImageList_LoadImage WINELIB_NAME_AW(ImageList_LoadImage)
HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST,INT,HIMAGELIST,INT,INT,INT);
#ifdef IStream_METHODS
HIMAGELIST WINAPI ImageList_Read(LPSTREAM);
#endif
BOOL WINAPI ImageList_Remove(HIMAGELIST,INT);
BOOL WINAPI ImageList_Replace(HIMAGELIST,INT,HBITMAP,HBITMAP);
INT WINAPI ImageList_ReplaceIcon(HIMAGELIST,INT,HICON);
......@@ -602,7 +599,9 @@ BOOL WINAPI ImageList_SetDragCursorImage(HIMAGELIST,INT,INT,INT);
BOOL WINAPI ImageList_SetIconSize(HIMAGELIST,INT,INT);
BOOL WINAPI ImageList_SetImageCount(HIMAGELIST,UINT);
BOOL WINAPI ImageList_SetOverlayImage(HIMAGELIST,INT,INT);
#ifdef IStream_METHODS
#ifdef __IStream_INTERFACE_DEFINED__
HIMAGELIST WINAPI ImageList_Read(LPSTREAM);
BOOL WINAPI ImageList_Write(HIMAGELIST, LPSTREAM);
#endif
......
......@@ -55,13 +55,17 @@ typedef struct ID3DXFont ID3DXFont, *LPD3DXFONT;
/*****************************************************************************
* ID3DXBuffer interface
*/
#undef INTERFACE
#define INTERFACE ID3DXBuffer
#define ID3DXBuffer_METHODS \
IUnknown_METHODS \
STDMETHOD_(LPVOID,GetBufferPointer)(THIS) PURE; \
DECLARE_INTERFACE_(ID3DXBuffer,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** ID3DXBuffer methods ***/
STDMETHOD_(LPVOID,GetBufferPointer)(THIS) PURE;
STDMETHOD_(DWORD,GetBufferSize)(THIS) PURE;
DECLARE_INTERFACE_(ID3DXBuffer,IUnknown) { ID3DXBuffer_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -77,14 +81,18 @@ DECLARE_INTERFACE_(ID3DXBuffer,IUnknown) { ID3DXBuffer_METHODS };
/*****************************************************************************
* ID3DXFont interface
*/
#undef INTERFACE
#define INTERFACE ID3DXFont
#define ID3DXFont_METHODS \
IUnknown_METHODS \
STDMETHOD(Begin)(THIS) PURE; \
STDMETHOD(DrawTextA)(THIS) PURE; \
DECLARE_INTERFACE_(ID3DXFont,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** ID3DXFont methods ***/
STDMETHOD(Begin)(THIS) PURE;
STDMETHOD(DrawTextA)(THIS) PURE;
STDMETHOD(End)(THIS) PURE;
DECLARE_INTERFACE_(ID3DXFont,IUnknown) { ID3DXFont_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
......@@ -123,17 +123,21 @@ enum enumDMUS_TRACKF_FLAGS {
/*****************************************************************************
* IDirectMusicTool interface
*/
#undef INTERFACE
#define INTERFACE IDirectMusicTool
#define IDirectMusicTool_METHODS \
IUnknown_METHODS \
STDMETHOD(Init)(THIS_ IDirectMusicGraph *pGraph) PURE; \
STDMETHOD(GetMsgDeliveryType)(THIS_ DWORD *pdwDeliveryType) PURE; \
STDMETHOD(GetMediaTypeArraySize)(THIS_ DWORD *pdwNumElements) PURE; \
STDMETHOD(GetMediaTypes)(THIS_ DWORD **padwMediaTypes, DWORD dwNumElements) PURE; \
STDMETHOD(ProcessPMsg)(THIS_ IDirectMusicPerformance *pPerf, DMUS_PMSG *pPMSG) PURE; \
DECLARE_INTERFACE_(IDirectMusicTool,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectMusicTool methods ***/
STDMETHOD(Init)(THIS_ IDirectMusicGraph *pGraph) PURE;
STDMETHOD(GetMsgDeliveryType)(THIS_ DWORD *pdwDeliveryType) PURE;
STDMETHOD(GetMediaTypeArraySize)(THIS_ DWORD *pdwNumElements) PURE;
STDMETHOD(GetMediaTypes)(THIS_ DWORD **padwMediaTypes, DWORD dwNumElements) PURE;
STDMETHOD(ProcessPMsg)(THIS_ IDirectMusicPerformance *pPerf, DMUS_PMSG *pPMSG) PURE;
STDMETHOD(Flush)(THIS_ IDirectMusicPerformance *pPerf, DMUS_PMSG *pPMSG, REFERENCE_TIME rtTime) PURE;
DECLARE_INTERFACE_(IDirectMusicTool,IUnknown) { IDirectMusicTool_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -154,12 +158,23 @@ DECLARE_INTERFACE_(IDirectMusicTool,IUnknown) { IDirectMusicTool_METHODS };
/*****************************************************************************
* IDirectMusicTool8 interface
*/
#undef INTERFACE
#define INTERFACE IDirectMusicTool8
#define IDirectMusicTool8_METHODS \
IDirectMusicTool_METHODS \
DECLARE_INTERFACE_(IDirectMusicTool8,IDirectMusicTool)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectMusicTool methods ***/
STDMETHOD(Init)(THIS_ IDirectMusicGraph *pGraph) PURE;
STDMETHOD(GetMsgDeliveryType)(THIS_ DWORD *pdwDeliveryType) PURE;
STDMETHOD(GetMediaTypeArraySize)(THIS_ DWORD *pdwNumElements) PURE;
STDMETHOD(GetMediaTypes)(THIS_ DWORD **padwMediaTypes, DWORD dwNumElements) PURE;
STDMETHOD(ProcessPMsg)(THIS_ IDirectMusicPerformance *pPerf, DMUS_PMSG *pPMSG) PURE;
STDMETHOD(Flush)(THIS_ IDirectMusicPerformance *pPerf, DMUS_PMSG *pPMSG, REFERENCE_TIME rtTime) PURE;
/*** IDirectMusicTool8 methods ***/
STDMETHOD(Clone)(THIS_ IDirectMusicTool **ppTool) PURE;
DECLARE_INTERFACE_(IDirectMusicTool8,IDirectMusicTool) { IDirectMusicTool8_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -182,21 +197,25 @@ DECLARE_INTERFACE_(IDirectMusicTool8,IDirectMusicTool) { IDirectMusicTool8_METHO
/*****************************************************************************
* IDirectMusicTrack interface
*/
#undef INTERFACE
#define INTERFACE IDirectMusicTrack
#define IDirectMusicTrack_METHODS \
IUnknown_METHODS \
STDMETHOD(Init)(THIS_ IDirectMusicSegment *pSegment) PURE; \
STDMETHOD(InitPlay)(THIS_ IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags) PURE; \
STDMETHOD(EndPlay)(THIS_ void *pStateData) PURE; \
STDMETHOD(Play)(THIS_ void *pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID) PURE; \
STDMETHOD(GetParam)(THIS_ REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME *pmtNext, void *pParam) PURE; \
STDMETHOD(SetParam)(THIS_ REFGUID rguidType, MUSIC_TIME mtTime, void *pParam) PURE; \
STDMETHOD(IsParamSupported)(THIS_ REFGUID rguidType) PURE; \
STDMETHOD(AddNotificationType)(THIS_ REFGUID rguidNotificationType) PURE; \
STDMETHOD(RemoveNotificationType)(THIS_ REFGUID rguidNotificationType) PURE; \
DECLARE_INTERFACE_(IDirectMusicTrack,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectMusicTrack methods ***/
STDMETHOD(Init)(THIS_ IDirectMusicSegment *pSegment) PURE;
STDMETHOD(InitPlay)(THIS_ IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags) PURE;
STDMETHOD(EndPlay)(THIS_ void *pStateData) PURE;
STDMETHOD(Play)(THIS_ void *pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID) PURE;
STDMETHOD(GetParam)(THIS_ REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME *pmtNext, void *pParam) PURE;
STDMETHOD(SetParam)(THIS_ REFGUID rguidType, MUSIC_TIME mtTime, void *pParam) PURE;
STDMETHOD(IsParamSupported)(THIS_ REFGUID rguidType) PURE;
STDMETHOD(AddNotificationType)(THIS_ REFGUID rguidNotificationType) PURE;
STDMETHOD(RemoveNotificationType)(THIS_ REFGUID rguidNotificationType) PURE;
STDMETHOD(Clone)(THIS_ MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack) PURE;
DECLARE_INTERFACE_(IDirectMusicTrack,IUnknown) { IDirectMusicTrack_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -221,16 +240,31 @@ DECLARE_INTERFACE_(IDirectMusicTrack,IUnknown) { IDirectMusicTrack_METHODS };
/*****************************************************************************
* IDirectMusicTrack8 interface
*/
#undef INTERFACE
#define INTERFACE IDirectMusicTrack8
#define IDirectMusicTrack8_METHODS \
IDirectMusicTrack_METHODS \
STDMETHOD(PlayEx)(THIS_ void *pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID) PURE; \
STDMETHOD(GetParamEx)(THIS_ REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME *prtNext, void *pParam, void *pStateData, DWORD dwFlags) PURE; \
STDMETHOD(SetParamEx)(THIS_ REFGUID rguidType, REFERENCE_TIME rtTime, void *pParam, void *pStateData, DWORD dwFlags) PURE; \
STDMETHOD(Compose)(THIS_ IUnknown *pContext, DWORD dwTrackGroup, IDirectMusicTrack **ppResultTrack) PURE; \
DECLARE_INTERFACE_(IDirectMusicTrack8,IDirectMusicTrack)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectMusicTrack methods ***/
STDMETHOD(Init)(THIS_ IDirectMusicSegment *pSegment) PURE;
STDMETHOD(InitPlay)(THIS_ IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags) PURE;
STDMETHOD(EndPlay)(THIS_ void *pStateData) PURE;
STDMETHOD(Play)(THIS_ void *pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID) PURE;
STDMETHOD(GetParam)(THIS_ REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME *pmtNext, void *pParam) PURE;
STDMETHOD(SetParam)(THIS_ REFGUID rguidType, MUSIC_TIME mtTime, void *pParam) PURE;
STDMETHOD(IsParamSupported)(THIS_ REFGUID rguidType) PURE;
STDMETHOD(AddNotificationType)(THIS_ REFGUID rguidNotificationType) PURE;
STDMETHOD(RemoveNotificationType)(THIS_ REFGUID rguidNotificationType) PURE;
STDMETHOD(Clone)(THIS_ MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack) PURE;
/*** IDirectMusicTrack8 methods ***/
STDMETHOD(PlayEx)(THIS_ void *pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID) PURE;
STDMETHOD(GetParamEx)(THIS_ REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME *prtNext, void *pParam, void *pStateData, DWORD dwFlags) PURE;
STDMETHOD(SetParamEx)(THIS_ REFGUID rguidType, REFERENCE_TIME rtTime, void *pParam, void *pStateData, DWORD dwFlags) PURE;
STDMETHOD(Compose)(THIS_ IUnknown *pContext, DWORD dwTrackGroup, IDirectMusicTrack **ppResultTrack) PURE;
STDMETHOD(Join)(THIS_ IDirectMusicTrack *pNewTrack, MUSIC_TIME mtJoin, IUnknown *pContext, DWORD dwTrackGroup, IDirectMusicTrack **ppResultTrack) PURE;
DECLARE_INTERFACE_(IDirectMusicTrack8,IDirectMusicTrack) { IDirectMusicTrack8_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
......@@ -73,28 +73,32 @@ struct _DMUS_VOICE_STATE {
/*****************************************************************************
* IDirectMusicSynth interface
*/
#undef INTERFACE
#define INTERFACE IDirectMusicSynth
#define IDirectMusicSynth_METHODS \
IUnknown_METHODS \
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 pdwWaveFormatExSiz) PURE; \
DECLARE_INTERFACE_(IDirectMusicSynth,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectMusicSynth methods ***/
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 pdwWaveFormatExSiz) PURE;
STDMETHOD(GetAppend)(THIS_ DWORD *pdwAppend) PURE;
DECLARE_INTERFACE_(IDirectMusicSynth,IUnknown) { IDirectMusicSynth_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -126,16 +130,38 @@ DECLARE_INTERFACE_(IDirectMusicSynth,IUnknown) { IDirectMusicSynth_METHODS };
/*****************************************************************************
* IDirectMusicSynth8 interface
*/
#undef INTERFACE
#define INTERFACE IDirectMusicSynth8
#define IDirectMusicSynth8_METHODS \
IDirectMusicSynth_METHODS \
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; \
DECLARE_INTERFACE_(IDirectMusicSynth8,IDirectMusicSynth)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectMusicSynth methods ***/
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 pdwWaveFormatExSiz) PURE;
STDMETHOD(GetAppend)(THIS_ DWORD *pdwAppend) PURE;
/*** IDirectMusicSynth8 methods ***/
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;
DECLARE_INTERFACE_(IDirectMusicSynth8,IDirectMusicSynth) { IDirectMusicSynth8_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -173,19 +199,23 @@ DECLARE_INTERFACE_(IDirectMusicSynth8,IDirectMusicSynth) { IDirectMusicSynth8_ME
/*****************************************************************************
* IDirectMusicSynthSink interface
*/
#undef INTERFACE
#define INTERFACE IDirectMusicSynthSink
#define IDirectMusicSynthSink_METHODS \
IUnknown_METHODS \
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; \
DECLARE_INTERFACE_(IDirectMusicSynthSink,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectMusicSynthSink methods ***/
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;
DECLARE_INTERFACE_(IDirectMusicSynthSink,IUnknown) { IDirectMusicSynthSink_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
......@@ -202,28 +202,33 @@ typedef struct IDirectPlay8AddressIP IDirectPlay8AddressIP, *PDIRECTPLAY8A
* IDirectPlay8Address interface
*/
#define INTERFACE IDirectPlay8Address
#define IDirectPlay8Address_METHODS \
IUnknown_METHODS \
STDMETHOD(BuildFromURLW)(THIS_ WCHAR* pwszSourceURL) PURE; \
STDMETHOD(BuildFromURLA)(THIS_ CHAR* pszSourceURL) PURE; \
STDMETHOD(Duplicate)(THIS_ PDIRECTPLAY8ADDRESS* ppdpaNewAddress) PURE; \
STDMETHOD(SetEqual)(THIS_ PDIRECTPLAY8ADDRESS pdpaAddress) PURE; \
STDMETHOD(IsEqual)(THIS_ PDIRECTPLAY8ADDRESS pdpaAddress) PURE; \
STDMETHOD(Clear)(THIS) PURE; \
STDMETHOD(GetURLW)(THIS_ WCHAR* pwszURL, PDWORD pdwNumChars) PURE; \
STDMETHOD(GetURLA)(THIS_ CHAR* pszURL, PDWORD pdwNumChars) PURE; \
STDMETHOD(GetSP)(THIS_ GUID* pguidSP) PURE; \
STDMETHOD(GetUserData)(THIS_ LPVOID pvUserData, PDWORD pdwBufferSize) PURE; \
STDMETHOD(SetSP)(THIS_ CONST GUID* CONST pguidSP) PURE; \
STDMETHOD(SetUserData)(THIS_ CONST void* CONST pvUserData, CONST DWORD dwDataSize) PURE; \
STDMETHOD(GetNumComponents)(THIS_ PDWORD pdwNumComponents) PURE; \
STDMETHOD(GetComponentByName)(THIS_ CONST WCHAR* CONST pwszName, LPVOID pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) PURE; \
STDMETHOD(GetComponentByIndex)(THIS_ CONST DWORD dwComponentID, WCHAR* pwszName, PDWORD pdwNameLen, void* pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) PURE; \
STDMETHOD(AddComponent)(THIS_ CONST WCHAR* CONST pwszName, CONST void* CONST lpvData, CONST DWORD dwDataSize, CONST DWORD dwDataType) PURE; \
STDMETHOD(GetDevice)(THIS_ GUID* pDevGuid) PURE; \
STDMETHOD(SetDevice)(THIS_ CONST GUID* CONST devGuid) PURE; \
STDMETHOD(BuildFromDirectPlay4Address)(THIS_ LPVOID pvAddress, DWORD dwDataSize) PURE;
DECLARE_INTERFACE_(IDirectPlay8Address,IUnknown) { IDirectPlay8Address_METHODS };
DECLARE_INTERFACE_(IDirectPlay8Address,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectPlay8Address methods ***/
STDMETHOD(BuildFromURLW)(THIS_ WCHAR* pwszSourceURL) PURE;
STDMETHOD(BuildFromURLA)(THIS_ CHAR* pszSourceURL) PURE;
STDMETHOD(Duplicate)(THIS_ PDIRECTPLAY8ADDRESS* ppdpaNewAddress) PURE;
STDMETHOD(SetEqual)(THIS_ PDIRECTPLAY8ADDRESS pdpaAddress) PURE;
STDMETHOD(IsEqual)(THIS_ PDIRECTPLAY8ADDRESS pdpaAddress) PURE;
STDMETHOD(Clear)(THIS) PURE;
STDMETHOD(GetURLW)(THIS_ WCHAR* pwszURL, PDWORD pdwNumChars) PURE;
STDMETHOD(GetURLA)(THIS_ CHAR* pszURL, PDWORD pdwNumChars) PURE;
STDMETHOD(GetSP)(THIS_ GUID* pguidSP) PURE;
STDMETHOD(GetUserData)(THIS_ LPVOID pvUserData, PDWORD pdwBufferSize) PURE;
STDMETHOD(SetSP)(THIS_ CONST GUID* CONST pguidSP) PURE;
STDMETHOD(SetUserData)(THIS_ CONST void* CONST pvUserData, CONST DWORD dwDataSize) PURE;
STDMETHOD(GetNumComponents)(THIS_ PDWORD pdwNumComponents) PURE;
STDMETHOD(GetComponentByName)(THIS_ CONST WCHAR* CONST pwszName, LPVOID pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) PURE;
STDMETHOD(GetComponentByIndex)(THIS_ CONST DWORD dwComponentID, WCHAR* pwszName, PDWORD pdwNameLen, void* pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) PURE;
STDMETHOD(AddComponent)(THIS_ CONST WCHAR* CONST pwszName, CONST void* CONST lpvData, CONST DWORD dwDataSize, CONST DWORD dwDataType) PURE;
STDMETHOD(GetDevice)(THIS_ GUID* pDevGuid) PURE;
STDMETHOD(SetDevice)(THIS_ CONST GUID* CONST devGuid) PURE;
STDMETHOD(BuildFromDirectPlay4Address)(THIS_ LPVOID pvAddress, DWORD dwDataSize) PURE;
};
#undef INTERFACE
......@@ -283,15 +288,20 @@ DECLARE_INTERFACE_(IDirectPlay8Address,IUnknown) { IDirectPlay8Address_METHODS }
* IDirectPlay8AddressIP interface
*/
#define INTERFACE IDirectPlay8AddressIP
#define IDirectPlay8AddressIP_METHODS \
IUnknown_METHODS \
STDMETHOD(BuildFromSockAddr)(THIS_ CONST SOCKADDR* CONST pSockAddr) PURE; \
STDMETHOD(BuildAddress)(THIS_ CONST WCHAR* CONST wszAddress, CONST USHORT usPort) PURE; \
STDMETHOD(BuildLocalAddress)(THIS_ CONST GUID* CONST pguidAdapter, CONST USHORT usPort) PURE; \
STDMETHOD(GetSockAddress)(THIS_ SOCKADDR* pSockAddr, PDWORD) PURE; \
STDMETHOD(GetLocalAddress)(THIS_ GUID* pguidAdapter, USHORT* pusPort) PURE; \
STDMETHOD(GetAddress)(THIS_ WCHAR* wszAddress, PDWORD pdwAddressLength, USHORT* psPort) PURE;
DECLARE_INTERFACE_(IDirectPlay8AddressIP,IUnknown) { IDirectPlay8AddressIP_METHODS };
DECLARE_INTERFACE_(IDirectPlay8AddressIP,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectPlay8AddressIP methods ***/
STDMETHOD(BuildFromSockAddr)(THIS_ CONST SOCKADDR* CONST pSockAddr) PURE;
STDMETHOD(BuildAddress)(THIS_ CONST WCHAR* CONST wszAddress, CONST USHORT usPort) PURE;
STDMETHOD(BuildLocalAddress)(THIS_ CONST GUID* CONST pguidAdapter, CONST USHORT usPort) PURE;
STDMETHOD(GetSockAddress)(THIS_ SOCKADDR* pSockAddr, PDWORD) PURE;
STDMETHOD(GetLocalAddress)(THIS_ GUID* pguidAdapter, USHORT* pusPort) PURE;
STDMETHOD(GetAddress)(THIS_ WCHAR* wszAddress, PDWORD pdwAddressLength, USHORT* psPort) PURE;
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
......@@ -369,43 +369,84 @@ typedef BOOL (CALLBACK *LPDPLENUMLOCALAPPLICATIONSCALLBACK)(
* IDirectPlayLobby and IDirectPlayLobbyA interface
*/
#define INTERFACE IDirectPlayLobby
#define IDirectPlayLobby_METHODS \
IUnknown_METHODS \
STDMETHOD(Connect)(THIS_ DWORD, LPDIRECTPLAY2*, IUnknown*) PURE; \
STDMETHOD(CreateAddress)(THIS_ REFGUID, REFGUID, LPCVOID, DWORD, LPVOID, LPDWORD) PURE; \
STDMETHOD(EnumAddress)(THIS_ LPDPENUMADDRESSCALLBACK, LPCVOID, DWORD, LPVOID) PURE; \
STDMETHOD(EnumAddressTypes)(THIS_ LPDPLENUMADDRESSTYPESCALLBACK, REFGUID, LPVOID, DWORD) PURE; \
STDMETHOD(EnumLocalApplications)(THIS_ LPDPLENUMLOCALAPPLICATIONSCALLBACK, LPVOID, DWORD) PURE; \
STDMETHOD(GetConnectionSettings)(THIS_ DWORD, LPVOID, LPDWORD) PURE; \
STDMETHOD(ReceiveLobbyMessage)(THIS_ DWORD, DWORD, LPDWORD, LPVOID, LPDWORD) PURE; \
STDMETHOD(RunApplication)(THIS_ DWORD, LPDWORD, LPDPLCONNECTION, HANDLE) PURE; \
STDMETHOD(SendLobbyMessage)(THIS_ DWORD, DWORD, LPVOID, DWORD) PURE; \
STDMETHOD(SetConnectionSettings)(THIS_ DWORD, DWORD, LPDPLCONNECTION) PURE; \
DECLARE_INTERFACE_(IDirectPlayLobby,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectPlayLobby methods ***/
STDMETHOD(Connect)(THIS_ DWORD, LPDIRECTPLAY2*, IUnknown*) PURE;
STDMETHOD(CreateAddress)(THIS_ REFGUID, REFGUID, LPCVOID, DWORD, LPVOID, LPDWORD) PURE;
STDMETHOD(EnumAddress)(THIS_ LPDPENUMADDRESSCALLBACK, LPCVOID, DWORD, LPVOID) PURE;
STDMETHOD(EnumAddressTypes)(THIS_ LPDPLENUMADDRESSTYPESCALLBACK, REFGUID, LPVOID, DWORD) PURE;
STDMETHOD(EnumLocalApplications)(THIS_ LPDPLENUMLOCALAPPLICATIONSCALLBACK, LPVOID, DWORD) PURE;
STDMETHOD(GetConnectionSettings)(THIS_ DWORD, LPVOID, LPDWORD) PURE;
STDMETHOD(ReceiveLobbyMessage)(THIS_ DWORD, DWORD, LPDWORD, LPVOID, LPDWORD) PURE;
STDMETHOD(RunApplication)(THIS_ DWORD, LPDWORD, LPDPLCONNECTION, HANDLE) PURE;
STDMETHOD(SendLobbyMessage)(THIS_ DWORD, DWORD, LPVOID, DWORD) PURE;
STDMETHOD(SetConnectionSettings)(THIS_ DWORD, DWORD, LPDPLCONNECTION) PURE;
STDMETHOD(SetLobbyMessageEvent)(THIS_ DWORD, DWORD, HANDLE) PURE;
DECLARE_INTERFACE_(IDirectPlayLobby,IUnknown) { IDirectPlayLobby_METHODS };
};
#undef INTERFACE
/*****************************************************************************
* IDirectPlayLobby2 and IDirectPlayLobby2A interface
*/
#define INTERFACE IDirectPlayLobby2
#define IDirectPlayLobby2_METHODS \
IDirectPlayLobby_METHODS \
DECLARE_INTERFACE_(IDirectPlayLobby2,IDirectPlayLobby)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectPlayLobby methods ***/
STDMETHOD(Connect)(THIS_ DWORD, LPDIRECTPLAY2*, IUnknown*) PURE;
STDMETHOD(CreateAddress)(THIS_ REFGUID, REFGUID, LPCVOID, DWORD, LPVOID, LPDWORD) PURE;
STDMETHOD(EnumAddress)(THIS_ LPDPENUMADDRESSCALLBACK, LPCVOID, DWORD, LPVOID) PURE;
STDMETHOD(EnumAddressTypes)(THIS_ LPDPLENUMADDRESSTYPESCALLBACK, REFGUID, LPVOID, DWORD) PURE;
STDMETHOD(EnumLocalApplications)(THIS_ LPDPLENUMLOCALAPPLICATIONSCALLBACK, LPVOID, DWORD) PURE;
STDMETHOD(GetConnectionSettings)(THIS_ DWORD, LPVOID, LPDWORD) PURE;
STDMETHOD(ReceiveLobbyMessage)(THIS_ DWORD, DWORD, LPDWORD, LPVOID, LPDWORD) PURE;
STDMETHOD(RunApplication)(THIS_ DWORD, LPDWORD, LPDPLCONNECTION, HANDLE) PURE;
STDMETHOD(SendLobbyMessage)(THIS_ DWORD, DWORD, LPVOID, DWORD) PURE;
STDMETHOD(SetConnectionSettings)(THIS_ DWORD, DWORD, LPDPLCONNECTION) PURE;
STDMETHOD(SetLobbyMessageEvent)(THIS_ DWORD, DWORD, HANDLE) PURE;
/*** IDirectPlayLobby2 methods ***/
STDMETHOD(CreateCompoundAddress)(THIS_ LPCDPCOMPOUNDADDRESSELEMENT, DWORD, LPVOID, LPDWORD) PURE;
DECLARE_INTERFACE_(IDirectPlayLobby2,IDirectPlayLobby) { IDirectPlayLobby2_METHODS };
};
#undef INTERFACE
/*****************************************************************************
* IDirectPlayLobby3 and IDirectPlayLobby3A interface
*/
#define INTERFACE IDirectPlayLobby3
#define IDirectPlayLobby3_METHODS \
IDirectPlayLobby2_METHODS \
STDMETHOD(ConnectEx)(THIS_ DWORD, REFIID, LPVOID *, IUnknown *) PURE; \
STDMETHOD(RegisterApplication)(THIS_ DWORD, LPDPAPPLICATIONDESC) PURE; \
STDMETHOD(UnregisterApplication)(THIS_ DWORD, REFGUID) PURE; \
DECLARE_INTERFACE_(IDirectPlayLobby3,IDirectPlayLobby2)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectPlayLobby methods ***/
STDMETHOD(Connect)(THIS_ DWORD, LPDIRECTPLAY2*, IUnknown*) PURE;
STDMETHOD(CreateAddress)(THIS_ REFGUID, REFGUID, LPCVOID, DWORD, LPVOID, LPDWORD) PURE;
STDMETHOD(EnumAddress)(THIS_ LPDPENUMADDRESSCALLBACK, LPCVOID, DWORD, LPVOID) PURE;
STDMETHOD(EnumAddressTypes)(THIS_ LPDPLENUMADDRESSTYPESCALLBACK, REFGUID, LPVOID, DWORD) PURE;
STDMETHOD(EnumLocalApplications)(THIS_ LPDPLENUMLOCALAPPLICATIONSCALLBACK, LPVOID, DWORD) PURE;
STDMETHOD(GetConnectionSettings)(THIS_ DWORD, LPVOID, LPDWORD) PURE;
STDMETHOD(ReceiveLobbyMessage)(THIS_ DWORD, DWORD, LPDWORD, LPVOID, LPDWORD) PURE;
STDMETHOD(RunApplication)(THIS_ DWORD, LPDWORD, LPDPLCONNECTION, HANDLE) PURE;
STDMETHOD(SendLobbyMessage)(THIS_ DWORD, DWORD, LPVOID, DWORD) PURE;
STDMETHOD(SetConnectionSettings)(THIS_ DWORD, DWORD, LPDPLCONNECTION) PURE;
STDMETHOD(SetLobbyMessageEvent)(THIS_ DWORD, DWORD, HANDLE) PURE;
/*** IDirectPlayLobby2 methods ***/
STDMETHOD(CreateCompoundAddress)(THIS_ LPCDPCOMPOUNDADDRESSELEMENT, DWORD, LPVOID, LPDWORD) PURE;
/*** IDirectPlayLobby3 methods ***/
STDMETHOD(ConnectEx)(THIS_ DWORD, REFIID, LPVOID *, IUnknown *) PURE;
STDMETHOD(RegisterApplication)(THIS_ DWORD, LPDPAPPLICATIONDESC) PURE;
STDMETHOD(UnregisterApplication)(THIS_ DWORD, REFGUID) PURE;
STDMETHOD(WaitForConnectionSettings)(THIS_ DWORD) PURE;
DECLARE_INTERFACE_(IDirectPlayLobby3,IDirectPlayLobby2) { IDirectPlayLobby3_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
......@@ -133,15 +133,20 @@ typedef struct _DSCDRIVERCAPS
* IDsDriver interface
*/
#define INTERFACE IDsDriver
#define IDsDriver_METHODS \
IUnknown_METHODS \
STDMETHOD(GetDriverDesc)(THIS_ PDSDRIVERDESC pDsDriverDesc) PURE; \
STDMETHOD(Open)(THIS) PURE; \
STDMETHOD(Close)(THIS) PURE; \
STDMETHOD(GetCaps)(THIS_ PDSDRIVERCAPS pDsDrvCaps) PURE; \
STDMETHOD(CreateSoundBuffer)(THIS_ LPWAVEFORMATEX pwfx,DWORD dwFlags,DWORD dwCardAddress,LPDWORD pdwcbBufferSize,LPBYTE *ppbBuffer,LPVOID *ppvObj) PURE; \
DECLARE_INTERFACE_(IDsDriver,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsDriver methods ***/
STDMETHOD(GetDriverDesc)(THIS_ PDSDRIVERDESC pDsDriverDesc) PURE;
STDMETHOD(Open)(THIS) PURE;
STDMETHOD(Close)(THIS) PURE;
STDMETHOD(GetCaps)(THIS_ PDSDRIVERCAPS pDsDrvCaps) PURE;
STDMETHOD(CreateSoundBuffer)(THIS_ LPWAVEFORMATEX pwfx,DWORD dwFlags,DWORD dwCardAddress,LPDWORD pdwcbBufferSize,LPBYTE *ppbBuffer,LPVOID *ppvObj) PURE;
STDMETHOD(DuplicateSoundBuffer)(THIS_ PIDSDRIVERBUFFER pIDsDriverBuffer,LPVOID *ppvObj) PURE;
DECLARE_INTERFACE_(IDsDriver,IUnknown) { IDsDriver_METHODS };
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
......@@ -162,18 +167,23 @@ DECLARE_INTERFACE_(IDsDriver,IUnknown) { IDsDriver_METHODS };
* IDsDriverBuffer interface
*/
#define INTERFACE IDsDriverBuffer
#define IDsDriverBuffer_METHODS \
IUnknown_METHODS \
STDMETHOD(Lock)(THIS_ LPVOID *ppvAudio1,LPDWORD pdwLen1,LPVOID *pdwAudio2,LPDWORD pdwLen2,DWORD dwWritePosition,DWORD dwWriteLen,DWORD dwFlags) PURE; \
STDMETHOD(Unlock)(THIS_ LPVOID pvAudio1,DWORD dwLen1,LPVOID pvAudio2,DWORD dwLen2) PURE; \
STDMETHOD(SetFormat)(THIS_ LPWAVEFORMATEX pwfxToSet) PURE; \
STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE; \
STDMETHOD(SetVolumePan)(THIS_ PDSVOLUMEPAN pDsVolumePan) PURE; \
STDMETHOD(SetPosition)(THIS_ DWORD dwNewPosition) PURE; \
STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor,LPDWORD lpdwCurrentWriteCursor) PURE; \
STDMETHOD(Play)(THIS_ DWORD dwReserved1,DWORD dwReserved2,DWORD dwFlags) PURE; \
DECLARE_INTERFACE_(IDsDriverBuffer,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsDriverBuffer methods ***/
STDMETHOD(Lock)(THIS_ LPVOID *ppvAudio1,LPDWORD pdwLen1,LPVOID *pdwAudio2,LPDWORD pdwLen2,DWORD dwWritePosition,DWORD dwWriteLen,DWORD dwFlags) PURE;
STDMETHOD(Unlock)(THIS_ LPVOID pvAudio1,DWORD dwLen1,LPVOID pvAudio2,DWORD dwLen2) PURE;
STDMETHOD(SetFormat)(THIS_ LPWAVEFORMATEX pwfxToSet) PURE;
STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
STDMETHOD(SetVolumePan)(THIS_ PDSVOLUMEPAN pDsVolumePan) PURE;
STDMETHOD(SetPosition)(THIS_ DWORD dwNewPosition) PURE;
STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor,LPDWORD lpdwCurrentWriteCursor) PURE;
STDMETHOD(Play)(THIS_ DWORD dwReserved1,DWORD dwReserved2,DWORD dwFlags) PURE;
STDMETHOD(Stop)(THIS) PURE;
DECLARE_INTERFACE_(IDsDriverBuffer,IUnknown) { IDsDriverBuffer_METHODS };
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
......@@ -197,12 +207,17 @@ DECLARE_INTERFACE_(IDsDriverBuffer,IUnknown) { IDsDriverBuffer_METHODS };
* IDsDriverPropertySet interface
*/
#define INTERFACE IDsDriverPropertySet
#define IDsDriverPropertySet_METHODS \
IUnknown_METHODS \
STDMETHOD(Get)(THIS_ PDSPROPERTY pDsProperty,LPVOID pPropertyParams,ULONG cbPropertyParams,LPVOID pPropertyData,ULONG cbPropertyData,PULONG pcbReturnedData) PURE; \
STDMETHOD(Set)(THIS_ PDSPROPERTY pDsProperty,LPVOID pPropertyParams,ULONG cbPropertyParams,LPVOID pPropertyData,ULONG cbPropertyData) PURE; \
DECLARE_INTERFACE_(IDsDriverPropertySet,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsDriverPropertySet methods ***/
STDMETHOD(Get)(THIS_ PDSPROPERTY pDsProperty,LPVOID pPropertyParams,ULONG cbPropertyParams,LPVOID pPropertyData,ULONG cbPropertyData,PULONG pcbReturnedData) PURE;
STDMETHOD(Set)(THIS_ PDSPROPERTY pDsProperty,LPVOID pPropertyParams,ULONG cbPropertyParams,LPVOID pPropertyData,ULONG cbPropertyData) PURE;
STDMETHOD(QuerySupport)(THIS_ REFGUID PropertySetId,ULONG PropertyId,PULONG pSupport) PURE;
DECLARE_INTERFACE_(IDsDriverPropertySet,IUnknown) { IDsDriverPropertySet_METHODS };
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
......@@ -255,10 +270,15 @@ typedef enum
* IDsDriverNotify interface
*/
#define INTERFACE IDsDriverNotify
#define IDsDriverNotify_METHODS \
IUnknown_METHODS \
DECLARE_INTERFACE_(IDsDriverNotify,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsDriverNotify methods ***/
STDMETHOD(SetNotificationPositions)(THIS_ DWORD dwPositionNotifies,LPCDSBPOSITIONNOTIFY pcPositionNotifies) PURE;
DECLARE_INTERFACE_(IDsDriverNotify,IUnknown) { IDsDriverNotify_METHODS };
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
......@@ -274,14 +294,19 @@ DECLARE_INTERFACE_(IDsDriverNotify,IUnknown) { IDsDriverNotify_METHODS };
* IDsCaptureDriver interface
*/
#define INTERFACE IDsCaptureDriver
#define IDsCaptureDriver_METHODS \
IUnknown_METHODS \
STDMETHOD(GetDriverDesc)(THIS_ PDSDRIVERDESC pDsDriverDesc) PURE; \
STDMETHOD(Open)(THIS) PURE; \
STDMETHOD(Close)(THIS) PURE; \
STDMETHOD(GetCaps)(THIS_ PDSCDRIVERCAPS pDsDrvCaps) PURE; \
DECLARE_INTERFACE_(IDsCaptureDriver,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsCaptureDriver methods ***/
STDMETHOD(GetDriverDesc)(THIS_ PDSDRIVERDESC pDsDriverDesc) PURE;
STDMETHOD(Open)(THIS) PURE;
STDMETHOD(Close)(THIS) PURE;
STDMETHOD(GetCaps)(THIS_ PDSCDRIVERCAPS pDsDrvCaps) PURE;
STDMETHOD(CreateCaptureBuffer)(THIS_ LPWAVEFORMATEX pwfx,DWORD dwFlags,DWORD dwCardAddress,LPDWORD pdwcbBufferSize,LPBYTE *ppbBuffer,LPVOID *ppvObj) PURE;
DECLARE_INTERFACE_(IDsCaptureDriver,IUnknown) { IDsCaptureDriver_METHODS };
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
......@@ -301,16 +326,21 @@ DECLARE_INTERFACE_(IDsCaptureDriver,IUnknown) { IDsCaptureDriver_METHODS };
* IDsCaptureDriverBuffer interface
*/
#define INTERFACE IDsCaptureDriverBuffer
#define IDsCaptureDriverBuffer_METHODS \
IUnknown_METHODS \
STDMETHOD(Lock)(THIS_ LPVOID *ppvAudio1,LPDWORD pdwLen1,LPVOID *ppvAudio2,LPDWORD pdwLen2,DWORD dwWritePosition,DWORD dwWriteLen,DWORD dwFlags) PURE; \
STDMETHOD(Unlock)(THIS_ LPVOID pvAudio1,DWORD dwLen1,LPVOID pvAudio2,DWORD dwLen2) PURE; \
STDMETHOD(SetFormat)(THIS_ LPWAVEFORMATEX pwfxToSet) PURE; \
STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor,LPDWORD lpdwCurrentWriteCursor) PURE; \
STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE; \
STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE; \
DECLARE_INTERFACE_(IDsCaptureDriverBuffer,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDsCaptureDriverBuffer methods ***/
STDMETHOD(Lock)(THIS_ LPVOID *ppvAudio1,LPDWORD pdwLen1,LPVOID *ppvAudio2,LPDWORD pdwLen2,DWORD dwWritePosition,DWORD dwWriteLen,DWORD dwFlags) PURE;
STDMETHOD(Unlock)(THIS_ LPVOID pvAudio1,DWORD dwLen1,LPVOID pvAudio2,DWORD dwLen2) PURE;
STDMETHOD(SetFormat)(THIS_ LPWAVEFORMATEX pwfxToSet) PURE;
STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor,LPDWORD lpdwCurrentWriteCursor) PURE;
STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE;
STDMETHOD(Stop)(THIS) PURE;
DECLARE_INTERFACE_(IDsCaptureDriverBuffer,IUnknown) { IDsCaptureDriverBuffer_METHODS };
};
#undef INTERFACE
#if !defined (__cplusplus) || defined(CINTERFACE)
......
......@@ -68,11 +68,16 @@ typedef struct IDxDiagContainer IDxDiagContainer, *LPDXDIAGCONTAINER, *PDX
* IDxDiagProvider interface
*/
#define INTERFACE IDxDiagProvider
#define IDxDiagProvider_METHODS \
IUnknown_METHODS \
STDMETHOD(Initialize)(THIS_ DXDIAG_INIT_PARAMS* pParams) PURE; \
STDMETHOD(GetRootContainer)(THIS_ IDxDiagContainer** ppInstance) PURE;
DECLARE_INTERFACE_(IDxDiagProvider,IUnknown) { IDxDiagProvider_METHODS };
DECLARE_INTERFACE_(IDxDiagProvider,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDxDiagProvider methods ***/
STDMETHOD(Initialize)(THIS_ DXDIAG_INIT_PARAMS* pParams) PURE;
STDMETHOD(GetRootContainer)(THIS_ IDxDiagContainer** ppInstance) PURE;
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -101,15 +106,20 @@ DECLARE_INTERFACE_(IDxDiagProvider,IUnknown) { IDxDiagProvider_METHODS };
#endif
#define INTERFACE IDxDiagContainer
#define IDxDiagContainer_METHODS \
IUnknown_METHODS \
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;
DECLARE_INTERFACE_(IDxDiagContainer,IUnknown) { IDxDiagContainer_METHODS };
DECLARE_INTERFACE_(IDxDiagContainer,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDxDiagContainer methods ***/
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;
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
......@@ -62,12 +62,17 @@ typedef struct IDirectXFileBinary IDirectXFileBinary, *LPDIRECTXFILEBINARY;
STDAPI DirectXFileCreate(LPDIRECTXFILE *lplpDirectXFile);
#define INTERFACE IDirectXFile
#define IDirectXFile_METHODS \
IUnknown_METHODS \
STDMETHOD(CreateEnumObject) (THIS_ LPVOID, DXFILELOADOPTIONS, LPDIRECTXFILEENUMOBJECT *) PURE; \
STDMETHOD(CreateSaveObject) (THIS_ LPCSTR, DXFILEFORMAT, LPDIRECTXFILESAVEOBJECT *) PURE; \
DECLARE_INTERFACE_(IDirectXFile,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectXFile methods ***/
STDMETHOD(CreateEnumObject) (THIS_ LPVOID, DXFILELOADOPTIONS, LPDIRECTXFILEENUMOBJECT *) PURE;
STDMETHOD(CreateSaveObject) (THIS_ LPCSTR, DXFILEFORMAT, LPDIRECTXFILESAVEOBJECT *) PURE;
STDMETHOD(RegisterTemplates) (THIS_ LPVOID, DWORD) PURE;
DECLARE_INTERFACE_(IDirectXFile,IUnknown) { IDirectXFile_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -82,12 +87,17 @@ DECLARE_INTERFACE_(IDirectXFile,IUnknown) { IDirectXFile_METHODS };
#endif
#define INTERFACE IDirectXFileEnumObject
#define IDirectXFileEnumObject_METHODS \
IUnknown_METHODS \
STDMETHOD(GetNextDataObject) (THIS_ LPDIRECTXFILEDATA *) PURE; \
STDMETHOD(GetDataObjectById) (THIS_ REFGUID, LPDIRECTXFILEDATA *) PURE; \
DECLARE_INTERFACE_(IDirectXFileEnumObject,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectXFileEnumObject methods ***/
STDMETHOD(GetNextDataObject) (THIS_ LPDIRECTXFILEDATA *) PURE;
STDMETHOD(GetDataObjectById) (THIS_ REFGUID, LPDIRECTXFILEDATA *) PURE;
STDMETHOD(GetDataObjectByName) (THIS_ LPCSTR, LPDIRECTXFILEDATA *) PURE;
DECLARE_INTERFACE_(IDirectXFileEnumObject,IUnknown) { IDirectXFileEnumObject_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -102,12 +112,17 @@ DECLARE_INTERFACE_(IDirectXFileEnumObject,IUnknown) { IDirectXFileEnumObject_MET
#endif
#define INTERFACE IDirectXFileSaveObject
#define IDirectXFileSaveObject_METHODS \
IUnknown_METHODS \
STDMETHOD(SaveTemplates) (THIS_ DWORD, const GUID **) PURE; \
STDMETHOD(CreateDataObject) (THIS_ REFGUID, LPCSTR, const GUID *, DWORD, LPVOID, LPDIRECTXFILEDATA *) PURE; \
DECLARE_INTERFACE_(IDirectXFileSaveObject,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectXFileSaveObject methods ***/
STDMETHOD(SaveTemplates) (THIS_ DWORD, const GUID **) PURE;
STDMETHOD(CreateDataObject) (THIS_ REFGUID, LPCSTR, const GUID *, DWORD, LPVOID, LPDIRECTXFILEDATA *) PURE;
STDMETHOD(SaveData) (THIS_ LPDIRECTXFILEDATA) PURE;
DECLARE_INTERFACE_(IDirectXFileSaveObject,IUnknown) { IDirectXFileSaveObject_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -131,10 +146,11 @@ DECLARE_INTERFACE_(IDirectXFileSaveObject,IUnknown) { IDirectXFileSaveObject_MET
STDMETHOD(GetId) (THIS_ LPGUID) kind
#define INTERFACE IDirectXFileObject
#define IDirectXFileObject_METHODS \
IUNKNOWN_METHODS(PURE); \
DECLARE_INTERFACE_(IDirectXFileObject,IUnknown)
{
IUNKNOWN_METHODS(PURE);
IDIRECTXFILEOBJECT_METHODS(PURE);
DECLARE_INTERFACE_(IDirectXFileObject,IUnknown) { IDirectXFileObject_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -148,16 +164,18 @@ DECLARE_INTERFACE_(IDirectXFileObject,IUnknown) { IDirectXFileObject_METHODS };
#endif
#define INTERFACE IDirectXFileData
#define IDirectXFileData_METHODS \
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; \
DECLARE_INTERFACE_(IDirectXFileData,IDirectXFileObject)
{
IUNKNOWN_METHODS(PURE);
IDIRECTXFILEOBJECT_METHODS(PURE);
/*** IDirectXFileData methods ***/
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;
DECLARE_INTERFACE_(IDirectXFileData,IDirectXFileObject) { IDirectXFileData_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -178,11 +196,13 @@ DECLARE_INTERFACE_(IDirectXFileData,IDirectXFileObject) { IDirectXFileData_METHO
#endif
#define INTERFACE IDirectXFileDataReference
#define IDirectXFileDataReference_METHODS \
IUNKNOWN_METHODS(PURE); \
IDIRECTXFILEOBJECT_METHODS(PURE); \
DECLARE_INTERFACE_(IDirectXFileDataReference,IDirectXFileObject)
{
IUNKNOWN_METHODS(PURE);
IDIRECTXFILEOBJECT_METHODS(PURE);
/*** IDirectXFileDataReference methods ***/
STDMETHOD(Resolve) (THIS_ LPDIRECTXFILEDATA *) PURE;
DECLARE_INTERFACE_(IDirectXFileDataReference,IDirectXFileObject) { IDirectXFileDataReference_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -198,13 +218,15 @@ DECLARE_INTERFACE_(IDirectXFileDataReference,IDirectXFileObject) { IDirectXFileD
#endif
#define INTERFACE IDirectXFileBinary
#define IDirectXFileBinary_METHODS \
IUNKNOWN_METHODS(PURE); \
IDIRECTXFILEOBJECT_METHODS(PURE); \
STDMETHOD(GetSize) (THIS_ DWORD *) PURE; \
STDMETHOD(GetMimeType) (THIS_ LPCSTR *) PURE; \
DECLARE_INTERFACE_(IDirectXFileBinary,IDirectXFileObject)
{
IUNKNOWN_METHODS(PURE);
IDIRECTXFILEOBJECT_METHODS(PURE);
/*** IDirectXFileBinary methods ***/
STDMETHOD(GetSize) (THIS_ DWORD *) PURE;
STDMETHOD(GetMimeType) (THIS_ LPCSTR *) PURE;
STDMETHOD(Read) (THIS_ LPVOID, DWORD, LPDWORD) PURE;
DECLARE_INTERFACE_(IDirectXFileBinary,IDirectXFileObject) { IDirectXFileBinary_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
......@@ -768,35 +768,40 @@ typedef NOTIFCALLBACK *LPNOTIFCALLBACK;
* This is the read-only 'view' over an I(MAPI)TableData object.
*/
#define INTERFACE IMAPITable
#define IMAPITable_METHODS \
IUnknown_METHODS \
STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppError) PURE; \
STDMETHOD(Advise)(THIS_ ULONG ulMask, LPMAPIADVISESINK lpSink, ULONG *lpCxn) PURE; \
STDMETHOD(Unadvise)(THIS_ ULONG ulCxn) PURE; \
STDMETHOD(GetStatus)(THIS_ ULONG *lpStatus, ULONG *lpType) PURE; \
STDMETHOD(SetColumns)(THIS_ LPSPropTagArray lpProps, ULONG ulFlags) PURE; \
STDMETHOD(QueryColumns)(THIS_ ULONG ulFlags, LPSPropTagArray *lpCols) PURE; \
STDMETHOD(GetRowCount)(THIS_ ULONG ulFlags, ULONG *lpCount) PURE; \
STDMETHOD(SeekRow)(THIS_ BOOKMARK lpStart, LONG lRows, LONG *lpSeeked) PURE; \
STDMETHOD(SeekRowApprox)(THIS_ ULONG ulNum, ULONG ulDenom) PURE; \
STDMETHOD(QueryPosition)(THIS_ ULONG *lpRow, ULONG *lpNum, ULONG *lpDenom) PURE; \
STDMETHOD(FindRow)(THIS_ LPSRestriction lpRestrict, BOOKMARK lpOrigin, ULONG ulFlags) PURE; \
STDMETHOD(Restrict)(THIS_ LPSRestriction lpRestrict, ULONG ulFlags) PURE; \
STDMETHOD(CreateBookmark)(THIS_ BOOKMARK *lppPos) PURE; \
STDMETHOD(FreeBookmark)(THIS_ BOOKMARK lpPos) PURE; \
STDMETHOD(SortTable)(THIS_ LPSSortOrderSet lpSortOpts, ULONG ulFlags) PURE; \
STDMETHOD(QuerySortOrder)(THIS_ LPSSortOrderSet *lppSortOpts) PURE; \
STDMETHOD(QueryRows)(THIS_ LONG lRows, ULONG ulFlags, LPSRowSet *lppRows) PURE; \
STDMETHOD(Abort) (THIS) PURE; \
STDMETHOD(ExpandRow)(THIS_ ULONG cbKey, LPBYTE lpKey, ULONG ulRows, \
ULONG ulFlags, LPSRowSet *lppRows, ULONG *lpMore) PURE; \
STDMETHOD(CollapseRow)(THIS_ ULONG cbKey, LPBYTE lpKey, ULONG ulFlags, ULONG *lpRows) PURE; \
STDMETHOD(WaitForCompletion)(THIS_ ULONG ulFlags, ULONG ulTime, ULONG *lpState) PURE; \
STDMETHOD(GetCollapseState)(THIS_ ULONG ulFlags, ULONG cbKey, LPBYTE lpKey, \
ULONG *lpStateLen, LPBYTE *lpState) PURE; \
STDMETHOD(SetCollapseState)(THIS_ ULONG ulFlags, ULONG ulLen, \
DECLARE_INTERFACE_(IMAPITable,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IMAPITable methods ***/
STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppError) PURE;
STDMETHOD(Advise)(THIS_ ULONG ulMask, LPMAPIADVISESINK lpSink, ULONG *lpCxn) PURE;
STDMETHOD(Unadvise)(THIS_ ULONG ulCxn) PURE;
STDMETHOD(GetStatus)(THIS_ ULONG *lpStatus, ULONG *lpType) PURE;
STDMETHOD(SetColumns)(THIS_ LPSPropTagArray lpProps, ULONG ulFlags) PURE;
STDMETHOD(QueryColumns)(THIS_ ULONG ulFlags, LPSPropTagArray *lpCols) PURE;
STDMETHOD(GetRowCount)(THIS_ ULONG ulFlags, ULONG *lpCount) PURE;
STDMETHOD(SeekRow)(THIS_ BOOKMARK lpStart, LONG lRows, LONG *lpSeeked) PURE;
STDMETHOD(SeekRowApprox)(THIS_ ULONG ulNum, ULONG ulDenom) PURE;
STDMETHOD(QueryPosition)(THIS_ ULONG *lpRow, ULONG *lpNum, ULONG *lpDenom) PURE;
STDMETHOD(FindRow)(THIS_ LPSRestriction lpRestrict, BOOKMARK lpOrigin, ULONG ulFlags) PURE;
STDMETHOD(Restrict)(THIS_ LPSRestriction lpRestrict, ULONG ulFlags) PURE;
STDMETHOD(CreateBookmark)(THIS_ BOOKMARK *lppPos) PURE;
STDMETHOD(FreeBookmark)(THIS_ BOOKMARK lpPos) PURE;
STDMETHOD(SortTable)(THIS_ LPSSortOrderSet lpSortOpts, ULONG ulFlags) PURE;
STDMETHOD(QuerySortOrder)(THIS_ LPSSortOrderSet *lppSortOpts) PURE;
STDMETHOD(QueryRows)(THIS_ LONG lRows, ULONG ulFlags, LPSRowSet *lppRows) PURE;
STDMETHOD(Abort) (THIS) PURE;
STDMETHOD(ExpandRow)(THIS_ ULONG cbKey, LPBYTE lpKey, ULONG ulRows,
ULONG ulFlags, LPSRowSet *lppRows, ULONG *lpMore) PURE;
STDMETHOD(CollapseRow)(THIS_ ULONG cbKey, LPBYTE lpKey, ULONG ulFlags, ULONG *lpRows) PURE;
STDMETHOD(WaitForCompletion)(THIS_ ULONG ulFlags, ULONG ulTime, ULONG *lpState) PURE;
STDMETHOD(GetCollapseState)(THIS_ ULONG ulFlags, ULONG cbKey, LPBYTE lpKey,
ULONG *lpStateLen, LPBYTE *lpState) PURE;
STDMETHOD(SetCollapseState)(THIS_ ULONG ulFlags, ULONG ulLen,
LPBYTE lpStart, BOOKMARK *lppWhere) PURE;
DECLARE_INTERFACE_(IMAPITable,IUnknown) { IMAPITable_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -834,10 +839,15 @@ DECLARE_INTERFACE_(IMAPITable,IUnknown) { IMAPITable_METHODS };
* IMAPIAdviseSink interface
*/
#define INTERFACE IMAPIAdviseSink
#define IMAPIAdviseSink_METHODS \
IUnknown_METHODS \
DECLARE_INTERFACE_(IMAPIAdviseSink,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IMAPIAdviseSink methods ***/
STDMETHOD(OnNotify)(THIS_ ULONG NumNotif, LPNOTIFICATION lpNotif) PURE;
DECLARE_INTERFACE_(IMAPIAdviseSink,IUnknown) { IMAPIAdviseSink_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -853,24 +863,29 @@ DECLARE_INTERFACE_(IMAPIAdviseSink,IUnknown) { IMAPIAdviseSink_METHODS };
* IMAPIProp interface
*/
#define INTERFACE IMAPIProp
#define IMAPIProp_METHODS \
IUnknown_METHODS \
STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppErr) PURE; \
STDMETHOD(SaveChanges)(THIS_ ULONG ulFlags) PURE; \
STDMETHOD(GetProps)(THIS_ LPSPropTagArray lpPropTags, ULONG ulFlags, ULONG *lpValues, LPSPropValue *lppProps) PURE; \
STDMETHOD(GetPropList)(THIS_ ULONG ulFlags, LPSPropTagArray *lppPropTagArray) PURE; \
STDMETHOD(OpenProperty)(THIS_ ULONG ulPropTag, LPCIID lpIid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lppUnk) PURE; \
STDMETHOD(SetProps)(THIS_ ULONG cValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs) PURE; \
STDMETHOD(DeleteProps)(THIS_ LPSPropTagArray lpPropTags, LPSPropProblemArray *lppProbs) PURE; \
STDMETHOD(CopyTo)(THIS_ ULONG ciidExclude, LPCIID lpIid, LPSPropTagArray lpProps, ULONG ulParam, \
LPMAPIPROGRESS lpProgress, LPCIID lpIface,LPVOID lpDest, ULONG ulFlags, \
LPSPropProblemArray *lppProbs) PURE; \
STDMETHOD(CopyProps)(THIS_ LPSPropTagArray lpIncludeProps, ULONG ulParam, LPMAPIPROGRESS lpProgress, \
LPCIID lpIid, LPVOID lpDestObj, ULONG ulFlags, LPSPropProblemArray *lppProblems) PURE; \
STDMETHOD(GetNamesFromIDs)(THIS_ LPSPropTagArray *lppPropTags, LPGUID lpIid, ULONG ulFlags, ULONG *lpCount, \
LPMAPINAMEID **lpppNames) PURE; \
DECLARE_INTERFACE_(IMAPIProp,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IMAPIProp methods ***/
STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppErr) PURE;
STDMETHOD(SaveChanges)(THIS_ ULONG ulFlags) PURE;
STDMETHOD(GetProps)(THIS_ LPSPropTagArray lpPropTags, ULONG ulFlags, ULONG *lpValues, LPSPropValue *lppProps) PURE;
STDMETHOD(GetPropList)(THIS_ ULONG ulFlags, LPSPropTagArray *lppPropTagArray) PURE;
STDMETHOD(OpenProperty)(THIS_ ULONG ulPropTag, LPCIID lpIid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lppUnk) PURE;
STDMETHOD(SetProps)(THIS_ ULONG cValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs) PURE;
STDMETHOD(DeleteProps)(THIS_ LPSPropTagArray lpPropTags, LPSPropProblemArray *lppProbs) PURE;
STDMETHOD(CopyTo)(THIS_ ULONG ciidExclude, LPCIID lpIid, LPSPropTagArray lpProps, ULONG ulParam,
LPMAPIPROGRESS lpProgress, LPCIID lpIface,LPVOID lpDest, ULONG ulFlags,
LPSPropProblemArray *lppProbs) PURE;
STDMETHOD(CopyProps)(THIS_ LPSPropTagArray lpIncludeProps, ULONG ulParam, LPMAPIPROGRESS lpProgress,
LPCIID lpIid, LPVOID lpDestObj, ULONG ulFlags, LPSPropProblemArray *lppProblems) PURE;
STDMETHOD(GetNamesFromIDs)(THIS_ LPSPropTagArray *lppPropTags, LPGUID lpIid, ULONG ulFlags, ULONG *lpCount,
LPMAPINAMEID **lpppNames) PURE;
STDMETHOD(GetIDsFromNames)(THIS_ ULONG cPropNames, LPMAPINAMEID *lppNames, ULONG ulFlags, LPSPropTagArray *lppPropTags) PURE;
DECLARE_INTERFACE_(IMAPIProp,IUnknown) { IMAPIProp_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
......@@ -124,19 +124,24 @@ typedef void (WINAPI CALLERRELEASE)(ULONG,LPTABLEDATA,LPMAPITABLE);
* The underlying table data structure for IMAPITable.
*/
#define INTERFACE ITableData
#define ITableData_METHODS \
IUnknown_METHODS \
STDMETHOD(HrGetView)(THIS_ LPSSortOrderSet lpSort, CALLERRELEASE *lpRel, \
ULONG ulData, LPMAPITABLE *lppTable) PURE; \
STDMETHOD(HrModifyRow)(THIS_ LPSRow lpRow) PURE; \
STDMETHOD(HrDeleteRow)(THIS_ LPSPropValue lpKey) PURE; \
STDMETHOD(HrQueryRow)(THIS_ LPSPropValue lpKey, LPSRow *lppRow, ULONG *lpRowNum) PURE; \
STDMETHOD(HrEnumRow)(THIS_ ULONG ulRowNum, LPSRow *lppRow) PURE; \
STDMETHOD(HrNotify)(THIS_ ULONG ulFlags, ULONG cValues, LPSPropValue lpValues) PURE; \
STDMETHOD(HrInsertRow)(THIS_ ULONG ulRow, LPSRow lpRow) PURE; \
STDMETHOD(HrModifyRows)(THIS_ ULONG ulFlags, LPSRowSet lpRows) PURE; \
DECLARE_INTERFACE_(ITableData,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** ITableData methods ***/
STDMETHOD(HrGetView)(THIS_ LPSSortOrderSet lpSort, CALLERRELEASE *lpRel,
ULONG ulData, LPMAPITABLE *lppTable) PURE;
STDMETHOD(HrModifyRow)(THIS_ LPSRow lpRow) PURE;
STDMETHOD(HrDeleteRow)(THIS_ LPSPropValue lpKey) PURE;
STDMETHOD(HrQueryRow)(THIS_ LPSPropValue lpKey, LPSRow *lppRow, ULONG *lpRowNum) PURE;
STDMETHOD(HrEnumRow)(THIS_ ULONG ulRowNum, LPSRow *lppRow) PURE;
STDMETHOD(HrNotify)(THIS_ ULONG ulFlags, ULONG cValues, LPSPropValue lpValues) PURE;
STDMETHOD(HrInsertRow)(THIS_ ULONG ulRow, LPSRow lpRow) PURE;
STDMETHOD(HrModifyRows)(THIS_ ULONG ulFlags, LPSRowSet lpRows) PURE;
STDMETHOD(HrDeleteRows)(THIS_ ULONG ulFlags, LPSRowSet lpRows, ULONG *lpCount) PURE;
DECLARE_INTERFACE_(ITableData,IUnknown) { ITableData_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -214,13 +219,34 @@ static inline FILETIME FtMulDwDw(DWORD dwLeft, DWORD dwRight)
*
*/
#define INTERFACE IPropData
#define IPropData_METHODS \
IMAPIProp_METHODS \
STDMETHOD(HrSetObjAccess)(THIS_ ULONG ulAccess) PURE; \
STDMETHOD(HrSetPropAccess)(THIS_ LPSPropTagArray lpPropTags, ULONG *lpAccess) PURE; \
STDMETHOD(HrGetPropAccess)(THIS_ LPSPropTagArray *lppPropTags, ULONG **lppAccess) PURE; \
DECLARE_INTERFACE_(IPropData,IMAPIProp)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IMAPIProp methods ***/
STDMETHOD(GetLastError)(THIS_ HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppErr) PURE;
STDMETHOD(SaveChanges)(THIS_ ULONG ulFlags) PURE;
STDMETHOD(GetProps)(THIS_ LPSPropTagArray lpPropTags, ULONG ulFlags, ULONG *lpValues, LPSPropValue *lppProps) PURE;
STDMETHOD(GetPropList)(THIS_ ULONG ulFlags, LPSPropTagArray *lppPropTagArray) PURE;
STDMETHOD(OpenProperty)(THIS_ ULONG ulPropTag, LPCIID lpIid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lppUnk) PURE;
STDMETHOD(SetProps)(THIS_ ULONG cValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs) PURE;
STDMETHOD(DeleteProps)(THIS_ LPSPropTagArray lpPropTags, LPSPropProblemArray *lppProbs) PURE;
STDMETHOD(CopyTo)(THIS_ ULONG ciidExclude, LPCIID lpIid, LPSPropTagArray lpProps, ULONG ulParam,
LPMAPIPROGRESS lpProgress, LPCIID lpIface,LPVOID lpDest, ULONG ulFlags,
LPSPropProblemArray *lppProbs) PURE;
STDMETHOD(CopyProps)(THIS_ LPSPropTagArray lpIncludeProps, ULONG ulParam, LPMAPIPROGRESS lpProgress,
LPCIID lpIid, LPVOID lpDestObj, ULONG ulFlags, LPSPropProblemArray *lppProblems) PURE;
STDMETHOD(GetNamesFromIDs)(THIS_ LPSPropTagArray *lppPropTags, LPGUID lpIid, ULONG ulFlags, ULONG *lpCount,
LPMAPINAMEID **lpppNames) PURE;
STDMETHOD(GetIDsFromNames)(THIS_ ULONG cPropNames, LPMAPINAMEID *lppNames, ULONG ulFlags, LPSPropTagArray *lppPropTags) PURE;
/*** IPropData methods ***/
STDMETHOD(HrSetObjAccess)(THIS_ ULONG ulAccess) PURE;
STDMETHOD(HrSetPropAccess)(THIS_ LPSPropTagArray lpPropTags, ULONG *lpAccess) PURE;
STDMETHOD(HrGetPropAccess)(THIS_ LPSPropTagArray *lppPropTags, ULONG **lppAccess) PURE;
STDMETHOD(HrAddObjProps)(THIS_ LPSPropTagArray lppPropTags, LPSPropProblemArray *lppProbs) PURE;
DECLARE_INTERFACE_(IPropData,IMAPIProp) { IPropData_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
......@@ -103,36 +103,41 @@ MAPIFREEBUFFER MAPIFreeBuffer;
* IMAPISession interface
*/
#define INTERFACE IMAPISession
#define IMAPISession_METHODS \
IUnknown_METHODS \
STDMETHOD(GetLastError)(THIS_ HRESULT hResult, ULONG ulFlags, LPMAPIERROR *lppMAPIError) PURE; \
STDMETHOD(GetMsgStoresTable)(THIS_ ULONG ulFlags, LPMAPITABLE *lppTable) PURE; \
STDMETHOD(OpenMsgStore)(THIS_ ULONG_PTR ulUIParam, ULONG cbId, \
LPENTRYID lpId, LPCIID lpIFace, ULONG ulFlags, LPMDB *lppMDB) PURE; \
STDMETHOD(OpenAddressBook)(THIS_ ULONG_PTR ulUIParam, LPCIID iid, ULONG ulFlags, LPADRBOOK *lppAdrBook) PURE; \
STDMETHOD(OpenProfileSection)(THIS_ LPMAPIUID lpUID, LPCIID iid, ULONG ulFlags, LPPROFSECT *lppProf) PURE; \
STDMETHOD(GetStatusTable)(THIS_ ULONG ulFlags, LPMAPITABLE *lppTable) PURE; \
STDMETHOD(OpenEntry)(THIS_ ULONG cbId, LPENTRYID lpId, LPCIID iid, \
ULONG ulFlags, ULONG *lpType, LPUNKNOWN *lppUnk) PURE; \
STDMETHOD(CompareEntryIDs)(THIS_ ULONG cbLID, LPENTRYID lpLID, ULONG cbRID, \
LPENTRYID lpRID, ULONG ulFlags, ULONG *lpRes) PURE; \
STDMETHOD(Advise)(THIS_ ULONG cbId, LPENTRYID lpId, ULONG ulMask, \
LPMAPIADVISESINK lpSink, ULONG *lpCxn) PURE;\
STDMETHOD(Unadvise)(THIS_ ULONG ulConnection) PURE;\
STDMETHOD(MessageOptions)(THIS_ ULONG_PTR ulUIParam, ULONG ulFlags, LPSTR lpszAddr, LPMESSAGE lpMsg) PURE; \
STDMETHOD(QueryDefaultMessageOpt)(THIS_ LPSTR lpszAddr, ULONG ulFlags, \
ULONG *lpcVals, LPSPropValue *lppOpts) PURE; \
STDMETHOD(EnumAdrTypes)(THIS_ ULONG ulFlags, ULONG *lpcTypes, LPSTR **lpppszTypes) PURE; \
STDMETHOD(QueryIdentity)(THIS_ ULONG *lpcbId, LPENTRYID *lppEntryID) PURE; \
STDMETHOD(Logoff)(THIS_ ULONG_PTR ulUIParam, ULONG ulFlags, ULONG ulReserved) PURE; \
STDMETHOD(SetDefaultStore)(THIS_ ULONG ulFlags, ULONG cbId, LPENTRYID lpId) PURE; \
STDMETHOD(AdminServices)(THIS_ ULONG ulFlags, LPSERVICEADMIN *lppAdmin) PURE; \
STDMETHOD(ShowForm)(THIS_ ULONG_PTR ulUIParam, LPMDB lpStore, \
LPMAPIFOLDER lpParent, LPCIID iid, ULONG ulToken, \
LPMESSAGE lpSent, ULONG ulFlags, ULONG ulStatus, \
ULONG ulMsgFlags, ULONG ulAccess, LPSTR lpszClass) PURE; \
DECLARE_INTERFACE_(IMAPISession,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IMAPISession methods ***/
STDMETHOD(GetLastError)(THIS_ HRESULT hResult, ULONG ulFlags, LPMAPIERROR *lppMAPIError) PURE;
STDMETHOD(GetMsgStoresTable)(THIS_ ULONG ulFlags, LPMAPITABLE *lppTable) PURE;
STDMETHOD(OpenMsgStore)(THIS_ ULONG_PTR ulUIParam, ULONG cbId,
LPENTRYID lpId, LPCIID lpIFace, ULONG ulFlags, LPMDB *lppMDB) PURE;
STDMETHOD(OpenAddressBook)(THIS_ ULONG_PTR ulUIParam, LPCIID iid, ULONG ulFlags, LPADRBOOK *lppAdrBook) PURE;
STDMETHOD(OpenProfileSection)(THIS_ LPMAPIUID lpUID, LPCIID iid, ULONG ulFlags, LPPROFSECT *lppProf) PURE;
STDMETHOD(GetStatusTable)(THIS_ ULONG ulFlags, LPMAPITABLE *lppTable) PURE;
STDMETHOD(OpenEntry)(THIS_ ULONG cbId, LPENTRYID lpId, LPCIID iid,
ULONG ulFlags, ULONG *lpType, LPUNKNOWN *lppUnk) PURE;
STDMETHOD(CompareEntryIDs)(THIS_ ULONG cbLID, LPENTRYID lpLID, ULONG cbRID,
LPENTRYID lpRID, ULONG ulFlags, ULONG *lpRes) PURE;
STDMETHOD(Advise)(THIS_ ULONG cbId, LPENTRYID lpId, ULONG ulMask,
LPMAPIADVISESINK lpSink, ULONG *lpCxn) PURE;
STDMETHOD(Unadvise)(THIS_ ULONG ulConnection) PURE;
STDMETHOD(MessageOptions)(THIS_ ULONG_PTR ulUIParam, ULONG ulFlags, LPSTR lpszAddr, LPMESSAGE lpMsg) PURE;
STDMETHOD(QueryDefaultMessageOpt)(THIS_ LPSTR lpszAddr, ULONG ulFlags,
ULONG *lpcVals, LPSPropValue *lppOpts) PURE;
STDMETHOD(EnumAdrTypes)(THIS_ ULONG ulFlags, ULONG *lpcTypes, LPSTR **lpppszTypes) PURE;
STDMETHOD(QueryIdentity)(THIS_ ULONG *lpcbId, LPENTRYID *lppEntryID) PURE;
STDMETHOD(Logoff)(THIS_ ULONG_PTR ulUIParam, ULONG ulFlags, ULONG ulReserved) PURE;
STDMETHOD(SetDefaultStore)(THIS_ ULONG ulFlags, ULONG cbId, LPENTRYID lpId) PURE;
STDMETHOD(AdminServices)(THIS_ ULONG ulFlags, LPSERVICEADMIN *lppAdmin) PURE;
STDMETHOD(ShowForm)(THIS_ ULONG_PTR ulUIParam, LPMDB lpStore,
LPMAPIFOLDER lpParent, LPCIID iid, ULONG ulToken,
LPMESSAGE lpSent, ULONG ulFlags, ULONG ulStatus,
ULONG ulMsgFlags, ULONG ulAccess, LPSTR lpszClass) PURE;
STDMETHOD(PrepareForm)(THIS_ LPCIID lpIFace, LPMESSAGE lpMsg, ULONG *lpToken) PURE;
DECLARE_INTERFACE_(IMAPISession,IUnknown) { IMAPISession_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
......@@ -51,15 +51,20 @@
* Let's take Direct3D as an example:
*
* #define INTERFACE IDirect3D
* #define IDirect3D_METHODS \
* IUnknown_METHODS \
* STDMETHOD(Initialize)(THIS_ REFIID) PURE; \
* STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK, LPVOID) PURE; \
* STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT*, IUnknown*) PURE; \
* STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL*, IUnknown*) PURE; \
* STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT*, IUnknown*) PURE; \
* DECLARE_INTERFACE_(IDirect3D,IUnknown)
* {
* // *** IUnknown methods *** //
* STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID, void**) PURE;
* STDMETHOD_(ULONG,AddRef)(THIS) PURE;
* STDMETHOD_(ULONG,Release)(THIS) PURE;
* // *** IDirect3D methods *** //
* STDMETHOD(Initialize)(THIS_ REFIID) PURE;
* STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK, LPVOID) PURE;
* STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT *, IUnknown *) PURE;
* STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL *, IUnknown *) PURE;
* STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT *, IUnknown *) PURE;
* STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH, LPD3DFINDDEVICERESULT) PURE;
* DECLARE_INTERFACE_(IDirect3D,IUnknown) { IDirect3D_METHODS };
* };
* #undef INTERFACE
*
* #ifdef COBJMACROS
......@@ -82,12 +87,12 @@
* name everywhere. Note however that because of the way macros work, a macro like STDMETHOD
* cannot use 'INTERFACE##_VTABLE' because this would give 'INTERFACE_VTABLE' and not
* 'IDirect3D_VTABLE'.
* - ICOM_METHODS defines the list of methods that are inheritable from this interface. It must
* be written manually (rather than using a macro to generate the equivalent code) to avoid
* macro recursion (which compilers don't like). It must start with the METHODS definition
* of the parent interface so that method inheritance works properly.
* - The DECLARE_INTERFACE finally declares all the structures necessary for the interface. We have
* to explicitly use the interface name for macro expansion reasons again.
* - The DECLARE_INTERFACE declares all the structures necessary for the interface. We have to
* explicitly use the interface name for macro expansion reasons again. It defines the list of
* methods that are inheritable from this interface. It must be written manually (rather than
* using a macro to generate the equivalent code) to avoid macro recursion (which compilers
* don't like). It must start with the methods definition of the parent interface so that
* method inheritance works properly.
* - The 'undef INTERFACE' is here to remind you that using INTERFACE in the following macros
* will not work.
* - Finally the set of 'IDirect3D_Xxx' macros is a standard set of macros defined to ease access
......@@ -137,9 +142,7 @@
* the user needs to know to use the interface. Of course the structure we will define to
* implement this interface will have more fields but the first one will match this pointer.
* - The code generated by DECLARE_INTERFACE defines both the structure representing the interface and
* the structure for the jump table. DECLARE_INTERFACE uses the parent's Xxx_METHODS macro to
* automatically repeat the prototypes of all the inherited methods and then uses IDirect3D_METHODS
* to define the IDirect3D methods.
* the structure for the jump table.
* - Each method is declared as a pointer to function field in the jump table. The implementation
* will fill this jump table with appropriate values, probably using a static variable, and
* initialize the lpVtbl field to point to this variable.
......
......@@ -186,10 +186,15 @@ typedef GUID SHELLVIEWID;
*/
#define INTERFACE IShellIcon
#define IShellIcon_METHODS \
IUnknown_METHODS \
DECLARE_INTERFACE_(IShellIcon,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IShellIcon methods ***/
STDMETHOD(GetIconOf)(THIS_ LPCITEMIDLIST pidl, UINT flags, LPINT lpIconIndex) PURE;
DECLARE_INTERFACE_(IShellIcon, IUnknown) { IShellIcon_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -802,11 +807,15 @@ void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID
typedef struct IShellChangeNotify IShellChangeNotify, *LPSHELLCHANGENOTIFY;
#define INTERFACE IShellChangeNotify
#define IShellChangeNotify_METHODS \
IUnknown_METHODS \
DECLARE_INTERFACE_(IShellChangeNotify,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IShellChangeNotify methods ***/
STDMETHOD(OnChange)(THIS_ LONG lEvent, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE;
DECLARE_INTERFACE_(IShellChangeNotify, IUnknown) { IShellChangeNotify_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -1127,15 +1136,6 @@ struct IFileSystemBindDataVtbl {
#endif
#define IFileSystemBindData_METHODS \
/*** IUnknown methods ***/ \
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
STDMETHOD_(ULONG,Release)(THIS) PURE; \
/*** IFileSystemBindData methods ***/ \
STDMETHOD_(HRESULT,GetFindData)(THIS_ WIN32_FIND_DATAW* pfd) PURE; \
STDMETHOD_(HRESULT,SetFindData)(THIS_ const WIN32_FIND_DATAW* pfd) PURE;
#endif /* __IFileSystemBindData_INTERFACE_DEFINED__ */
LPITEMIDLIST WINAPI ILAppendID(LPITEMIDLIST,LPCSHITEMID,BOOL);
......
......@@ -245,14 +245,19 @@ typedef enum
typedef struct IQueryAssociations IQueryAssociations,*LPQUERYASSOCIATIONS;
#define INTERFACE IQueryAssociations
#define IQueryAssociations_METHODS \
IUnknown_METHODS \
STDMETHOD(Init)(THIS_ ASSOCF flags, LPCWSTR pszAssoc, HKEY hkProgid, HWND hwnd) PURE; \
STDMETHOD(GetString)(THIS_ ASSOCF flags, ASSOCSTR str, LPCWSTR pszExtra, LPWSTR pszOut, DWORD * pcchOut) PURE; \
STDMETHOD(GetKey)(THIS_ ASSOCF flags, ASSOCKEY key, LPCWSTR pszExtra, HKEY * phkeyOut) PURE; \
STDMETHOD(GetData)(THIS_ ASSOCF flags, ASSOCDATA data, LPCWSTR pszExtra, LPVOID pvOut, DWORD * pcbOut) PURE; \
DECLARE_INTERFACE_(IQueryAssociations,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IQueryAssociations methods ***/
STDMETHOD(Init)(THIS_ ASSOCF flags, LPCWSTR pszAssoc, HKEY hkProgid, HWND hwnd) PURE;
STDMETHOD(GetString)(THIS_ ASSOCF flags, ASSOCSTR str, LPCWSTR pszExtra, LPWSTR pszOut, DWORD * pcchOut) PURE;
STDMETHOD(GetKey)(THIS_ ASSOCF flags, ASSOCKEY key, LPCWSTR pszExtra, HKEY * phkeyOut) PURE;
STDMETHOD(GetData)(THIS_ ASSOCF flags, ASSOCDATA data, LPCWSTR pszExtra, LPVOID pvOut, DWORD * pcbOut) PURE;
STDMETHOD(GetEnum)(THIS_ ASSOCF flags, ASSOCENUM assocenum, LPCWSTR pszExtra, REFIID riid, LPVOID * ppvOut) PURE;
DECLARE_INTERFACE_(IQueryAssociations,IUnknown) { IQueryAssociations_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -898,23 +903,23 @@ VOID WINAPI ColorRGBToHLS(COLORREF,LPWORD,LPWORD,LPWORD);
/* Stream functions */
#if !defined(NO_SHLWAPI_STREAM) && defined(IStream_METHODS)
#ifndef NO_SHLWAPI_STREAM
IStream * WINAPI SHOpenRegStreamA(HKEY,LPCSTR,LPCSTR,DWORD);
IStream * WINAPI SHOpenRegStreamW(HKEY,LPCWSTR,LPCWSTR,DWORD);
struct IStream * WINAPI SHOpenRegStreamA(HKEY,LPCSTR,LPCSTR,DWORD);
struct IStream * WINAPI SHOpenRegStreamW(HKEY,LPCWSTR,LPCWSTR,DWORD);
#define SHOpenRegStream WINELIB_NAME_AW(SHOpenRegStream2) /* Uses version 2 */
IStream * WINAPI SHOpenRegStream2A(HKEY,LPCSTR,LPCSTR,DWORD);
IStream * WINAPI SHOpenRegStream2W(HKEY,LPCWSTR,LPCWSTR,DWORD);
struct IStream * WINAPI SHOpenRegStream2A(HKEY,LPCSTR,LPCSTR,DWORD);
struct IStream * WINAPI SHOpenRegStream2W(HKEY,LPCWSTR,LPCWSTR,DWORD);
#define SHOpenRegStream2 WINELIB_NAME_AW(SHOpenRegStream2)
HRESULT WINAPI SHCreateStreamOnFileA(LPCSTR,DWORD,IStream**);
HRESULT WINAPI SHCreateStreamOnFileW(LPCWSTR,DWORD,IStream**);
HRESULT WINAPI SHCreateStreamOnFileA(LPCSTR,DWORD,struct IStream**);
HRESULT WINAPI SHCreateStreamOnFileW(LPCWSTR,DWORD,struct IStream**);
#define SHCreateStreamOnFile WINELIB_NAME_AW(SHCreateStreamOnFile)
HRESULT WINAPI SHCreateStreamOnFileEx(LPCWSTR,DWORD,DWORD,BOOL,IStream*,IStream**);
HRESULT WINAPI SHCreateStreamOnFileEx(LPCWSTR,DWORD,DWORD,BOOL,struct IStream*,struct IStream**);
HRESULT WINAPI SHCreateStreamWrapper(LPBYTE,DWORD,DWORD,IStream**);
HRESULT WINAPI SHCreateStreamWrapper(LPBYTE,DWORD,DWORD,struct IStream**);
#endif /* NO_SHLWAPI_STREAM */
......@@ -935,10 +940,8 @@ HRESULT WINAPI SHCreateStreamWrapper(LPBYTE,DWORD,DWORD,IStream**);
HRESULT WINAPI SHAutoComplete(HWND,DWORD);
/* Threads */
#if defined(IUnknown_METHODS)
HRESULT WINAPI SHGetThreadRef(IUnknown**);
HRESULT WINAPI SHSetThreadRef(IUnknown*);
#endif
HRESULT WINAPI SHReleaseThreadRef();
/* SHCreateThread flags */
......@@ -952,9 +955,7 @@ HRESULT WINAPI SHReleaseThreadRef();
BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE,void*,DWORD,LPTHREAD_START_ROUTINE);
#if defined(IBindCtx_METHODS)
BOOL WINAPI SHSkipJunction(IBindCtx*,const CLSID*);
#endif
BOOL WINAPI SHSkipJunction(struct IBindCtx*,const CLSID*);
/* Version Information */
......
......@@ -991,20 +991,25 @@ DEFINE_AVIGUID(CLSID_AVIFile, 0x00020000, 0, 0);
* IAVIStream interface
*/
#define INTERFACE IAVIStream
#define IAVIStream_METHODS \
IUnknown_METHODS \
STDMETHOD(Create)(THIS_ LPARAM lParam1, LPARAM lParam2) PURE; \
STDMETHOD(Info)(THIS_ AVISTREAMINFOW *psi, LONG lSize) PURE; \
STDMETHOD_(LONG,FindSample)(THIS_ LONG lPos, LONG lFlags) PURE; \
STDMETHOD(ReadFormat)(THIS_ LONG lPos, LPVOID lpFormat, LONG *lpcbFormat) PURE; \
STDMETHOD(SetFormat)(THIS_ LONG lPos, LPVOID lpFormat, LONG cbFormat) PURE; \
STDMETHOD(Read)(THIS_ LONG lStart, LONG lSamples, LPVOID lpBuffer, LONG cbBuffer, LONG *plBytes, LONG *plSamples) PURE; \
STDMETHOD(Write)(THIS_ LONG lStart, LONG lSamples, LPVOID lpBuffer, LONG cbBuffer, DWORD dwFlags, LONG *plSampWritten, LONG *plBytesWritten) PURE; \
STDMETHOD(Delete)(THIS_ LONG lStart, LONG lSamples) PURE; \
STDMETHOD(ReadData)(THIS_ DWORD fcc, LPVOID lpBuffer, LONG *lpcbBuffer) PURE; \
STDMETHOD(WriteData)(THIS_ DWORD fcc, LPVOID lpBuffer, LONG cbBuffer) PURE; \
DECLARE_INTERFACE_(IAVIStream,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IAVIStream methods ***/
STDMETHOD(Create)(THIS_ LPARAM lParam1, LPARAM lParam2) PURE;
STDMETHOD(Info)(THIS_ AVISTREAMINFOW *psi, LONG lSize) PURE;
STDMETHOD_(LONG,FindSample)(THIS_ LONG lPos, LONG lFlags) PURE;
STDMETHOD(ReadFormat)(THIS_ LONG lPos, LPVOID lpFormat, LONG *lpcbFormat) PURE;
STDMETHOD(SetFormat)(THIS_ LONG lPos, LPVOID lpFormat, LONG cbFormat) PURE;
STDMETHOD(Read)(THIS_ LONG lStart, LONG lSamples, LPVOID lpBuffer, LONG cbBuffer, LONG *plBytes, LONG *plSamples) PURE;
STDMETHOD(Write)(THIS_ LONG lStart, LONG lSamples, LPVOID lpBuffer, LONG cbBuffer, DWORD dwFlags, LONG *plSampWritten, LONG *plBytesWritten) PURE;
STDMETHOD(Delete)(THIS_ LONG lStart, LONG lSamples) PURE;
STDMETHOD(ReadData)(THIS_ DWORD fcc, LPVOID lpBuffer, LONG *lpcbBuffer) PURE;
STDMETHOD(WriteData)(THIS_ DWORD fcc, LPVOID lpBuffer, LONG cbBuffer) PURE;
STDMETHOD(SetInfo)(THIS_ AVISTREAMINFOW *plInfo, LONG cbInfo) PURE;
DECLARE_INTERFACE_(IAVIStream, IUnknown) { IAVIStream_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -1114,11 +1119,16 @@ LONG WINAPI AVIStreamTimeToSample(PAVISTREAM pstream, LONG lTime);
* IAVIStreaming interface
*/
#define INTERFACE IAVIStreaming
#define IAVIStreaming_METHODS \
IUnknown_METHODS \
STDMETHOD(Begin)(IAVIStreaming*iface,LONG lStart,LONG lEnd,LONG lRate) PURE; \
DECLARE_INTERFACE_(IAVIStreaming,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IAVIStreaming methods ***/
STDMETHOD(Begin)(IAVIStreaming*iface,LONG lStart,LONG lEnd,LONG lRate) PURE;
STDMETHOD(End)(IAVIStreaming*iface) PURE;
DECLARE_INTERFACE_(IAVIStreaming, IUnknown) { IAVIStreaming_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -1135,14 +1145,19 @@ DECLARE_INTERFACE_(IAVIStreaming, IUnknown) { IAVIStreaming_METHODS };
* IAVIEditStream interface
*/
#define INTERFACE IAVIEditStream
#define IAVIEditStream_METHODS \
IUnknown_METHODS \
STDMETHOD(Cut)(IAVIEditStream*iface,LONG*plStart,LONG*plLength,PAVISTREAM*ppResult) PURE; \
STDMETHOD(Copy)(IAVIEditStream*iface,LONG*plStart,LONG*plLength,PAVISTREAM*ppResult) PURE; \
STDMETHOD(Paste)(IAVIEditStream*iface,LONG*plStart,LONG*plLength,PAVISTREAM pSource,LONG lStart,LONG lEnd) PURE; \
STDMETHOD(Clone)(IAVIEditStream*iface,PAVISTREAM*ppResult) PURE; \
DECLARE_INTERFACE_(IAVIEditStream,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IAVIEditStream methods ***/
STDMETHOD(Cut)(IAVIEditStream*iface,LONG*plStart,LONG*plLength,PAVISTREAM*ppResult) PURE;
STDMETHOD(Copy)(IAVIEditStream*iface,LONG*plStart,LONG*plLength,PAVISTREAM*ppResult) PURE;
STDMETHOD(Paste)(IAVIEditStream*iface,LONG*plStart,LONG*plLength,PAVISTREAM pSource,LONG lStart,LONG lEnd) PURE;
STDMETHOD(Clone)(IAVIEditStream*iface,PAVISTREAM*ppResult) PURE;
STDMETHOD(SetInfo)(IAVIEditStream*iface,LPAVISTREAMINFOW asi, LONG size) PURE;
DECLARE_INTERFACE_(IAVIEditStream,IUnknown) { IAVIEditStream_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -1182,16 +1197,21 @@ HRESULT WINAPI EditStreamSetNameW(PAVISTREAM pstream, LPCWSTR szName);
*/
/* In Win32 this interface uses UNICODE only */
#define INTERFACE IAVIFile
#define IAVIFile_METHODS \
IUnknown_METHODS \
STDMETHOD(Info)(THIS_ AVIFILEINFOW *pfi, LONG lSize) PURE; \
STDMETHOD(GetStream)(THIS_ PAVISTREAM *ppStream, DWORD fccType, LONG lParam) PURE; \
STDMETHOD(CreateStream)(THIS_ PAVISTREAM *ppStream, AVISTREAMINFOW *psi) PURE; \
STDMETHOD(WriteData)(THIS_ DWORD fcc, LPVOID lpBuffer, LONG cbBuffer) PURE; \
STDMETHOD(ReadData)(THIS_ DWORD fcc, LPVOID lpBuffer, LONG *lpcbBuffer) PURE; \
STDMETHOD(EndRecord)(THIS) PURE; \
DECLARE_INTERFACE_(IAVIFile,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IAVIFile methods ***/
STDMETHOD(Info)(THIS_ AVIFILEINFOW *pfi, LONG lSize) PURE;
STDMETHOD(GetStream)(THIS_ PAVISTREAM *ppStream, DWORD fccType, LONG lParam) PURE;
STDMETHOD(CreateStream)(THIS_ PAVISTREAM *ppStream, AVISTREAMINFOW *psi) PURE;
STDMETHOD(WriteData)(THIS_ DWORD fcc, LPVOID lpBuffer, LONG cbBuffer) PURE;
STDMETHOD(ReadData)(THIS_ DWORD fcc, LPVOID lpBuffer, LONG *lpcbBuffer) PURE;
STDMETHOD(EndRecord)(THIS) PURE;
STDMETHOD(DeleteStream)(THIS_ DWORD fccType, LONG lParam) PURE;
DECLARE_INTERFACE_(IAVIFile,IUnknown) { IAVIFile_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......@@ -1233,13 +1253,18 @@ HRESULT WINAPI AVIFileEndRecord(PAVIFILE pfile);
* IGetFrame interface
*/
#define INTERFACE IGetFrame
#define IGetFrame_METHODS \
IUnknown_METHODS \
STDMETHOD_(LPVOID,GetFrame)(THIS_ LONG lPos) PURE; \
STDMETHOD(Begin)(THIS_ LONG lStart, LONG lEnd, LONG lRate) PURE; \
STDMETHOD(End)(THIS) PURE; \
DECLARE_INTERFACE_(IGetFrame,IUnknown)
{
/*** IUnknown methods ***/
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IGetFrame methods ***/
STDMETHOD_(LPVOID,GetFrame)(THIS_ LONG lPos) PURE;
STDMETHOD(Begin)(THIS_ LONG lStart, LONG lEnd, LONG lRate) PURE;
STDMETHOD(End)(THIS) PURE;
STDMETHOD(SetFormat)(THIS_ LPBITMAPINFOHEADER lpbi, LPVOID lpBits, INT x, INT y, INT dx, INT dy) PURE;
DECLARE_INTERFACE_(IGetFrame,IUnknown) { IGetFrame_METHODS };
};
#undef INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment