Mercurial > projects > dwt-win
changeset 91:b5c6e5033649
debug
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 06 Feb 2008 23:12:32 +0100 |
parents | be0b130bb29a |
children | 3b6217fd97e9 |
files | dwt/internal/gdip/Gdip.d dwt/internal/win32/OS.d |
diffstat | 2 files changed, 34 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/dwt/internal/gdip/Gdip.d Wed Feb 06 22:49:46 2008 +0100 +++ b/dwt/internal/gdip/Gdip.d Wed Feb 06 23:12:32 2008 +0100 @@ -22,6 +22,10 @@ import dwt.internal.win32.WINAPI; import dwt.internal.win32.OS; +import tango.util.log.Trace; +void trace(int line ){ + Trace.formatln( "Gdip {}", line ); +} alias dwt.internal.gdip.native.GdiplusStartupInput GdiplusStartupInput; alias dwt.internal.gdip.native.GdiplusStartupOutput GdiplusStartupOutput; @@ -35,8 +39,10 @@ public class Gdip : Platform { static this(){ +trace(__LINE__); if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (5, 1)) { loadLib_Gdip(); +trace(__LINE__); } } /**************************************************************************
--- a/dwt/internal/win32/OS.d Wed Feb 06 22:49:46 2008 +0100 +++ b/dwt/internal/win32/OS.d Wed Feb 06 23:12:32 2008 +0100 @@ -22,6 +22,9 @@ import tango.util.log.Trace; static import tango.stdc.stdlib; +void trace(int line ){ + Trace.formatln( "OS {}", line ); +} // declare of Callback functions extern (Windows) @@ -220,7 +223,7 @@ //IsSP = IsSP(); //PORTING_CHANGE: made by version //IsPPC = IsPPC(); - +trace(__LINE__); version(WinCE) { IsHPC = IsWinCE && !IsPPC && !IsSP; } @@ -228,6 +231,7 @@ WIN32_MINOR = info.dwMinorVersion; WIN32_VERSION = VERSION (WIN32_MAJOR, WIN32_MINOR); +trace(__LINE__); // when to load uxtheme if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (5, 1)) { loadLib( Symbols_UxTheme, `UxTheme.dll` ); @@ -235,21 +239,23 @@ if (OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (5, 1)) { loadLib( Symbols_CoreImm, `Coreimm.dll` ); } - if (OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { + if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { loadLib( Symbols_User32, `User32.dll` ); } - if (OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (5, 1)) { + if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (5, 1)) { loadLib( Symbols_Imm32, `Imm32.dll` ); } - if (OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (5, 1)) { + if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (5, 1)) { loadLib( Symbols_Kernel32, `Kernel32.dll` ); } +trace(__LINE__); //PORTING_CHANGE: made by version //IsUnicode = !IsWin32s && !IsWin95; /* Load the manifest to force the XP Theme */ //if (System.getProperty (NO_MANIFEST) is null) { if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (5, 1)) { +trace(__LINE__); TCHAR[] buffer = new TCHAR[ MAX_PATH ]; HANDLE hModule = OS.GetLibraryHandle (); while (OS.GetModuleFileName (hModule, buffer.ptr, buffer.length ) is buffer.length ) { @@ -259,15 +265,20 @@ int byteCount = buffer.length * TCHAR.sizeof; TCHAR* pszText = cast(TCHAR*) OS.HeapAlloc (hHeap, HEAP_ZERO_MEMORY, byteCount); OS.MoveMemory (pszText, buffer.ptr, byteCount); +trace(__LINE__); ACTCTX pActCtx; pActCtx.cbSize = ACTCTX.sizeof; pActCtx.dwFlags = ACTCTX_FLAG_RESOURCE_NAME_VALID | ACTCTX_FLAG_SET_PROCESS_DEFAULT; pActCtx.lpSource = pszText; pActCtx.lpResourceName = cast(TCHAR*)MANIFEST_RESOURCE_ID; +trace(__LINE__); +Trace.formatln( "is loaded {}", ( OS.CreateActCtx !is null )); HANDLE hActCtx = OS.CreateActCtx (&pActCtx); +trace(__LINE__); if (pszText !is null) OS.HeapFree (hHeap, 0, pszText); uint lpCookie; OS.ActivateActCtx (hActCtx, &lpCookie); +trace(__LINE__); /* * NOTE: A single activation context is created and activated * for the entire lifetime of the program. It is deactivated @@ -283,6 +294,7 @@ BOOL dbcsEnabled = OS.GetSystemMetrics (SM_DBCSENABLED) !is 0; BOOL immEnabled = OS.GetSystemMetrics (SM_IMMENABLED) !is 0; IsDBLocale = dbcsEnabled || immEnabled; +trace(__LINE__); /* * Bug in Windows. On Korean Windows XP when the Text @@ -298,15 +310,18 @@ if (!OS.IsWinCE && OS.WIN32_VERSION is OS.VERSION (5, 1)) { short langID = OS.GetSystemDefaultUILanguage (); short primaryLang = OS.PRIMARYLANGID (langID); +trace(__LINE__); if (primaryLang is LANG_KOREAN) { OSVERSIONINFOEX infoex; infoex.dwOSVersionInfoSize = OSVERSIONINFOEX.sizeof; GetVersionEx (cast(OSVERSIONINFO*) &infoex ); if (infoex.wServicePackMajor < 2) { +trace(__LINE__); OS.ImmDisableTextFrameService (0); } } } +trace(__LINE__); /* Get the COMCTL32.DLL version */ DLLVERSIONINFO dvi; @@ -319,13 +334,17 @@ if (auto lib = SharedLib.load( `comctl32.dll`) ) { char[] name = "DllGetVersion\0"; //$NON-NLS-1$ void* DllGetVersion = lib.getSymbol(name.ptr); +trace(__LINE__); if (DllGetVersion !is null){ alias extern(Windows) void function(DLLVERSIONINFO*) TDllVersion; TDllVersion f = cast( TDllVersion )DllGetVersion; +trace(__LINE__); f(&dvi); } +trace(__LINE__); lib.unload(); } +trace(__LINE__); COMCTL32_MAJOR = dvi.dwMajorVersion; COMCTL32_MINOR = dvi.dwMinorVersion; COMCTL32_VERSION = VERSION (COMCTL32_MAJOR, COMCTL32_MINOR); @@ -336,19 +355,24 @@ dvi.dwMajorVersion = 4; //TCHAR lpLibFileName = new TCHAR (0, "Shell32.dll", true); //$NON-NLS-1$ //int /*long*/ hModule = OS.LoadLibrary (lpLibFileName); +trace(__LINE__); if ( auto lib = SharedLib.load( `Shell32.dll`)) { char[] name = "DllGetVersion\0"; //$NON-NLS-1$ void* DllGetVersion = lib.getSymbol(name.ptr); +trace(__LINE__); if (DllGetVersion !is null){ alias extern(Windows) void function(DLLVERSIONINFO*) TDllVersion; TDllVersion f = cast( TDllVersion )DllGetVersion; +trace(__LINE__); f(&dvi); } +trace(__LINE__); lib.unload(); } SHELL32_MAJOR = dvi.dwMajorVersion; SHELL32_MINOR = dvi.dwMinorVersion; SHELL32_VERSION = VERSION (SHELL32_MAJOR, SHELL32_MINOR); +trace(__LINE__); } /* Flag used on WinCE */