private void EventsAttach(IntPtr eventManager, IntPtr enentHandlerPtr)
        {
            string exceptionMsg = "Failed to subscribe to event notification";

            if (_wrapper.ExpandedEventAttach(eventManager, EventTypes.MediaPlayerOpening, enentHandlerPtr, (IntPtr)_wrapper.NativeIndex) != 0)
            {
                throw new OutOfMemoryException(exceptionMsg + " (Opening)");
            }

            if (_wrapper.ExpandedEventAttach(eventManager, EventTypes.MediaPlayerBuffering, enentHandlerPtr, (IntPtr)_wrapper.NativeIndex) != 0)
            {
                throw new OutOfMemoryException(exceptionMsg + " (Buffering)");
            }

            //if (_wrapper.ExpandedEventAttach(eventManager, EventTypes.MediaPlayerPlaying, enentHandlerPtr, (IntPtr)_wrapper.NativeIndex) != 0)
            //    throw new OutOfMemoryException(exceptionMsg + " (Playing)");

            if (_wrapper.ExpandedEventAttach(eventManager, EventTypes.MediaPlayerPaused, enentHandlerPtr, (IntPtr)_wrapper.NativeIndex) != 0)
            {
                throw new OutOfMemoryException(exceptionMsg + " (Paused)");
            }

            if (_wrapper.ExpandedEventAttach(eventManager, EventTypes.MediaPlayerStopped, enentHandlerPtr, (IntPtr)_wrapper.NativeIndex) != 0)
            {
                throw new OutOfMemoryException(exceptionMsg + " (Stopped)");
            }

            if (_wrapper.ExpandedEventAttach(eventManager, EventTypes.MediaPlayerEndReached, enentHandlerPtr, (IntPtr)_wrapper.NativeIndex) != 0)
            {
                throw new OutOfMemoryException(exceptionMsg + " (EndReached)");
            }

            if (_wrapper.ExpandedEventAttach(eventManager, EventTypes.MediaPlayerEncounteredError, enentHandlerPtr, (IntPtr)_wrapper.NativeIndex) != 0)
            {
                throw new OutOfMemoryException(exceptionMsg + " (EncounteredError)");
            }

            if (_wrapper.ExpandedEventAttach(eventManager, EventTypes.MediaPlayerTimeChanged, enentHandlerPtr, (IntPtr)_wrapper.NativeIndex) != 0)
            {
                throw new OutOfMemoryException(exceptionMsg + " (TimeChanged)");
            }

            if (_wrapper.ExpandedEventAttach(eventManager, EventTypes.MediaPlayerPositionChanged, enentHandlerPtr, (IntPtr)_wrapper.NativeIndex) != 0)
            {
                throw new OutOfMemoryException(exceptionMsg + " (PositionChanged)");
            }

            if (_wrapper.ExpandedEventAttach(eventManager, EventTypes.MediaPlayerSnapshotTaken, enentHandlerPtr, (IntPtr)_wrapper.NativeIndex) != 0)
            {
                throw new OutOfMemoryException(exceptionMsg + " (SnapshotTaken)");
            }
        }