diff --git a/tests/scripts/check-files.py b/tests/scripts/check-files.py
index 5aa4f9c..a046f26 100755
--- a/tests/scripts/check-files.py
+++ b/tests/scripts/check-files.py
@@ -81,6 +81,12 @@
             for i, line in enumerate(iter(f.readline, b"")):
                 self.check_file_line(filepath, line, i + 1)
 
+
+def is_windows_file(filepath):
+    _root, ext = os.path.splitext(filepath)
+    return ext in ('.dsp', '.sln', '.vcxproj')
+
+
 class PermissionIssueTracker(FileIssueTracker):
     """Track files with bad permissions.
 
@@ -113,16 +119,21 @@
 
     heading = "UTF-8 BOM present:"
 
+    files_exemptions = frozenset([".vcxproj", ".sln"])
+
     def check_file_for_issue(self, filepath):
         with open(filepath, "rb") as f:
             if f.read().startswith(codecs.BOM_UTF8):
                 self.files_with_issues[filepath] = None
 
 
-class LineEndingIssueTracker(LineIssueTracker):
+class UnixLineEndingIssueTracker(LineIssueTracker):
     """Track files with non-Unix line endings (i.e. files with CR)."""
 
-    heading = "Non Unix line endings:"
+    heading = "Non-Unix line endings:"
+
+    def should_check_file(self, filepath):
+        return not is_windows_file(filepath)
 
     def issue_with_line(self, line, _filepath):
         return b"\r" in line
@@ -132,7 +143,7 @@
     """Track lines with trailing whitespace."""
 
     heading = "Trailing whitespace:"
-    files_exemptions = frozenset(".md")
+    files_exemptions = frozenset([".dsp", ".md"])
 
     def issue_with_line(self, line, _filepath):
         return line.rstrip(b"\r\n") != line.rstrip()
@@ -143,6 +154,7 @@
 
     heading = "Tabs present:"
     files_exemptions = frozenset([
+        ".sln",
         "/Makefile",
         "/generate_visualc_files.pl",
     ])
@@ -182,12 +194,15 @@
         self.extensions_to_check = (
             ".c",
             ".data",
+            ".dsp",
             ".function",
             ".h",
             ".md",
             ".pl",
             ".py",
             ".sh",
+            ".sln",
+            ".vcxproj",
             "/CMakeLists.txt",
             "/ChangeLog",
             "/Makefile",
@@ -204,7 +219,7 @@
             PermissionIssueTracker(),
             EndOfFileNewlineIssueTracker(),
             Utf8BomIssueTracker(),
-            LineEndingIssueTracker(),
+            UnixLineEndingIssueTracker(),
             TrailingWhitespaceIssueTracker(),
             TabIssueTracker(),
             MergeArtifactIssueTracker(),
