diff options
Diffstat (limited to 'redo/comctl32_windows.go')
| -rw-r--r-- | redo/comctl32_windows.go | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/redo/comctl32_windows.go b/redo/comctl32_windows.go deleted file mode 100644 index f4a7620..0000000 --- a/redo/comctl32_windows.go +++ /dev/null @@ -1,72 +0,0 @@ -// 25 february 2014 - -package ui - -import ( - "fmt" - "io/ioutil" - "syscall" -) - -// #include "winapi_windows.h" -import "C" - -// TODO possibly rewrite the whole file access bits in C - -// pretty much every constant here except _WM_USER is from commctrl.h, except where noted - -/* -Windows requires a manifest file to enable Common Controls version 6. -The only way to not require an external manifest is to synthesize the manifest ourselves. -We can use the activation context API to load it at runtime. -References: -- http://stackoverflow.com/questions/4308503/how-to-enable-visual-styles-without-a-manifest -- http://support.microsoft.com/kb/830033 -The activation context code itself is in comctl32_windows.c. -*/ -func initCommonControls() (err error) { - manifestfile, err := ioutil.TempFile("", "gouicomctl32v6manifest") - if err != nil { - return fmt.Errorf("error creating synthesized manifest file: %v", err) - } - _, err = manifestfile.Write(manifest) - if err != nil { - return fmt.Errorf("error writing synthesized manifest file: %v", err) - } - filename := manifestfile.Name() - // we now have to close the file, otherwise ActivateActCtx() will complain that it's in use by another program - // if ioutil.TempFile() ever changes so that the file is deleted when it is closed, this will need to change - manifestfile.Close() - - var errmsg *C.char - - errcode := C.initCommonControls(toUTF16(filename), &errmsg) - if errcode != 0 || errmsg != nil { - return fmt.Errorf("error actually initializing comctl32.dll: %s: %v", C.GoString(errmsg), syscall.Errno(errcode)) - } - return nil -} - -var manifest = []byte(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> -<assemblyIdentity - version="1.0.0.0" - processorArchitecture="*" - name="CompanyName.ProductName.YourApplication" - type="win32" -/> -<description>Your application description here.</description> -<dependency> - <dependentAssembly> - <assemblyIdentity - type="win32" - name="Microsoft.Windows.Common-Controls" - version="6.0.0.0" - processorArchitecture="*" - publicKeyToken="6595b64144ccf1df" - language="*" - /> - </dependentAssembly> -</dependency> -</assembly> -`) |
