//internal static InputEventRegisterInfo<InputUIOnEndDragEvent> GetOnEndDragListener(string m_UIEventKey, string name, Action<PointerEventData> onEndDrag)
        //{
        //    throw new NotImplementedException();
        //}

        internal static InputEventRegisterInfo <InputUIOnDragEvent> GetOnDragListener(string m_UIEventKey, string UIName, string ComponentName, InputEventHandle <InputUIOnDragEvent> callback)
        {
            InputEventRegisterInfo <InputUIOnDragEvent> info = HeapObjectPool <InputEventRegisterInfo <InputUIOnDragEvent> > .GetObject();

            info.eventKey = InputUIOnDragEvent.GetEventKey(UIName, ComponentName);
            info.callBack = callback;

            InputMessageManager.AddListener(
                InputUIOnDragEvent.GetEventKey(UIName, ComponentName), callback);

            return(info);
        }
        public static InputEventRegisterInfo <InputUIOnDragEvent> GetOnDragListener(DragAcceptor acceptor, string UIName, string ComponentName, string parm, InputEventHandle <InputUIOnDragEvent> callback)
        {
            InputDragRegisterInfo info = HeapObjectPool <InputDragRegisterInfo> .GetObject();

            info.eventKey   = InputUIOnDragEvent.GetEventKey(UIName, ComponentName, parm);
            info.callBack   = callback;
            info.m_acceptor = acceptor;
            info.m_OnDrag   = (data) =>
            {
                DispatchDragEvent(UIName, ComponentName, parm, data);
            };

            return(info);
        }