code: function (element, type, handler) {
          var eventHandler = this.eventHandler;
          var touches = this._msTouches;
  
          function msHandler(evt) {
              handler(OpenLayers.Util.applyDefaults({
                  stopPropagation: function() {
                      for (var i=touches.length-1; i>=0; --i) {
                          touches[i].stopPropagation();
                      }
                  },
                  preventDefault: function() {
                      for (var i=touches.length-1; i>=0; --i) {
                          touches[i].preventDefault();
                      }
                  },
                  type: type
              }, evt));
          }
  
          switch (type) {
              case 'touchstart':
                  return this.addMsTouchListenerStart(element, type, msHandler);
              case 'touchend':
                  return this.addMsTouchListenerEnd(element, type, msHandler);
              case 'touchmove':
                  return this.addMsTouchListenerMove(element, type, msHandler);
              default:
                  throw 'Unknown touch event type';
          }
      }
docs: Method: addMsTouchListener
  
  Parameters:
  element - {DOMElement} The DOM element to register the listener on
  type - {String} The event type
  handler - {Function} the handler