//------------------------------------------------------------------------------ // File: DMORt.h // // Desc: Miscellaneous runtime support for DirectShow Media Objects // // Copyright (c) 1999 - 2001, Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ #ifndef __DMORT_H__ #define __DMORT_H__ // // Mediatype helpers. MoInitMediaType() goes with MoFreeMediaType(), and // MoCreateMediaType() goes with MoDeleteMediaType(). Don't mix them! // // // Takes a pointer to an already allocated DMO_MEDIA_TYPE structure, allocates // a format block of cbFormat bytes, and sets appropriate members of // DMO_MEDIA_TYPE to point to the newly allocated format block. Also // initializes the IUnknown pointer inside DMO_MEDIA_TYPE to NULL. // // The format block allocated by MoInitMediaType must be freed by calling // MoFreeMediaType(). // STDAPI MoInitMediaType(DMO_MEDIA_TYPE *pmt, DWORD cbFormat); // // Frees the format block and releases any IUnknown, but does not free the // DMO_MEDIA_TYPE structure itself. Input parameter must point to an // DMO_MEDIA_TYPE structure previously initialized by MoInitMediaType(). // STDAPI MoFreeMediaType(DMO_MEDIA_TYPE *pmt); // // Copies the DMO_MEDIA_TYPE members. Also duplicates the format block and // the IUnknown pointer. Both parameters must point to valid DMO_MEDIA_TYPE // structures. Target structure must be later freed using MoFreeMediaType(). // STDAPI MoCopyMediaType(DMO_MEDIA_TYPE *pmtDest, const DMO_MEDIA_TYPE *pmtSrc); // // Allocates a new DMO_MEDIA_TYPE structure and initializes it just like // MoInitMediaType. I.e., this function allocates both the format block // and the DMO_MEDIA_TYPE structure itself. Pointer to DMO_MEDIA_TYPE is // returned as *ppmt. // // DMO_MEDIA_TYPE structures allocated by MoCreateMediaType() must be freed // by calling MoDeleteMediaType(). // STDAPI MoCreateMediaType(DMO_MEDIA_TYPE **ppmt, DWORD cbFormat); // // Frees any format block, releases any IUnknown, and deletes the // DMO_MEDIA_TYPE structure itself. The input parameter must point to an // DMO_MEDIA_TYPE structure previously allocated by MoCreateMediaType(). // STDAPI MoDeleteMediaType(DMO_MEDIA_TYPE *pmt); // // Allocates a new DMO_MEDIA_TYPE structure and copies pmtSrc into it like // MoCopyMediaType. I.e., this function allocates a new DMO_MEDIA_TYPE struct // as well as a new format block for the target mediatype. Trager mediatype // must later be freed using MoDeleteMediaType(). // STDAPI MoDuplicateMediaType(DMO_MEDIA_TYPE **ppmtDest, const DMO_MEDIA_TYPE *pmtSrc); #endif //__DMORT_H__