add dummy IAMMediaStream and IMediaStream interfaces
This commit is contained in:
parent
b61cd1b22a
commit
8c965c56c0
6 changed files with 219 additions and 2 deletions
1
Makefile
1
Makefile
|
@ -13,6 +13,7 @@ FILES = src/IDirect3D/IDirect3D.c \
|
|||
src/IDirectDraw/IDirectDrawPalette.c \
|
||||
src/IDirectDraw/IDirectDrawClipper.c \
|
||||
src/IDirectDraw/IDirectDrawSurface.c \
|
||||
src/IAMMediaStream/IAMMediaStream.c \
|
||||
src/dd.c \
|
||||
src/ddpalette.c \
|
||||
src/ddsurface.c \
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
<ClCompile Include="src\IDirect3D\IDirect3D2.c" />
|
||||
<ClCompile Include="src\IDirect3D\IDirect3D3.c" />
|
||||
<ClCompile Include="src\IDirect3D\IDirect3D7.c" />
|
||||
<ClCompile Include="src\IAMMediaStream\IAMMediaStream.c" />
|
||||
<ClCompile Include="src\utils.c" />
|
||||
<ClCompile Include="src\hook.c" />
|
||||
<ClCompile Include="src\IDirectDraw\IDirectDraw.c" />
|
||||
|
@ -63,6 +64,7 @@
|
|||
<ClInclude Include="inc\dllmain.h" />
|
||||
<ClInclude Include="inc\glcorearb.h" />
|
||||
<ClInclude Include="inc\IDirect3D.h" />
|
||||
<ClInclude Include="inc\IAMMediaStream.h" />
|
||||
<ClInclude Include="inc\utils.h" />
|
||||
<ClInclude Include="inc\hook.h" />
|
||||
<ClInclude Include="inc\IDirectDraw.h" />
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
<Filter Include="Source Files\IDirect3D">
|
||||
<UniqueIdentifier>{e6c62066-0a71-4531-ad9a-eb428abc6f44}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\IAMMediaStream">
|
||||
<UniqueIdentifier>{b6d5d0fc-844e-4068-8a1e-1b0386f359fc}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\debug.c">
|
||||
|
@ -138,6 +141,9 @@
|
|||
<ClCompile Include="src\IDirect3D\IDirect3D7.c">
|
||||
<Filter>Source Files\IDirect3D</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\IAMMediaStream\IAMMediaStream.c">
|
||||
<Filter>Source Files\IAMMediaStream</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="inc\ddraw.h">
|
||||
|
@ -230,6 +236,9 @@
|
|||
<ClInclude Include="inc\IDirect3D.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="inc\IAMMediaStream.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="ddraw.rc">
|
||||
|
|
46
inc/IAMMediaStream.h
Normal file
46
inc/IAMMediaStream.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
#ifndef IAMMEDIASTREAM_H
|
||||
#define IAMMEDIASTREAM_H
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
DEFINE_GUID(IID_IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f, 0xde, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
|
||||
DEFINE_GUID(IID_IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f, 0xde, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
|
||||
|
||||
extern struct IAMMediaStreamImplVtbl g_ms_vtbl;
|
||||
|
||||
struct IAMMediaStreamImpl;
|
||||
struct IAMMediaStreamImplVtbl;
|
||||
|
||||
typedef struct IAMMediaStreamImpl
|
||||
{
|
||||
struct IAMMediaStreamImplVtbl* lpVtbl;
|
||||
|
||||
ULONG ref;
|
||||
|
||||
} IAMMediaStreamImpl;
|
||||
|
||||
typedef struct IAMMediaStreamImplVtbl IAMMediaStreamImplVtbl;
|
||||
|
||||
struct IAMMediaStreamImplVtbl
|
||||
{
|
||||
HRESULT(__stdcall* QueryInterface) (IAMMediaStreamImpl*, const IID* const riid, LPVOID* ppvObj);
|
||||
ULONG(__stdcall* AddRef) (IAMMediaStreamImpl*);
|
||||
ULONG(__stdcall* Release) (IAMMediaStreamImpl*);
|
||||
// IMediaStream
|
||||
HRESULT(__stdcall* GetMultiMediaStream)(IAMMediaStreamImpl* This, int a);
|
||||
HRESULT(__stdcall* GetInformation)(IAMMediaStreamImpl* This, int a, int b);
|
||||
HRESULT(__stdcall* SetSameFormat)(IAMMediaStreamImpl* This, int a, int b);
|
||||
HRESULT(__stdcall* AllocateSample)(IAMMediaStreamImpl* This, int a, int b);
|
||||
HRESULT(__stdcall* CreateSharedSample)(IAMMediaStreamImpl* This, int a, int b, int c);
|
||||
HRESULT(__stdcall* SendEndOfStream)(IAMMediaStreamImpl* This, int a);
|
||||
// IAMMediaStream
|
||||
HRESULT(__stdcall* Initialize)(IAMMediaStreamImpl* This, int a, int b, int c, int d);
|
||||
HRESULT(__stdcall* SetState)(IAMMediaStreamImpl* This, int a);
|
||||
HRESULT(__stdcall* JoinAMMultiMediaStream)(IAMMediaStreamImpl* This, int a);
|
||||
HRESULT(__stdcall* JoinFilter)(IAMMediaStreamImpl* This, int a);
|
||||
HRESULT(__stdcall* JoinFilterGraph)(IAMMediaStreamImpl* This, int a);
|
||||
};
|
||||
|
||||
#endif
|
145
src/IAMMediaStream/IAMMediaStream.c
Normal file
145
src/IAMMediaStream/IAMMediaStream.c
Normal file
|
@ -0,0 +1,145 @@
|
|||
#include "IAMMediaStream.h"
|
||||
#include "debug.h"
|
||||
|
||||
HRESULT __stdcall IAMMediaStream__QueryInterface(IAMMediaStreamImpl* This, REFIID riid, void** obj)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p, riid=%08X, obj=%p)\n", __FUNCTION__, This, (unsigned int)riid, obj);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ULONG __stdcall IAMMediaStream__AddRef(IAMMediaStreamImpl* This)
|
||||
{
|
||||
dprintf("-> %s(This=%p)\n", __FUNCTION__, This);
|
||||
ULONG ret = ++This->ref;
|
||||
dprintf("<- %s(This ref=%u)\n", __FUNCTION__, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ULONG __stdcall IAMMediaStream__Release(IAMMediaStreamImpl* This)
|
||||
{
|
||||
dprintf("-> %s(This=%p)\n", __FUNCTION__, This);
|
||||
|
||||
ULONG ret = --This->ref;
|
||||
|
||||
if (This->ref == 0)
|
||||
{
|
||||
dprintf(" Released (%p)\n", This);
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, This);
|
||||
}
|
||||
|
||||
dprintf("<- %s(This ref=%u)\n", __FUNCTION__, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IAMMediaStream__GetMultiMediaStream(IAMMediaStreamImpl* This, int a)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IAMMediaStream__GetInformation(IAMMediaStreamImpl* This, int a, int b)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IAMMediaStream__SetSameFormat(IAMMediaStreamImpl* This, int a, int b)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IAMMediaStream__AllocateSample(IAMMediaStreamImpl* This, int a, int b)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IAMMediaStream__CreateSharedSample(IAMMediaStreamImpl* This, int a, int b, int c)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IAMMediaStream__SendEndOfStream(IAMMediaStreamImpl* This, int a)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
// IAMMediaStream
|
||||
HRESULT WINAPI IAMMediaStream__Initialize(IAMMediaStreamImpl* This, int a, int b, int c, int d)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IAMMediaStream__SetState(IAMMediaStreamImpl* This, int a)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IAMMediaStream__JoinAMMultiMediaStream(IAMMediaStreamImpl* This, int a)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IAMMediaStream__JoinFilter(IAMMediaStreamImpl* This, int a)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
HRESULT WINAPI IAMMediaStream__JoinFilterGraph(IAMMediaStreamImpl* This, int a)
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED -> %s(This=%p)\n", __FUNCTION__, This);
|
||||
HRESULT ret = E_FAIL;
|
||||
dprintf("NOT_IMPLEMENTED <- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
||||
struct IAMMediaStreamImplVtbl g_ms_vtbl =
|
||||
{
|
||||
/* IUnknown */
|
||||
IAMMediaStream__QueryInterface,
|
||||
IAMMediaStream__AddRef,
|
||||
IAMMediaStream__Release,
|
||||
/* IMediaStream */
|
||||
IAMMediaStream__GetMultiMediaStream,
|
||||
IAMMediaStream__GetInformation,
|
||||
IAMMediaStream__SetSameFormat,
|
||||
IAMMediaStream__AllocateSample,
|
||||
IAMMediaStream__CreateSharedSample,
|
||||
IAMMediaStream__SendEndOfStream,
|
||||
/* IAMMediaStream */
|
||||
IAMMediaStream__Initialize,
|
||||
IAMMediaStream__SetState,
|
||||
IAMMediaStream__JoinAMMultiMediaStream,
|
||||
IAMMediaStream__JoinFilter,
|
||||
IAMMediaStream__JoinFilterGraph,
|
||||
};
|
|
@ -1,6 +1,7 @@
|
|||
#include <initguid.h>
|
||||
#include "IDirectDraw.h"
|
||||
#include "IDirect3D.h"
|
||||
#include "IAMMediaStream.h"
|
||||
#include "dd.h"
|
||||
#include "ddclipper.h"
|
||||
#include "ddpalette.h"
|
||||
|
@ -95,12 +96,25 @@ HRESULT __stdcall IDirectDraw__QueryInterface(IDirectDrawImpl* This, REFIID riid
|
|||
|
||||
ret = S_OK;
|
||||
}
|
||||
else
|
||||
else if (IsEqualGUID(&IID_IMediaStream, riid) || IsEqualGUID(&IID_IAMMediaStream, riid))
|
||||
{
|
||||
dprintf(" GUID = %08X\n", ((GUID*)riid)->Data1);
|
||||
IAMMediaStreamImpl* ms = (IAMMediaStreamImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IAMMediaStreamImpl));
|
||||
|
||||
dprintf(" GUID = %08X (IID_IXXMediaStream)\n", ((GUID*)riid)->Data1);
|
||||
|
||||
ms->lpVtbl = &g_ms_vtbl;
|
||||
ms->lpVtbl->AddRef(ms);
|
||||
|
||||
*obj = ms;
|
||||
|
||||
ret = S_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
dprintf("NOT_IMPLEMENTED GUID = %08X\n", ((GUID*)riid)->Data1);
|
||||
|
||||
ret = E_FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
dprintf("<- %s\n", __FUNCTION__);
|
||||
|
|
Loading…
Reference in a new issue