import "unknwn.idl"; cpp_quote("#if 0") typedef void* LPDIRECTDRAWSURFACE; typedef void* LPDDPIXELFORMAT; typedef void* LPAMVAInternalMemInfo; typedef void AMVAUncompDataInfo; typedef void* LPAMVACompBufferInfo; typedef void AMVABUFFERINFO; typedef void AMVAEndFrameInfo; typedef void* LPAMVAUncompBufferInfo; typedef void AMVABeginFrameInfo; typedef IUnknown* IMediaSample; cpp_quote("#endif") cpp_quote("#include ") cpp_quote("#include ") [ local, object, uuid(256A6A22-FBAD-11d1-82BF-00A0C9696C8F), pointer_default(unique) ] interface IAMVideoAccelerator : IUnknown { HRESULT GetVideoAcceleratorGUIDs([in] [out] LPDWORD pdwNumGuidsSupported, [in] [out] LPGUID pGuidsSupported); HRESULT GetUncompFormatsSupported( [in] const GUID *pGuid, [in] [out] LPDWORD pdwNumFormatsSupported, [in] [out] LPDDPIXELFORMAT pFormatsSupported); HRESULT GetInternalMemInfo([in] const GUID *pGuid, [in] const AMVAUncompDataInfo *pamvaUncompDataInfo, [in] [out] LPAMVAInternalMemInfo pamvaInternalMemInfo); HRESULT GetCompBufferInfo([in] const GUID *pGuid, [in] const AMVAUncompDataInfo *pamvaUncompDataInfo, [in] [out] LPDWORD pdwNumTypesCompBuffers, [out] LPAMVACompBufferInfo pamvaCompBufferInfo); HRESULT GetInternalCompBufferInfo([in] [out] LPDWORD pdwNumTypesCompBuffers, [out] LPAMVACompBufferInfo pamvaCompBufferInfo); HRESULT BeginFrame([in] const AMVABeginFrameInfo *amvaBeginFrameInfo); HRESULT EndFrame([in] const AMVAEndFrameInfo *pEndFrameInfo); HRESULT GetBuffer([in] DWORD dwTypeIndex, [in] DWORD dwBufferIndex, [in] BOOL bReadOnly, [out] LPVOID *ppBuffer, [out] LONG *lpStride); HRESULT ReleaseBuffer([in] DWORD dwTypeIndex, [in] DWORD dwBufferIndex); HRESULT Execute([in] DWORD dwFunction, [in] LPVOID lpPrivateInputData, [in] DWORD cbPrivateInputData, [in] LPVOID lpPrivateOutputDat, [in] DWORD cbPrivateOutputData, [in] DWORD dwNumBuffers, [in] const AMVABUFFERINFO *pamvaBufferInfo); HRESULT QueryRenderStatus([in] DWORD dwTypeIndex, [in] DWORD dwBufferIndex, [in] DWORD dwFlags); HRESULT DisplayFrame([in] DWORD dwFlipToIndex, [in] IMediaSample *pMediaSample); }; [ local, object, uuid(256A6A21-FBAD-11d1-82BF-00A0C9696C8F), pointer_default(unique) ] interface IAMVideoAcceleratorNotify : IUnknown { HRESULT GetUncompSurfacesInfo([in] const GUID *pGuid, [in] [out] LPAMVAUncompBufferInfo pUncompBufferInfo); HRESULT SetUncompSurfacesInfo([in] DWORD dwActualUncompSurfacesAllocated); HRESULT GetCreateVideoAcceleratorData([in] const GUID *pGuid, [out] LPDWORD pdwSizeMiscData, [out] LPVOID *ppMiscData); };