/// <summary>
        /// Unregisters the specified CoreScanner events.
        /// </summary>
        /// <param name="scannerService"></param>
        /// <param name="events"></param>
        /// <returns></returns>
        public static void UnregisterForEvents(
            this ICoreScannerService scannerService,
            EventType events)
        {
            Contract.Requires(scannerService != null);

            List <EventType> eventCodes = events
                                          .GetFlags <EventType>()
                                          .ToList();
            XDocument inXml = new XDocument(
                new XElement("inArgs",
                             new XElement("cmdArgs",
                                          new XElement("arg-int", eventCodes.Count),
                                          new XElement("arg-int", eventCodes.Cast <Int32>().StringJoin(",")))));

            scannerService
            .ExecuteCommand(OperationCode.UnregisterForEvents, inXml.ToString());
        }