[
  {
    "path": ".gitignore",
    "content": "## Ignore Visual Studio temporary files, build results, and\r\n## files generated by popular Visual Studio add-ons.\r\n##\r\n## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore\r\n\r\n# User-specific files\r\n*.suo\r\n*.user\r\n*.userosscache\r\n*.sln.docstates\r\n\r\n# User-specific files (MonoDevelop/Xamarin Studio)\r\n*.userprefs\r\n\r\n# Build results\r\n[Dd]ebug/\r\n[Dd]ebugPublic/\r\n[Rr]elease/\r\n[Rr]eleases/\r\nx64/\r\nx86/\r\nbld/\r\n[Bb]in/\r\n[Oo]bj/\r\n[Ll]og/\r\n\r\n# Visual Studio 2015/2017 cache/options directory\r\n.vs/\r\n# Uncomment if you have tasks that create the project's static files in wwwroot\r\n#wwwroot/\r\n\r\n# Visual Studio 2017 auto generated files\r\nGenerated\\ Files/\r\n\r\n# MSTest test Results\r\n[Tt]est[Rr]esult*/\r\n[Bb]uild[Ll]og.*\r\n\r\n# NUNIT\r\n*.VisualState.xml\r\nTestResult.xml\r\n\r\n# Build Results of an ATL Project\r\n[Dd]ebugPS/\r\n[Rr]eleasePS/\r\ndlldata.c\r\n\r\n# Benchmark Results\r\nBenchmarkDotNet.Artifacts/\r\n\r\n# .NET Core\r\nproject.lock.json\r\nproject.fragment.lock.json\r\nartifacts/\r\n**/Properties/launchSettings.json\r\n\r\n# StyleCop\r\nStyleCopReport.xml\r\n\r\n# Files built by Visual Studio\r\n*_i.c\r\n*_p.c\r\n*_i.h\r\n*.ilk\r\n*.meta\r\n*.obj\r\n*.pch\r\n*.pdb\r\n*.pgc\r\n*.pgd\r\n*.rsp\r\n*.sbr\r\n*.tlb\r\n*.tli\r\n*.tlh\r\n*.tmp\r\n*.tmp_proj\r\n*.log\r\n*.vspscc\r\n*.vssscc\r\n.builds\r\n*.pidb\r\n*.svclog\r\n*.scc\r\n\r\n# Chutzpah Test files\r\n_Chutzpah*\r\n\r\n# Visual C++ cache files\r\nipch/\r\n*.aps\r\n*.ncb\r\n*.opendb\r\n*.opensdf\r\n*.sdf\r\n*.cachefile\r\n*.VC.db\r\n*.VC.VC.opendb\r\n\r\n# Visual Studio profiler\r\n*.psess\r\n*.vsp\r\n*.vspx\r\n*.sap\r\n\r\n# Visual Studio Trace Files\r\n*.e2e\r\n\r\n# TFS 2012 Local Workspace\r\n$tf/\r\n\r\n# Guidance Automation Toolkit\r\n*.gpState\r\n\r\n# ReSharper is a .NET coding add-in\r\n_ReSharper*/\r\n*.[Rr]e[Ss]harper\r\n*.DotSettings.user\r\n\r\n# JustCode is a .NET coding add-in\r\n.JustCode\r\n\r\n# TeamCity is a build add-in\r\n_TeamCity*\r\n\r\n# DotCover is a Code Coverage Tool\r\n*.dotCover\r\n\r\n# AxoCover is a Code Coverage Tool\r\n.axoCover/*\r\n!.axoCover/settings.json\r\n\r\n# Visual Studio code coverage results\r\n*.coverage\r\n*.coveragexml\r\n\r\n# NCrunch\r\n_NCrunch_*\r\n.*crunch*.local.xml\r\nnCrunchTemp_*\r\n\r\n# MightyMoose\r\n*.mm.*\r\nAutoTest.Net/\r\n\r\n# Web workbench (sass)\r\n.sass-cache/\r\n\r\n# Installshield output folder\r\n[Ee]xpress/\r\n\r\n# DocProject is a documentation generator add-in\r\nDocProject/buildhelp/\r\nDocProject/Help/*.HxT\r\nDocProject/Help/*.HxC\r\nDocProject/Help/*.hhc\r\nDocProject/Help/*.hhk\r\nDocProject/Help/*.hhp\r\nDocProject/Help/Html2\r\nDocProject/Help/html\r\n\r\n# Click-Once directory\r\npublish/\r\n\r\n# Publish Web Output\r\n*.[Pp]ublish.xml\r\n*.azurePubxml\r\n# Note: Comment the next line if you want to checkin your web deploy settings,\r\n# but database connection strings (with potential passwords) will be unencrypted\r\n*.pubxml\r\n*.publishproj\r\n\r\n# Microsoft Azure Web App publish settings. Comment the next line if you want to\r\n# checkin your Azure Web App publish settings, but sensitive information contained\r\n# in these scripts will be unencrypted\r\nPublishScripts/\r\n\r\n# NuGet Packages\r\n*.nupkg\r\n# The packages folder can be ignored because of Package Restore\r\n**/[Pp]ackages/*\r\n# except build/, which is used as an MSBuild target.\r\n!**/[Pp]ackages/build/\r\n# Uncomment if necessary however generally it will be regenerated when needed\r\n#!**/[Pp]ackages/repositories.config\r\n# NuGet v3's project.json files produces more ignorable files\r\n*.nuget.props\r\n*.nuget.targets\r\n\r\n# Microsoft Azure Build Output\r\ncsx/\r\n*.build.csdef\r\n\r\n# Microsoft Azure Emulator\r\necf/\r\nrcf/\r\n\r\n# Windows Store app package directories and files\r\nAppPackages/\r\nBundleArtifacts/\r\nPackage.StoreAssociation.xml\r\n_pkginfo.txt\r\n*.appx\r\n\r\n# Visual Studio cache files\r\n# files ending in .cache can be ignored\r\n*.[Cc]ache\r\n# but keep track of directories ending in .cache\r\n!*.[Cc]ache/\r\n\r\n# Others\r\nClientBin/\r\n~$*\r\n*~\r\n*.dbmdl\r\n*.dbproj.schemaview\r\n*.jfm\r\n*.pfx\r\n*.publishsettings\r\norleans.codegen.cs\r\n\r\n# Including strong name files can present a security risk \r\n# (https://github.com/github/gitignore/pull/2483#issue-259490424)\r\n#*.snk\r\n\r\n# Since there are multiple workflows, uncomment next line to ignore bower_components\r\n# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)\r\n#bower_components/\r\n\r\n# RIA/Silverlight projects\r\nGenerated_Code/\r\n\r\n# Backup & report files from converting an old project file\r\n# to a newer Visual Studio version. Backup files are not needed,\r\n# because we have git ;-)\r\n_UpgradeReport_Files/\r\nBackup*/\r\nUpgradeLog*.XML\r\nUpgradeLog*.htm\r\nServiceFabricBackup/\r\n\r\n# SQL Server files\r\n*.mdf\r\n*.ldf\r\n*.ndf\r\n\r\n# Business Intelligence projects\r\n*.rdl.data\r\n*.bim.layout\r\n*.bim_*.settings\r\n*.rptproj.rsuser\r\n\r\n# Microsoft Fakes\r\nFakesAssemblies/\r\n\r\n# GhostDoc plugin setting file\r\n*.GhostDoc.xml\r\n\r\n# Node.js Tools for Visual Studio\r\n.ntvs_analysis.dat\r\nnode_modules/\r\n\r\n# Visual Studio 6 build log\r\n*.plg\r\n\r\n# Visual Studio 6 workspace options file\r\n*.opt\r\n\r\n# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)\r\n*.vbw\r\n\r\n# Visual Studio LightSwitch build output\r\n**/*.HTMLClient/GeneratedArtifacts\r\n**/*.DesktopClient/GeneratedArtifacts\r\n**/*.DesktopClient/ModelManifest.xml\r\n**/*.Server/GeneratedArtifacts\r\n**/*.Server/ModelManifest.xml\r\n_Pvt_Extensions\r\n\r\n# Paket dependency manager\r\n.paket/paket.exe\r\npaket-files/\r\n\r\n# FAKE - F# Make\r\n.fake/\r\n\r\n# JetBrains Rider\r\n.idea/\r\n*.sln.iml\r\n\r\n# CodeRush\r\n.cr/\r\n\r\n# Python Tools for Visual Studio (PTVS)\r\n__pycache__/\r\n*.pyc\r\n\r\n# Cake - Uncomment if you are using it\r\n# tools/**\r\n# !tools/packages.config\r\n\r\n# Tabs Studio\r\n*.tss\r\n\r\n# Telerik's JustMock configuration file\r\n*.jmconfig\r\n\r\n# BizTalk build output\r\n*.btp.cs\r\n*.btm.cs\r\n*.odx.cs\r\n*.xsd.cs\r\n\r\n# OpenCover UI analysis results\r\nOpenCover/\r\n\r\n# Azure Stream Analytics local run output \r\nASALocalRun/\r\n\r\n# MSBuild Binary and Structured Log\r\n*.binlog\r\n\r\n# NVidia Nsight GPU debugger configuration file\r\n*.nvuser"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2018 Tony Federer \r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\r\n"
  },
  {
    "path": "OutlookFileDrag/App.config",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<configuration>\r\n  <configSections>\r\n    <section name=\"log4net\" type=\"log4net.Config.Log4NetConfigurationSectionHandler, log4net\" requirePermission=\"false\" />\r\n  </configSections>\r\n  <!-- Configure log4net logging -->\r\n  <log4net>\r\n    <root>\r\n      <level value=\"INFO\" />\r\n      <appender-ref ref=\"RollingFileAppender\" />\r\n    </root>\r\n    <appender name=\"RollingFileAppender\" type=\"log4net.Appender.RollingFileAppender\">\r\n      <file value=\"${APPDATA}\\OutlookFileDrag\\OutlookFileDrag.log\" />\r\n      <appendToFile value=\"true\" />\r\n      <rollingStyle value=\"Size\" />\r\n      <maxSizeRollBackups value=\"1\" />\r\n      <maximumFileSize value=\"10MB\" />\r\n      <layout type=\"log4net.Layout.PatternLayout\">\r\n        <conversionPattern value=\"%date [%thread] %-5level %logger [%property{NDC}] - %message%newline\" />\r\n      </layout>\r\n    </appender>\r\n  </log4net>\r\n  <appSettings>\r\n    <!-- Sets the cleanup timer interval in minutes -->\r\n    <add key=\"CleanupTimerInterval\" value=\"60\" />\r\n    <!-- Sets the temp file expiration in minutes -->\r\n    <add key=\"TempFileExpiration\" value=\"60\" />\r\n  </appSettings>\r\n</configuration>"
  },
  {
    "path": "OutlookFileDrag/DataObjectHelper.cs",
    "content": "﻿using System;\r\nusing System.IO;\r\nusing System.Runtime.InteropServices;\r\nusing System.Runtime.InteropServices.ComTypes;\r\nusing log4net;\r\n\r\nnamespace OutlookFileDrag\r\n{\r\n    static class DataObjectHelper\r\n    {\r\n        private static ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r\n\r\n        internal static int GetClipboardFormat(string name)\r\n        {\r\n            var format = System.Windows.Forms.DataFormats.GetFormat(name);\r\n            if (format == null)\r\n                return 0;\r\n            else\r\n                return format.Id;\r\n        }\r\n\r\n        internal static bool GetDataPresent(NativeMethods.IDataObject data, string formatName)\r\n        {\r\n            //Check if data is present\r\n            log.DebugFormat(\"Get data present: {0}\", formatName);\r\n            FORMATETC format = new FORMATETC();\r\n            format.cfFormat = (short)GetClipboardFormat(formatName);\r\n            format.dwAspect = DVASPECT.DVASPECT_CONTENT;\r\n            format.lindex = -1;\r\n            format.ptd = IntPtr.Zero;\r\n            format.tymed = TYMED.TYMED_ISTREAM | TYMED.TYMED_ISTORAGE | TYMED.TYMED_HGLOBAL;\r\n\r\n            return data.QueryGetData(format) == NativeMethods.S_OK;\r\n        }\r\n\r\n        internal static void SetDropFiles(ref STGMEDIUM medium, string[] filenames)\r\n        {\r\n            //Create DROPFILES structure\r\n            NativeMethods.DROPFILES dropFiles = new NativeMethods.DROPFILES();\r\n            dropFiles.pFiles = Marshal.SizeOf(dropFiles);\r\n            dropFiles.fWide = true;     //Unicode\r\n\r\n            //Get null-separated list of filenames terminated with double null\r\n            string filenameList = string.Join(\"\\0\", filenames) + \"\\0\\0\";\r\n            byte[] filenameBytes = System.Text.Encoding.Unicode.GetBytes(filenameList);\r\n\r\n            //Allocate global memory and get pointer\r\n            int dataLength = Marshal.SizeOf(dropFiles) + filenameBytes.Length;\r\n            IntPtr ptrDropFiles = Marshal.AllocHGlobal(dataLength);\r\n\r\n            //Copy DROPFILES structure to global memory.\r\n            Marshal.StructureToPtr(dropFiles, ptrDropFiles, true);\r\n\r\n            //Copy filenames to memory after DROPFILES structure\r\n            IntPtr ptrFiles = IntPtr.Add(ptrDropFiles, Marshal.SizeOf(dropFiles));\r\n            Marshal.Copy(filenameBytes, 0, ptrFiles, filenameBytes.Length);\r\n            \r\n            //Load structure into medium\r\n            medium.unionmember = ptrDropFiles;\r\n            medium.tymed = TYMED.TYMED_HGLOBAL;\r\n            medium.pUnkForRelease = IntPtr.Zero;        //HGLOBAL to be released by caller\r\n        }\r\n\r\n        internal static string[] GetFilenames(NativeMethods.IDataObject data)\r\n        {\r\n            log.Debug(\"Getfilenames\");\r\n\r\n            //Try Unicode first\r\n            string[] filenames = GetFilenamesUnicode(data);\r\n\r\n            //If Unicode returns null, try ANSI\r\n            if (filenames == null)\r\n                filenames = GetFilenamesAnsi(data);\r\n\r\n            return filenames;\r\n        }\r\n\r\n        internal static string[] GetFilenamesAnsi(NativeMethods.IDataObject data)\r\n        {\r\n            log.Debug(\"Getting filenames (ANSI)\");\r\n            IntPtr ptrFgd = IntPtr.Zero;\r\n            STGMEDIUM medium = new STGMEDIUM();\r\n\r\n            try\r\n            {\r\n                //Define FileGroupDescriptor format\r\n                FORMATETC format = new FORMATETC();\r\n                format.cfFormat = (short)GetClipboardFormat(\"FileGroupDescriptor\");\r\n                format.dwAspect = DVASPECT.DVASPECT_CONTENT;\r\n                format.lindex = -1;\r\n                format.ptd = IntPtr.Zero;\r\n                format.tymed = TYMED.TYMED_ISTREAM | TYMED.TYMED_ISTORAGE | TYMED.TYMED_HGLOBAL;\r\n\r\n                //Query if format exists in data\r\n                if (data.QueryGetData(format) != NativeMethods.S_OK)\r\n                {\r\n                    log.Debug(\"No filenames found\");\r\n                    return null;\r\n                }\r\n\r\n                //Get data into medium\r\n                int retVal = data.GetData(format, out medium);\r\n                if (retVal != NativeMethods.S_OK)\r\n                    throw new Exception(string.Format(\"Could not get FileGroupDescriptor format.  Error returned: {0}\", retVal));\r\n\r\n                //Read medium into byte array\r\n                log.Debug(\"Reading structure into memory stream\");\r\n                byte[] bytes;\r\n                using (MemoryStream stream = new MemoryStream())\r\n                {\r\n                    DataObjectHelper.ReadMediumIntoStream(medium, stream);\r\n                    bytes = new byte[stream.Length];\r\n                    stream.Seek(0, SeekOrigin.Begin);\r\n                    stream.Read(bytes, 0, bytes.Length);\r\n                }\r\n\r\n                //Copy byte array into unmanaged memory\r\n                log.Debug(\"Copying structure into unmanaged memory\");\r\n                ptrFgd = Marshal.AllocHGlobal(bytes.Length);\r\n                Marshal.Copy(bytes, 0, ptrFgd, bytes.Length);\r\n\r\n                //Marshal unmanaged memory to a FILEGROUPDESCRIPTORA struct\r\n                log.Debug(\"Marshaling unmanaged memory into FILEGROUPDESCRIPTORA struct\");\r\n                NativeMethods.FILEGROUPDESCRIPTORA fgd = (NativeMethods.FILEGROUPDESCRIPTORA)Marshal.PtrToStructure(ptrFgd, typeof(NativeMethods.FILEGROUPDESCRIPTORA));\r\n                log.Debug(string.Format(\"Files found: {0}\", fgd.cItems));\r\n\r\n                //Create an array to store file names\r\n                string[] filenames = new string[fgd.cItems];\r\n\r\n                //Get the pointer to the first file descriptor\r\n                IntPtr fdPtr = IntPtr.Add(ptrFgd, sizeof(uint));\r\n\r\n                //Loop for the number of files acording to the file group descriptor\r\n                for (int fdIndex = 0; fdIndex < fgd.cItems; fdIndex++)\r\n                {\r\n                    log.DebugFormat(\"Filenames found: {0}\", string.Join(\", \", filenames));\r\n\r\n                    //Marshal pointer to a FILEDESCRIPTORA struct\r\n                    NativeMethods.FILEDESCRIPTORA fd = (NativeMethods.FILEDESCRIPTORA)Marshal.PtrToStructure(fdPtr, typeof(NativeMethods.FILEDESCRIPTORA));\r\n\r\n                    //Get filename of file descriptor and put in array\r\n                    filenames[fdIndex] = fd.cFileName;\r\n\r\n                    //Move the file descriptor pointer to the next file descriptor\r\n                    fdPtr = IntPtr.Add(fdPtr, Marshal.SizeOf(fd));\r\n                }\r\n\r\n                log.DebugFormat(\"Filenames found: {0}\", string.Join(\", \", filenames));\r\n\r\n                return filenames;\r\n\r\n            }\r\n            finally\r\n            {\r\n                //Release all unmanaged objects\r\n                Marshal.FreeHGlobal(ptrFgd);\r\n                if (medium.pUnkForRelease == null)\r\n                    NativeMethods.ReleaseStgMedium(ref medium);\r\n            }\r\n        }\r\n\r\n        internal static string[] GetFilenamesUnicode(NativeMethods.IDataObject data)\r\n        {\r\n            log.Debug(\"Getting filenames (Unicode)\");\r\n            IntPtr ptrFgd = IntPtr.Zero;\r\n            STGMEDIUM medium = new STGMEDIUM();\r\n            try\r\n            {\r\n                //Define FileGroupDescriptorW format\r\n                FORMATETC format = new FORMATETC();\r\n                format.cfFormat = (short)GetClipboardFormat(\"FileGroupDescriptorW\");\r\n                format.dwAspect = DVASPECT.DVASPECT_CONTENT;\r\n                format.lindex = -1;\r\n                format.ptd = IntPtr.Zero;\r\n                format.tymed = TYMED.TYMED_ISTREAM | TYMED.TYMED_ISTORAGE | TYMED.TYMED_HGLOBAL;\r\n\r\n                //Query if format exists in data\r\n                if (data.QueryGetData(format) != NativeMethods.S_OK)\r\n                {\r\n                    log.Debug(\"No filenames found\");\r\n                    return null;\r\n                }\r\n\r\n                //Get data into medium\r\n                int retVal = data.GetData(format, out medium);\r\n                if (retVal != NativeMethods.S_OK)\r\n                    throw new Exception(string.Format(\"Could not get FileGroupDescriptorW format.  Error returned: {0}\", retVal));\r\n\r\n                //Read medium into byte array\r\n                log.Debug(\"Reading structure into memory stream\");\r\n                byte[] bytes;\r\n                using (MemoryStream stream = new MemoryStream())\r\n                {\r\n                    DataObjectHelper.ReadMediumIntoStream(medium, stream);\r\n                    bytes = new byte[stream.Length];\r\n                    stream.Seek(0, SeekOrigin.Begin);\r\n                    stream.Read(bytes, 0, bytes.Length);\r\n                }\r\n                \r\n                //Copy byte array into unmanaged memory\r\n                log.Debug(\"Copying structure into unmanaged memory\");\r\n                ptrFgd = Marshal.AllocHGlobal(bytes.Length);\r\n                Marshal.Copy(bytes, 0, ptrFgd, bytes.Length);\r\n\r\n                //Marshal unmanaged memory to a FILEGROUPDESCRIPTORW struct\r\n                log.Debug(\"Marshaling unmanaged memory into FILEGROUPDESCRIPTORW struct\");\r\n                NativeMethods.FILEGROUPDESCRIPTORW fgd = (NativeMethods.FILEGROUPDESCRIPTORW)Marshal.PtrToStructure(ptrFgd, typeof(NativeMethods.FILEGROUPDESCRIPTORW));\r\n                log.Debug(string.Format(\"Files found: {0}\", fgd.cItems));\r\n\r\n                //Create an array to store file names\r\n                string[] filenames = new string[fgd.cItems];\r\n\r\n                //Get the pointer to the first file descriptor\r\n                IntPtr ptrFd = IntPtr.Add(ptrFgd, sizeof(uint));\r\n\r\n                //Loop for the number of files acording to the file group descriptor\r\n                for (int fdIndex = 0; fdIndex < fgd.cItems; fdIndex++)\r\n                {\r\n                    log.DebugFormat(\"Getting filename {0}\", fdIndex);\r\n\r\n                    //Marshal pointer to a FILEDESCRIPTORW struct\r\n                    NativeMethods.FILEDESCRIPTORW fd = (NativeMethods.FILEDESCRIPTORW)Marshal.PtrToStructure(ptrFd, typeof(NativeMethods.FILEDESCRIPTORW));\r\n\r\n                    //Get filename of file descriptor and put in array\r\n                    filenames[fdIndex] = fd.cFileName;\r\n\r\n                    //Move the file descriptor pointer to the next file descriptor\r\n                    ptrFd = IntPtr.Add(ptrFd, Marshal.SizeOf(fd));\r\n                }\r\n\r\n                log.DebugFormat(\"Filenames found: {0}\", string.Join(\", \", filenames));\r\n                return filenames;\r\n\r\n            }\r\n            finally\r\n            {\r\n                //Release all unmanaged objects\r\n                Marshal.FreeHGlobal(ptrFgd);\r\n                if (medium.pUnkForRelease == null)\r\n                    NativeMethods.ReleaseStgMedium(ref medium);\r\n            }\r\n        }\r\n\r\n        internal static void ReadFileContents(NativeMethods.IDataObject data, int index, Stream stream)\r\n        {\r\n            STGMEDIUM medium = new STGMEDIUM();            \r\n            try\r\n            {\r\n                //Define FileContents format\r\n                FORMATETC format = new FORMATETC();\r\n                format.cfFormat = (short)GetClipboardFormat(\"FileContents\");\r\n                format.dwAspect = DVASPECT.DVASPECT_CONTENT;\r\n                format.lindex = index;\r\n                format.ptd = IntPtr.Zero;\r\n                format.tymed = TYMED.TYMED_ISTREAM | TYMED.TYMED_ISTORAGE | TYMED.TYMED_HGLOBAL;\r\n\r\n                //Get data\r\n                int retVal = data.GetData(format, out medium);\r\n                if (retVal != NativeMethods.S_OK)\r\n                    throw new Exception(string.Format(\"Could not get FileContents format.  Error returned: {0}\", retVal));\r\n\r\n                //Read medium into stream\r\n                ReadMediumIntoStream(medium, stream);\r\n            }\r\n            finally\r\n            {\r\n                //Release all unmanaged objects\r\n                if (medium.pUnkForRelease == null)\r\n                    NativeMethods.ReleaseStgMedium(ref medium);\r\n            }\r\n        }\r\n\r\n        internal static void ReadMediumIntoStream(STGMEDIUM medium, Stream stream)\r\n        {\r\n            switch (medium.tymed)\r\n            {\r\n                case TYMED.TYMED_ISTREAM:\r\n                    ReadIStreamIntoStream(medium.unionmember, stream);\r\n                    break;\r\n                case TYMED.TYMED_ISTORAGE:\r\n                    ReadIStorageIntoStream(medium.unionmember, stream);\r\n                    break;\r\n                case TYMED.TYMED_HGLOBAL:\r\n                    ReadHGlobalIntoStream(medium.unionmember, stream);\r\n                    break;\r\n                default:\r\n                    throw new NotImplementedException(string.Format(\"Cannot read medium type {0}\", medium.tymed));\r\n            }\r\n        }\r\n\r\n        private static void ReadIStorageIntoStream(IntPtr handle, Stream stream)\r\n        {\r\n            //To handle a IStorage it needs to be written into a second unmanaged memory mapped storage \r\n            //and then the data can be read from memory into a managed byte and returned as a MemoryStream\r\n\r\n            NativeMethods.ILockBytes iLockBytes = null;\r\n            NativeMethods.IStorage iStorageNew = null;\r\n            IntPtr ptrRead = IntPtr.Zero;\r\n            try\r\n            {\r\n                //Marshal pointer to an IStorage object\r\n                NativeMethods.IStorage iStorage = (NativeMethods.IStorage)Marshal.GetObjectForIUnknown(handle);\r\n\r\n                //Create an ILockBytes object on a HGlobal, then create a IStorage object on top of the ILockBytes object\r\n                iLockBytes = NativeMethods.CreateILockBytesOnHGlobal(IntPtr.Zero, true);\r\n                iStorageNew = NativeMethods.StgCreateDocfileOnILockBytes(iLockBytes, 0x00001012, 0);\r\n\r\n                //Copy the IStorage object into the new IStorage object\r\n                iStorage.CopyTo(0, null, IntPtr.Zero, iStorageNew);\r\n                iLockBytes.Flush();\r\n                iStorageNew.Commit(0);\r\n\r\n                //Get length of ILockBytes byte array\r\n                System.Runtime.InteropServices.ComTypes.STATSTG stat = new System.Runtime.InteropServices.ComTypes.STATSTG();\r\n                iLockBytes.Stat(out stat, 1);\r\n                long length = stat.cbSize;\r\n\r\n                //Read bytes into stream\r\n                ptrRead = Marshal.AllocCoTaskMem(sizeof(int));\r\n                byte[] buffer = new byte[4096];     //4 KB buffer\r\n                int offset = 0;\r\n                int bytesRead;\r\n                while (true)\r\n                {\r\n                    iLockBytes.ReadAt(offset, buffer, buffer.Length, ptrRead);\r\n                    bytesRead = Marshal.ReadInt32(ptrRead);\r\n                    if (bytesRead == 0)\r\n                        break;\r\n                    stream.Write(buffer, 0, bytesRead);\r\n                    offset += bytesRead;\r\n                }\r\n            }\r\n            finally\r\n            {\r\n                //Release all unmanaged objects\r\n                Marshal.FreeCoTaskMem(ptrRead);\r\n                if (iStorageNew != null)\r\n                    Marshal.ReleaseComObject(iStorageNew);\r\n                if (iLockBytes != null)\r\n                    Marshal.ReleaseComObject(iLockBytes);\r\n            }\r\n        }\r\n\r\n        private static void ReadIStreamIntoStream(IntPtr handle, Stream stream)\r\n        {\r\n            IntPtr ptrRead = IntPtr.Zero;\r\n            try\r\n            {\r\n                //Marshal pointer to an IStream object\r\n                IStream iStream = (IStream)Marshal.GetObjectForIUnknown(handle);\r\n\r\n                //Create pointer to integer that stores # of bytes read\r\n                ptrRead = Marshal.AllocCoTaskMem(sizeof(int));\r\n\r\n                //Copy IStream into managed stream in chunks\r\n                byte[] buffer = new byte[4096];     //4 KB buffer\r\n                int bytesRead;\r\n                while (true)\r\n                {\r\n                    iStream.Read(buffer, buffer.Length, ptrRead);\r\n                    bytesRead = Marshal.ReadInt32(ptrRead);\r\n                    if (bytesRead == 0)\r\n                        break;\r\n                    else\r\n                        stream.Write(buffer, 0, bytesRead);\r\n                }\r\n            }\r\n            finally\r\n            {\r\n                //Release all unmanaged objects\r\n                Marshal.FreeCoTaskMem(ptrRead);\r\n            }\r\n\r\n        }\r\n\r\n        private static void ReadHGlobalIntoStream(IntPtr handle, Stream stream)\r\n        {\r\n            //Lock HGlobal so it cannot be moved or discarded\r\n            IntPtr source = NativeMethods.GlobalLock(handle);\r\n\r\n            if (source == IntPtr.Zero)\r\n                throw new Exception(string.Format(\"Unable to lock hglobal {0}\", source.ToString()));\r\n            try\r\n            {\r\n                //Get size of HGlobal\r\n                int length = NativeMethods.GlobalSize(handle);\r\n\r\n                //Copy HGlobal into managed stream in chunks\r\n                byte[] buffer = new byte[4096];     //4 KB buffer\r\n                int bytesToCopy;\r\n                for(int offset = 0; offset < length; offset += buffer.Length)\r\n                {\r\n                    //Copy buffer length or remaining length, whichever is smaller\r\n                    bytesToCopy = Math.Min(buffer.Length, length - offset);\r\n                    Marshal.Copy(source, buffer, 0, bytesToCopy);\r\n                    stream.Write(buffer, 0, bytesToCopy);\r\n                }\r\n            }\r\n            finally\r\n            {\r\n                //Release all unmanaged objects\r\n                NativeMethods.GlobalUnlock(handle);\r\n            }\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "OutlookFileDrag/DragDropHook.cs",
    "content": "﻿using System;\r\nusing EasyHook;\r\nusing log4net;\r\n\r\nnamespace OutlookFileDrag\r\n{\r\n    class DragDropHook : IDisposable\r\n    {\r\n        private static ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r\n        private LocalHook hook;\r\n        private bool disposed = false;\r\n        private bool isHooked = false;\r\n\r\n        public DragDropHook()\r\n        {\r\n            try\r\n            {\r\n                //Hook OLE drag and drop event\r\n                log.Info(\"Creating hook for DoDragDrop method of ole32.dll\");\r\n                hook = EasyHook.LocalHook.Create(EasyHook.LocalHook.GetProcAddress(\"ole32.dll\", \"DoDragDrop\"),\r\n                    new NativeMethods.DragDropDelegate(DragDropHook.DoDragDropHook), null);\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Error(\"Error creating hook\", ex);\r\n                throw;\r\n            }\r\n        }\r\n\r\n        public bool IsHooked\r\n        {\r\n            get\r\n            {\r\n                return isHooked;\r\n            }\r\n        }\r\n\r\n        public void Start()\r\n        {\r\n            try\r\n            {\r\n                if (isHooked)\r\n                    return;\r\n\r\n                log.Info(\"Starting hook\");\r\n                //Hook current (UI) thread\r\n                hook.ThreadACL.SetInclusiveACL(new Int32[] { 0 });\r\n                isHooked = true;\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Error(\"Error starting hook\", ex);\r\n                throw;\r\n            }\r\n        }\r\n\r\n        public void Stop()\r\n        {\r\n            try\r\n            {\r\n                if (!isHooked)\r\n                    return;\r\n\r\n                log.Info(\"Stopping hook\");\r\n                //Stop hooking all threads\r\n                hook.ThreadACL.SetInclusiveACL(new Int32[] { });\r\n                isHooked = false;\r\n                log.Info(\"Stopped hook\");\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Error(\"Error stopping hook\", ex);\r\n                throw;\r\n            }\r\n        }\r\n\r\n        public static int DoDragDropHook(NativeMethods.IDataObject pDataObj, IntPtr pDropSource, uint dwOKEffects, out uint pdwEffect)\r\n        {\r\n            try\r\n            {\r\n                log.Info(\"Drag started\");\r\n                if (!DataObjectHelper.GetDataPresent(pDataObj, \"FileGroupDescriptorW\") && !DataObjectHelper.GetDataPresent(pDataObj, \"FileGroupDescriptor\"))\r\n                {\r\n                    log.Info(\"No virtual files found -- continuing original drag\");\r\n                    return NativeMethods.DoDragDrop(pDataObj, pDropSource, dwOKEffects, out pdwEffect);\r\n                }\r\n\r\n                //Start new drag\r\n                log.Info(\"Virtual files found -- starting new drag adding CF_HDROP format\");\r\n                log.InfoFormat(\"Files: {0}\", string.Join(\",\", DataObjectHelper.GetFilenames(pDataObj)));\r\n\r\n                OutlookDataObject newDataObj = new OutlookDataObject(pDataObj);\r\n                int result = NativeMethods.DoDragDrop(newDataObj, pDropSource, dwOKEffects, out pdwEffect);\r\n\r\n                //If files were dropped and drop effect was \"move\", then override to \"copy\" so original item is not deleted\r\n                if (newDataObj.FilesDropped && pdwEffect == NativeMethods.DROPEFFECT_MOVE)\r\n                    pdwEffect = NativeMethods.DROPEFFECT_COPY;\r\n\r\n                //Get result\r\n                log.InfoFormat(\"DoDragDrop effect: {0} result: {1}\", pdwEffect, result);\r\n                return result;\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Warn(\"Dragging error\", ex);\r\n                pdwEffect = NativeMethods.DROPEFFECT_NONE;\r\n                return NativeMethods.DRAGDROP_S_CANCEL;\r\n            }\r\n        }\r\n\r\n        public void Dispose()\r\n        {\r\n            Dispose(true);\r\n            GC.SuppressFinalize(this);\r\n        }\r\n\r\n        protected virtual void Dispose(bool disposing)\r\n        {\r\n            if (disposed)\r\n                return;\r\n\r\n            if (disposing)\r\n            {\r\n                hook.Dispose();\r\n            }\r\n\r\n            disposed = true;\r\n        }\r\n    }\r\n\r\n}\r\n"
  },
  {
    "path": "OutlookFileDrag/FileUtility.cs",
    "content": "﻿using System;\r\nusing System.IO;\r\nusing log4net;\r\n\r\nnamespace OutlookFileDrag\r\n{\r\n    static class FileUtility\r\n    {\r\n        private static ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r\n\r\n        public static string GetTempPath()\r\n        {\r\n            log.Debug(\"Getting temp path\");\r\n            string path = Path.Combine(Path.GetTempPath(), \"OutlookFileDrag\", Guid.NewGuid().ToString());\r\n            if (!System.IO.Directory.Exists(path))\r\n                System.IO.Directory.CreateDirectory(path);\r\n            log.DebugFormat(\"Temp path: {0}\", path);\r\n            return path;\r\n        }\r\n\r\n        public static void CleanupTempPath(int tempFileExpiration)\r\n        {\r\n            log.Debug(\"Cleaning up temp path\");\r\n            string path = Path.Combine(Path.GetTempPath(), \"OutlookFileDrag\");\r\n            log.InfoFormat(\"Temp path: {0}\", path);\r\n            if (!System.IO.Directory.Exists(path))\r\n            {\r\n                log.Info(\"Temp path does not exist\");\r\n                return;\r\n            }\r\n\r\n            var dirInfo = new DirectoryInfo(path);\r\n            foreach(DirectoryInfo subfolder in dirInfo.GetDirectories())\r\n            {\r\n                //If folder was created before expiration window, delete it\r\n                if (subfolder.CreationTime < DateTime.Now.AddMinutes(tempFileExpiration))\r\n                    try\r\n                    {\r\n                        log.InfoFormat(\"Deleting temp folder: {0}\", subfolder.FullName);\r\n                        subfolder.Delete(true);\r\n                    }\r\n                    catch\r\n                    {\r\n                        log.WarnFormat(\"Could not delete temp folder: {0}\", subfolder.FullName);\r\n                    }\r\n            }\r\n        }\r\n\r\n        public static string GetUniqueFilename(string filename)\r\n        {\r\n            string filenameNoExt;\r\n            string ext;\r\n\r\n            //If filename is too long, truncate filename\r\n            if (filename.Length >= NativeMethods.MAX_PATH)\r\n            {\r\n                ext = Path.GetExtension(filename);\r\n                filename = filename.Substring(0, NativeMethods.MAX_PATH - ext.Length - 1) + ext;\r\n            }\r\n            \r\n            //If file does not exist, use original filename\r\n            if (!File.Exists(filename))\r\n                return filename;\r\n\r\n            //Try appending number to filename until unique filename is found\r\n            filenameNoExt = Path.Combine(Path.GetDirectoryName(filename), Path.GetFileNameWithoutExtension(filename));\r\n            ext = Path.GetExtension(filename);\r\n\r\n            for (int index = 1; index < 1024; index++)\r\n            {\r\n                string newFilename = string.Format(\"{0} ({1}){2}\", filenameNoExt, index, ext);\r\n\r\n                //If new filename is too long, truncate new filename\r\n                if (newFilename.Length > NativeMethods.MAX_PATH)\r\n                {\r\n                    newFilename = string.Format(\"{0} ({1}){2}\", filenameNoExt.Substring(0, NativeMethods.MAX_PATH - ext.Length - 8), index, ext);\r\n                }\r\n\r\n                if (!File.Exists(newFilename))\r\n                    return newFilename;\r\n            }\r\n\r\n            //If no unique filename could be found, throw exception\r\n            throw new Exception(string.Format(\"Could not generate unique filename for file {0}\", filename));\r\n        }\r\n\r\n\r\n    }\r\n}\r\n"
  },
  {
    "path": "OutlookFileDrag/FormatEtcEnumerator.cs",
    "content": "﻿using System.Runtime.InteropServices.ComTypes;\r\n\r\nnamespace OutlookFileDrag\r\n{\r\n    class FormatEtcEnumerator : IEnumFORMATETC \r\n    {\r\n        private FORMATETC[] formats;\r\n        private int index = 0;\r\n\r\n        public FormatEtcEnumerator(FORMATETC[] formats)\r\n        {\r\n            this.formats = formats;\r\n        }\r\n\r\n        public void Clone(out IEnumFORMATETC newEnum)\r\n        {\r\n            //Create new enumerators\r\n            newEnum = new FormatEtcEnumerator(formats);\r\n        }\r\n\r\n        public int Next(int celt, FORMATETC[] rgelt, int[] pceltFetched)\r\n        {\r\n            //Fetch number of requested formats\r\n            int fetchCount = 0;\r\n            for (int i = 0; i < celt; i++)\r\n            {\r\n                //If index is past end of formats, stop\r\n                if (index > formats.Length - 1)\r\n                    break;\r\n\r\n                //Set format\r\n                rgelt[i] = formats[index];\r\n                fetchCount++;\r\n                index++;\r\n            }\r\n\r\n            //Set number of formats fetched\r\n            if (pceltFetched != null && pceltFetched.Length > 0)\r\n                pceltFetched[0] = fetchCount;\r\n\r\n            //Return S_OK if all requested formats were returned; otherwise, return S_FALSE\r\n            return (fetchCount == celt ? NativeMethods.S_OK : NativeMethods.S_FALSE);\r\n        }\r\n\r\n        public int Reset()\r\n        {\r\n            //Set format index back to 0\r\n            index = 0;\r\n            return NativeMethods.S_OK;\r\n        }\r\n\r\n        public int Skip(int celt)\r\n        {\r\n            //Check if incremented index is past end of formats\r\n            if (index + celt > formats.Length - 1)\r\n                return NativeMethods.S_FALSE;\r\n            else\r\n            {\r\n                //Increment index and return\r\n                index += celt;\r\n                return NativeMethods.S_OK;\r\n            }\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "OutlookFileDrag/NativeMethods.cs",
    "content": "﻿using System;\r\nusing System.Runtime.InteropServices;\r\nusing System.Runtime.InteropServices.ComTypes;\r\n\r\nnamespace OutlookFileDrag\r\n{\r\n    static class NativeMethods\r\n    {\r\n        public const int S_OK = 0;\r\n        public const int S_FALSE = 1;\r\n\r\n        public const short CF_TEXT = 1;\r\n        public const short CF_UNICODETEXT = 13;\r\n        public const short CF_HDROP = 15;\r\n\r\n        public const int DATA_S_SAMEFORMATETC = 0x00040130;\r\n\r\n        public const int DRAGDROP_S_DROP = 0x00040100;\r\n        public const int DRAGDROP_S_CANCEL = 0x00040101;\r\n        public const int DRAGDROP_S_USEDEFAULTCURSORS = 0x00040102;\r\n\r\n        public const uint DROPEFFECT_NONE = 0;\r\n        public const uint DROPEFFECT_COPY = 1;\r\n        public const uint DROPEFFECT_MOVE = 2;\r\n        public const uint DROPEFFECT_LINK = 4;\r\n        public const uint DROPEFFECT_SCROLL = 0x80000000;\r\n\r\n        public const int DV_E_LINDEX = unchecked((int)0x80040068);\r\n        public const int DV_E_FORMATETC = unchecked((int)0x80040064);\r\n        public const int DV_E_TYMED = unchecked((int)0x80040069);\r\n        public const int DV_E_DVASPECT = unchecked((int)0x8004006B);\r\n\r\n        public const int E_INVALIDARG = unchecked((int)0x80070057);\r\n        public const int E_FAIL = unchecked((int)0x80004005);\r\n        public const int E_NOTIMPL = unchecked((int)0x80004001);\r\n        public const int E_OUTOFMEMORY = unchecked((int)0x8007000E);\r\n        public const int E_UNSPEC = E_FAIL;\r\n        public const int E_UNEXPECTED = unchecked((int)0x8000FFFF);\r\n\r\n        public const int MAX_PATH = 260;\r\n\r\n        [DllImport(\"ole32.dll\")]\r\n        public static extern int DoDragDrop(NativeMethods.IDataObject pDataObj, IntPtr pDropSource, uint dwOKEffects, out uint pdwEffect);\r\n\r\n        [DllImport(\"kernel32.dll\", CharSet = CharSet.Auto)]\r\n        public static extern IntPtr GlobalLock(IntPtr handle);\r\n\r\n        [DllImport(\"kernel32.dll\", CharSet = CharSet.Auto)]\r\n        public static extern bool GlobalUnlock(IntPtr handle);\r\n\r\n        [DllImport(\"kernel32.dll\", CharSet = CharSet.Auto)]\r\n        public static extern int GlobalSize(IntPtr handle);\r\n\r\n        [DllImport(\"ole32.dll\", PreserveSig = false)]\r\n        public static extern ILockBytes CreateILockBytesOnHGlobal(IntPtr hGlobal, bool fDeleteOnRelease);\r\n\r\n        [DllImport(\"ole32.dll\", CharSet = CharSet.Unicode, PreserveSig = false)]\r\n        public static extern IStorage StgCreateDocfileOnILockBytes(ILockBytes plkbyt, uint grfMode, uint reserved);\r\n\r\n        [DllImport(\"ole32.dll\")]\r\n        internal static extern void ReleaseStgMedium(ref STGMEDIUM medium);\r\n\r\n        [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid(\"0000000B-0000-0000-C000-000000000046\")]\r\n        public interface IStorage\r\n        {\r\n            [return: MarshalAs(UnmanagedType.Interface)]\r\n            IStream CreateStream([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, [In, MarshalAs(UnmanagedType.U4)] int grfMode, [In, MarshalAs(UnmanagedType.U4)] int reserved1, [In, MarshalAs(UnmanagedType.U4)] int reserved2);\r\n            [return: MarshalAs(UnmanagedType.Interface)]\r\n            IStream OpenStream([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, IntPtr reserved1, [In, MarshalAs(UnmanagedType.U4)] int grfMode, [In, MarshalAs(UnmanagedType.U4)] int reserved2);\r\n            [return: MarshalAs(UnmanagedType.Interface)]\r\n            IStorage CreateStorage([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, [In, MarshalAs(UnmanagedType.U4)] int grfMode, [In, MarshalAs(UnmanagedType.U4)] int reserved1, [In, MarshalAs(UnmanagedType.U4)] int reserved2);\r\n            [return: MarshalAs(UnmanagedType.Interface)]\r\n            IStorage OpenStorage([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, IntPtr pstgPriority, [In, MarshalAs(UnmanagedType.U4)] int grfMode, IntPtr snbExclude, [In, MarshalAs(UnmanagedType.U4)] int reserved);\r\n            void CopyTo(int ciidExclude, [In, MarshalAs(UnmanagedType.LPArray)] Guid[] pIIDExclude, IntPtr snbExclude, [In, MarshalAs(UnmanagedType.Interface)] IStorage stgDest);\r\n            void MoveElementTo([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, [In, MarshalAs(UnmanagedType.Interface)] IStorage stgDest, [In, MarshalAs(UnmanagedType.BStr)] string pwcsNewName, [In, MarshalAs(UnmanagedType.U4)] int grfFlags);\r\n            void Commit(int grfCommitFlags);\r\n            void Revert();\r\n            void EnumElements([In, MarshalAs(UnmanagedType.U4)] int reserved1, IntPtr reserved2, [In, MarshalAs(UnmanagedType.U4)] int reserved3, [MarshalAs(UnmanagedType.Interface)] out object ppVal);\r\n            void DestroyElement([In, MarshalAs(UnmanagedType.BStr)] string pwcsName);\r\n            void RenameElement([In, MarshalAs(UnmanagedType.BStr)] string pwcsOldName, [In, MarshalAs(UnmanagedType.BStr)] string pwcsNewName);\r\n            void SetElementTimes([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, [In] System.Runtime.InteropServices.ComTypes.FILETIME pctime, [In] System.Runtime.InteropServices.ComTypes.FILETIME patime, [In] System.Runtime.InteropServices.ComTypes.FILETIME pmtime);\r\n            void SetClass([In] ref Guid clsid);\r\n            void SetStateBits(int grfStateBits, int grfMask);\r\n            void Stat([Out]out System.Runtime.InteropServices.ComTypes.STATSTG pStatStg, int grfStatFlag);\r\n        }\r\n\r\n        [ComImport, Guid(\"0000000A-0000-0000-C000-000000000046\"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\r\n        public interface ILockBytes\r\n        {\r\n            void ReadAt([In, MarshalAs(UnmanagedType.U8)] long ulOffset, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] pv, [In, MarshalAs(UnmanagedType.U4)] int cb, IntPtr pcbRead);\r\n            void WriteAt([In, MarshalAs(UnmanagedType.U8)] long ulOffset, IntPtr pv, [In, MarshalAs(UnmanagedType.U4)] int cb, [Out, MarshalAs(UnmanagedType.LPArray)] int[] pcbWritten);\r\n            void Flush();\r\n            void SetSize([In, MarshalAs(UnmanagedType.U8)] long cb);\r\n            void LockRegion([In, MarshalAs(UnmanagedType.U8)] long libOffset, [In, MarshalAs(UnmanagedType.U8)] long cb, [In, MarshalAs(UnmanagedType.U4)] int dwLockType);\r\n            void UnlockRegion([In, MarshalAs(UnmanagedType.U8)] long libOffset, [In, MarshalAs(UnmanagedType.U8)] long cb, [In, MarshalAs(UnmanagedType.U4)] int dwLockType);\r\n            void Stat([Out]out System.Runtime.InteropServices.ComTypes.STATSTG pstatstg, [In, MarshalAs(UnmanagedType.U4)] int grfStatFlag);\r\n        }\r\n\r\n        [ComImport, Guid(\"0000010E-0000-0000-C000-000000000046\"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\r\n        public interface IDataObject\r\n        {\r\n            [PreserveSig]\r\n            int GetData([In] ref FORMATETC format, out STGMEDIUM medium);\r\n            [PreserveSig]\r\n            int GetDataHere([In] ref FORMATETC format, ref STGMEDIUM medium);\r\n            [PreserveSig]\r\n            int QueryGetData([In] ref FORMATETC format);\r\n            [PreserveSig]\r\n            int GetCanonicalFormatEtc([In] ref FORMATETC formatIn, out FORMATETC formatOut);\r\n            [PreserveSig]\r\n            int SetData([In] ref FORMATETC formatIn, [In] ref STGMEDIUM medium, [MarshalAs(UnmanagedType.Bool)] bool release);\r\n            [PreserveSig]\r\n            int EnumFormatEtc(DATADIR direction, out System.Runtime.InteropServices.ComTypes.IEnumFORMATETC ppenumFormatEtc);\r\n            [PreserveSig]\r\n            int DAdvise([In] ref FORMATETC pFormatetc, ADVF advf, IAdviseSink adviseSink, out int connection);\r\n            [PreserveSig]\r\n            int DUnadvise(int connection);\r\n            [PreserveSig]\r\n            int EnumDAdvise(out IEnumSTATDATA enumAdvise);\r\n        }\r\n\r\n        [ComImport, Guid(\"00000121-0000-0000-C000-000000000046\"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\r\n        public interface IDropSource\r\n        {\r\n            [PreserveSig]\r\n            int QueryContinueDrag([MarshalAs(UnmanagedType.Bool)] bool fEscapePressed, int grfKeyState);\r\n            [PreserveSig]\r\n            int GiveFeedback(int dwEffect);\r\n        }\r\n\r\n        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]\r\n        public sealed class FILEGROUPDESCRIPTORA\r\n        {\r\n            public uint cItems;\r\n            //public FILEDESCRIPTORA[] fgd;\r\n        }\r\n\r\n        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]\r\n        public sealed class FILEDESCRIPTORA\r\n        {\r\n            public uint dwFlags;\r\n            public Guid clsid;\r\n            public SIZEL sizel;\r\n            public POINTL pointl;\r\n            public uint dwFileAttributes;\r\n            public System.Runtime.InteropServices.ComTypes.FILETIME ftCreationTime;\r\n            public System.Runtime.InteropServices.ComTypes.FILETIME ftLastAccessTime;\r\n            public System.Runtime.InteropServices.ComTypes.FILETIME ftLastWriteTime;\r\n            public uint nFileSizeHigh;\r\n            public uint nFileSizeLow;\r\n            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]\r\n            public string cFileName;\r\n        }\r\n\r\n        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]\r\n        public sealed class FILEGROUPDESCRIPTORW\r\n        {\r\n            public uint cItems;\r\n            //public FILEDESCRIPTORW[] fgd;\r\n        }\r\n\r\n        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]\r\n        public sealed class FILEDESCRIPTORW\r\n        {\r\n            public uint dwFlags;\r\n            public Guid clsid;\r\n            public SIZEL sizel;\r\n            public POINTL pointl;\r\n            public uint dwFileAttributes;\r\n            public System.Runtime.InteropServices.ComTypes.FILETIME ftCreationTime;\r\n            public System.Runtime.InteropServices.ComTypes.FILETIME ftLastAccessTime;\r\n            public System.Runtime.InteropServices.ComTypes.FILETIME ftLastWriteTime;\r\n            public uint nFileSizeHigh;\r\n            public uint nFileSizeLow;\r\n            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]\r\n            public string cFileName;\r\n        }\r\n\r\n        [StructLayout(LayoutKind.Sequential)]\r\n        public sealed class POINTL\r\n        {\r\n            public int x;\r\n            public int y;\r\n        }\r\n\r\n        [StructLayout(LayoutKind.Sequential)]\r\n        public sealed class SIZEL\r\n        {\r\n            public int cx;\r\n            public int cy;\r\n        }\r\n\r\n        [StructLayout(LayoutKind.Sequential)]\r\n        public sealed class DROPFILES\r\n        {\r\n            public int pFiles;\r\n            public int X;\r\n            public int Y;\r\n            public bool fNC;\r\n            public bool fWide;\r\n        }\r\n    \r\n        [UnmanagedFunctionPointer(CallingConvention.StdCall, SetLastError = true)]\r\n        [return: MarshalAs(UnmanagedType.I4)]\r\n        public delegate int DragDropDelegate(NativeMethods.IDataObject pDataObj, IntPtr pDropSource, uint dwOKEffects, out uint pdwEffect);\r\n\r\n    }\r\n}\r\n"
  },
  {
    "path": "OutlookFileDrag/OutlookDataObject.cs",
    "content": "﻿using System;\r\nusing System.Collections.Generic;\r\nusing System.IO;\r\nusing System.Runtime.InteropServices;\r\nusing System.Runtime.InteropServices.ComTypes;\r\nusing log4net;\r\n\r\nnamespace OutlookFileDrag\r\n{\r\n    //Class that wraps Outlook data object and adds support for CF_HDROP format\r\n    class OutlookDataObject : NativeMethods.IDataObject, ICustomQueryInterface  \r\n    {\r\n        private NativeMethods.IDataObject innerData;\r\n        private string[] tempFilenames;\r\n        private static ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r\n\r\n        public bool FilesDropped { get; private set; }\r\n\r\n        public OutlookDataObject(NativeMethods.IDataObject innerData)\r\n        {\r\n            this.innerData = innerData;\r\n        }\r\n\r\n        public int EnumFormatEtc(DATADIR direction, out IEnumFORMATETC ppenumFormatEtc)\r\n        {\r\n            IEnumFORMATETC origEnum = null;\r\n            try\r\n            {\r\n                log.DebugFormat(\"IDataObject.EnumFormatEtc called -- direction {0}\", direction);\r\n                switch (direction)\r\n                {\r\n                    case DATADIR.DATADIR_GET:\r\n                        //Get original enumerator\r\n                        int result = innerData.EnumFormatEtc(direction, out origEnum);\r\n                        if (result != NativeMethods.S_OK)\r\n                        {\r\n                            ppenumFormatEtc = null;\r\n                            return result;\r\n                        }\r\n\r\n                        //Enumerate original formats\r\n                        List<FORMATETC> formats = new List<FORMATETC>();\r\n                        FORMATETC[] buffer = new FORMATETC[] { new FORMATETC() };\r\n                        while (origEnum.Next(1, buffer, null) == NativeMethods.S_OK)\r\n                        {\r\n                            //Convert format from short to unsigned short\r\n                            ushort cfFormat = (ushort) buffer[0].cfFormat;\r\n\r\n                            //Do not return text formats -- some applications try to get text before files\r\n                            if (cfFormat != NativeMethods.CF_TEXT && cfFormat != NativeMethods.CF_UNICODETEXT && cfFormat != (ushort)DataObjectHelper.GetClipboardFormat(\"Csv\"))\r\n                                formats.Add(buffer[0]);\r\n                        }\r\n\r\n                        //Add CF_HDROP format\r\n                        FORMATETC format = new FORMATETC();\r\n                        format.cfFormat = NativeMethods.CF_HDROP;\r\n                        format.dwAspect = DVASPECT.DVASPECT_CONTENT;\r\n                        format.lindex = -1;\r\n                        format.ptd = IntPtr.Zero;\r\n                        format.tymed = TYMED.TYMED_HGLOBAL;\r\n                        formats.Add(format);\r\n\r\n                        //Return new enumerator for available formats\r\n                        ppenumFormatEtc = new FormatEtcEnumerator(formats.ToArray());\r\n                        return NativeMethods.S_OK;\r\n\r\n                    case DATADIR.DATADIR_SET:\r\n                        //Return original enumerator\r\n                        return innerData.EnumFormatEtc(direction, out ppenumFormatEtc);\r\n                    default:\r\n                        //Invalid direction\r\n                        ppenumFormatEtc = null;\r\n                        return NativeMethods.E_INVALIDARG;\r\n                }\r\n\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Error(\"Exception in IDataObject.EnumFormatEtc\", ex);\r\n                ppenumFormatEtc = null;\r\n                return NativeMethods.E_UNEXPECTED;\r\n            }\r\n            finally\r\n            {\r\n                //Release all unmanaged objects\r\n                if (origEnum != null)\r\n                    Marshal.ReleaseComObject(origEnum);\r\n            }\r\n        }\r\n\r\n        public int GetCanonicalFormatEtc(ref FORMATETC formatIn, out FORMATETC formatOut)\r\n        {\r\n            try\r\n            {\r\n                log.DebugFormat(\"IDataObject.GetCanonicalFormatEtc called -- cfFormat {0} dwAspect {1} lindex {2} ptd {3} tymed {4}\", formatIn.cfFormat, formatIn.dwAspect, formatIn.lindex, formatIn.ptd, formatIn.tymed);\r\n                if (formatIn.cfFormat == NativeMethods.CF_HDROP)\r\n                {\r\n                    //Copy input format to output format\r\n                    formatOut = new FORMATETC();\r\n                    formatOut.cfFormat = formatIn.cfFormat;\r\n                    formatOut.dwAspect = formatIn.dwAspect;\r\n                    formatOut.lindex = formatIn.lindex;\r\n                    formatOut.ptd = IntPtr.Zero;\r\n                    formatOut.tymed = formatIn.tymed;\r\n                    \r\n                    return NativeMethods.DATA_S_SAMEFORMATETC;\r\n                }\r\n                else\r\n                    return innerData.GetCanonicalFormatEtc(formatIn, out formatOut);\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Error(\"Exception in IDataObject.GetCanonicalFormatEtc\", ex);\r\n                formatOut = new FORMATETC();\r\n                return NativeMethods.E_UNEXPECTED;\r\n            }\r\n        }\r\n\r\n        public int GetData(ref FORMATETC format, out STGMEDIUM medium)\r\n        {\r\n            try\r\n            {\r\n                //Get data into passed medium\r\n                log.DebugFormat(\"IDataObject.GetData called -- cfFormat {0} dwAspect {1} lindex {2} ptd {3} tymed {4}\", format.cfFormat, format.dwAspect, format.lindex, format.ptd, format.tymed);\r\n                log.DebugFormat(\"Format name: {0}\", System.Windows.Forms.DataFormats.GetFormat((ushort)format.cfFormat).Name);\r\n\r\n                if (format.cfFormat == NativeMethods.CF_HDROP)\r\n                {\r\n                    medium = new STGMEDIUM();\r\n\r\n                    //Validate index\r\n                    if (format.lindex != -1)\r\n                        return NativeMethods.DV_E_LINDEX;\r\n                    //Validate medium type\r\n                    if (!format.tymed.HasFlag(TYMED.TYMED_HGLOBAL))\r\n                        return NativeMethods.DV_E_TYMED;\r\n                    //Validate DV aspect\r\n                    if (format.dwAspect != DVASPECT.DVASPECT_CONTENT)\r\n                        return NativeMethods.DV_E_DVASPECT;\r\n\r\n                    //Extract files if not already extracted\r\n                    if (tempFilenames == null)\r\n                        ExtractFiles();\r\n\r\n                    //Get list of dropped files\r\n                    log.Debug(\"Setting drop files\");\r\n                    DataObjectHelper.SetDropFiles(ref medium, tempFilenames);\r\n                    FilesDropped = true;\r\n                    return NativeMethods.S_OK;\r\n                }\r\n                else if (format.cfFormat == NativeMethods.CF_TEXT || format.cfFormat == NativeMethods.CF_UNICODETEXT || format.cfFormat == (ushort)DataObjectHelper.GetClipboardFormat(\"Csv\"))\r\n                {\r\n                    //Do not return text formats -- some applications try to get text before files\r\n                    medium = new STGMEDIUM();\r\n                    return NativeMethods.DV_E_FORMATETC;\r\n                }\r\n                else\r\n                {\r\n                    int result =  innerData.GetData(format, out medium);\r\n                    log.DebugFormat(\"Result: {0}\", result);\r\n                    return result;\r\n                }\r\n\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Error(\"Exception in IDataObject.GetData\", ex);\r\n                medium = new STGMEDIUM();\r\n                return NativeMethods.E_UNEXPECTED;\r\n            }\r\n        }\r\n\r\n        public int GetDataHere(ref FORMATETC format, ref STGMEDIUM medium)\r\n        {\r\n            log.DebugFormat(\"IDataObject.QueryGetData called -- cfFormat {0} dwAspect {1} lindex {2} ptd {3} tymed {4}\", format.cfFormat, format.dwAspect, format.lindex, format.ptd, format.tymed);\r\n            return NativeMethods.E_NOTIMPL;\r\n        }\r\n\r\n        public int QueryGetData(ref FORMATETC format)\r\n        {\r\n            try\r\n            {\r\n                log.DebugFormat(\"IDataObject.QueryGetData called -- cfFormat {0} dwAspect {1} lindex {2} ptd {3} tymed {4}\", format.cfFormat, format.dwAspect, format.lindex, format.ptd, format.tymed);\r\n                log.DebugFormat(\"Format name: {0}\", System.Windows.Forms.DataFormats.GetFormat((ushort)format.cfFormat).Name);\r\n                if (format.cfFormat == NativeMethods.CF_HDROP)\r\n                {\r\n                    //Validate index\r\n                    if (format.lindex != -1)\r\n                        return NativeMethods.DV_E_LINDEX;\r\n                    //Validate medium type\r\n                    if (!format.tymed.HasFlag(TYMED.TYMED_HGLOBAL))\r\n                        return NativeMethods.DV_E_TYMED;\r\n                    //Validate DV aspect\r\n                    if (format.dwAspect != DVASPECT.DVASPECT_CONTENT)\r\n                        return NativeMethods.DV_E_DVASPECT;\r\n\r\n                    log.DebugFormat(\"IDataObject.QueryGetData result: {0}\", NativeMethods.S_OK);\r\n                    return NativeMethods.S_OK;\r\n                }\r\n                else if (format.cfFormat == NativeMethods.CF_TEXT || format.cfFormat == NativeMethods.CF_UNICODETEXT || format.cfFormat == (ushort)DataObjectHelper.GetClipboardFormat(\"Csv\"))\r\n                {\r\n                    //Do not return text formats -- some applications try to get text before files\r\n                    return NativeMethods.DV_E_FORMATETC;\r\n                }\r\n                else\r\n                {\r\n                    int result = innerData.QueryGetData(format);\r\n                    log.DebugFormat(\"Result: {0}\", result);\r\n                    return result;\r\n                }\r\n\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Error(\"Exception in IDataObject.QueryGetData\", ex);\r\n                return NativeMethods.E_UNEXPECTED;\r\n            }\r\n        }\r\n\r\n        public int SetData(ref FORMATETC formatIn, ref STGMEDIUM medium, bool release)\r\n        {\r\n            try\r\n            {\r\n                log.DebugFormat(\"IDataObject.SetData called -- cfFormat {0} dwAspect {1} lindex {2} ptd {3} tymed {4}\", formatIn.cfFormat, formatIn.dwAspect, formatIn.lindex, formatIn.ptd, formatIn.tymed);\r\n                log.DebugFormat(\"Format name: {0}\", System.Windows.Forms.DataFormats.GetFormat((ushort)formatIn.cfFormat).Name);\r\n                int result = innerData.SetData(formatIn, medium, release);\r\n                log.DebugFormat(\"Result: {0}\", result);\r\n                return result;\r\n\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Error(\"Exception in IDataObject.SetData\", ex);\r\n                return NativeMethods.E_UNEXPECTED;\r\n            }\r\n        }\r\n\r\n        public int DAdvise(ref FORMATETC pFormatetc, ADVF advf, IAdviseSink adviseSink, out int connection)\r\n        {\r\n            return innerData.DAdvise(pFormatetc, advf, adviseSink, out connection);\r\n        }\r\n\r\n        public int DUnadvise(int connection)\r\n        {\r\n            return innerData.DUnadvise(connection);\r\n        }\r\n\r\n        public int EnumDAdvise(out IEnumSTATDATA enumAdvise)\r\n        {\r\n            return innerData.EnumDAdvise(out enumAdvise);\r\n        }\r\n\r\n        private void ExtractFiles()\r\n        {\r\n            //Get filenames being dragged\r\n            log.Debug(\"Getting filenames\");\r\n            string[] filenames = DataObjectHelper.GetFilenames(this.innerData);\r\n            log.DebugFormat(\"Filenames: {0}\", string.Join(\",\", filenames));\r\n\r\n            //Get temporary folder\r\n            log.Debug(\"Creating temp folder\");\r\n            string tempPath = FileUtility.GetTempPath();\r\n            log.DebugFormat(\"Temp folder: {0}\", tempPath);\r\n\r\n            //Save files to temporary directory\r\n            tempFilenames = new string[filenames.Length];\r\n            for (int fileIndex = 0; fileIndex < filenames.Length; fileIndex++)\r\n            {\r\n                tempFilenames[fileIndex] = FileUtility.GetUniqueFilename(Path.Combine(tempPath, filenames[fileIndex]));\r\n                log.DebugFormat(\"Extracting file {0}\", filenames[fileIndex]);\r\n                using (FileStream fs = new FileStream(tempFilenames[fileIndex], FileMode.Create))\r\n                {\r\n                    DataObjectHelper.ReadFileContents(this.innerData, fileIndex, fs);\r\n                }\r\n            }\r\n        }\r\n\r\n        public CustomQueryInterfaceResult GetInterface(ref Guid iid, out IntPtr ppv)\r\n        {\r\n            ppv = IntPtr.Zero;\r\n            try\r\n            {\r\n                log.DebugFormat(\"Get COM interface {0}\", iid);\r\n\r\n                //For IDataObject interface, use interface on this object\r\n                if (iid == new Guid(\"0000010E-0000-0000-C000-000000000046\"))\r\n                {\r\n                    log.DebugFormat(\"Interface handled\");\r\n                    return CustomQueryInterfaceResult.NotHandled;\r\n                }\r\n\r\n                else\r\n                {\r\n                    //For all other interfaces, use interface on original object\r\n                    IntPtr pUnk = Marshal.GetIUnknownForObject(this.innerData);\r\n                    int retVal = Marshal.QueryInterface(pUnk, ref iid, out ppv);\r\n                    if (retVal == NativeMethods.S_OK)\r\n                    {\r\n                        log.DebugFormat(\"Interface handled by inner object\");\r\n                        return CustomQueryInterfaceResult.Handled;\r\n                    }\r\n                    else\r\n                    {\r\n                        log.DebugFormat(\"Interface not handled by inner object\");\r\n                        return CustomQueryInterfaceResult.Failed;\r\n                    }\r\n                }\r\n\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Error(\"Exception in ICustomQueryInterface\", ex);\r\n                return CustomQueryInterfaceResult.Failed;\r\n            }\r\n\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "OutlookFileDrag/OutlookDragSource.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Runtime.InteropServices;\nusing System.Runtime.InteropServices.ComTypes;\nusing log4net;\n\nnamespace OutlookFileDrag\n{\n    class OutlookDragSource : NativeMethods.IDropSource, ICustomQueryInterface\n    {\n        private IntPtr innerData;\n        private static ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\n\n        public OutlookDragSource(IntPtr innerData)\n        {\n            this.innerData = innerData;\n        }\n\n\n        public CustomQueryInterfaceResult GetInterface(ref Guid iid, out IntPtr ppv)\n        {\n            ppv = IntPtr.Zero;\n            try\n            {\n                log.DebugFormat(\"Get COM interface {0}\", iid);\n\n                //For all other interfaces, use interface on original object\n                //IntPtr pUnk = Marshal.GetIUnknownForObject(this.innerData);\n                IntPtr pUnk = this.innerData;\n                int retVal = Marshal.QueryInterface(pUnk, ref iid, out ppv);\n                if (retVal == NativeMethods.S_OK)\n                {\n                    log.DebugFormat(\"Interface handled by inner object\");\n                    return CustomQueryInterfaceResult.Handled;\n                }\n                else\n                {\n                    log.DebugFormat(\"Interface not handled by inner object\");\n                    return CustomQueryInterfaceResult.Failed;\n                }\n\n            }\n            catch (Exception ex)\n            {\n                log.Error(\"Exception in ICustomQueryInterface\", ex);\n                return CustomQueryInterfaceResult.Failed;\n            }\n\n        }\n\n        public int QueryContinueDrag([MarshalAs(UnmanagedType.Bool)] bool fEscapePressed, int grfKeyState)\n        {\n            throw new NotImplementedException();\n        }\n\n        public int GiveFeedback(int dwEffect)\n        {\n            throw new NotImplementedException();\n        }\n    }\n}\n"
  },
  {
    "path": "OutlookFileDrag/OutlookFileDrag.csproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <Import Project=\"$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props\" Condition=\"Exists('$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props')\" />\r\n  <!--\r\n    This section defines project-level properties.\r\n\r\n    AssemblyName\r\n      Name of the output assembly.\r\n    Configuration\r\n      Specifies a default value for debug.\r\n    OutputType\r\n      Must be \"Library\" for VSTO.\r\n    Platform\r\n      Specifies what CPU the output of this project can run on.\r\n    NoStandardLibraries\r\n      Set to \"false\" for VSTO.\r\n    RootNamespace\r\n      In C#, this specifies the namespace given to new files. In VB, all objects are\r\n      wrapped in this namespace at runtime.\r\n  -->\r\n  <PropertyGroup>\r\n    <ProjectTypeGuids>{BAA0C2D2-18E2-41B9-852F-F413020CAA33};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>\r\n    <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>\r\n    <Platform Condition=\" '$(Platform)' == '' \">AnyCPU</Platform>\r\n    <ProjectGuid>{88E6522A-C68B-42C8-8B5E-9C959BA6C415}</ProjectGuid>\r\n    <OutputType>Library</OutputType>\r\n    <NoStandardLibraries>false</NoStandardLibraries>\r\n    <RootNamespace>OutlookFileDrag</RootNamespace>\r\n    <AssemblyName>OutlookFileDrag</AssemblyName>\r\n    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>\r\n    <DefineConstants>VSTO40</DefineConstants>\r\n    <TargetFrameworkProfile />\r\n    <BootstrapperEnabled>true</BootstrapperEnabled>\r\n    <PublishUrl>publish\\</PublishUrl>\r\n    <InstallUrl />\r\n    <TargetCulture>en</TargetCulture>\r\n    <ApplicationVersion>1.0.0.0</ApplicationVersion>\r\n    <AutoIncrementApplicationRevision>true</AutoIncrementApplicationRevision>\r\n    <UpdateEnabled>true</UpdateEnabled>\r\n    <UpdateInterval>7</UpdateInterval>\r\n    <UpdateIntervalUnits>days</UpdateIntervalUnits>\r\n    <IsWebBootstrapper>False</IsWebBootstrapper>\r\n    <ProductName>OutlookFileDrag</ProductName>\r\n    <PublisherName />\r\n    <SupportUrl />\r\n    <FriendlyName>OutlookFileDrag</FriendlyName>\r\n    <OfficeApplicationDescription />\r\n    <LoadBehavior>3</LoadBehavior>\r\n  </PropertyGroup>\r\n  <ItemGroup>\r\n    <BootstrapperPackage Include=\".NETFramework,Version=v4.0\">\r\n      <Visible>False</Visible>\r\n      <ProductName>Microsoft .NET Framework 4 %28x86 and x64%29</ProductName>\r\n      <Install>true</Install>\r\n    </BootstrapperPackage>\r\n    <BootstrapperPackage Include=\"Microsoft.Net.Framework.3.5.SP1\">\r\n      <Visible>False</Visible>\r\n      <ProductName>.NET Framework 3.5 SP1</ProductName>\r\n      <Install>false</Install>\r\n    </BootstrapperPackage>\r\n    <BootstrapperPackage Include=\"Microsoft.VSTORuntime.4.0\">\r\n      <Visible>False</Visible>\r\n      <ProductName>Microsoft Visual Studio 2010 Tools for Office Runtime %28x86 and x64%29</ProductName>\r\n      <Install>true</Install>\r\n    </BootstrapperPackage>\r\n    <BootstrapperPackage Include=\"Microsoft.Windows.Installer.4.5\">\r\n      <Visible>False</Visible>\r\n      <ProductName>Windows Installer 4.5</ProductName>\r\n      <Install>true</Install>\r\n    </BootstrapperPackage>\r\n  </ItemGroup>\r\n  <PropertyGroup>\r\n    <!--\r\n      OfficeApplication\r\n        Add-in host application\r\n    -->\r\n    <OfficeApplication>Outlook</OfficeApplication>\r\n  </PropertyGroup>\r\n  <!--\r\n    This section defines properties that are set when the \"Debug\" configuration is selected.\r\n\r\n    DebugSymbols\r\n      If \"true\", create symbols (.pdb). If \"false\", do not create symbols.\r\n    DefineConstants\r\n      Constants defined for the preprocessor.\r\n    EnableUnmanagedDebugging\r\n      If \"true\", starting the debugger will attach both managed and unmanaged debuggers.\r\n    Optimize\r\n      If \"true\", optimize the build output. If \"false\", do not optimize.\r\n    OutputPath\r\n      Output path of project relative to the project file.\r\n    WarningLevel\r\n      Warning level for the compiler.\r\n  -->\r\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' \">\r\n    <DebugSymbols>true</DebugSymbols>\r\n    <DebugType>full</DebugType>\r\n    <Optimize>false</Optimize>\r\n    <OutputPath>bin\\Debug\\</OutputPath>\r\n    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>\r\n    <DefineConstants>$(DefineConstants);DEBUG;TRACE</DefineConstants>\r\n    <WarningLevel>4</WarningLevel>\r\n    <PlatformTarget>AnyCPU</PlatformTarget>\r\n  </PropertyGroup>\r\n  <!--\r\n    This section defines properties that are set when the \"Release\" configuration is selected.\r\n\r\n    DebugSymbols\r\n      If \"true\", create symbols (.pdb). If \"false\", do not create symbols.\r\n    DefineConstants\r\n      Constants defined for the preprocessor.\r\n    EnableUnmanagedDebugging\r\n      If \"true\", starting the debugger will attach both managed and unmanaged debuggers.\r\n    Optimize\r\n      If \"true\", optimize the build output. If \"false\", do not optimize.\r\n    OutputPath\r\n      Output path of project relative to the project file.\r\n    WarningLevel\r\n      Warning level for the compiler.\r\n  -->\r\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' \">\r\n    <DebugType>pdbonly</DebugType>\r\n    <Optimize>true</Optimize>\r\n    <OutputPath>bin\\Release\\</OutputPath>\r\n    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>\r\n    <DefineConstants>$(DefineConstants);TRACE</DefineConstants>\r\n    <WarningLevel>4</WarningLevel>\r\n  </PropertyGroup>\r\n  <!--\r\n    This section specifies references for the project.\r\n  -->\r\n  <ItemGroup>\r\n    <Reference Include=\"Accessibility\" />\r\n    <Reference Include=\"EasyHook, Version=2.7.6578.0, Culture=neutral, PublicKeyToken=4b580fca19d0b0c5, processorArchitecture=MSIL\">\r\n      <HintPath>..\\packages\\EasyHook.2.7.6578.1\\lib\\net40\\EasyHook.dll</HintPath>\r\n      <Private>True</Private>\r\n    </Reference>\r\n    <Reference Include=\"log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL\">\r\n      <HintPath>..\\packages\\log4net.2.0.8\\lib\\net40-full\\log4net.dll</HintPath>\r\n      <Private>True</Private>\r\n    </Reference>\r\n    <Reference Include=\"System\" />\r\n    <Reference Include=\"System.ComponentModel.DataAnnotations\" />\r\n    <Reference Include=\"System.configuration\" />\r\n    <Reference Include=\"System.Data\" />\r\n    <Reference Include=\"System.Data.Entity\" />\r\n    <Reference Include=\"System.Drawing\" />\r\n    <Reference Include=\"System.Runtime.Remoting\" />\r\n    <Reference Include=\"System.Web.Extensions\" />\r\n    <Reference Include=\"System.Windows.Forms\" />\r\n    <Reference Include=\"System.Xml\" />\r\n    <Reference Include=\"System.Core\" />\r\n    <Reference Include=\"System.Xml.Linq\" />\r\n    <Reference Include=\"System.Data.DataSetExtensions\" />\r\n    <Reference Include=\"Microsoft.CSharp\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Reference Include=\"Microsoft.Office.Tools.v4.0.Framework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\" />\r\n    <Reference Include=\"Microsoft.VisualStudio.Tools.Applications.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\" />\r\n    <Reference Include=\"Microsoft.Office.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\" />\r\n    <Reference Include=\"Microsoft.Office.Tools.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\" />\r\n    <Reference Include=\"Microsoft.Office.Tools.Outlook, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Reference Include=\"Microsoft.Office.Tools.Common.v4.0.Utilities, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\">\r\n      <Private>True</Private>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.Office.Tools.Outlook.v4.0.Utilities, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\">\r\n      <Private>True</Private>\r\n    </Reference>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Reference Include=\"Office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c\">\r\n      <Private>False</Private>\r\n      <EmbedInteropTypes>true</EmbedInteropTypes>\r\n    </Reference>\r\n    <Reference Include=\"Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c\">\r\n      <Private>False</Private>\r\n      <EmbedInteropTypes>True</EmbedInteropTypes>\r\n    </Reference>\r\n    <Reference Include=\"stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\">\r\n      <Private>False</Private>\r\n    </Reference>\r\n  </ItemGroup>\r\n  <!--\r\n    This section defines the user source files that are part of the project.\r\n     \r\n    A \"Compile\" element specifies a source file to compile.\r\n    An \"EmbeddedResource\" element specifies an .resx file for embedded resources.\r\n    A \"None\" element specifies a file that is not to be passed to the compiler (for instance, \r\n    a text file or XML file).\r\n    The \"AppDesigner\" element specifies the directory where the application properties files\r\n    can be found.\r\n  -->\r\n  <ItemGroup>\r\n    <Compile Include=\"DragDropHook.cs\" />\r\n    <Compile Include=\"DataObjectHelper.cs\" />\r\n    <Compile Include=\"FileUtility.cs\" />\r\n    <Compile Include=\"FormatEtcEnumerator.cs\" />\r\n    <Compile Include=\"NativeMethods.cs\" />\r\n    <Compile Include=\"OutlookDataObject.cs\" />\r\n    <Compile Include=\"Properties\\AssemblyInfo.cs\">\r\n      <SubType>Code</SubType>\r\n    </Compile>\r\n    <None Include=\"App.config\">\r\n      <SubType>Designer</SubType>\r\n    </None>\r\n    <None Include=\"OutlookFileDrag.pfx\" />\r\n    <None Include=\"packages.config\">\r\n      <SubType>Designer</SubType>\r\n    </None>\r\n    <Compile Include=\"ThisAddIn.cs\">\r\n      <SubType>Code</SubType>\r\n    </Compile>\r\n    <None Include=\"ThisAddIn.Designer.xml\">\r\n      <DependentUpon>ThisAddIn.cs</DependentUpon>\r\n    </None>\r\n    <Compile Include=\"ThisAddIn.Designer.cs\">\r\n      <DependentUpon>ThisAddIn.Designer.xml</DependentUpon>\r\n    </Compile>\r\n    <AppDesigner Include=\"Properties\\\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <None Include=\"EasyHook32.dll\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"EasyHook64.dll\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n  </ItemGroup>\r\n  <PropertyGroup>\r\n    <VisualStudioVersion Condition=\"'$(VisualStudioVersion)' == ''\">10.0</VisualStudioVersion>\r\n    <VSToolsPath Condition=\"'$(VSToolsPath)' == ''\">$(MSBuildExtensionsPath32)\\Microsoft\\VisualStudio\\v$(VisualStudioVersion)</VSToolsPath>\r\n  </PropertyGroup>\r\n  <PropertyGroup>\r\n    <SignManifests>true</SignManifests>\r\n  </PropertyGroup>\r\n  <PropertyGroup>\r\n    <ManifestKeyFile>\r\n    </ManifestKeyFile>\r\n  </PropertyGroup>\r\n  <PropertyGroup>\r\n    <ManifestCertificateThumbprint>6EA39ECAD013020F956462F4CBF07570C217A1CF</ManifestCertificateThumbprint>\r\n  </PropertyGroup>\r\n  <!-- Include the build rules for a C# project. -->\r\n  <Import Project=\"$(MSBuildToolsPath)\\Microsoft.CSharp.targets\" />\r\n  <!-- Include additional build rules for an Office application add-in. -->\r\n  <Import Project=\"$(VSToolsPath)\\OfficeTools\\Microsoft.VisualStudio.Tools.Office.targets\" Condition=\"'$(VSToolsPath)' != ''\" />\r\n  <!-- This section defines VSTO properties that describe the host-changeable project properties. -->\r\n  <ProjectExtensions>\r\n    <VisualStudio>\r\n      <FlavorProperties GUID=\"{BAA0C2D2-18E2-41B9-852F-F413020CAA33}\">\r\n        <ProjectProperties HostName=\"Outlook\" HostPackage=\"{29A7B9D7-A7F1-4328-8EF0-6B2D1A56B2C1}\" OfficeVersion=\"15.0\" VstxVersion=\"4.0\" ApplicationType=\"Outlook\" Language=\"cs\" TemplatesPath=\"\" DebugInfoExeName=\"#Software\\Microsoft\\Office\\16.0\\Outlook\\InstallRoot\\Path#outlook.exe\" AddItemTemplatesGuid=\"{A58A78EB-1C92-4DDD-80CF-E8BD872ABFC4}\" />\r\n        <Host Name=\"Outlook\" GeneratedCodeNamespace=\"OutlookFileDrag\" IconIndex=\"0\">\r\n          <HostItem Name=\"ThisAddIn\" Code=\"ThisAddIn.cs\" CanonicalName=\"AddIn\" CanActivate=\"false\" IconIndex=\"1\" Blueprint=\"ThisAddIn.Designer.xml\" GeneratedCode=\"ThisAddIn.Designer.cs\" />\r\n        </Host>\r\n      </FlavorProperties>\r\n    </VisualStudio>\r\n  </ProjectExtensions>\r\n</Project>"
  },
  {
    "path": "OutlookFileDrag/Properties/AssemblyInfo.cs",
    "content": "﻿using System.Reflection;\r\nusing System.Runtime.CompilerServices;\r\nusing System.Runtime.InteropServices;\r\nusing System.Security;\r\n\r\n// General Information about an assembly is controlled through the following \r\n// set of attributes. Change these attribute values to modify the information\r\n// associated with an assembly.\r\n[assembly: AssemblyTitle(\"Outlook File Drag\")]\r\n[assembly: AssemblyDescription(\"Drag and drop Outlook items and attachments as files into any application\")]\r\n[assembly: AssemblyConfiguration(\"\")]\r\n[assembly: AssemblyCompany(\"Tony Federer\")]\r\n[assembly: AssemblyProduct(\"Outlook File Drag\")]\r\n[assembly: AssemblyCopyright(\"Copyright © 2019-2020 Tony Federer\")]\r\n[assembly: AssemblyTrademark(\"\")]\r\n[assembly: AssemblyCulture(\"\")]\r\n\r\n// Setting ComVisible to false makes the types in this assembly not visible \r\n// to COM components.  If you need to access a type in this assembly from \r\n// COM, set the ComVisible attribute to true on that type.\r\n[assembly: ComVisible(false)]\r\n\r\n// The following GUID is for the ID of the typelib if this project is exposed to COM\r\n[assembly: Guid(\"282559d2-06f7-407f-9007-89f9e6fa5aa4\")]\r\n\r\n// Version information for an assembly consists of the following four values:\r\n//\r\n//      Major Version\r\n//      Minor Version \r\n//      Build Number\r\n//      Revision\r\n//\r\n// You can specify all the values or you can default the Build and Revision Numbers \r\n// by using the '*' as shown below:\r\n// [assembly: AssemblyVersion(\"1.0.*\")]\r\n[assembly: AssemblyVersion(\"1.0.11.0\")]\r\n[assembly: AssemblyFileVersion(\"1.0.11.0\")]\r\n\r\n"
  },
  {
    "path": "OutlookFileDrag/ThisAddIn.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\r\n// <auto-generated>\r\n//     This code was generated by a tool.\r\n//     Runtime Version:4.0.30319.42000\r\n//\r\n//     Changes to this file may cause incorrect behavior and will be lost if\r\n//     the code is regenerated.\r\n// </auto-generated>\r\n//------------------------------------------------------------------------------\r\n\r\n#pragma warning disable 414\r\nnamespace OutlookFileDrag {\r\n    \r\n    \r\n    /// \r\n    [Microsoft.VisualStudio.Tools.Applications.Runtime.StartupObjectAttribute(0)]\r\n    [global::System.Security.Permissions.PermissionSetAttribute(global::System.Security.Permissions.SecurityAction.Demand, Name=\"FullTrust\")]\r\n    public sealed partial class ThisAddIn : Microsoft.Office.Tools.Outlook.OutlookAddInBase {\r\n        \r\n        internal Microsoft.Office.Tools.CustomTaskPaneCollection CustomTaskPanes;\r\n        \r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        private global::System.Object missing = global::System.Type.Missing;\r\n        \r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        internal Microsoft.Office.Interop.Outlook.Application Application;\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        public ThisAddIn(global::Microsoft.Office.Tools.Outlook.Factory factory, global::System.IServiceProvider serviceProvider) : \r\n                base(factory, serviceProvider, \"AddIn\", \"ThisAddIn\") {\r\n            Globals.Factory = factory;\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        protected override void Initialize() {\r\n            base.Initialize();\r\n            this.Application = this.GetHostItem<Microsoft.Office.Interop.Outlook.Application>(typeof(Microsoft.Office.Interop.Outlook.Application), \"Application\");\r\n            Globals.ThisAddIn = this;\r\n            global::System.Windows.Forms.Application.EnableVisualStyles();\r\n            this.InitializeCachedData();\r\n            this.InitializeControls();\r\n            this.InitializeComponents();\r\n            this.InitializeData();\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        protected override void FinishInitialization() {\r\n            this.InternalStartup();\r\n            this.OnStartup();\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        protected override void InitializeDataBindings() {\r\n            this.BeginInitialization();\r\n            this.BindToData();\r\n            this.EndInitialization();\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        private void InitializeCachedData() {\r\n            if ((this.DataHost == null)) {\r\n                return;\r\n            }\r\n            if (this.DataHost.IsCacheInitialized) {\r\n                this.DataHost.FillCachedData(this);\r\n            }\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        private void InitializeData() {\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        private void BindToData() {\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r\n        private void StartCaching(string MemberName) {\r\n            this.DataHost.StartCaching(this, MemberName);\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r\n        private void StopCaching(string MemberName) {\r\n            this.DataHost.StopCaching(this, MemberName);\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r\n        private bool IsCached(string MemberName) {\r\n            return this.DataHost.IsCached(this, MemberName);\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        private void BeginInitialization() {\r\n            this.BeginInit();\r\n            this.CustomTaskPanes.BeginInit();\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        private void EndInitialization() {\r\n            this.CustomTaskPanes.EndInit();\r\n            this.EndInit();\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        private void InitializeControls() {\r\n            this.CustomTaskPanes = Globals.Factory.CreateCustomTaskPaneCollection(null, null, \"CustomTaskPanes\", \"CustomTaskPanes\", this);\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        private void InitializeComponents() {\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r\n        private bool NeedsFill(string MemberName) {\r\n            return this.DataHost.NeedsFill(this, MemberName);\r\n        }\r\n        \r\n        /// \r\n        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n        [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]\r\n        protected override void OnShutdown() {\r\n            this.CustomTaskPanes.Dispose();\r\n            base.OnShutdown();\r\n        }\r\n    }\r\n    \r\n    /// \r\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n    internal sealed partial class Globals {\r\n        \r\n        /// \r\n        private Globals() {\r\n        }\r\n        \r\n        private static ThisAddIn _ThisAddIn;\r\n        \r\n        private static global::Microsoft.Office.Tools.Outlook.Factory _factory;\r\n        \r\n        private static ThisRibbonCollection _ThisRibbonCollection;\r\n        \r\n        private static ThisFormRegionCollection _ThisFormRegionCollection;\r\n        \r\n        internal static ThisAddIn ThisAddIn {\r\n            get {\r\n                return _ThisAddIn;\r\n            }\r\n            set {\r\n                if ((_ThisAddIn == null)) {\r\n                    _ThisAddIn = value;\r\n                }\r\n                else {\r\n                    throw new System.NotSupportedException();\r\n                }\r\n            }\r\n        }\r\n        \r\n        internal static global::Microsoft.Office.Tools.Outlook.Factory Factory {\r\n            get {\r\n                return _factory;\r\n            }\r\n            set {\r\n                if ((_factory == null)) {\r\n                    _factory = value;\r\n                }\r\n                else {\r\n                    throw new System.NotSupportedException();\r\n                }\r\n            }\r\n        }\r\n        \r\n        internal static ThisRibbonCollection Ribbons {\r\n            get {\r\n                if ((_ThisRibbonCollection == null)) {\r\n                    _ThisRibbonCollection = new ThisRibbonCollection(_factory.GetRibbonFactory());\r\n                }\r\n                return _ThisRibbonCollection;\r\n            }\r\n        }\r\n        \r\n        internal static ThisFormRegionCollection FormRegions {\r\n            get {\r\n                if ((_ThisFormRegionCollection == null)) {\r\n                    _ThisFormRegionCollection = new ThisFormRegionCollection(Globals.ThisAddIn.GetFormRegions());\r\n                }\r\n                return _ThisFormRegionCollection;\r\n            }\r\n        }\r\n    }\r\n    \r\n    /// \r\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll\", \"14.0.0.0\")]\r\n    internal sealed partial class ThisRibbonCollection : Microsoft.Office.Tools.Ribbon.RibbonCollectionBase {\r\n        \r\n        /// \r\n        internal ThisRibbonCollection(global::Microsoft.Office.Tools.Ribbon.RibbonFactory factory) : \r\n                base(factory) {\r\n        }\r\n        \r\n        internal ThisRibbonCollection this[Microsoft.Office.Interop.Outlook.Inspector inspector] {\r\n            get {\r\n                return this.GetRibbonContextCollection<ThisRibbonCollection>(inspector);\r\n            }\r\n        }\r\n        \r\n        internal ThisRibbonCollection this[Microsoft.Office.Interop.Outlook.Explorer explorer] {\r\n            get {\r\n                return this.GetRibbonContextCollection<ThisRibbonCollection>(explorer);\r\n            }\r\n        }\r\n    }\r\n    \r\n    /// \r\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n    internal sealed partial class ThisFormRegionCollection : Microsoft.Office.Tools.Outlook.FormRegionCollectionBase {\r\n        \r\n        /// \r\n        public ThisFormRegionCollection(System.Collections.Generic.IList<Microsoft.Office.Tools.Outlook.IFormRegion> list) : \r\n                base(list) {\r\n        }\r\n        \r\n        internal WindowFormRegionCollection this[Microsoft.Office.Interop.Outlook.Explorer explorer] {\r\n            get {\r\n                return ((WindowFormRegionCollection)(Globals.ThisAddIn.GetFormRegions(explorer, typeof(WindowFormRegionCollection))));\r\n            }\r\n        }\r\n        \r\n        internal WindowFormRegionCollection this[Microsoft.Office.Interop.Outlook.Inspector inspector] {\r\n            get {\r\n                return ((WindowFormRegionCollection)(Globals.ThisAddIn.GetFormRegions(inspector, typeof(WindowFormRegionCollection))));\r\n            }\r\n        }\r\n    }\r\n    \r\n    /// \r\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r\n    internal sealed partial class WindowFormRegionCollection : Microsoft.Office.Tools.Outlook.FormRegionCollectionBase {\r\n        \r\n        /// \r\n        public WindowFormRegionCollection(System.Collections.Generic.IList<Microsoft.Office.Tools.Outlook.IFormRegion> list) : \r\n                base(list) {\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "OutlookFileDrag/ThisAddIn.Designer.xml",
    "content": "<hostitem:hostItem hostitem:baseType=\"Microsoft.Office.Tools.Outlook.OutlookAddInBase\" hostitem:namespace=\"OutlookDragAddin\" hostitem:className=\"ThisAddIn\" hostitem:identifier=\"ThisAddIn\" hostitem:primaryCookie=\"AddIn\" hostitem:master=\"true\" hostitem:factoryType=\"Microsoft.Office.Tools.Outlook.Factory\" hostitem:startupIndex=\"0\" xmlns:hostitem=\"http://schemas.microsoft.com/2004/VisualStudio/Tools/Applications/HostItem.xsd\">\r\n  <hostitem:hostObject hostitem:name=\"Application\" hostitem:identifier=\"Application\" hostitem:type=\"Microsoft.Office.Interop.Outlook.Application\" hostitem:cookie=\"Application\" hostitem:modifier=\"Internal\" />\r\n  <hostitem:hostControl hostitem:name=\"CustomTaskPanes\" hostitem:identifier=\"CustomTaskPanes\" hostitem:type=\"Microsoft.Office.Tools.CustomTaskPaneCollection\" hostitem:primaryCookie=\"CustomTaskPanes\" hostitem:modifier=\"Internal\" />\r\n</hostitem:hostItem>"
  },
  {
    "path": "OutlookFileDrag/ThisAddIn.cs",
    "content": "﻿using System;\r\nusing System.Reflection;\r\nusing log4net;\r\n\r\nnamespace OutlookFileDrag\r\n{\r\n    public partial class ThisAddIn\r\n    {\r\n        private static ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);\r\n        private System.Threading.Timer cleanupTimer;\r\n        private DragDropHook hook;\r\n\r\n        private void ThisAddIn_Startup(object sender, System.EventArgs e)\r\n        {\r\n            //Configure logging\r\n            log4net.Config.XmlConfigurator.Configure();\r\n\r\n            try\r\n            {                \r\n                log.Info(\"Add-in startup\");\r\n\r\n                //Log version, OS version, Outlook version, and language\r\n                log.InfoFormat(\"Version: {0}\", Assembly.GetExecutingAssembly().GetName().Version.ToString());\r\n                log.InfoFormat(\"OS: {0} {1}\", Environment.OSVersion, Environment.Is64BitOperatingSystem ? \"x64\" : \"x86\");\r\n                log.InfoFormat(\"Outlook version: {0} {1}\", this.Application.Version, Environment.Is64BitProcess ? \"x64\" : \"x86\");\r\n                log.InfoFormat(\"Language: {0}\", Application.LanguageSettings.get_LanguageID(Microsoft.Office.Core.MsoAppLanguageID.msoLanguageIDUI));\r\n\r\n                //Set up exception handlers\r\n                System.Windows.Forms.Application.ThreadException += Application_ThreadException;\r\n                AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;\r\n\r\n                //Start cleanup timer\r\n                int cleanupTimerInterval = int.Parse(System.Configuration.ConfigurationManager.AppSettings[\"CleanupTimerInterval\"]);\r\n                log.InfoFormat(\"Starting cleanup timer -- run every {0} minutes\", cleanupTimerInterval);\r\n                cleanupTimer = new System.Threading.Timer(CleanupTimer_Callback, null, 0, cleanupTimerInterval * 60 * 1000);\r\n\r\n                //Start hook;\r\n                hook = new DragDropHook();\r\n                hook.Start();\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Fatal(\"Fatal error\", ex);\r\n                if (hook != null)\r\n                    hook.Stop();\r\n            }\r\n        }\r\n\r\n        private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)\r\n        {\r\n            log.Fatal(\"Appdomain exception\", (Exception)e.ExceptionObject);\r\n        }\r\n\r\n        private void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)\r\n        {\r\n            log.Fatal(\"Application thread exception\", e.Exception);\r\n        }\r\n\r\n        private void CleanupTimer_Callback(object state)\r\n        {\r\n            try\r\n            {\r\n                int tempFileExpiration = int.Parse(System.Configuration.ConfigurationManager.AppSettings[\"TempFileExpiration\"]);\r\n                log.InfoFormat(\"Cleaning up temp files older than {0} minutes\", tempFileExpiration);\r\n                FileUtility.CleanupTempPath(tempFileExpiration);\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Error(\"Error cleaning up temp files\", ex);\r\n            }\r\n        }\r\n\r\n        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)\r\n        {\r\n            // Note: Outlook no longer raises this event. If you have code that \r\n            //    must run when Outlook shuts down, see http://go.microsoft.com/fwlink/?LinkId=506785\r\n\r\n            try\r\n            {\r\n                log.Info(\"Add-in shutdown\");\r\n                if (hook != null)\r\n                    hook.Stop();\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                log.Fatal(\"Fatal error\", ex);\r\n            }\r\n        }\r\n\r\n        #region VSTO generated code\r\n\r\n        /// <summary>\r\n        /// Required method for Designer support - do not modify\r\n        /// the contents of this method with the code editor.\r\n        /// </summary>\r\n        private void InternalStartup()\r\n        {\r\n            this.Startup += new System.EventHandler(ThisAddIn_Startup);\r\n            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);\r\n        }\r\n\r\n        #endregion\r\n    }\r\n}\r\n"
  },
  {
    "path": "OutlookFileDrag/packages.config",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<packages>\r\n  <package id=\"EasyHook\" version=\"2.7.6578.1\" targetFramework=\"net40\" />\r\n  <package id=\"log4net\" version=\"2.0.8\" targetFramework=\"net40\" />\r\n</packages>"
  },
  {
    "path": "OutlookFileDrag.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 14\r\nVisualStudioVersion = 14.0.25420.1\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"OutlookFileDrag\", \"OutlookFileDrag\\OutlookFileDrag.csproj\", \"{88E6522A-C68B-42C8-8B5E-9C959BA6C415}\"\r\nEndProject\r\nProject(\"{54435603-DBB4-11D2-8724-00A0C9A8B90C}\") = \"OutlookFileDragSetup_x64\", \"OutlookFileDragSetup_x64\\OutlookFileDragSetup_x64.vdproj\", \"{B42086D0-8877-4CF2-B3FE-C19210CD683D}\"\r\nEndProject\r\nProject(\"{54435603-DBB4-11D2-8724-00A0C9A8B90C}\") = \"OutlookFileDragSetup\", \"OutlookFileDragSetup\\OutlookFileDragSetup.vdproj\", \"{0EF72B7A-7619-4572-A1C1-B31938BC6954}\"\r\nEndProject\r\nProject(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\") = \"Documents\", \"Documents\", \"{7A072433-B080-41DB-A449-19F4B547610B}\"\r\n\tProjectSection(SolutionItems) = preProject\r\n\t\tLICENSE = LICENSE\r\n\t\tLicense.rtf = License.rtf\r\n\t\tReadme.md = Readme.md\r\n\tEndProjectSection\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tCD_ROM|Any CPU = CD_ROM|Any CPU\r\n\t\tDebug|Any CPU = Debug|Any CPU\r\n\t\tDVD-5|Any CPU = DVD-5|Any CPU\r\n\t\tRelease|Any CPU = Release|Any CPU\r\n\t\tSingleImage|Any CPU = SingleImage|Any CPU\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{88E6522A-C68B-42C8-8B5E-9C959BA6C415}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{88E6522A-C68B-42C8-8B5E-9C959BA6C415}.CD_ROM|Any CPU.Build.0 = Release|Any CPU\r\n\t\t{88E6522A-C68B-42C8-8B5E-9C959BA6C415}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r\n\t\t{88E6522A-C68B-42C8-8B5E-9C959BA6C415}.Debug|Any CPU.Build.0 = Debug|Any CPU\r\n\t\t{88E6522A-C68B-42C8-8B5E-9C959BA6C415}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU\r\n\t\t{88E6522A-C68B-42C8-8B5E-9C959BA6C415}.DVD-5|Any CPU.Build.0 = Debug|Any CPU\r\n\t\t{88E6522A-C68B-42C8-8B5E-9C959BA6C415}.Release|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{88E6522A-C68B-42C8-8B5E-9C959BA6C415}.Release|Any CPU.Build.0 = Release|Any CPU\r\n\t\t{88E6522A-C68B-42C8-8B5E-9C959BA6C415}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{88E6522A-C68B-42C8-8B5E-9C959BA6C415}.SingleImage|Any CPU.Build.0 = Release|Any CPU\r\n\t\t{B42086D0-8877-4CF2-B3FE-C19210CD683D}.CD_ROM|Any CPU.ActiveCfg = Release\r\n\t\t{B42086D0-8877-4CF2-B3FE-C19210CD683D}.CD_ROM|Any CPU.Build.0 = Release\r\n\t\t{B42086D0-8877-4CF2-B3FE-C19210CD683D}.Debug|Any CPU.ActiveCfg = Debug\r\n\t\t{B42086D0-8877-4CF2-B3FE-C19210CD683D}.Debug|Any CPU.Build.0 = Debug\r\n\t\t{B42086D0-8877-4CF2-B3FE-C19210CD683D}.DVD-5|Any CPU.ActiveCfg = Debug\r\n\t\t{B42086D0-8877-4CF2-B3FE-C19210CD683D}.DVD-5|Any CPU.Build.0 = Debug\r\n\t\t{B42086D0-8877-4CF2-B3FE-C19210CD683D}.Release|Any CPU.ActiveCfg = Release\r\n\t\t{B42086D0-8877-4CF2-B3FE-C19210CD683D}.Release|Any CPU.Build.0 = Release\r\n\t\t{B42086D0-8877-4CF2-B3FE-C19210CD683D}.SingleImage|Any CPU.ActiveCfg = Release\r\n\t\t{B42086D0-8877-4CF2-B3FE-C19210CD683D}.SingleImage|Any CPU.Build.0 = Release\r\n\t\t{0EF72B7A-7619-4572-A1C1-B31938BC6954}.CD_ROM|Any CPU.ActiveCfg = Release\r\n\t\t{0EF72B7A-7619-4572-A1C1-B31938BC6954}.CD_ROM|Any CPU.Build.0 = Release\r\n\t\t{0EF72B7A-7619-4572-A1C1-B31938BC6954}.Debug|Any CPU.ActiveCfg = Debug\r\n\t\t{0EF72B7A-7619-4572-A1C1-B31938BC6954}.Debug|Any CPU.Build.0 = Debug\r\n\t\t{0EF72B7A-7619-4572-A1C1-B31938BC6954}.DVD-5|Any CPU.ActiveCfg = Debug\r\n\t\t{0EF72B7A-7619-4572-A1C1-B31938BC6954}.DVD-5|Any CPU.Build.0 = Debug\r\n\t\t{0EF72B7A-7619-4572-A1C1-B31938BC6954}.Release|Any CPU.ActiveCfg = Release\r\n\t\t{0EF72B7A-7619-4572-A1C1-B31938BC6954}.Release|Any CPU.Build.0 = Release\r\n\t\t{0EF72B7A-7619-4572-A1C1-B31938BC6954}.SingleImage|Any CPU.ActiveCfg = Release\r\n\t\t{0EF72B7A-7619-4572-A1C1-B31938BC6954}.SingleImage|Any CPU.Build.0 = Release\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "OutlookFileDragSetup/OutlookFileDragSetup.vdproj",
    "content": "﻿\"DeployProject\"\r\n{\r\n\"VSVersion\" = \"3:800\"\r\n\"ProjectType\" = \"8:{978C614F-708E-4E1A-B201-565925725DBA}\"\r\n\"IsWebType\" = \"8:FALSE\"\r\n\"ProjectName\" = \"8:OutlookFileDragSetup\"\r\n\"LanguageId\" = \"3:1033\"\r\n\"CodePage\" = \"3:1252\"\r\n\"UILanguageId\" = \"3:1033\"\r\n\"SccProjectName\" = \"8:\"\r\n\"SccLocalPath\" = \"8:\"\r\n\"SccAuxPath\" = \"8:\"\r\n\"SccProvider\" = \"8:\"\r\n    \"Hierarchy\"\r\n    {\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_0A93BF555B38467ABC9AFEBDA2D4ABCC\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_12FE3AC54ED17E0AB1007324ABFD58D1\"\r\n        \"OwnerKey\" = \"8:_C3161A936F4192497A0972C3EC781BF6\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_12FE3AC54ED17E0AB1007324ABFD58D1\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_133D4E0B8AD91071625356F7F9F22C66\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_15F0BD9071B5889215577FD20EC63766\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_3DBBABF7C43171A6F7B4D8D682699556\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n        \"OwnerKey\" = \"8:_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n        \"OwnerKey\" = \"8:_3DBBABF7C43171A6F7B4D8D682699556\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_591351D571FEB540A92347F0F74B55CE\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_811077B889234B5E8D92FD9440B779AD\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n        \"OwnerKey\" = \"8:_3DBBABF7C43171A6F7B4D8D682699556\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_9CE773A8FA4242D096608C6597B170E4\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_BB365CE8FF8B85A3589349A35DAB0785\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_BB365CE8FF8B85A3589349A35DAB0785\"\r\n        \"OwnerKey\" = \"8:_133D4E0B8AD91071625356F7F9F22C66\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_C3161A936F4192497A0972C3EC781BF6\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_CE28E7CBCA9C5EDB3BD3A2F1F2116DF9\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_E81182AD22C040558214805DBCE4ACCA\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_CE28E7CBCA9C5EDB3BD3A2F1F2116DF9\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_15F0BD9071B5889215577FD20EC63766\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_C3161A936F4192497A0972C3EC781BF6\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_12FE3AC54ED17E0AB1007324ABFD58D1\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_133D4E0B8AD91071625356F7F9F22C66\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_3DBBABF7C43171A6F7B4D8D682699556\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_BB365CE8FF8B85A3589349A35DAB0785\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_591351D571FEB540A92347F0F74B55CE\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n    }\r\n    \"Configurations\"\r\n    {\r\n        \"Debug\"\r\n        {\r\n        \"DisplayName\" = \"8:Debug\"\r\n        \"IsDebugOnly\" = \"11:TRUE\"\r\n        \"IsReleaseOnly\" = \"11:FALSE\"\r\n        \"OutputFilename\" = \"8:Debug\\\\OutlookFileDragSetup.msi\"\r\n        \"PackageFilesAs\" = \"3:2\"\r\n        \"PackageFileSize\" = \"3:-2147483648\"\r\n        \"CabType\" = \"3:1\"\r\n        \"Compression\" = \"3:2\"\r\n        \"SignOutput\" = \"11:FALSE\"\r\n        \"CertificateFile\" = \"8:\"\r\n        \"PrivateKeyFile\" = \"8:\"\r\n        \"TimeStampServer\" = \"8:\"\r\n        \"InstallerBootstrapper\" = \"3:2\"\r\n            \"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}\"\r\n            {\r\n            \"Enabled\" = \"11:TRUE\"\r\n            \"PromptEnabled\" = \"11:TRUE\"\r\n            \"PrerequisitesLocation\" = \"2:1\"\r\n            \"Url\" = \"8:\"\r\n            \"ComponentsUrl\" = \"8:\"\r\n                \"Items\"\r\n                {\r\n                    \"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.5\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft .NET Framework 4.5 (x86 and x64)\"\r\n                    \"ProductCode\" = \"8:.NETFramework,Version=v4.5\"\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        \"Release\"\r\n        {\r\n        \"DisplayName\" = \"8:Release\"\r\n        \"IsDebugOnly\" = \"11:FALSE\"\r\n        \"IsReleaseOnly\" = \"11:TRUE\"\r\n        \"OutputFilename\" = \"8:Release\\\\OutlookFileDragSetup.msi\"\r\n        \"PackageFilesAs\" = \"3:2\"\r\n        \"PackageFileSize\" = \"3:-2147483648\"\r\n        \"CabType\" = \"3:1\"\r\n        \"Compression\" = \"3:2\"\r\n        \"SignOutput\" = \"11:FALSE\"\r\n        \"CertificateFile\" = \"8:\"\r\n        \"PrivateKeyFile\" = \"8:\"\r\n        \"TimeStampServer\" = \"8:\"\r\n        \"InstallerBootstrapper\" = \"3:2\"\r\n            \"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}\"\r\n            {\r\n            \"Enabled\" = \"11:TRUE\"\r\n            \"PromptEnabled\" = \"11:TRUE\"\r\n            \"PrerequisitesLocation\" = \"2:1\"\r\n            \"Url\" = \"8:\"\r\n            \"ComponentsUrl\" = \"8:\"\r\n                \"Items\"\r\n                {\r\n                    \"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.5\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft .NET Framework 4.5 (x86 and x64)\"\r\n                    \"ProductCode\" = \"8:.NETFramework,Version=v4.5\"\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n    \"Deployable\"\r\n    {\r\n        \"CustomAction\"\r\n        {\r\n        }\r\n        \"DefaultFeature\"\r\n        {\r\n        \"Name\" = \"8:DefaultFeature\"\r\n        \"Title\" = \"8:\"\r\n        \"Description\" = \"8:\"\r\n        }\r\n        \"ExternalPersistence\"\r\n        {\r\n            \"LaunchCondition\"\r\n            {\r\n                \"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_44641C1530CC419BA8B9920E58E9A08E\"\r\n                {\r\n                \"Name\" = \"8:.NET Framework\"\r\n                \"Message\" = \"8:[VSDNETMSG]\"\r\n                \"FrameworkVersion\" = \"8:.NETFramework,Version=v4.5\"\r\n                \"AllowLaterVersions\" = \"11:FALSE\"\r\n                \"InstallUrl\" = \"8:http://go.microsoft.com/fwlink/?LinkId=395269\"\r\n                }\r\n            }\r\n        }\r\n        \"File\"\r\n        {\r\n            \"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0A93BF555B38467ABC9AFEBDA2D4ABCC\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\OutlookFileDrag\\\\EasyHook32.dll\"\r\n            \"TargetName\" = \"8:EasyHook32.dll\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_12FE3AC54ED17E0AB1007324ABFD58D1\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.VisualStudio.Tools.Applications.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_12FE3AC54ED17E0AB1007324ABFD58D1\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.VisualStudio.Tools.Applications.Runtime.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.VisualStudio.Tools.Applications.Runtime.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_133D4E0B8AD91071625356F7F9F22C66\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools.Outlook.v4.0.Utilities, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_133D4E0B8AD91071625356F7F9F22C66\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.Outlook.v4.0.Utilities.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.Outlook.v4.0.Utilities.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_15F0BD9071B5889215577FD20EC63766\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:EasyHook, Version=2.7.6578.0, Culture=neutral, PublicKeyToken=4b580fca19d0b0c5, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_15F0BD9071B5889215577FD20EC63766\"\r\n                    {\r\n                    \"Name\" = \"8:EasyHook.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:EasyHook.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3DBBABF7C43171A6F7B4D8D682699556\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools.Outlook, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_3DBBABF7C43171A6F7B4D8D682699556\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.Outlook.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.Outlook.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_591351D571FEB540A92347F0F74B55CE\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_591351D571FEB540A92347F0F74B55CE\"\r\n                    {\r\n                    \"Name\" = \"8:stdole.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:stdole.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_811077B889234B5E8D92FD9440B779AD\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\License.rtf\"\r\n            \"TargetName\" = \"8:License.rtf\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.Common.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.Common.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9CE773A8FA4242D096608C6597B170E4\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\OutlookFileDrag\\\\bin\\\\Release\\\\OutlookFileDrag.dll.manifest\"\r\n            \"TargetName\" = \"8:OutlookFileDrag.dll.manifest\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BB365CE8FF8B85A3589349A35DAB0785\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools.Common.v4.0.Utilities, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_BB365CE8FF8B85A3589349A35DAB0785\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.Common.v4.0.Utilities.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.Common.v4.0.Utilities.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C3161A936F4192497A0972C3EC781BF6\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools.v4.0.Framework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_C3161A936F4192497A0972C3EC781BF6\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.v4.0.Framework.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.v4.0.Framework.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CE28E7CBCA9C5EDB3BD3A2F1F2116DF9\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_CE28E7CBCA9C5EDB3BD3A2F1F2116DF9\"\r\n                    {\r\n                    \"Name\" = \"8:log4net.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:log4net.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E81182AD22C040558214805DBCE4ACCA\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\OutlookFileDrag\\\\bin\\\\Release\\\\OutlookFileDrag.vsto\"\r\n            \"TargetName\" = \"8:OutlookFileDrag.vsto\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n        }\r\n        \"FileType\"\r\n        {\r\n        }\r\n        \"Folder\"\r\n        {\r\n            \"{1525181F-901A-416C-8A58-119130FE478E}:_4C10008235FF4D1F8A1EC7E2473D78C3\"\r\n            {\r\n            \"Name\" = \"8:#1919\"\r\n            \"AlwaysCreate\" = \"11:FALSE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Property\" = \"8:ProgramMenuFolder\"\r\n                \"Folders\"\r\n                {\r\n                }\r\n            }\r\n            \"{3C67513D-01DD-4637-8A68-80971EB9504F}:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            {\r\n            \"DefaultLocation\" = \"8:[ProgramFilesFolder][Manufacturer]\\\\[ProductName]\"\r\n            \"Name\" = \"8:#1925\"\r\n            \"AlwaysCreate\" = \"11:FALSE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Property\" = \"8:TARGETDIR\"\r\n                \"Folders\"\r\n                {\r\n                }\r\n            }\r\n            \"{1525181F-901A-416C-8A58-119130FE478E}:_D44EFF1C326F4D2BADA2F7528B91CC01\"\r\n            {\r\n            \"Name\" = \"8:#1916\"\r\n            \"AlwaysCreate\" = \"11:FALSE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Property\" = \"8:DesktopFolder\"\r\n                \"Folders\"\r\n                {\r\n                }\r\n            }\r\n        }\r\n        \"LaunchCondition\"\r\n        {\r\n        }\r\n        \"Locator\"\r\n        {\r\n        }\r\n        \"MsiBootstrapper\"\r\n        {\r\n        \"LangId\" = \"3:1033\"\r\n        \"RequiresElevation\" = \"11:FALSE\"\r\n        }\r\n        \"Product\"\r\n        {\r\n        \"Name\" = \"8:Microsoft Visual Studio\"\r\n        \"ProductName\" = \"8:Outlook File Drag\"\r\n        \"ProductCode\" = \"8:{E1259659-073D-4042-AF4D-05AEDBA3C9C8}\"\r\n        \"PackageCode\" = \"8:{82C3D368-32B5-488A-A19C-452F635E19FF}\"\r\n        \"UpgradeCode\" = \"8:{2F626147-8F83-4FC1-9190-32AA4F25D487}\"\r\n        \"AspNetVersion\" = \"8:4.0.30319.0\"\r\n        \"RestartWWWService\" = \"11:FALSE\"\r\n        \"RemovePreviousVersions\" = \"11:TRUE\"\r\n        \"DetectNewerInstalledVersion\" = \"11:TRUE\"\r\n        \"InstallAllUsers\" = \"11:TRUE\"\r\n        \"ProductVersion\" = \"8:1.0.11\"\r\n        \"Manufacturer\" = \"8:Tony Federer\"\r\n        \"ARPHELPTELEPHONE\" = \"8:\"\r\n        \"ARPHELPLINK\" = \"8:https://github.com/tonyfederer/OutlookFileDrag\"\r\n        \"Title\" = \"8:Outlook File Drag Setup\"\r\n        \"Subject\" = \"8:\"\r\n        \"ARPCONTACT\" = \"8:Tony Federer\"\r\n        \"Keywords\" = \"8:\"\r\n        \"ARPCOMMENTS\" = \"8:Drag and drop Outlook items as files into any application\"\r\n        \"ARPURLINFOABOUT\" = \"8:\"\r\n        \"ARPPRODUCTICON\" = \"8:\"\r\n        \"ARPIconIndex\" = \"3:0\"\r\n        \"SearchPath\" = \"8:\"\r\n        \"UseSystemSearchPath\" = \"11:TRUE\"\r\n        \"TargetPlatform\" = \"3:0\"\r\n        \"PreBuildEvent\" = \"8:\"\r\n        \"PostBuildEvent\" = \"8:\"\r\n        \"RunPostBuildEvent\" = \"3:0\"\r\n        }\r\n        \"Registry\"\r\n        {\r\n            \"HKLM\"\r\n            {\r\n                \"Keys\"\r\n                {\r\n                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_D4A904143A3D42869C1DE1D4F1A30D0E\"\r\n                    {\r\n                    \"Name\" = \"8:Software\"\r\n                    \"Condition\" = \"8:\"\r\n                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                    \"Transitive\" = \"11:FALSE\"\r\n                        \"Keys\"\r\n                        {\r\n                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_22D1BC2B78644122968D266BD453DE99\"\r\n                            {\r\n                            \"Name\" = \"8:WOW6432Node\"\r\n                            \"Condition\" = \"8:\"\r\n                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                            \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                            \"Transitive\" = \"11:FALSE\"\r\n                                \"Keys\"\r\n                                {\r\n                                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_8F27B43AF5DE476E9EE2AE86B3C2DF45\"\r\n                                    {\r\n                                    \"Name\" = \"8:Microsoft\"\r\n                                    \"Condition\" = \"8:\"\r\n                                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                    \"Transitive\" = \"11:FALSE\"\r\n                                        \"Keys\"\r\n                                        {\r\n                                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_33EBC259BC9E4D39A94966448F31B769\"\r\n                                            {\r\n                                            \"Name\" = \"8:Office\"\r\n                                            \"Condition\" = \"8:\"\r\n                                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                                            \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                            \"Transitive\" = \"11:FALSE\"\r\n                                                \"Keys\"\r\n                                                {\r\n                                                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_4A6052B230644EAFA587141B09595C8C\"\r\n                                                    {\r\n                                                    \"Name\" = \"8:Outlook\"\r\n                                                    \"Condition\" = \"8:\"\r\n                                                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                                                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                        \"Keys\"\r\n                                                        {\r\n                                                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_C8B5751F82A44695AC627E9C50443F3C\"\r\n                                                            {\r\n                                                            \"Name\" = \"8:Addins\"\r\n                                                            \"Condition\" = \"8:\"\r\n                                                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                                                            \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                \"Keys\"\r\n                                                                {\r\n                                                                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_FA680E6DBA8248D891731BA238E0099C\"\r\n                                                                    {\r\n                                                                    \"Name\" = \"8:OutlookFileDrag\"\r\n                                                                    \"Condition\" = \"8:\"\r\n                                                                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                                                                    \"DeleteAtUninstall\" = \"11:TRUE\"\r\n                                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                                        \"Keys\"\r\n                                                                        {\r\n                                                                        }\r\n                                                                        \"Values\"\r\n                                                                        {\r\n                                                                            \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_4BB9A67E5DC4464588D3093EAA7D52D4\"\r\n                                                                            {\r\n                                                                            \"Name\" = \"8:Manifest\"\r\n                                                                            \"Condition\" = \"8:\"\r\n                                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                            \"ValueTypes\" = \"3:1\"\r\n                                                                            \"Value\" = \"8:file:///[TARGETDIR]OutlookFileDrag.vsto|vstolocal\"\r\n                                                                            }\r\n                                                                            \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_602742F0760846239584275A35DA1AAB\"\r\n                                                                            {\r\n                                                                            \"Name\" = \"8:FriendlyName\"\r\n                                                                            \"Condition\" = \"8:\"\r\n                                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                            \"ValueTypes\" = \"3:1\"\r\n                                                                            \"Value\" = \"8:OutlookFileDrag\"\r\n                                                                            }\r\n                                                                            \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_BDE554EC0FD5452B880DFE5E62B1F33B\"\r\n                                                                            {\r\n                                                                            \"Name\" = \"8:LoadBehavior\"\r\n                                                                            \"Condition\" = \"8:\"\r\n                                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                            \"ValueTypes\" = \"3:3\"\r\n                                                                            \"Value\" = \"3:3\"\r\n                                                                            }\r\n                                                                            \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_CCB6882391414CACBFF9CA1E7D561491\"\r\n                                                                            {\r\n                                                                            \"Name\" = \"8:Description\"\r\n                                                                            \"Condition\" = \"8:\"\r\n                                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                            \"ValueTypes\" = \"3:1\"\r\n                                                                            \"Value\" = \"8:Drag Outlook items as files into any application\"\r\n                                                                            }\r\n                                                                        }\r\n                                                                    }\r\n                                                                }\r\n                                                                \"Values\"\r\n                                                                {\r\n                                                                }\r\n                                                            }\r\n                                                        }\r\n                                                        \"Values\"\r\n                                                        {\r\n                                                        }\r\n                                                    }\r\n                                                }\r\n                                                \"Values\"\r\n                                                {\r\n                                                }\r\n                                            }\r\n                                        }\r\n                                        \"Values\"\r\n                                        {\r\n                                        }\r\n                                    }\r\n                                }\r\n                                \"Values\"\r\n                                {\r\n                                }\r\n                            }\r\n                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_354F1B5F9F6E445BAE6A035E97CF0822\"\r\n                            {\r\n                            \"Name\" = \"8:Microsoft\"\r\n                            \"Condition\" = \"8:\"\r\n                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                            \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                            \"Transitive\" = \"11:FALSE\"\r\n                                \"Keys\"\r\n                                {\r\n                                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B3FBE7EA97A140C5B5B598854F9A0FAC\"\r\n                                    {\r\n                                    \"Name\" = \"8:Office\"\r\n                                    \"Condition\" = \"8:\"\r\n                                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                    \"Transitive\" = \"11:FALSE\"\r\n                                        \"Keys\"\r\n                                        {\r\n                                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B3827A07754641D9AD6ED474A07D3788\"\r\n                                            {\r\n                                            \"Name\" = \"8:Outlook\"\r\n                                            \"Condition\" = \"8:\"\r\n                                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                                            \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                            \"Transitive\" = \"11:FALSE\"\r\n                                                \"Keys\"\r\n                                                {\r\n                                                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B153EB6F913F4E6B86EB8FA442B32E01\"\r\n                                                    {\r\n                                                    \"Name\" = \"8:Addins\"\r\n                                                    \"Condition\" = \"8:\"\r\n                                                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                                                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                        \"Keys\"\r\n                                                        {\r\n                                                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_CF568FCCF5F949B9BB57B58832FCC5E8\"\r\n                                                            {\r\n                                                            \"Name\" = \"8:OutlookFileDrag\"\r\n                                                            \"Condition\" = \"8:\"\r\n                                                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                                                            \"DeleteAtUninstall\" = \"11:TRUE\"\r\n                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                \"Keys\"\r\n                                                                {\r\n                                                                }\r\n                                                                \"Values\"\r\n                                                                {\r\n                                                                    \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_0EC644502E3F48E4B628F34BDF6629EE\"\r\n                                                                    {\r\n                                                                    \"Name\" = \"8:Description\"\r\n                                                                    \"Condition\" = \"8:\"\r\n                                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                                    \"ValueTypes\" = \"3:1\"\r\n                                                                    \"Value\" = \"8:Drag Outlook items as files into any application\"\r\n                                                                    }\r\n                                                                    \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_3D1BF5D39D24455DAA6C83039CAB218A\"\r\n                                                                    {\r\n                                                                    \"Name\" = \"8:LoadBehavior\"\r\n                                                                    \"Condition\" = \"8:\"\r\n                                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                                    \"ValueTypes\" = \"3:3\"\r\n                                                                    \"Value\" = \"3:3\"\r\n                                                                    }\r\n                                                                    \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_C924643C1D0B486CBA80C7750F4A2F78\"\r\n                                                                    {\r\n                                                                    \"Name\" = \"8:FriendlyName\"\r\n                                                                    \"Condition\" = \"8:\"\r\n                                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                                    \"ValueTypes\" = \"3:1\"\r\n                                                                    \"Value\" = \"8:Outlook File Drag\"\r\n                                                                    }\r\n                                                                    \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_FE433651CB1C4B27B454859B408DC466\"\r\n                                                                    {\r\n                                                                    \"Name\" = \"8:Manifest\"\r\n                                                                    \"Condition\" = \"8:\"\r\n                                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                                    \"ValueTypes\" = \"3:1\"\r\n                                                                    \"Value\" = \"8:file:///[TARGETDIR]OutlookFileDrag.vsto|vstolocal\"\r\n                                                                    }\r\n                                                                }\r\n                                                            }\r\n                                                        }\r\n                                                        \"Values\"\r\n                                                        {\r\n                                                        }\r\n                                                    }\r\n                                                }\r\n                                                \"Values\"\r\n                                                {\r\n                                                }\r\n                                            }\r\n                                        }\r\n                                        \"Values\"\r\n                                        {\r\n                                        }\r\n                                    }\r\n                                }\r\n                                \"Values\"\r\n                                {\r\n                                }\r\n                            }\r\n                        }\r\n                        \"Values\"\r\n                        {\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"HKCU\"\r\n            {\r\n                \"Keys\"\r\n                {\r\n                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_6FAF1F902A2C40D480CF8007A399A463\"\r\n                    {\r\n                    \"Name\" = \"8:Software\"\r\n                    \"Condition\" = \"8:\"\r\n                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                    \"Transitive\" = \"11:FALSE\"\r\n                        \"Keys\"\r\n                        {\r\n                        }\r\n                        \"Values\"\r\n                        {\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"HKCR\"\r\n            {\r\n                \"Keys\"\r\n                {\r\n                }\r\n            }\r\n            \"HKU\"\r\n            {\r\n                \"Keys\"\r\n                {\r\n                }\r\n            }\r\n            \"HKPU\"\r\n            {\r\n                \"Keys\"\r\n                {\r\n                }\r\n            }\r\n        }\r\n        \"Sequences\"\r\n        {\r\n        }\r\n        \"Shortcut\"\r\n        {\r\n        }\r\n        \"UserInterface\"\r\n        {\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_2371DACEF6F94E98AF0C94614DF03E04\"\r\n            {\r\n            \"Name\" = \"8:#1900\"\r\n            \"Sequence\" = \"3:1\"\r\n            \"Attributes\" = \"3:1\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_26A83612205E4DBC81DBC76172D2C1F8\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Welcome\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdWelcomeDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"CopyrightWarning\"\r\n                            {\r\n                            \"Name\" = \"8:CopyrightWarning\"\r\n                            \"DisplayName\" = \"8:#1002\"\r\n                            \"Description\" = \"8:#1102\"\r\n                            \"Type\" = \"3:3\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:2\"\r\n                            \"Value\" = \"8:\"\r\n                            \"DefaultValue\" = \"8:#1202\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"Welcome\"\r\n                            {\r\n                            \"Name\" = \"8:Welcome\"\r\n                            \"DisplayName\" = \"8:#1003\"\r\n                            \"Description\" = \"8:#1103\"\r\n                            \"Type\" = \"3:3\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"Value\" = \"8:#1203\"\r\n                            \"DefaultValue\" = \"8:#1203\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8F1EFA7475EA4E6F934BEA882EE7D273\"\r\n                    {\r\n                    \"Sequence\" = \"3:200\"\r\n                    \"DisplayName\" = \"8:Installation Folder\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdFolderDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"InstallAllUsersVisible\"\r\n                            {\r\n                            \"Name\" = \"8:InstallAllUsersVisible\"\r\n                            \"DisplayName\" = \"8:#1059\"\r\n                            \"Description\" = \"8:#1159\"\r\n                            \"Type\" = \"3:5\"\r\n                            \"ContextData\" = \"8:1;True=1;False=0\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:0\"\r\n                            \"Value\" = \"3:0\"\r\n                            \"DefaultValue\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C619EF5B3A384CA2B73D88272FDCF4E6\"\r\n                    {\r\n                    \"Sequence\" = \"3:110\"\r\n                    \"DisplayName\" = \"8:License Agreement\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdLicenseDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"EulaText\"\r\n                            {\r\n                            \"Name\" = \"8:EulaText\"\r\n                            \"DisplayName\" = \"8:#1008\"\r\n                            \"Description\" = \"8:#1108\"\r\n                            \"Type\" = \"3:6\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:2\"\r\n                            \"Value\" = \"8:_811077B889234B5E8D92FD9440B779AD\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"Sunken\"\r\n                            {\r\n                            \"Name\" = \"8:Sunken\"\r\n                            \"DisplayName\" = \"8:#1007\"\r\n                            \"Description\" = \"8:#1107\"\r\n                            \"Type\" = \"3:5\"\r\n                            \"ContextData\" = \"8:4;True=4;False=0\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:0\"\r\n                            \"Value\" = \"3:4\"\r\n                            \"DefaultValue\" = \"3:4\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F2099CB7BD9B4B7EA55AC883A3EF4D99\"\r\n                    {\r\n                    \"Sequence\" = \"3:300\"\r\n                    \"DisplayName\" = \"8:Confirm Installation\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdConfirmDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_3640BE8DA10C43B08302EDBF1D242F02\"\r\n            {\r\n            \"Name\" = \"8:#1901\"\r\n            \"Sequence\" = \"3:2\"\r\n            \"Attributes\" = \"3:2\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_02CEF8D9F8474FFF8F7BC9850C702E5A\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Progress\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminProgressDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"ShowProgress\"\r\n                            {\r\n                            \"Name\" = \"8:ShowProgress\"\r\n                            \"DisplayName\" = \"8:#1009\"\r\n                            \"Description\" = \"8:#1109\"\r\n                            \"Type\" = \"3:5\"\r\n                            \"ContextData\" = \"8:1;True=1;False=0\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:0\"\r\n                            \"Value\" = \"3:1\"\r\n                            \"DefaultValue\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_51AFB1E6343E4D1CBE228814E8E53FB7\"\r\n            {\r\n            \"Name\" = \"8:#1901\"\r\n            \"Sequence\" = \"3:1\"\r\n            \"Attributes\" = \"3:2\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C069CBE9F6354A4489912B7C2A93A0E7\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Progress\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdProgressDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"ShowProgress\"\r\n                            {\r\n                            \"Name\" = \"8:ShowProgress\"\r\n                            \"DisplayName\" = \"8:#1009\"\r\n                            \"Description\" = \"8:#1109\"\r\n                            \"Type\" = \"3:5\"\r\n                            \"ContextData\" = \"8:1;True=1;False=0\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:0\"\r\n                            \"Value\" = \"3:1\"\r\n                            \"DefaultValue\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_6A78FCF2607F4ED4993C83C317BDF788\"\r\n            {\r\n            \"UseDynamicProperties\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdUserInterface.wim\"\r\n            }\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_73653059E18A46DBA5A094EB50F3F1EC\"\r\n            {\r\n            \"Name\" = \"8:#1900\"\r\n            \"Sequence\" = \"3:2\"\r\n            \"Attributes\" = \"3:1\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6DAE5AFAE9644A67B0639F0C67E856E9\"\r\n                    {\r\n                    \"Sequence\" = \"3:300\"\r\n                    \"DisplayName\" = \"8:Confirm Installation\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminConfirmDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B86FF87ADAFE4746BFC955ADC4623837\"\r\n                    {\r\n                    \"Sequence\" = \"3:110\"\r\n                    \"DisplayName\" = \"8:License Agreement\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminLicenseDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"EulaText\"\r\n                            {\r\n                            \"Name\" = \"8:EulaText\"\r\n                            \"DisplayName\" = \"8:#1008\"\r\n                            \"Description\" = \"8:#1108\"\r\n                            \"Type\" = \"3:6\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:2\"\r\n                            \"Value\" = \"8:_811077B889234B5E8D92FD9440B779AD\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"Sunken\"\r\n                            {\r\n                            \"Name\" = \"8:Sunken\"\r\n                            \"DisplayName\" = \"8:#1007\"\r\n                            \"Description\" = \"8:#1107\"\r\n                            \"Type\" = \"3:5\"\r\n                            \"ContextData\" = \"8:4;True=4;False=0\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:0\"\r\n                            \"Value\" = \"3:4\"\r\n                            \"DefaultValue\" = \"3:4\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C2BD515F58AE4374BDD15A00EA7FFF3D\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Welcome\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminWelcomeDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"CopyrightWarning\"\r\n                            {\r\n                            \"Name\" = \"8:CopyrightWarning\"\r\n                            \"DisplayName\" = \"8:#1002\"\r\n                            \"Description\" = \"8:#1102\"\r\n                            \"Type\" = \"3:3\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"Value\" = \"8:#1202\"\r\n                            \"DefaultValue\" = \"8:#1202\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"Welcome\"\r\n                            {\r\n                            \"Name\" = \"8:Welcome\"\r\n                            \"DisplayName\" = \"8:#1003\"\r\n                            \"Description\" = \"8:#1103\"\r\n                            \"Type\" = \"3:3\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"Value\" = \"8:#1203\"\r\n                            \"DefaultValue\" = \"8:#1203\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FE7438441C294F67A9A2827BE22A936E\"\r\n                    {\r\n                    \"Sequence\" = \"3:200\"\r\n                    \"DisplayName\" = \"8:Installation Folder\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminFolderDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_9BD9D3D3A44C45D39936506919F27084\"\r\n            {\r\n            \"Name\" = \"8:#1902\"\r\n            \"Sequence\" = \"3:1\"\r\n            \"Attributes\" = \"3:3\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E9CDCE57CC8B40A2A6B4155953836767\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Finished\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdFinishedDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"UpdateText\"\r\n                            {\r\n                            \"Name\" = \"8:UpdateText\"\r\n                            \"DisplayName\" = \"8:#1058\"\r\n                            \"Description\" = \"8:#1158\"\r\n                            \"Type\" = \"3:15\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"Value\" = \"8:#1258\"\r\n                            \"DefaultValue\" = \"8:#1258\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_C001A743B84C4C898270AA9143A46C9F\"\r\n            {\r\n            \"Name\" = \"8:#1902\"\r\n            \"Sequence\" = \"3:2\"\r\n            \"Attributes\" = \"3:3\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B8367B2F3AB14A32B53AC3C64C3815E3\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Finished\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminFinishedDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_C08686B031154BE19BFDEA8BAA2F4BF3\"\r\n            {\r\n            \"UseDynamicProperties\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdBasicDialogs.wim\"\r\n            }\r\n        }\r\n        \"MergeModule\"\r\n        {\r\n        }\r\n        \"ProjectOutput\"\r\n        {\r\n            \"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\OutlookFileDrag\\\\obj\\\\Debug\\\\OutlookFileDrag.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            \"ProjectOutputGroupRegister\" = \"3:1\"\r\n            \"OutputConfiguration\" = \"8:\"\r\n            \"OutputGroupCanonicalName\" = \"8:Built\"\r\n            \"OutputProjectGuid\" = \"8:{88E6522A-C68B-42C8-8B5E-9C959BA6C415}\"\r\n            \"ShowKeyOutput\" = \"11:TRUE\"\r\n                \"ExcludeFilters\"\r\n                {\r\n                }\r\n            }\r\n            \"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A2682E522C9745F7840F601359FBC055\"\r\n            {\r\n            \"SourcePath\" = \"8:\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            \"ProjectOutputGroupRegister\" = \"3:1\"\r\n            \"OutputConfiguration\" = \"8:\"\r\n            \"OutputGroupCanonicalName\" = \"8:ContentFiles\"\r\n            \"OutputProjectGuid\" = \"8:{88E6522A-C68B-42C8-8B5E-9C959BA6C415}\"\r\n            \"ShowKeyOutput\" = \"11:TRUE\"\r\n                \"ExcludeFilters\"\r\n                {\r\n                }\r\n            }\r\n            \"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F45C1AA6C44446A4BFB09062C1E0C83B\"\r\n            {\r\n            \"SourcePath\" = \"8:\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            \"ProjectOutputGroupRegister\" = \"3:1\"\r\n            \"OutputConfiguration\" = \"8:\"\r\n            \"OutputGroupCanonicalName\" = \"8:Symbols\"\r\n            \"OutputProjectGuid\" = \"8:{88E6522A-C68B-42C8-8B5E-9C959BA6C415}\"\r\n            \"ShowKeyOutput\" = \"11:TRUE\"\r\n                \"ExcludeFilters\"\r\n                {\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "OutlookFileDragSetup_x64/OutlookFileDragSetup_x64.vdproj",
    "content": "﻿\"DeployProject\"\r\n{\r\n\"VSVersion\" = \"3:800\"\r\n\"ProjectType\" = \"8:{978C614F-708E-4E1A-B201-565925725DBA}\"\r\n\"IsWebType\" = \"8:FALSE\"\r\n\"ProjectName\" = \"8:OutlookFileDragSetup_x64\"\r\n\"LanguageId\" = \"3:1033\"\r\n\"CodePage\" = \"3:1252\"\r\n\"UILanguageId\" = \"3:1033\"\r\n\"SccProjectName\" = \"8:\"\r\n\"SccLocalPath\" = \"8:\"\r\n\"SccAuxPath\" = \"8:\"\r\n\"SccProvider\" = \"8:\"\r\n    \"Hierarchy\"\r\n    {\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_12FE3AC54ED17E0AB1007324ABFD58D1\"\r\n        \"OwnerKey\" = \"8:_C3161A936F4192497A0972C3EC781BF6\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_12FE3AC54ED17E0AB1007324ABFD58D1\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_133D4E0B8AD91071625356F7F9F22C66\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_15F0BD9071B5889215577FD20EC63766\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_3DBBABF7C43171A6F7B4D8D682699556\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n        \"OwnerKey\" = \"8:_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n        \"OwnerKey\" = \"8:_3DBBABF7C43171A6F7B4D8D682699556\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_591351D571FEB540A92347F0F74B55CE\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n        \"OwnerKey\" = \"8:_3DBBABF7C43171A6F7B4D8D682699556\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_9CE773A8FA4242D096608C6597B170E4\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_9F1635A8DEF84079B9675D027C0460A4\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_BB365CE8FF8B85A3589349A35DAB0785\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_BB365CE8FF8B85A3589349A35DAB0785\"\r\n        \"OwnerKey\" = \"8:_133D4E0B8AD91071625356F7F9F22C66\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_C3161A936F4192497A0972C3EC781BF6\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_CE28E7CBCA9C5EDB3BD3A2F1F2116DF9\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_DB2A43345F9440DD84405C790D1EDDA2\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_E81182AD22C040558214805DBCE4ACCA\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_FDD7226F564A40639B9655DB42455355\"\r\n        \"OwnerKey\" = \"8:_UNDEFINED\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_CE28E7CBCA9C5EDB3BD3A2F1F2116DF9\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_15F0BD9071B5889215577FD20EC63766\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_C3161A936F4192497A0972C3EC781BF6\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_12FE3AC54ED17E0AB1007324ABFD58D1\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_133D4E0B8AD91071625356F7F9F22C66\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_3DBBABF7C43171A6F7B4D8D682699556\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_BB365CE8FF8B85A3589349A35DAB0785\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n        \"Entry\"\r\n        {\r\n        \"MsmKey\" = \"8:_UNDEFINED\"\r\n        \"OwnerKey\" = \"8:_591351D571FEB540A92347F0F74B55CE\"\r\n        \"MsmSig\" = \"8:_UNDEFINED\"\r\n        }\r\n    }\r\n    \"Configurations\"\r\n    {\r\n        \"Debug\"\r\n        {\r\n        \"DisplayName\" = \"8:Debug\"\r\n        \"IsDebugOnly\" = \"11:TRUE\"\r\n        \"IsReleaseOnly\" = \"11:FALSE\"\r\n        \"OutputFilename\" = \"8:Debug\\\\OutlookFileDragSetup_x64.msi\"\r\n        \"PackageFilesAs\" = \"3:2\"\r\n        \"PackageFileSize\" = \"3:-2147483648\"\r\n        \"CabType\" = \"3:1\"\r\n        \"Compression\" = \"3:2\"\r\n        \"SignOutput\" = \"11:FALSE\"\r\n        \"CertificateFile\" = \"8:\"\r\n        \"PrivateKeyFile\" = \"8:\"\r\n        \"TimeStampServer\" = \"8:\"\r\n        \"InstallerBootstrapper\" = \"3:2\"\r\n            \"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}\"\r\n            {\r\n            \"Enabled\" = \"11:TRUE\"\r\n            \"PromptEnabled\" = \"11:TRUE\"\r\n            \"PrerequisitesLocation\" = \"2:1\"\r\n            \"Url\" = \"8:\"\r\n            \"ComponentsUrl\" = \"8:\"\r\n                \"Items\"\r\n                {\r\n                    \"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.5\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft .NET Framework 4.5 (x86 and x64)\"\r\n                    \"ProductCode\" = \"8:.NETFramework,Version=v4.5\"\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        \"Release\"\r\n        {\r\n        \"DisplayName\" = \"8:Release\"\r\n        \"IsDebugOnly\" = \"11:FALSE\"\r\n        \"IsReleaseOnly\" = \"11:TRUE\"\r\n        \"OutputFilename\" = \"8:Release\\\\OutlookFileDragSetup_x64.msi\"\r\n        \"PackageFilesAs\" = \"3:2\"\r\n        \"PackageFileSize\" = \"3:-2147483648\"\r\n        \"CabType\" = \"3:1\"\r\n        \"Compression\" = \"3:2\"\r\n        \"SignOutput\" = \"11:FALSE\"\r\n        \"CertificateFile\" = \"8:\"\r\n        \"PrivateKeyFile\" = \"8:\"\r\n        \"TimeStampServer\" = \"8:\"\r\n        \"InstallerBootstrapper\" = \"3:2\"\r\n            \"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}\"\r\n            {\r\n            \"Enabled\" = \"11:TRUE\"\r\n            \"PromptEnabled\" = \"11:TRUE\"\r\n            \"PrerequisitesLocation\" = \"2:1\"\r\n            \"Url\" = \"8:\"\r\n            \"ComponentsUrl\" = \"8:\"\r\n                \"Items\"\r\n                {\r\n                    \"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.5\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft .NET Framework 4.5 (x86 and x64)\"\r\n                    \"ProductCode\" = \"8:.NETFramework,Version=v4.5\"\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n    \"Deployable\"\r\n    {\r\n        \"CustomAction\"\r\n        {\r\n        }\r\n        \"DefaultFeature\"\r\n        {\r\n        \"Name\" = \"8:DefaultFeature\"\r\n        \"Title\" = \"8:\"\r\n        \"Description\" = \"8:\"\r\n        }\r\n        \"ExternalPersistence\"\r\n        {\r\n            \"LaunchCondition\"\r\n            {\r\n                \"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_44641C1530CC419BA8B9920E58E9A08E\"\r\n                {\r\n                \"Name\" = \"8:.NET Framework\"\r\n                \"Message\" = \"8:[VSDNETMSG]\"\r\n                \"FrameworkVersion\" = \"8:.NETFramework,Version=v4.5\"\r\n                \"AllowLaterVersions\" = \"11:FALSE\"\r\n                \"InstallUrl\" = \"8:http://go.microsoft.com/fwlink/?LinkId=395269\"\r\n                }\r\n            }\r\n        }\r\n        \"File\"\r\n        {\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_12FE3AC54ED17E0AB1007324ABFD58D1\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.VisualStudio.Tools.Applications.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_12FE3AC54ED17E0AB1007324ABFD58D1\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.VisualStudio.Tools.Applications.Runtime.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.VisualStudio.Tools.Applications.Runtime.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_133D4E0B8AD91071625356F7F9F22C66\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools.Outlook.v4.0.Utilities, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_133D4E0B8AD91071625356F7F9F22C66\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.Outlook.v4.0.Utilities.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.Outlook.v4.0.Utilities.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_15F0BD9071B5889215577FD20EC63766\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:EasyHook, Version=2.7.6578.0, Culture=neutral, PublicKeyToken=4b580fca19d0b0c5, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_15F0BD9071B5889215577FD20EC63766\"\r\n                    {\r\n                    \"Name\" = \"8:EasyHook.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:EasyHook.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3DBBABF7C43171A6F7B4D8D682699556\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools.Outlook, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_3DBBABF7C43171A6F7B4D8D682699556\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.Outlook.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.Outlook.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_5575AAAA0CAC3763D8DCDDD642FBD25F\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_591351D571FEB540A92347F0F74B55CE\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_591351D571FEB540A92347F0F74B55CE\"\r\n                    {\r\n                    \"Name\" = \"8:stdole.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:stdole.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_9B3B11113C57483FCBDDB37CB3ED5F37\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.Common.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.Common.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9CE773A8FA4242D096608C6597B170E4\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\OutlookFileDrag\\\\bin\\\\Release\\\\OutlookFileDrag.dll.manifest\"\r\n            \"TargetName\" = \"8:OutlookFileDrag.dll.manifest\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9F1635A8DEF84079B9675D027C0460A4\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\License.rtf\"\r\n            \"TargetName\" = \"8:License.rtf\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BB365CE8FF8B85A3589349A35DAB0785\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools.Common.v4.0.Utilities, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_BB365CE8FF8B85A3589349A35DAB0785\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.Common.v4.0.Utilities.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.Common.v4.0.Utilities.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C3161A936F4192497A0972C3EC781BF6\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:Microsoft.Office.Tools.v4.0.Framework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_C3161A936F4192497A0972C3EC781BF6\"\r\n                    {\r\n                    \"Name\" = \"8:Microsoft.Office.Tools.v4.0.Framework.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:Microsoft.Office.Tools.v4.0.Framework.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CE28E7CBCA9C5EDB3BD3A2F1F2116DF9\"\r\n            {\r\n            \"AssemblyRegister\" = \"3:1\"\r\n            \"AssemblyIsInGAC\" = \"11:FALSE\"\r\n            \"AssemblyAsmDisplayName\" = \"8:log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL\"\r\n                \"ScatterAssemblies\"\r\n                {\r\n                    \"_CE28E7CBCA9C5EDB3BD3A2F1F2116DF9\"\r\n                    {\r\n                    \"Name\" = \"8:log4net.dll\"\r\n                    \"Attributes\" = \"3:512\"\r\n                    }\r\n                }\r\n            \"SourcePath\" = \"8:log4net.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:TRUE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DB2A43345F9440DD84405C790D1EDDA2\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\OutlookFileDrag\\\\EasyHook64.dll\"\r\n            \"TargetName\" = \"8:EasyHook64.dll\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E81182AD22C040558214805DBCE4ACCA\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\OutlookFileDrag\\\\bin\\\\Release\\\\OutlookFileDrag.vsto\"\r\n            \"TargetName\" = \"8:OutlookFileDrag.vsto\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n            \"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FDD7226F564A40639B9655DB42455355\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\OutlookFileDrag\\\\EasyHook32.dll\"\r\n            \"TargetName\" = \"8:EasyHook32.dll\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            }\r\n        }\r\n        \"FileType\"\r\n        {\r\n        }\r\n        \"Folder\"\r\n        {\r\n            \"{1525181F-901A-416C-8A58-119130FE478E}:_4C10008235FF4D1F8A1EC7E2473D78C3\"\r\n            {\r\n            \"Name\" = \"8:#1919\"\r\n            \"AlwaysCreate\" = \"11:FALSE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Property\" = \"8:ProgramMenuFolder\"\r\n                \"Folders\"\r\n                {\r\n                }\r\n            }\r\n            \"{3C67513D-01DD-4637-8A68-80971EB9504F}:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            {\r\n            \"DefaultLocation\" = \"8:[ProgramFiles64Folder][Manufacturer]\\\\[ProductName]\"\r\n            \"Name\" = \"8:#1925\"\r\n            \"AlwaysCreate\" = \"11:FALSE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Property\" = \"8:TARGETDIR\"\r\n                \"Folders\"\r\n                {\r\n                }\r\n            }\r\n            \"{1525181F-901A-416C-8A58-119130FE478E}:_D44EFF1C326F4D2BADA2F7528B91CC01\"\r\n            {\r\n            \"Name\" = \"8:#1916\"\r\n            \"AlwaysCreate\" = \"11:FALSE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Property\" = \"8:DesktopFolder\"\r\n                \"Folders\"\r\n                {\r\n                }\r\n            }\r\n        }\r\n        \"LaunchCondition\"\r\n        {\r\n        }\r\n        \"Locator\"\r\n        {\r\n        }\r\n        \"MsiBootstrapper\"\r\n        {\r\n        \"LangId\" = \"3:1033\"\r\n        \"RequiresElevation\" = \"11:FALSE\"\r\n        }\r\n        \"Product\"\r\n        {\r\n        \"Name\" = \"8:Microsoft Visual Studio\"\r\n        \"ProductName\" = \"8:Outlook File Drag\"\r\n        \"ProductCode\" = \"8:{0FB154FE-B6B3-4C4F-9DE1-DD9D5D3670A5}\"\r\n        \"PackageCode\" = \"8:{7C7FBEE4-D524-4FEB-8EE9-2B450B3D5827}\"\r\n        \"UpgradeCode\" = \"8:{65870D9B-6652-4150-830B-C5199F26E62C}\"\r\n        \"AspNetVersion\" = \"8:4.0.30319.0\"\r\n        \"RestartWWWService\" = \"11:FALSE\"\r\n        \"RemovePreviousVersions\" = \"11:TRUE\"\r\n        \"DetectNewerInstalledVersion\" = \"11:TRUE\"\r\n        \"InstallAllUsers\" = \"11:TRUE\"\r\n        \"ProductVersion\" = \"8:1.0.11\"\r\n        \"Manufacturer\" = \"8:Tony Federer\"\r\n        \"ARPHELPTELEPHONE\" = \"8:\"\r\n        \"ARPHELPLINK\" = \"8:https://github.com/tonyfederer/OutlookFileDrag\"\r\n        \"Title\" = \"8:Outlook File Drag Setup (x64)\"\r\n        \"Subject\" = \"8:\"\r\n        \"ARPCONTACT\" = \"8:Tony Federer\"\r\n        \"Keywords\" = \"8:\"\r\n        \"ARPCOMMENTS\" = \"8:Drag and drop Outlook items as files into any application\"\r\n        \"ARPURLINFOABOUT\" = \"8:\"\r\n        \"ARPPRODUCTICON\" = \"8:\"\r\n        \"ARPIconIndex\" = \"3:0\"\r\n        \"SearchPath\" = \"8:\"\r\n        \"UseSystemSearchPath\" = \"11:TRUE\"\r\n        \"TargetPlatform\" = \"3:1\"\r\n        \"PreBuildEvent\" = \"8:\"\r\n        \"PostBuildEvent\" = \"8:\"\r\n        \"RunPostBuildEvent\" = \"3:0\"\r\n        }\r\n        \"Registry\"\r\n        {\r\n            \"HKLM\"\r\n            {\r\n                \"Keys\"\r\n                {\r\n                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_D4A904143A3D42869C1DE1D4F1A30D0E\"\r\n                    {\r\n                    \"Name\" = \"8:Software\"\r\n                    \"Condition\" = \"8:\"\r\n                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                    \"Transitive\" = \"11:FALSE\"\r\n                        \"Keys\"\r\n                        {\r\n                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_22D1BC2B78644122968D266BD453DE99\"\r\n                            {\r\n                            \"Name\" = \"8:WOW6432Node\"\r\n                            \"Condition\" = \"8:\"\r\n                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                            \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                            \"Transitive\" = \"11:FALSE\"\r\n                                \"Keys\"\r\n                                {\r\n                                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_8F27B43AF5DE476E9EE2AE86B3C2DF45\"\r\n                                    {\r\n                                    \"Name\" = \"8:Microsoft\"\r\n                                    \"Condition\" = \"8:\"\r\n                                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                    \"Transitive\" = \"11:FALSE\"\r\n                                        \"Keys\"\r\n                                        {\r\n                                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_33EBC259BC9E4D39A94966448F31B769\"\r\n                                            {\r\n                                            \"Name\" = \"8:Office\"\r\n                                            \"Condition\" = \"8:\"\r\n                                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                                            \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                            \"Transitive\" = \"11:FALSE\"\r\n                                                \"Keys\"\r\n                                                {\r\n                                                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_4A6052B230644EAFA587141B09595C8C\"\r\n                                                    {\r\n                                                    \"Name\" = \"8:Outlook\"\r\n                                                    \"Condition\" = \"8:\"\r\n                                                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                                                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                        \"Keys\"\r\n                                                        {\r\n                                                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_C8B5751F82A44695AC627E9C50443F3C\"\r\n                                                            {\r\n                                                            \"Name\" = \"8:Addins\"\r\n                                                            \"Condition\" = \"8:\"\r\n                                                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                                                            \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                \"Keys\"\r\n                                                                {\r\n                                                                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_FA680E6DBA8248D891731BA238E0099C\"\r\n                                                                    {\r\n                                                                    \"Name\" = \"8:OutlookFileDrag\"\r\n                                                                    \"Condition\" = \"8:\"\r\n                                                                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                                                                    \"DeleteAtUninstall\" = \"11:TRUE\"\r\n                                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                                        \"Keys\"\r\n                                                                        {\r\n                                                                        }\r\n                                                                        \"Values\"\r\n                                                                        {\r\n                                                                            \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_4BB9A67E5DC4464588D3093EAA7D52D4\"\r\n                                                                            {\r\n                                                                            \"Name\" = \"8:Manifest\"\r\n                                                                            \"Condition\" = \"8:\"\r\n                                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                            \"ValueTypes\" = \"3:1\"\r\n                                                                            \"Value\" = \"8:file:///[TARGETDIR]OutlookFileDrag.vsto|vstolocal\"\r\n                                                                            }\r\n                                                                            \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_602742F0760846239584275A35DA1AAB\"\r\n                                                                            {\r\n                                                                            \"Name\" = \"8:FriendlyName\"\r\n                                                                            \"Condition\" = \"8:\"\r\n                                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                            \"ValueTypes\" = \"3:1\"\r\n                                                                            \"Value\" = \"8:OutlookFileDrag\"\r\n                                                                            }\r\n                                                                            \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_BDE554EC0FD5452B880DFE5E62B1F33B\"\r\n                                                                            {\r\n                                                                            \"Name\" = \"8:LoadBehavior\"\r\n                                                                            \"Condition\" = \"8:\"\r\n                                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                            \"ValueTypes\" = \"3:3\"\r\n                                                                            \"Value\" = \"3:3\"\r\n                                                                            }\r\n                                                                            \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_CCB6882391414CACBFF9CA1E7D561491\"\r\n                                                                            {\r\n                                                                            \"Name\" = \"8:Description\"\r\n                                                                            \"Condition\" = \"8:\"\r\n                                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                            \"ValueTypes\" = \"3:1\"\r\n                                                                            \"Value\" = \"8:Drag Outlook items as files into any application\"\r\n                                                                            }\r\n                                                                        }\r\n                                                                    }\r\n                                                                }\r\n                                                                \"Values\"\r\n                                                                {\r\n                                                                }\r\n                                                            }\r\n                                                        }\r\n                                                        \"Values\"\r\n                                                        {\r\n                                                        }\r\n                                                    }\r\n                                                }\r\n                                                \"Values\"\r\n                                                {\r\n                                                }\r\n                                            }\r\n                                        }\r\n                                        \"Values\"\r\n                                        {\r\n                                        }\r\n                                    }\r\n                                }\r\n                                \"Values\"\r\n                                {\r\n                                }\r\n                            }\r\n                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_354F1B5F9F6E445BAE6A035E97CF0822\"\r\n                            {\r\n                            \"Name\" = \"8:Microsoft\"\r\n                            \"Condition\" = \"8:\"\r\n                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                            \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                            \"Transitive\" = \"11:FALSE\"\r\n                                \"Keys\"\r\n                                {\r\n                                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B3FBE7EA97A140C5B5B598854F9A0FAC\"\r\n                                    {\r\n                                    \"Name\" = \"8:Office\"\r\n                                    \"Condition\" = \"8:\"\r\n                                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                    \"Transitive\" = \"11:FALSE\"\r\n                                        \"Keys\"\r\n                                        {\r\n                                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B3827A07754641D9AD6ED474A07D3788\"\r\n                                            {\r\n                                            \"Name\" = \"8:Outlook\"\r\n                                            \"Condition\" = \"8:\"\r\n                                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                                            \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                            \"Transitive\" = \"11:FALSE\"\r\n                                                \"Keys\"\r\n                                                {\r\n                                                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B153EB6F913F4E6B86EB8FA442B32E01\"\r\n                                                    {\r\n                                                    \"Name\" = \"8:Addins\"\r\n                                                    \"Condition\" = \"8:\"\r\n                                                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                                                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                        \"Keys\"\r\n                                                        {\r\n                                                            \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_CF568FCCF5F949B9BB57B58832FCC5E8\"\r\n                                                            {\r\n                                                            \"Name\" = \"8:OutlookFileDrag\"\r\n                                                            \"Condition\" = \"8:\"\r\n                                                            \"AlwaysCreate\" = \"11:FALSE\"\r\n                                                            \"DeleteAtUninstall\" = \"11:TRUE\"\r\n                                                            \"Transitive\" = \"11:FALSE\"\r\n                                                                \"Keys\"\r\n                                                                {\r\n                                                                }\r\n                                                                \"Values\"\r\n                                                                {\r\n                                                                    \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_0EC644502E3F48E4B628F34BDF6629EE\"\r\n                                                                    {\r\n                                                                    \"Name\" = \"8:Description\"\r\n                                                                    \"Condition\" = \"8:\"\r\n                                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                                    \"ValueTypes\" = \"3:1\"\r\n                                                                    \"Value\" = \"8:Drag Outlook items as files into any application\"\r\n                                                                    }\r\n                                                                    \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_3D1BF5D39D24455DAA6C83039CAB218A\"\r\n                                                                    {\r\n                                                                    \"Name\" = \"8:LoadBehavior\"\r\n                                                                    \"Condition\" = \"8:\"\r\n                                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                                    \"ValueTypes\" = \"3:3\"\r\n                                                                    \"Value\" = \"3:3\"\r\n                                                                    }\r\n                                                                    \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_C924643C1D0B486CBA80C7750F4A2F78\"\r\n                                                                    {\r\n                                                                    \"Name\" = \"8:FriendlyName\"\r\n                                                                    \"Condition\" = \"8:\"\r\n                                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                                    \"ValueTypes\" = \"3:1\"\r\n                                                                    \"Value\" = \"8:Outlook File Drag\"\r\n                                                                    }\r\n                                                                    \"{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_FE433651CB1C4B27B454859B408DC466\"\r\n                                                                    {\r\n                                                                    \"Name\" = \"8:Manifest\"\r\n                                                                    \"Condition\" = \"8:\"\r\n                                                                    \"Transitive\" = \"11:FALSE\"\r\n                                                                    \"ValueTypes\" = \"3:1\"\r\n                                                                    \"Value\" = \"8:file:///[TARGETDIR]OutlookFileDrag.vsto|vstolocal\"\r\n                                                                    }\r\n                                                                }\r\n                                                            }\r\n                                                        }\r\n                                                        \"Values\"\r\n                                                        {\r\n                                                        }\r\n                                                    }\r\n                                                }\r\n                                                \"Values\"\r\n                                                {\r\n                                                }\r\n                                            }\r\n                                        }\r\n                                        \"Values\"\r\n                                        {\r\n                                        }\r\n                                    }\r\n                                }\r\n                                \"Values\"\r\n                                {\r\n                                }\r\n                            }\r\n                        }\r\n                        \"Values\"\r\n                        {\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"HKCU\"\r\n            {\r\n                \"Keys\"\r\n                {\r\n                    \"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_6FAF1F902A2C40D480CF8007A399A463\"\r\n                    {\r\n                    \"Name\" = \"8:Software\"\r\n                    \"Condition\" = \"8:\"\r\n                    \"AlwaysCreate\" = \"11:FALSE\"\r\n                    \"DeleteAtUninstall\" = \"11:FALSE\"\r\n                    \"Transitive\" = \"11:FALSE\"\r\n                        \"Keys\"\r\n                        {\r\n                        }\r\n                        \"Values\"\r\n                        {\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"HKCR\"\r\n            {\r\n                \"Keys\"\r\n                {\r\n                }\r\n            }\r\n            \"HKU\"\r\n            {\r\n                \"Keys\"\r\n                {\r\n                }\r\n            }\r\n            \"HKPU\"\r\n            {\r\n                \"Keys\"\r\n                {\r\n                }\r\n            }\r\n        }\r\n        \"Sequences\"\r\n        {\r\n        }\r\n        \"Shortcut\"\r\n        {\r\n        }\r\n        \"UserInterface\"\r\n        {\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_2371DACEF6F94E98AF0C94614DF03E04\"\r\n            {\r\n            \"Name\" = \"8:#1900\"\r\n            \"Sequence\" = \"3:1\"\r\n            \"Attributes\" = \"3:1\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7C6F7BCCB3134D219B945FC671E2C571\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Welcome\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdWelcomeDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"CopyrightWarning\"\r\n                            {\r\n                            \"Name\" = \"8:CopyrightWarning\"\r\n                            \"DisplayName\" = \"8:#1002\"\r\n                            \"Description\" = \"8:#1102\"\r\n                            \"Type\" = \"3:3\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"Value\" = \"8:#1202\"\r\n                            \"DefaultValue\" = \"8:#1202\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"Welcome\"\r\n                            {\r\n                            \"Name\" = \"8:Welcome\"\r\n                            \"DisplayName\" = \"8:#1003\"\r\n                            \"Description\" = \"8:#1103\"\r\n                            \"Type\" = \"3:3\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"Value\" = \"8:#1203\"\r\n                            \"DefaultValue\" = \"8:#1203\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8F1EFA7475EA4E6F934BEA882EE7D273\"\r\n                    {\r\n                    \"Sequence\" = \"3:200\"\r\n                    \"DisplayName\" = \"8:Installation Folder\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdFolderDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"InstallAllUsersVisible\"\r\n                            {\r\n                            \"Name\" = \"8:InstallAllUsersVisible\"\r\n                            \"DisplayName\" = \"8:#1059\"\r\n                            \"Description\" = \"8:#1159\"\r\n                            \"Type\" = \"3:5\"\r\n                            \"ContextData\" = \"8:1;True=1;False=0\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:0\"\r\n                            \"Value\" = \"3:0\"\r\n                            \"DefaultValue\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B4D5279C408E467694AF02D4E02D61D0\"\r\n                    {\r\n                    \"Sequence\" = \"3:110\"\r\n                    \"DisplayName\" = \"8:License Agreement\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdLicenseDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"EulaText\"\r\n                            {\r\n                            \"Name\" = \"8:EulaText\"\r\n                            \"DisplayName\" = \"8:#1008\"\r\n                            \"Description\" = \"8:#1108\"\r\n                            \"Type\" = \"3:6\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:2\"\r\n                            \"Value\" = \"8:_9F1635A8DEF84079B9675D027C0460A4\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"Sunken\"\r\n                            {\r\n                            \"Name\" = \"8:Sunken\"\r\n                            \"DisplayName\" = \"8:#1007\"\r\n                            \"Description\" = \"8:#1107\"\r\n                            \"Type\" = \"3:5\"\r\n                            \"ContextData\" = \"8:4;True=4;False=0\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:0\"\r\n                            \"Value\" = \"3:4\"\r\n                            \"DefaultValue\" = \"3:4\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F2099CB7BD9B4B7EA55AC883A3EF4D99\"\r\n                    {\r\n                    \"Sequence\" = \"3:300\"\r\n                    \"DisplayName\" = \"8:Confirm Installation\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdConfirmDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_3640BE8DA10C43B08302EDBF1D242F02\"\r\n            {\r\n            \"Name\" = \"8:#1901\"\r\n            \"Sequence\" = \"3:2\"\r\n            \"Attributes\" = \"3:2\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_02CEF8D9F8474FFF8F7BC9850C702E5A\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Progress\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminProgressDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"ShowProgress\"\r\n                            {\r\n                            \"Name\" = \"8:ShowProgress\"\r\n                            \"DisplayName\" = \"8:#1009\"\r\n                            \"Description\" = \"8:#1109\"\r\n                            \"Type\" = \"3:5\"\r\n                            \"ContextData\" = \"8:1;True=1;False=0\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:0\"\r\n                            \"Value\" = \"3:1\"\r\n                            \"DefaultValue\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_51AFB1E6343E4D1CBE228814E8E53FB7\"\r\n            {\r\n            \"Name\" = \"8:#1901\"\r\n            \"Sequence\" = \"3:1\"\r\n            \"Attributes\" = \"3:2\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C069CBE9F6354A4489912B7C2A93A0E7\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Progress\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdProgressDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"ShowProgress\"\r\n                            {\r\n                            \"Name\" = \"8:ShowProgress\"\r\n                            \"DisplayName\" = \"8:#1009\"\r\n                            \"Description\" = \"8:#1109\"\r\n                            \"Type\" = \"3:5\"\r\n                            \"ContextData\" = \"8:1;True=1;False=0\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:0\"\r\n                            \"Value\" = \"3:1\"\r\n                            \"DefaultValue\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_6A78FCF2607F4ED4993C83C317BDF788\"\r\n            {\r\n            \"UseDynamicProperties\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdUserInterface.wim\"\r\n            }\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_73653059E18A46DBA5A094EB50F3F1EC\"\r\n            {\r\n            \"Name\" = \"8:#1900\"\r\n            \"Sequence\" = \"3:2\"\r\n            \"Attributes\" = \"3:1\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4EAA0552B1A64272BACC7C0319AA1B0D\"\r\n                    {\r\n                    \"Sequence\" = \"3:110\"\r\n                    \"DisplayName\" = \"8:License Agreement\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminLicenseDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"EulaText\"\r\n                            {\r\n                            \"Name\" = \"8:EulaText\"\r\n                            \"DisplayName\" = \"8:#1008\"\r\n                            \"Description\" = \"8:#1108\"\r\n                            \"Type\" = \"3:6\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:2\"\r\n                            \"Value\" = \"8:_9F1635A8DEF84079B9675D027C0460A4\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"Sunken\"\r\n                            {\r\n                            \"Name\" = \"8:Sunken\"\r\n                            \"DisplayName\" = \"8:#1007\"\r\n                            \"Description\" = \"8:#1107\"\r\n                            \"Type\" = \"3:5\"\r\n                            \"ContextData\" = \"8:4;True=4;False=0\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:0\"\r\n                            \"Value\" = \"3:4\"\r\n                            \"DefaultValue\" = \"3:4\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6DAE5AFAE9644A67B0639F0C67E856E9\"\r\n                    {\r\n                    \"Sequence\" = \"3:300\"\r\n                    \"DisplayName\" = \"8:Confirm Installation\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminConfirmDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C2BD515F58AE4374BDD15A00EA7FFF3D\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Welcome\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminWelcomeDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"CopyrightWarning\"\r\n                            {\r\n                            \"Name\" = \"8:CopyrightWarning\"\r\n                            \"DisplayName\" = \"8:#1002\"\r\n                            \"Description\" = \"8:#1102\"\r\n                            \"Type\" = \"3:3\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"Value\" = \"8:#1202\"\r\n                            \"DefaultValue\" = \"8:#1202\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"Welcome\"\r\n                            {\r\n                            \"Name\" = \"8:Welcome\"\r\n                            \"DisplayName\" = \"8:#1003\"\r\n                            \"Description\" = \"8:#1103\"\r\n                            \"Type\" = \"3:3\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"Value\" = \"8:#1203\"\r\n                            \"DefaultValue\" = \"8:#1203\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FE7438441C294F67A9A2827BE22A936E\"\r\n                    {\r\n                    \"Sequence\" = \"3:200\"\r\n                    \"DisplayName\" = \"8:Installation Folder\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminFolderDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_9BD9D3D3A44C45D39936506919F27084\"\r\n            {\r\n            \"Name\" = \"8:#1902\"\r\n            \"Sequence\" = \"3:1\"\r\n            \"Attributes\" = \"3:3\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E9CDCE57CC8B40A2A6B4155953836767\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Finished\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdFinishedDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                            \"UpdateText\"\r\n                            {\r\n                            \"Name\" = \"8:UpdateText\"\r\n                            \"DisplayName\" = \"8:#1058\"\r\n                            \"Description\" = \"8:#1158\"\r\n                            \"Type\" = \"3:15\"\r\n                            \"ContextData\" = \"8:\"\r\n                            \"Attributes\" = \"3:0\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"Value\" = \"8:#1258\"\r\n                            \"DefaultValue\" = \"8:#1258\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_C001A743B84C4C898270AA9143A46C9F\"\r\n            {\r\n            \"Name\" = \"8:#1902\"\r\n            \"Sequence\" = \"3:2\"\r\n            \"Attributes\" = \"3:3\"\r\n                \"Dialogs\"\r\n                {\r\n                    \"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B8367B2F3AB14A32B53AC3C64C3815E3\"\r\n                    {\r\n                    \"Sequence\" = \"3:100\"\r\n                    \"DisplayName\" = \"8:Finished\"\r\n                    \"UseDynamicProperties\" = \"11:TRUE\"\r\n                    \"IsDependency\" = \"11:FALSE\"\r\n                    \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdAdminFinishedDlg.wid\"\r\n                        \"Properties\"\r\n                        {\r\n                            \"BannerBitmap\"\r\n                            {\r\n                            \"Name\" = \"8:BannerBitmap\"\r\n                            \"DisplayName\" = \"8:#1001\"\r\n                            \"Description\" = \"8:#1101\"\r\n                            \"Type\" = \"3:8\"\r\n                            \"ContextData\" = \"8:Bitmap\"\r\n                            \"Attributes\" = \"3:4\"\r\n                            \"Setting\" = \"3:1\"\r\n                            \"UsePlugInResources\" = \"11:TRUE\"\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            \"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_C08686B031154BE19BFDEA8BAA2F4BF3\"\r\n            {\r\n            \"UseDynamicProperties\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"SourcePath\" = \"8:<VsdDialogDir>\\\\VsdBasicDialogs.wim\"\r\n            }\r\n        }\r\n        \"MergeModule\"\r\n        {\r\n        }\r\n        \"ProjectOutput\"\r\n        {\r\n            \"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_54EF5F74A56C4AEE96D4330B540B4A3A\"\r\n            {\r\n            \"SourcePath\" = \"8:..\\\\OutlookFileDrag\\\\obj\\\\Debug\\\\OutlookFileDrag.dll\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            \"ProjectOutputGroupRegister\" = \"3:1\"\r\n            \"OutputConfiguration\" = \"8:\"\r\n            \"OutputGroupCanonicalName\" = \"8:Built\"\r\n            \"OutputProjectGuid\" = \"8:{88E6522A-C68B-42C8-8B5E-9C959BA6C415}\"\r\n            \"ShowKeyOutput\" = \"11:TRUE\"\r\n                \"ExcludeFilters\"\r\n                {\r\n                }\r\n            }\r\n            \"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_749FB0E6341A426B8E31DAFFC8EBE0F9\"\r\n            {\r\n            \"SourcePath\" = \"8:\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            \"ProjectOutputGroupRegister\" = \"3:1\"\r\n            \"OutputConfiguration\" = \"8:\"\r\n            \"OutputGroupCanonicalName\" = \"8:ContentFiles\"\r\n            \"OutputProjectGuid\" = \"8:{88E6522A-C68B-42C8-8B5E-9C959BA6C415}\"\r\n            \"ShowKeyOutput\" = \"11:TRUE\"\r\n                \"ExcludeFilters\"\r\n                {\r\n                }\r\n            }\r\n            \"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_CBE5DEADEE0E4AE7A4A3D0832595387F\"\r\n            {\r\n            \"SourcePath\" = \"8:\"\r\n            \"TargetName\" = \"8:\"\r\n            \"Tag\" = \"8:\"\r\n            \"Folder\" = \"8:_919F44B827474C528E0E9FF4CAE2B9AE\"\r\n            \"Condition\" = \"8:\"\r\n            \"Transitive\" = \"11:FALSE\"\r\n            \"Vital\" = \"11:TRUE\"\r\n            \"ReadOnly\" = \"11:FALSE\"\r\n            \"Hidden\" = \"11:FALSE\"\r\n            \"System\" = \"11:FALSE\"\r\n            \"Permanent\" = \"11:FALSE\"\r\n            \"SharedLegacy\" = \"11:FALSE\"\r\n            \"PackageAs\" = \"3:1\"\r\n            \"Register\" = \"3:1\"\r\n            \"Exclude\" = \"11:FALSE\"\r\n            \"IsDependency\" = \"11:FALSE\"\r\n            \"IsolateTo\" = \"8:\"\r\n            \"ProjectOutputGroupRegister\" = \"3:1\"\r\n            \"OutputConfiguration\" = \"8:\"\r\n            \"OutputGroupCanonicalName\" = \"8:Symbols\"\r\n            \"OutputProjectGuid\" = \"8:{88E6522A-C68B-42C8-8B5E-9C959BA6C415}\"\r\n            \"ShowKeyOutput\" = \"11:TRUE\"\r\n                \"ExcludeFilters\"\r\n                {\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "Readme.md",
    "content": "﻿# Outlook File Drag\r\n\r\n*Drag and drop Outlook items as files into any application*\r\n\r\n## Read This First!\r\n\r\nMicrosoft Edge (as of Windows 10 1709) and Google Chrome (as of version 76) \r\nnatively support drag and drop from Outlook on Windows.  If you use one of these \r\nbrowsers, then this plugin is not necessary.\r\n\r\n## Overview\r\n\r\nOutlook File Drag is an add-in for Outlook 2013 and 2016 that allows you to drag\r\nand drop Outlook items (messages, attachments, contacts, tasks, appointments, \r\nmeetings, etc) to applications that allow physical files to be dropped, such as\r\nweb browsers.\r\n\r\n## How Does it Work?\r\n\r\nWhen you try to drag and drop from Outlook, Outlook correctly identifies the \r\nformat as virtual files (CFSTR_FILEDESCRIPTORW) since the files do not exist \r\ndirectly on disk.  Instead, they are contained in a PST file, OST file, or on \r\nan Exchange server.\r\n\r\nHowever, many applications do not support this format, such as web browers and \r\nmost .NET/Java applications.\r\n\r\nTo work around this issue, Outlook File Drag hooks the Outlook drag and drop\r\nprocess and adds support for physical files (CF_HDROP).  When the receiving \r\napplication asks for the physical files, the files are saved to a temp folder \r\nand those filenames are returned to the application.  The application processes\r\nthe files (such as uploading them).  Outlook File Drag deletes the temp files \r\nlater in a cleanup process.\r\n\r\n## Features\r\n\r\n- Works with Chrome, Firefox, Internet Explorer, Edge, and other applications that accept files to be dropped\r\n- Allows drag and drop into HTML5-based web applications\r\n- Drag e-mails, attachments, contacts, calendar items, and more\r\n- Drag multiple items at once\r\n- Supports Unicode characters\r\n\r\n## Installation\r\n\r\nTo install, run the installer that matches your Windows build:\r\n\r\n- [Download for 64-bit Windows (Outlook 32-bit or 64-bit)](https://github.com/tonyfederer/OutlookFileDrag/releases/download/v1.0.11/OutlookFileDragSetup_x64.zip)\r\n- [Download for 32-bit Windows](https://github.com/tonyfederer/OutlookFileDrag/releases/download/v1.0.11/OutlookFileDragSetup.zip)\r\n\r\nAfter installing, restart Outlook for the add-in to take effect.\r\n\r\n## Automated (Silent) Installation\r\n\r\nFor administrators, OutlookFileDrag supports automated (silent) installation and uninstallation using `msiexec` with command line parameters.\r\n\r\n### Silent Installation\r\n\r\nTo silently install OutlookFileDrag, use this command:\r\n\r\n`msiexec.exe /i <pathtomsi> /qn /log <pathtolog>`\r\n\r\n- `<pathtomsi>`: Path to MSI file\r\n- `<pathtolog>`: Path to log file (if folder is not specified, MSI path is used)\r\n\r\nExample: \r\n\r\n`msiexec.exe C:\\Install\\OutlookFileDrag_x64.msi /qn /log C:\\Logs\\OutlookFileDragInstall.log`\r\n\r\nAfter installing, restart Outlook for the add-in to take effect.\r\n\r\n### Silent Uninstallation\r\n\r\nTo silently uninstall OutlookFileDrag, use this command:\r\n\r\n`msiexec.exe /x <productcode> /qn /log <pathtolog>`\r\n\r\n- `<productcode>` for 64-bit version: `{CF5F9043-967C-400D-B6D5-F41AF6AD83AE}`\r\n- `<productcode>` for 32-bit version: `{7EA6E17B-8802-4E1F-9669-248670B31BFB}`\r\n- `<logfile>`: Path to log file\r\n\r\nExample:\r\n\r\n`msiexec.exe /x {CF5F9043-967C-400D-B6D5-F41AF6AD83AE} /qn /log C:\\Logs\\OutlookFileDragUninstall.log`\r\n\r\n## Acknowledgements\r\n\r\nOutlook File Drag uses these open source projects:\r\n\r\n- [Easyhook](https://easyhook.github.io/)\r\n- [log4net](http://logging.apache.org/log4net/)\r\n\r\n## Feedback/Contribute\r\n\r\nYou can view the source code, report issues, and contribute on [Github](https://github.com/tonyfederer/OutlookFileDrag).\r\n\r\n## Donate\r\n\r\nIf you find this project useful, please consider donating.  Your donations are appreciated. =)\r\n\r\n[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=BSAGCF5VAJLN2)\r\n\r\n## Version History\r\n\r\n### 1.0.11\r\n- Fixed drag and drop of embedded RTF attachments (thanks chrisv2)\r\n\r\n### 1.0.10\r\n- Fixed System.ArgumentException bug in ReadHGlobalIntoStream method when reading more than 4 KB introduced in version 1.0.8.\r\n\r\n### 1.0.9\r\n- If files were dropped and drop effect was \"move\", then override to \"copy\" so original item is not deleted\r\n\r\n### 1.0.8\r\n- Fixed releasing of unmanaged resources \r\n- Memory usage improvements\r\n- Added more details to log file\r\n\r\n### 1.0.5\r\n- Fixed crash when dragging calendar items\r\n\r\n### 1.0.4\r\n- Added additional debug logging\r\n- Fixed issue where STGMEDIUM was not being released after reading filenames\r\n- Fixed issue that where reading filenames sometimes failed\r\n- Fixed hooking process to allow starting and stopping hook without disposing and recreating hook\r\n\r\n### 1.0.3\r\n- Fixed issue that prevented dragging items from one group to another\r\n\r\n### 1.0.2\r\n- Fixed PathTooLong exception when temporary filename was longer than MAX_PATH\r\n\r\n### 1.0.1\r\n- Fixed issues with 64-bit Outlook\r\n- Added self-signed certificate\r\n\r\n### 1.0\r\n- Initial Release\r\n\r\n## Copyright\r\n\r\nOutlook File Drag is copyright (c) 2018 by [Tony Federer](https://github.com/tonyfederer) and released under the MIT License.\r\n"
  },
  {
    "path": "_config.yml",
    "content": "theme: jekyll-theme-cayman"
  }
]