diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index b27ed8b..b8ed96b 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -15,6 +15,7 @@
 #include "SkError.h"
 #include "SkImageGenerator.h"
 #include "SkImageGeneratorCG.h"
+#include "SkImageGeneratorWIC.h"
 #include "SkMallocPixelRef.h"
 #include "SkMultiPictureDraw.h"
 #include "SkNullCanvas.h"
@@ -32,6 +33,10 @@
 #include "SkSwizzler.h"
 #include <functional>
 
+#if defined(SK_BUILD_FOR_WIN)
+    #include "SkAutoCoInitialize.h"
+#endif
+
 #ifdef SK_MOJO
     #include "SkMojo.mojom.h"
 #endif
@@ -791,6 +796,14 @@
         return SkStringPrintf("Couldn't read %s.", fPath.c_str());
     }
 
+#if defined(SK_BUILD_FOR_WIN)
+    // Initialize COM in order to test with WIC.
+    SkAutoCoInitialize com;
+    if (!com.succeeded()) {
+        return "Could not initialize COM.";
+    }
+#endif
+
     SkAutoTDelete<SkImageGenerator> gen(nullptr);
     switch (fMode) {
         case kCodec_Mode:
@@ -799,14 +812,18 @@
                 return "Could not create codec image generator.";
             }
             break;
+        case kPlatform_Mode: {
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
-        case kPlatform_Mode:
             gen.reset(SkImageGeneratorCG::NewFromEncodedCG(encoded));
+#elif defined(SK_BUILD_FOR_WIN)
+            gen.reset(SkImageGeneratorWIC::NewFromEncodedWIC(encoded));
+#endif
+
             if (!gen) {
-                return "Could not create CG image generator.";
+                return "Could not create platform image generator.";
             }
             break;
-#endif
+        }
         default:
             SkASSERT(false);
             return "Invalid image generator mode";
