Original Post
Hello,
I have implemented a video render filter based on the CBaseVideoRenderer interface. However when I compile I get the following runtime error:
TEXTURE3D9 caused an exception 03H in module KERNEL32.DLL at 0167:bff768a1.
Registers:
EAX=00000000 CS=0167 EIP=bff768a1 EFLGS=00000202
EBX=005a0000 SS=016f ESP=007af454 EBP=007af45c
ECX=00000001 DS=016f ESI=007af458 FS=4f27
EDX=00415b70 ES=016f EDI=007afc80 GS=0000
Bytes at CS:EIP:
c3 cc cc 55 8b ec 56 57 68 c0 94 fc bf e8 01 d9
Stack dump:
004169dd 007afc94 007afc80 00416190 00456d40 00456d68 0000007d 00000000 007afc94 cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
I have narrowed this down to when the constructor for the CBaseVideoRenderer is called when the CTextureRenderer constructor is called as follows:
CTextureRenderer::CTextureRenderer( LPUNKNOWN pUnk, HRESULT phr )
: CBaseVideoRenderer(__uuidof(CLSID_TextureRenderer),
NAME("Texture Renderer"), pUnk, phr)
{
// Store and AddRef the texture for our use.
ASSERT(phr);
if (phr)
*phr = S_OK;
}
I cant understand this problem as I seem to have followed what was done in the samples.
If it helps the GUID is defined as:
struct __declspec(uuid("{71771540-2017-11cf-ae26-0020afd79767}")) CLSID_TextureRenderer;
Thank you in advance.
Mark Coleman