Home | History | Annotate | Download | only in mime
      1 // Copyright 2010 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 package mime
      6 
      7 import (
      8 	"internal/syscall/windows/registry"
      9 )
     10 
     11 func init() {
     12 	osInitMime = initMimeWindows
     13 }
     14 
     15 func initMimeWindows() {
     16 	names, err := registry.CLASSES_ROOT.ReadSubKeyNames(-1)
     17 	if err != nil {
     18 		return
     19 	}
     20 	for _, name := range names {
     21 		if len(name) < 2 || name[0] != '.' { // looking for extensions only
     22 			continue
     23 		}
     24 		k, err := registry.OpenKey(registry.CLASSES_ROOT, name, registry.READ)
     25 		if err != nil {
     26 			continue
     27 		}
     28 		v, _, err := k.GetStringValue("Content Type")
     29 		k.Close()
     30 		if err != nil {
     31 			continue
     32 		}
     33 		setExtensionType(name, v)
     34 	}
     35 }
     36 
     37 func initMimeForTests() map[string]string {
     38 	return map[string]string{
     39 		".PnG": "image/png",
     40 	}
     41 }
     42