/// <summary>
        /// Prepare the data in this report before it is shipped off to the HID driver.
        /// </summary>
        public void prepareData()
        {
            using (BinaryWriter pWriter = new BinaryWriter(new MemoryStream(Data)))
            {
                // For each contact - get its data represented in the correct format.
                for (int i = 0; i < MaxContactsPerReport && i < this.lContacts.Count; i++)
                {
                    HidContactInfo pContact = this.lContacts[i];
                    byte[]         tBuffer  = pContact.ToBytes();
                    pWriter.Write(tBuffer);
                }

                // Fill any remaining space with 0's.
                int iSpace = MaxContactsPerReport - this.lContacts.Count;
                if (iSpace > 0)
                {
                    byte[] buffer = new byte[(HidContactInfo.HidContactInfoSize) * iSpace];
                    pWriter.Write(buffer);
                }
                // If it is our first report then write the byte which contains the number in the report sequence.
                if (bFirstReport)
                {
                    pWriter.Write((byte)iTrueContactCount);
                }
                else
                {
                    pWriter.Write((byte)0);
                }
            }
        }