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