/// <summary> /// Erstellt eine vollständige Kopie der DirectShow Instanz. Dies /// schließt alls Substrukturen mit ein. /// <seealso cref="GetReference(RawMediaType)"/> /// </summary> /// <returns>Die Speicheradress der kopierten Instanz.</returns> public IntPtr CreateCopy() { // None if (!m_HasMediaType) { return(IntPtr.Zero); } // Copy var mediaType = new RawMediaType(); // Full copy m_MediaType.CopyTo(ref mediaType); // Report return(GetReference(mediaType)); }
/// <summary> /// Kopiert oder verwendet eine DirectShow Strukturinstanz. /// </summary> /// <param name="mediaType">Die DirectShow Instanz.</param> /// <param name="copy">Ist dieser Parameter gesetzt, so wird /// eine eigenständige Kopie erstellt. Ansonsten wird die /// DirectShow Instanz samt der damit verbundenen Speicherstrukturen /// übernommen. Insbesondere darf es keinen Aufruf von /// <see cref="Interfaces.MediaType.FreeMemory"/> auf dem ersten Parameter /// mehr geben.</param> public MediaType( RawMediaType mediaType, bool copy ) { // Check mode if (copy) { // Make sure that secondary memory is duplicated mediaType.CopyTo( ref m_MediaType ); } else { // Hold this m_MediaType = mediaType; } }
/// <summary> /// Kopiert oder verwendet eine DirectShow Strukturinstanz. /// </summary> /// <param name="mediaType">Die DirectShow Instanz.</param> /// <param name="copy">Ist dieser Parameter gesetzt, so wird /// eine eigenständige Kopie erstellt. Ansonsten wird die /// DirectShow Instanz samt der damit verbundenen Speicherstrukturen /// übernommen. Insbesondere darf es keinen Aufruf von /// <see cref="Interfaces.MediaType.FreeMemory"/> auf dem ersten Parameter /// mehr geben.</param> public MediaType(RawMediaType mediaType, bool copy) { // Check mode if (copy) { // Make sure that secondary memory is duplicated mediaType.CopyTo(ref m_MediaType); } else { // Hold this m_MediaType = mediaType; } }