[ros-diffs] [fireball] 42025: - Add assert/ASSERT implementation to prevent linking with a wrong msvcrt version of it. - Fix one msvcrt function linkage (snprintf -> _snprintf). - Stub out all other registry operations for now and thus get rid of advapi32 dependancy (and unbreak the system). - Start converting registry operations from advapi32 to native functions. - Initial port of freetype.c to ReactOS. Many places are UNIMPLEMENTED yet. - Implement GdiAddFontResourceW as a success-returning stub. - Fix gdi32 exports so it loads on Windows 2003. - 16->32 conversion in user32/cursoricon. - Remove all calls to advapi's registry operations from gdi32 init and use defaults.

fireball at svn.reactos.org fireball at svn.reactos.org
Sat Jul 18 10:29:27 CEST 2009


Author: fireball
Date: Sat Jul 18 10:29:27 2009
New Revision: 42025

URL: http://svn.reactos.org/svn/reactos?rev=42025&view=rev
Log:
- Add assert/ASSERT implementation to prevent linking with a wrong msvcrt version of it.
- Fix one msvcrt function linkage (snprintf -> _snprintf).
- Stub out all other registry operations for now and thus get rid of advapi32 dependancy (and unbreak the system).
- Start converting registry operations from advapi32 to native functions.
- Initial port of freetype.c to ReactOS. Many places are UNIMPLEMENTED yet.
- Implement GdiAddFontResourceW as a success-returning stub.
- Fix gdi32 exports so it loads on Windows 2003.
- 16->32 conversion in user32/cursoricon.
- Remove all calls to advapi's registry operations from gdi32 init and use defaults.

Modified:
    branches/arwinss/reactos/dll/win32/gdi32/driver.c
    branches/arwinss/reactos/dll/win32/gdi32/font.c
    branches/arwinss/reactos/dll/win32/gdi32/freetype.c
    branches/arwinss/reactos/dll/win32/gdi32/gdi32.rbuild
    branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec
    branches/arwinss/reactos/dll/win32/gdi32/gdi_private.h
    branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c

Modified: branches/arwinss/reactos/dll/win32/gdi32/driver.c
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/driver.c?rev=42025&r1=42024&r2=42025&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/driver.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/driver.c [iso-8859-1] Sat Jul 18 10:29:27 2009
@@ -237,22 +237,27 @@
         return display_driver;
     }
 
+#ifndef __REACTOS__
     strcpy( buffer, "x11" );  /* default value */
+#else
+    strcpy( buffer, "nt" );  /* default value */
+#endif
     /* @@ Wine registry key: HKCU\Software\Wine\Drivers */
+#if 0
     if (!RegOpenKeyA( HKEY_CURRENT_USER, "Software\\Wine\\Drivers", &hkey ))
     {
         DWORD type, count = sizeof(buffer);
         RegQueryValueExA( hkey, "Graphics", 0, &type, (LPBYTE) buffer, &count );
         RegCloseKey( hkey );
     }
-
+#endif
     name = buffer;
     while (name)
     {
         next = strchr( name, ',' );
         if (next) *next++ = 0;
 
-        snprintf( libname, sizeof(libname), "wine%s.drv", name );
+        _snprintf( libname, sizeof(libname), "wine%s.drv", name );
         if ((module = LoadLibraryA( libname )) != 0) break;
         name = next;
     }

Modified: branches/arwinss/reactos/dll/win32/gdi32/font.c
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/font.c?rev=42025&r1=42024&r2=42025&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/font.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/font.c [iso-8859-1] Sat Jul 18 10:29:27 2009
@@ -3298,3 +3298,16 @@
 
     return ret;
 }
+
+
+int
+WINAPI
+GdiAddFontResourceW(
+    LPCWSTR lpszFilename,
+    FLONG fl,
+    DESIGNVECTOR *pdv)
+{
+    FIXME("GdiAddFontResourceW(%S %p) UNIMPLEMENTED\n", lpszFilename, pdv);
+    return 0;
+}
+

Modified: branches/arwinss/reactos/dll/win32/gdi32/freetype.c
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/freetype.c?rev=42025&r1=42024&r2=42025&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/freetype.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/freetype.c [iso-8859-1] Sat Jul 18 10:29:27 2009
@@ -77,9 +77,12 @@
 #undef SetRectRgn
 #endif /* HAVE_CARBON_CARBON_H */
 
+#define WIN32_NO_STATUS
+#define NTOS_MODE_USER
 #include "windef.h"
 #include "winbase.h"
-#include "winternl.h"
+#include <ndk/ntndk.h>
+#include <ddk/ntstatus.h>
 #include "winerror.h"
 #include "winreg.h"
 #include "wingdi.h"
@@ -109,6 +112,10 @@
 #endif
 #ifdef HAVE_FREETYPE_FTSNAMES_H
 #include <freetype/ftsnames.h>
+#else
+# ifdef HAVE_FREETYPE_FTNAMES_H
+# include <freetype/ftnames.h>
+# endif
 #endif
 #ifdef HAVE_FREETYPE_TTNAMEID_H
 #include <freetype/ttnameid.h>
@@ -851,10 +858,10 @@
     Family *family;
     Face *face;
     const char *file;
-    DWORD len = WideCharToMultiByte(CP_UNIXCP, 0, file_name, -1, NULL, 0, NULL, NULL);
+    DWORD len = WideCharToMultiByte(CP_ACP, 0, file_name, -1, NULL, 0, NULL, NULL);
     char *file_nameA = HeapAlloc(GetProcessHeap(), 0, len);
 
-    WideCharToMultiByte(CP_UNIXCP, 0, file_name, -1, file_nameA, len, NULL, NULL);
+    WideCharToMultiByte(CP_ACP, 0, file_name, -1, file_nameA, len, NULL, NULL);
     TRACE("looking for file %s name %s\n", debugstr_a(file_nameA), debugstr_w(face_name));
 
     LIST_FOR_EACH_ENTRY(family, &font_list, Family, entry)
@@ -999,6 +1006,7 @@
 
 static void LoadSubstList(void)
 {
+#if 0
     FontSubst *psub;
     HKEY hkey;
     DWORD valuelen, datalen, i = 0, type, dlen, vlen;
@@ -1044,6 +1052,9 @@
 	HeapFree(GetProcessHeap(), 0, value);
 	RegCloseKey(hkey);
     }
+#else
+    UNIMPLEMENTED;
+#endif
 }
 
 
@@ -1576,6 +1587,7 @@
  */
 static void LoadReplaceList(void)
 {
+#if 0
     HKEY hkey;
     DWORD valuelen, datalen, i = 0, type, dlen, vlen;
     LPWSTR value;
@@ -1626,6 +1638,9 @@
 	HeapFree(GetProcessHeap(), 0, value);
 	RegCloseKey(hkey);
     }
+#else
+    UNIMPLEMENTED;
+#endif
 }
 
 /*************************************************************
@@ -1646,17 +1661,75 @@
     Family *family;
     Face *face;
     FontSubst *psub;
-
-    if(RegOpenKeyW(HKEY_LOCAL_MACHINE, system_link, &hkey) == ERROR_SUCCESS)
-    {
-        RegQueryInfoKeyW(hkey, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &max_val, &max_data, NULL, NULL);
+    NTSTATUS Status;
+    OBJECT_ATTRIBUTES Attributes;
+    UNICODE_STRING system_link = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\FontLink\\SystemLink");
+    KEY_FULL_INFORMATION FullInfoBuffer;
+    PKEY_FULL_INFORMATION FullInfo;
+    ULONG FullInfoSize, Length, total_size;
+    char buffer[256];
+    KEY_VALUE_FULL_INFORMATION *info = (KEY_VALUE_FULL_INFORMATION *)buffer;
+
+    InitializeObjectAttributes(&Attributes, &system_link, OBJ_CASE_INSENSITIVE, NULL, NULL);
+    Status = NtOpenKey(&hkey, KEY_READ, &Attributes);
+    if (NT_SUCCESS(Status))
+    {
+        FullInfoSize = sizeof(KEY_FULL_INFORMATION);
+        FullInfo = &FullInfoBuffer;
+        Status = NtQueryKey(hkey, KeyFullInformation, FullInfo, FullInfoSize, &Length);
+        if (!NT_SUCCESS(Status))
+        {
+            ERR("NtQueryKey failed with Status 0x%08X\n", Status);
+            NtClose(hkey);
+            return;
+        }
+
+        max_val = FullInfo->MaxValueNameLen / sizeof(WCHAR) + 1;
+        max_data = FullInfo->MaxValueDataLen;
+
         value = HeapAlloc(GetProcessHeap(), 0, (max_val + 1) * sizeof(WCHAR));
         data = HeapAlloc(GetProcessHeap(), 0, max_data);
         val_len = max_val + 1;
         data_len = max_data;
         index = 0;
-        while(RegEnumValueW(hkey, index++, value, &val_len, NULL, &type, (LPBYTE)data, &data_len) == ERROR_SUCCESS)
+        while(TRUE)
         {
+            total_size = FIELD_OFFSET( KEY_VALUE_FULL_INFORMATION, Name ) + (MAX_PATH + 1) * sizeof(WCHAR) + data_len;
+            total_size = min(sizeof(buffer), total_size);
+            Status = NtEnumerateValueKey(hkey, index++, KeyValueFullInformation, buffer, total_size, &total_size);
+            if (Status == STATUS_BUFFER_OVERFLOW)
+            {
+                UNIMPLEMENTED;
+            }
+            else if (!NT_SUCCESS(Status)) break;
+
+            /* Copy value */
+            if (info->NameLength/sizeof(WCHAR) < val_len)
+            {
+                memcpy( value, info->Name, info->NameLength );
+                val_len = info->NameLength / sizeof(WCHAR);
+                value[val_len] = 0;
+            }
+
+            /* Copy data */
+            if (total_size - info->DataOffset < data_len)
+            {
+                memcpy( data, buffer + info->DataOffset, total_size - info->DataOffset );
+                if (total_size - info->DataOffset <= data_len - sizeof(WCHAR) && 
+                    ((info->Type == REG_SZ) || (info->Type == REG_EXPAND_SZ) || (info->Type == REG_MULTI_SZ)))
+                {
+                    /* if the type is REG_SZ and data is not 0-terminated
+                    * and there is enough space in the buffer NT appends a \0 */
+                    WCHAR *ptr = (WCHAR *)(data + total_size - info->DataOffset);
+                    if (ptr > (WCHAR *)data && ptr[-1]) *ptr = 0;
+                }
+            }
+
+            /* Copy type and data length */
+            type = info->Type;
+            data_len = info->DataLength;
+
+
             memset(&fs, 0, sizeof(fs));
             psub = get_font_subst(&font_subst_list, value, -1);
             /* Don't store fonts that are only substitutes for other fonts */
@@ -1718,7 +1791,7 @@
 
         HeapFree(GetProcessHeap(), 0, value);
         HeapFree(GetProcessHeap(), 0, data);
-        RegCloseKey(hkey);
+        NtClose(hkey);
     }
 
     /* Explicitly add an entry for the system font, this links to Tahoma and any links
@@ -1759,6 +1832,7 @@
 
 static BOOL ReadFontDir(const char *dirname, BOOL external_fonts)
 {
+#if 0
     DIR *dir;
     struct dirent *dent;
     char path[MAX_PATH];
@@ -1792,6 +1866,13 @@
     }
     closedir(dir);
     return TRUE;
+#else
+    AddFontFileToList("C:\\ReactOS\\fonts\\tahoma.ttf", NULL, NULL, external_fonts ? ADDFONT_EXTERNAL_FONT : 0);
+    AddFontFileToList("C:\\ReactOS\\fonts\\symbol.ttf", NULL, NULL, external_fonts ? ADDFONT_EXTERNAL_FONT : 0);
+    AddFontFileToList("C:\\ReactOS\\fonts\\Marlett.ttf", NULL, NULL, external_fonts ? ADDFONT_EXTERNAL_FONT : 0);
+    UNIMPLEMENTED;
+    return TRUE;
+#endif
 }
 
 static void load_fontconfig_fonts(void)
@@ -1878,14 +1959,14 @@
         INT len;
         char *unix_name;
 
-        len = WideCharToMultiByte(CP_UNIXCP, 0, file, -1, NULL, 0, NULL, NULL);
+        len = WideCharToMultiByte(CP_ACP, 0, file, -1, NULL, 0, NULL, NULL);
 
         unix_name = HeapAlloc(GetProcessHeap(), 0, strlen(data_dir) + len + sizeof("/fonts/"));
 
         strcpy(unix_name, data_dir);
         strcat(unix_name, "/fonts/");
 
-        WideCharToMultiByte(CP_UNIXCP, 0, file, -1, unix_name + strlen(unix_name), len, NULL, NULL);
+        WideCharToMultiByte(CP_ACP, 0, file, -1, unix_name + strlen(unix_name), len, NULL, NULL);
 
         EnterCriticalSection( &freetype_cs );
         ret = AddFontFileToList(unix_name, NULL, NULL, ADDFONT_FORCE_BITMAP);
@@ -1900,29 +1981,28 @@
     static const WCHAR slashW[] = {'\\','\0'};
     BOOL ret = FALSE;
     WCHAR windowsdir[MAX_PATH];
-    char *unixname;
+    char windowsdirA[MAX_PATH];
 
     GetWindowsDirectoryW(windowsdir, sizeof(windowsdir) / sizeof(WCHAR));
     strcatW(windowsdir, fontsW);
     strcatW(windowsdir, slashW);
     strcatW(windowsdir, file);
-    if ((unixname = wine_get_unix_file_name(windowsdir))) {
-        EnterCriticalSection( &freetype_cs );
-        ret = AddFontFileToList(unixname, NULL, NULL, ADDFONT_FORCE_BITMAP);
-        LeaveCriticalSection( &freetype_cs );
-        HeapFree(GetProcessHeap(), 0, unixname);
-    }
+    sprintf(windowsdirA, "%S", windowsdir);
+    EnterCriticalSection( &freetype_cs );
+    ret = AddFontFileToList(windowsdirA, NULL, NULL, ADDFONT_FORCE_BITMAP);
+    LeaveCriticalSection( &freetype_cs );
     return ret;
 }
 
 static void load_system_fonts(void)
 {
+#if 0
     HKEY hkey;
     WCHAR data[MAX_PATH], windowsdir[MAX_PATH], pathW[MAX_PATH];
+    char pathA[MAX_PATH];
     const WCHAR * const *value;
     DWORD dlen, type;
     static const WCHAR fmtW[] = {'%','s','\\','%','s','\0'};
-    char *unixname;
 
     if(RegOpenKeyW(HKEY_CURRENT_CONFIG, system_fonts_reg_key, &hkey) == ERROR_SUCCESS) {
         GetWindowsDirectoryW(windowsdir, sizeof(windowsdir) / sizeof(WCHAR));
@@ -1934,16 +2014,15 @@
                 BOOL added = FALSE;
 
                 sprintfW(pathW, fmtW, windowsdir, data);
-                if((unixname = wine_get_unix_file_name(pathW))) {
-                    added = AddFontFileToList(unixname, NULL, NULL, ADDFONT_FORCE_BITMAP);
-                    HeapFree(GetProcessHeap(), 0, unixname);
-                }
+                sprintf(pathA, "%S", pathW);
+                added = AddFontFileToList(pathA, NULL, NULL, ADDFONT_FORCE_BITMAP);
                 if (!added)
                     load_font_from_data_dir(data);
             }
         }
         RegCloseKey(hkey);
     }
+#endif
 }
 
 /*************************************************************
@@ -1955,6 +2034,7 @@
  */
 static void update_reg_entries(void)
 {
+#if 0
     HKEY winnt_key = 0, win9x_key = 0, external_key = 0;
     LPWSTR valueW;
     DWORD len, len_fam;
@@ -2003,7 +2083,7 @@
             }
             strcatW(valueW, TrueType);
 
-            file = wine_get_dos_file_name(face->file);
+            file = NULL;//wine_get_dos_file_name(face->file);
             if(file)
                 len = strlenW(file) + 1;
             else
@@ -2030,10 +2110,14 @@
     if(win9x_key) RegCloseKey(win9x_key);
     if(winnt_key) RegCloseKey(winnt_key);
     return;
+#else
+    UNIMPLEMENTED;
+#endif
 }
 
 static void delete_external_font_keys(void)
 {
+#if 0
     HKEY winnt_key = 0, win9x_key = 0, external_key = 0;
     DWORD dlen, vlen, datalen, valuelen, i, type;
     LPWSTR valueW;
@@ -2086,6 +2170,9 @@
  end:
     if(win9x_key) RegCloseKey(win9x_key);
     if(winnt_key) RegCloseKey(winnt_key);
+#else
+    UNIMPLEMENTED;
+#endif
 }
 
 /*************************************************************
@@ -2105,6 +2192,7 @@
         if(flags)
             FIXME("Ignoring flags %x\n", flags);
 
+#if 0
         if((unixname = wine_get_unix_file_name(file)))
         {
             EnterCriticalSection( &freetype_cs );
@@ -2112,6 +2200,9 @@
             LeaveCriticalSection( &freetype_cs );
             HeapFree(GetProcessHeap(), 0, unixname);
         }
+#else
+        UNIMPLEMENTED;
+#endif
         if (!ret && !strchrW(file, '\\')) {
             /* Try in %WINDIR%/fonts, needed for Fotobuch Designer */
             ret = load_font_from_winfonts_dir(file);
@@ -2371,8 +2462,8 @@
 {
     HKEY hkey = 0;
 
-    RegCreateKeyExW(HKEY_LOCAL_MACHINE, winnt_font_reg_key, 0, NULL,
-                    0, KEY_ALL_ACCESS, NULL, &hkey, NULL);
+    //RegCreateKeyExW(HKEY_LOCAL_MACHINE, winnt_font_reg_key, 0, NULL,
+    //                0, KEY_ALL_ACCESS, NULL, &hkey, NULL);
     return hkey;
 }
 
@@ -2380,8 +2471,8 @@
 {
     HKEY hkey = 0;
 
-    RegCreateKeyExW(HKEY_LOCAL_MACHINE, win9x_font_reg_key, 0, NULL,
-                    0, KEY_ALL_ACCESS, NULL, &hkey, NULL);
+    //RegCreateKeyExW(HKEY_LOCAL_MACHINE, win9x_font_reg_key, 0, NULL,
+    //                0, KEY_ALL_ACCESS, NULL, &hkey, NULL);
     return hkey;
 }
 
@@ -2389,29 +2480,30 @@
 {
     HKEY hkey = 0;
 
-    RegCreateKeyExW(HKEY_CURRENT_CONFIG, system_fonts_reg_key, 0, NULL,
-                    0, KEY_ALL_ACCESS, NULL, &hkey, NULL);
+    //RegCreateKeyExW(HKEY_CURRENT_CONFIG, system_fonts_reg_key, 0, NULL,
+    //                0, KEY_ALL_ACCESS, NULL, &hkey, NULL);
     return hkey;
 }
 
 static void add_font_list(HKEY hkey, const struct nls_update_font_list *fl)
 {
-    RegSetValueExA(hkey, "Courier", 0, REG_SZ, (const BYTE *)fl->courier, strlen(fl->courier)+1);
-    RegSetValueExA(hkey, "MS Serif", 0, REG_SZ, (const BYTE *)fl->serif, strlen(fl->serif)+1);
-    RegSetValueExA(hkey, "MS Sans Serif", 0, REG_SZ, (const BYTE *)fl->sserif, strlen(fl->sserif)+1);
-    RegSetValueExA(hkey, "Small Fonts", 0, REG_SZ, (const BYTE *)fl->small, strlen(fl->small)+1);
+    //RegSetValueExA(hkey, "Courier", 0, REG_SZ, (const BYTE *)fl->courier, strlen(fl->courier)+1);
+    //RegSetValueExA(hkey, "MS Serif", 0, REG_SZ, (const BYTE *)fl->serif, strlen(fl->serif)+1);
+    //RegSetValueExA(hkey, "MS Sans Serif", 0, REG_SZ, (const BYTE *)fl->sserif, strlen(fl->sserif)+1);
+    //RegSetValueExA(hkey, "Small Fonts", 0, REG_SZ, (const BYTE *)fl->small, strlen(fl->small)+1);
 }
 
 static void set_value_key(HKEY hkey, const char *name, const char *value)
 {
-    if (value)
-        RegSetValueExA(hkey, name, 0, REG_SZ, (const BYTE *)value, strlen(value) + 1);
-    else if (name)
-        RegDeleteValueA(hkey, name);
+    //if (value)
+    //    RegSetValueExA(hkey, name, 0, REG_SZ, (const BYTE *)value, strlen(value) + 1);
+    //else if (name)
+    //    RegDeleteValueA(hkey, name);
 }
 
 static void update_font_info(void)
 {
+#if 0
     char buf[40], cpbuf[40];
     DWORD len, type;
     HKEY hkey = 0;
@@ -2508,6 +2600,9 @@
 
     /* Clear out system links */
     RegDeleteKeyW(HKEY_LOCAL_MACHINE, system_link);
+#else
+    UNIMPLEMENTED;
+#endif
 }
 
 static void populate_system_links(HKEY hkey, const WCHAR *name, const WCHAR *const *values)
@@ -2637,7 +2732,7 @@
 
 static BOOL init_freetype(void)
 {
-    ft_handle = wine_dlopen(SONAME_LIBFREETYPE, RTLD_NOW, NULL, 0);
+    ft_handle = LoadLibraryA("freetype.dll");
     if(!ft_handle) {
         WINE_MESSAGE(
       "Wine cannot find the FreeType font library.  To enable Wine to\n"
@@ -2647,7 +2742,7 @@
 	return FALSE;
     }
 
-#define LOAD_FUNCPTR(f) if((p##f = wine_dlsym(ft_handle, #f, NULL, 0)) == NULL){WARN("Can't find symbol %s\n", #f); goto sym_not_found;}
+#define LOAD_FUNCPTR(f) if((p##f = GetProcAddress(ft_handle, #f)) == NULL){WARN("Can't find symbol %s\n", #f); goto sym_not_found;}
 
     LOAD_FUNCPTR(FT_Vector_Unit)
     LOAD_FUNCPTR(FT_Done_Face)
@@ -2675,19 +2770,19 @@
 
 #undef LOAD_FUNCPTR
     /* Don't warn if these ones are missing */
-    pFT_Library_Version = wine_dlsym(ft_handle, "FT_Library_Version", NULL, 0);
-    pFT_Load_Sfnt_Table = wine_dlsym(ft_handle, "FT_Load_Sfnt_Table", NULL, 0);
-    pFT_Get_First_Char = wine_dlsym(ft_handle, "FT_Get_First_Char", NULL, 0);
-    pFT_Get_Next_Char = wine_dlsym(ft_handle, "FT_Get_Next_Char", NULL, 0);
-    pFT_Get_TrueType_Engine_Type = wine_dlsym(ft_handle, "FT_Get_TrueType_Engine_Type", NULL, 0);
+    pFT_Library_Version = GetProcAddress(ft_handle, "FT_Library_Version");
+    pFT_Load_Sfnt_Table = GetProcAddress(ft_handle, "FT_Load_Sfnt_Table");
+    pFT_Get_First_Char = GetProcAddress(ft_handle, "FT_Get_First_Char");
+    pFT_Get_Next_Char = GetProcAddress(ft_handle, "FT_Get_Next_Char");
+    pFT_Get_TrueType_Engine_Type = GetProcAddress(ft_handle, "FT_Get_TrueType_Engine_Type");
 #ifdef HAVE_FREETYPE_FTLCDFIL_H
-    pFT_Library_SetLcdFilter = wine_dlsym(ft_handle, "FT_Library_SetLcdFilter", NULL, 0);
+    pFT_Library_SetLcdFilter = GetProcAddress(ft_handle, "FT_Library_SetLcdFilter");
 #endif
 #ifdef HAVE_FREETYPE_FTWINFNT_H
-    pFT_Get_WinFNT_Header = wine_dlsym(ft_handle, "FT_Get_WinFNT_Header", NULL, 0);
+    pFT_Get_WinFNT_Header = GetProcAddress(ft_handle, "FT_Get_WinFNT_Header");
 #endif
-      if(!wine_dlsym(ft_handle, "FT_Get_Postscript_Name", NULL, 0) &&
-	 !wine_dlsym(ft_handle, "FT_Sqrt64", NULL, 0)) {
+      if(!GetProcAddress(ft_handle, "FT_Get_Postscript_Name") &&
+	 !GetProcAddress(ft_handle, "FT_Sqrt64")) {
 	/* try to avoid 2.0.4: >= 2.0.5 has FT_Get_Postscript_Name and
 	   <= 2.0.3 has FT_Sqrt64 */
 	  goto sym_not_found;
@@ -2695,7 +2790,7 @@
 
     if(pFT_Init_FreeType(&library) != 0) {
         ERR("Can't init FreeType library\n");
-	wine_dlclose(ft_handle, NULL, 0);
+	FreeLibrary(ft_handle);
         ft_handle = NULL;
 	return FALSE;
     }
@@ -2722,7 +2817,7 @@
       "font library.  To enable Wine to use TrueType fonts please upgrade\n"
       "FreeType to at least version 2.0.5.\n"
       "http://www.freetype.org\n");
-    wine_dlclose(ft_handle, NULL, 0);
+    FreeLibrary(ft_handle);
     ft_handle = NULL;
     return FALSE;
 }
@@ -2764,13 +2859,10 @@
     /* load in the fonts from %WINDOWSDIR%\\Fonts first of all */
     GetWindowsDirectoryW(windowsdir, sizeof(windowsdir) / sizeof(WCHAR));
     strcatW(windowsdir, fontsW);
-    if((unixname = wine_get_unix_file_name(windowsdir)))
-    {
-        ReadFontDir(unixname, FALSE);
-        HeapFree(GetProcessHeap(), 0, unixname);
-    }
+    ReadFontDir(windowsdir, FALSE);
 
     /* load the system truetype fonts */
+#if 0
     data_dir = wine_get_data_dir();
     if (!data_dir) data_dir = wine_get_build_dir();
     if (data_dir && (unixname = HeapAlloc(GetProcessHeap(), 0, strlen(data_dir) + sizeof("/fonts/")))) {
@@ -2779,11 +2871,13 @@
         ReadFontDir(unixname, TRUE);
         HeapFree(GetProcessHeap(), 0, unixname);
     }
+#endif
 
     /* now look under HKLM\Software\Microsoft\Windows[ NT]\CurrentVersion\Fonts
        for any fonts not installed in %WINDOWSDIR%\Fonts.  They will have their
        full path as the entry.  Also look for any .fon fonts, since ReadFontDir
        will skip these. */
+#if 0
     if(RegOpenKeyW(HKEY_LOCAL_MACHINE,
                    is_win9x() ? win9x_font_reg_key : winnt_font_reg_key,
 		   &hkey) == ERROR_SUCCESS) {
@@ -2802,11 +2896,7 @@
                                 &dlen) == ERROR_SUCCESS) {
                 if(data[0] && (data[1] == ':'))
                 {
-                    if((unixname = wine_get_unix_file_name(data)))
-                    {
-                        AddFontFileToList(unixname, NULL, NULL, ADDFONT_FORCE_BITMAP);
-                        HeapFree(GetProcessHeap(), 0, unixname);
-                    }
+                    AddFontFileToList(data, NULL, NULL, ADDFONT_FORCE_BITMAP);
                 }
                 else if(dlen / 2 >= 6 && !strcmpiW(data + dlen / 2 - 5, dot_fonW))
                 {
@@ -2815,11 +2905,7 @@
                     BOOL added = FALSE;
 
                     sprintfW(pathW, fmtW, windowsdir, data);
-                    if((unixname = wine_get_unix_file_name(pathW)))
-                    {
-                        added = AddFontFileToList(unixname, NULL, NULL, ADDFONT_FORCE_BITMAP);
-                        HeapFree(GetProcessHeap(), 0, unixname);
-                    }
+                    added = AddFontFileToList(pathW, NULL, NULL, ADDFONT_FORCE_BITMAP);
                     if (!added)
                         load_font_from_data_dir(data);
                 }
@@ -2832,11 +2918,12 @@
         HeapFree(GetProcessHeap(), 0, valueW);
 	RegCloseKey(hkey);
     }
-
+#endif
     load_fontconfig_fonts();
 
     /* then look in any directories that we've specified in the config file */
     /* @@ Wine registry key: HKCU\Software\Wine\Fonts */
+#if 0
     if(RegOpenKeyA(HKEY_CURRENT_USER, "Software\\Wine\\Fonts", &hkey) == ERROR_SUCCESS)
     {
         DWORD len;
@@ -2849,9 +2936,9 @@
             valueW = HeapAlloc( GetProcessHeap(), 0, len );
             if (RegQueryValueExW( hkey, pathW, NULL, NULL, (LPBYTE)valueW, &len ) == ERROR_SUCCESS)
             {
-                len = WideCharToMultiByte( CP_UNIXCP, 0, valueW, -1, NULL, 0, NULL, NULL );
+                len = WideCharToMultiByte( CP_ACP, 0, valueW, -1, NULL, 0, NULL, NULL );
                 valueA = HeapAlloc( GetProcessHeap(), 0, len );
-                WideCharToMultiByte( CP_UNIXCP, 0, valueW, -1, valueA, len, NULL, NULL );
+                WideCharToMultiByte( CP_ACP, 0, valueW, -1, valueA, len, NULL, NULL );
                 TRACE( "got font path %s\n", debugstr_a(valueA) );
                 ptr = valueA;
                 while (ptr)
@@ -2867,6 +2954,7 @@
         }
         RegCloseKey(hkey);
     }
+#endif
 
     DumpFontList();
     LoadSubstList();
@@ -2925,52 +3013,57 @@
 static struct font_mapping *map_font_file( const char *name )
 {
     struct font_mapping *mapping;
-    struct stat st;
-    int fd;
-
-    if ((fd = open( name, O_RDONLY )) == -1) return NULL;
-    if (fstat( fd, &st ) == -1) goto error;
+    //struct stat st;
+    HANDLE file, mapped_file;
+
+    file = CreateFileA( name, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
+    if (!file) return NULL;
 
     LIST_FOR_EACH_ENTRY( mapping, &mappings_list, struct font_mapping, entry )
     {
+#if 0
         if (mapping->dev == st.st_dev && mapping->ino == st.st_ino)
         {
             mapping->refcount++;
-            close( fd );
+            CloseHandle( file );
             return mapping;
         }
+#endif
     }
     if (!(mapping = HeapAlloc( GetProcessHeap(), 0, sizeof(*mapping) )))
         goto error;
 
-    mapping->data = mmap( NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0 );
-    close( fd );
-
-    if (mapping->data == MAP_FAILED)
+    mapped_file = CreateFileMappingW(file, NULL, PAGE_READONLY, 0, 0, NULL);
+    mapping->data = MapViewOfFile(mapped_file, FILE_MAP_READ, 0, 0, 0);
+    CloseHandle( file );
+
+    if (mapping->data == NULL)
     {
         HeapFree( GetProcessHeap(), 0, mapping );
         return NULL;
     }
     mapping->refcount = 1;
-    mapping->dev = st.st_dev;
-    mapping->ino = st.st_ino;
-    mapping->size = st.st_size;
+    //mapping->dev = st.st_dev;
+    //mapping->ino = st.st_ino;
+    //mapping->size = st.st_size;
     list_add_tail( &mappings_list, &mapping->entry );
     return mapping;
 
 error:
-    close( fd );
+    CloseHandle( file );
     return NULL;
 }
 
 static void unmap_font_file( struct font_mapping *mapping )
 {
+#if 0
     if (!--mapping->refcount)
     {
         list_remove( &mapping->entry );
         munmap( mapping->data, mapping->size );
         HeapFree( GetProcessHeap(), 0, mapping );
     }
+#endif
 }
 
 static LONG load_VDMX(GdiFont*, LONG);

Modified: branches/arwinss/reactos/dll/win32/gdi32/gdi32.rbuild
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/gdi32.rbuild?rev=42025&r1=42024&r2=42025&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/gdi32.rbuild [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/gdi32.rbuild [iso-8859-1] Sat Jul 18 10:29:27 2009
@@ -2,6 +2,7 @@
 	<importlibrary definition="gdi32.spec" />
 	<include base="gdi32">include</include>
 	<include base="ReactOS">include/reactos/wine</include>
+	<include base="ReactOS">dll/3rdparty/freetype/include</include>
 	<define name="_DISABLE_TIDENTS" />
 	<define name="WINVER">0x0600</define>
 	<define name="_WIN32_WINNT">0x0501</define>

Modified: branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec?rev=42025&r1=42024&r2=42025&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/gdi32.spec [iso-8859-1] Sat Jul 18 10:29:27 2009
@@ -8,18 +8,25 @@
 @ stdcall AddFontResourceW(wstr)
 @ stdcall AngleArc(long long long long long long)
 @ stdcall AnimatePalette(long long long ptr)
-# @ stub AnyLinkedFonts
+@ stub AnyLinkedFonts
 @ stdcall Arc(long long long long long long long long long)
 @ stdcall ArcTo(long long long long long long long long long)
+@ stub BRUSHOBJ_hGetColorTransform
+@ stub BRUSHOBJ_pvAllocRbrush
+@ stub BRUSHOBJ_pvGetRbrush
+@ stub BRUSHOBJ_ulGetBrushColor
 @ stdcall BeginPath(long)
 @ stdcall BitBlt(long long long long long long long long long)
 @ stub ByeByeGDI
+@ stub CLIPOBJ_bEnum
+@ stub CLIPOBJ_cEnumStart
+@ stub CLIPOBJ_ppoGetPath
 @ stdcall CancelDC(long)
 @ stub CheckColorsInGamut
 @ stdcall ChoosePixelFormat(long ptr)
 @ stdcall Chord(long long long long long long long long long)
-# @ stub ClearBitmapAttributes
-# @ stub ClearBrushAttributes
+@ stub ClearBitmapAttributes
+@ stub ClearBrushAttributes
 @ stdcall CloseEnhMetaFile(long)
 @ stdcall CloseFigure(long)
 @ stdcall CloseMetaFile(long)
@@ -51,8 +58,8 @@
 @ stdcall CreateEnhMetaFileW(long wstr ptr wstr)
 @ stdcall CreateFontA(long long long long long long long long long long long long long str)
 @ stdcall CreateFontIndirectA(ptr)
-# @ stub CreateFontIndirectExA
-# @ stub CreateFontIndirectExW
+@ stub CreateFontIndirectExA
+@ stub CreateFontIndirectExW
 @ stdcall CreateFontIndirectW(ptr)
 @ stdcall CreateFontW(long long long long long long long long long long long long long wstr)
 @ stdcall CreateHalftonePalette(long)
@@ -74,6 +81,63 @@
 @ stdcall CreateScalableFontResourceW(long wstr wstr wstr)
 @ stdcall CreateSolidBrush(long)
 @ stdcall DPtoLP(long ptr long)
+@ stub DdEntry0
+@ stub DdEntry10
+@ stub DdEntry11
+@ stub DdEntry12
+@ stub DdEntry13
+@ stub DdEntry14
+@ stub DdEntry15
+@ stub DdEntry16
+@ stub DdEntry17
+@ stub DdEntry18
+@ stub DdEntry19
+@ stub DdEntry1
+@ stub DdEntry20
+@ stub DdEntry21
+@ stub DdEntry22
+@ stub DdEntry23
+@ stub DdEntry24
+@ stub DdEntry25
+@ stub DdEntry26
+@ stub DdEntry27
+@ stub DdEntry28
+@ stub DdEntry29
+@ stub DdEntry2
+@ stub DdEntry30
+@ stub DdEntry31
+@ stub DdEntry32
+@ stub DdEntry33
+@ stub DdEntry34
+@ stub DdEntry35
+@ stub DdEntry36
+@ stub DdEntry37
+@ stub DdEntry38
+@ stub DdEntry39
+@ stub DdEntry3
+@ stub DdEntry40
+@ stub DdEntry41
+@ stub DdEntry42
+@ stub DdEntry43
+@ stub DdEntry44
+@ stub DdEntry45
+@ stub DdEntry46
+@ stub DdEntry47
+@ stub DdEntry48
+@ stub DdEntry49
+@ stub DdEntry4
+@ stub DdEntry50
+@ stub DdEntry51
+@ stub DdEntry52
+@ stub DdEntry53
+@ stub DdEntry54
+@ stub DdEntry55
+@ stub DdEntry56
+@ stub DdEntry5
+@ stub DdEntry6
+@ stub DdEntry7
+@ stub DdEntry8
+@ stub DdEntry9
 @ stdcall DeleteColorSpace(long)
 @ stdcall DeleteDC(long)
 @ stdcall DeleteEnhMetaFile(long)
@@ -87,9 +151,55 @@
 @ stdcall Ellipse(long long long long long)
 @ stdcall EnableEUDC(long)
 @ stdcall EndDoc(long)
-# @ stub EndFormPage
+@ stub EndFormPage
 @ stdcall EndPage(long)
 @ stdcall EndPath(long)
+@ stub EngAcquireSemaphore
+@ stub EngAlphaBlend
+@ stub EngAssociateSurface
+@ stub EngBitBlt
+@ stub EngCheckAbort
+@ stub EngComputeGlyphSet
+@ stub EngCopyBits
+@ stub EngCreateBitmap
+@ stub EngCreateClip
+@ stub EngCreateDeviceBitmap
+@ stub EngCreateDeviceSurface
+@ stub EngCreatePalette
+@ stub EngCreateSemaphore
+@ stub EngDeleteClip
+@ stub EngDeletePalette
+@ stub EngDeletePath
+@ stub EngDeleteSemaphore
+@ stub EngDeleteSurface
+@ stub EngEraseSurface
+@ stub EngFillPath
+@ stub EngFindResource
+@ stub EngFreeModule
+@ stub EngGetCurrentCodePage
+@ stub EngGetDriverName
+@ stub EngGetPrinterDataFileName
+@ stub EngGradientFill
+@ stub EngLineTo
+@ stub EngLoadModule
+@ stub EngLockSurface
+@ stub EngMarkBandingSurface
+@ stub EngMultiByteToUnicodeN
+@ stub EngMultiByteToWideChar
+@ stub EngPaint
+@ stub EngPlgBlt
+@ stub EngQueryEMFInfo
+@ stub EngQueryLocalTime
+@ stub EngReleaseSemaphore
+@ stub EngStretchBlt
+@ stub EngStretchBltROP
+@ stub EngStrokeAndFillPath
+@ stub EngStrokePath
+@ stub EngTextOut
+@ stub EngTransparentBlt
+@ stub EngUnicodeToMultiByteN
+@ stub EngUnlockSurface
+@ stub EngWideCharToMultiByte
 @ stdcall EnumEnhMetaFile(long long ptr ptr ptr)
 @ stdcall EnumFontFamiliesA(long str ptr long)
 @ stdcall EnumFontFamiliesExA(long ptr ptr long long)
@@ -103,8 +213,8 @@
 @ stdcall EnumObjects(long long ptr long)
 @ stdcall EqualRgn(long long)
 @ stdcall Escape(long long long ptr ptr)
-# @ stub EudcLoadLinkW
-# @ stub EudcUnloadLinkW
+@ stub EudcLoadLinkW
+@ stub EudcUnloadLinkW
 @ stdcall ExcludeClipRect(long long long long long)
 @ stdcall ExtCreatePen(long long ptr long ptr)
 @ stdcall ExtCreateRegion(ptr long ptr)
@@ -113,6 +223,14 @@
 @ stdcall ExtSelectClipRgn(long long long)
 @ stdcall ExtTextOutA(long long long long ptr str long ptr)
 @ stdcall ExtTextOutW(long long long long ptr wstr long ptr)
+@ stub FONTOBJ_cGetAllGlyphHandles
+@ stub FONTOBJ_cGetGlyphs
+@ stub FONTOBJ_pQueryGlyphAttrs
+@ stub FONTOBJ_pfdg
+@ stub FONTOBJ_pifi
+@ stub FONTOBJ_pvTrueTypeFontFile
+@ stub FONTOBJ_pxoGetXform
+@ stub FONTOBJ_vGetInfo
 @ stdcall FillPath(long)
 @ stdcall FillRgn(long long long)
 @ stdcall FixBrushOrgEx(long long long ptr)
@@ -121,18 +239,18 @@
 @ stdcall FontIsLinked(long)
 @ stdcall FrameRgn(long long long long long)
 @ stub FreeImageColorMatcher
-# @ stub GdiAddFontResourceW
-# @ stub GdiAddGlsBounds
-# @ stub GdiAddGlsRecord
+@ stdcall GdiAddFontResourceW(ptr ptr ptr)
+@ stub GdiAddGlsBounds
+@ stub GdiAddGlsRecord
 @ stdcall GdiAlphaBlend(long long long long long long long long long long long)
-# @ stub GdiArtificialDecrementDriver
+@ stub GdiArtificialDecrementDriver
 @ stub GdiAssociateObject
 @ stub GdiCleanCacheDC
 @ stdcall GdiComment(long long ptr)
-# @ stub GdiConsoleTextOut
+@ stub GdiConsoleTextOut
 @ stub GdiConvertAndCheckDC
 @ stub GdiConvertBitmap
-# @ stub GdiConvertBitmapV5
+@ stub GdiConvertBitmapV5
 @ stub GdiConvertBrush
 @ stub GdiConvertDC
 @ stub GdiConvertEnhMetaFile
@@ -161,71 +279,87 @@
 @ stub GdiDciSetDestination
 @ stub GdiDeleteLocalDC
 @ stub GdiDeleteLocalObject
-# @ stub GdiDeleteSpoolFileHandle
-# @ stub GdiDescribePixelFormat
+@ stub GdiDeleteSpoolFileHandle
+@ stub GdiDescribePixelFormat
 @ stub GdiDllInitialize
-# @ stub GdiDrawStream
-# @ stub GdiEndDocEMF
-# @ stub GdiEndPageEMF
-# @ stub GdiFixUpHandle
+@ stub GdiDrawStream
+@ stub GdiEndDocEMF
+@ stub GdiEndPageEMF
+@ stub GdiEntry10
+@ stub GdiEntry11
+@ stub GdiEntry12
+@ stub GdiEntry13
+@ stub GdiEntry14
+@ stub GdiEntry15
+@ stub GdiEntry16
+@ stub GdiEntry1
+@ stub GdiEntry2
+@ stub GdiEntry3
+@ stub GdiEntry4
+@ stub GdiEntry5
+@ stub GdiEntry6
+@ stub GdiEntry7
+@ stub GdiEntry8
+@ stub GdiEntry9
+@ stub GdiFixUpHandle
 @ stdcall GdiFlush()
-# @ stub GdiFullscreenControl
+@ stub GdiFullscreenControl
 @ stdcall GdiGetBatchLimit()
 @ stdcall GdiGetCharDimensions(long ptr ptr)
 @ stdcall GdiGetCodePage(long)
-# @ stub GdiGetDC
-# @ stub GdiGetDevmodeForPage
+@ stub GdiGetDC
+@ stub GdiGetDevmodeForPage
 @ stub GdiGetLocalBitmap
 @ stub GdiGetLocalBrush
 @ stub GdiGetLocalDC
 @ stub GdiGetLocalFont
-# @ stub GdiGetPageCount
-# @ stub GdiGetPageHandle
-# @ stub GdiGetSpoolFileHandle
+@ stub GdiGetPageCount
+@ stub GdiGetPageHandle
+@ stub GdiGetSpoolFileHandle
 @ stdcall GdiGetSpoolMessage(ptr long ptr long)
 @ stdcall GdiGradientFill(long ptr long ptr long long) 
 @ stdcall GdiInitSpool()
-# @ stub GdiInitializeLanguagePack
+@ stub GdiInitializeLanguagePack
 @ stdcall GdiIsMetaFileDC(long)
 @ stdcall GdiIsMetaPrintDC(long)
 @ stdcall GdiIsPlayMetafileDC(long)
 @ stub GdiPlayDCScript
-# @ stub GdiPlayEMF
+@ stub GdiPlayEMF
 @ stub GdiPlayJournal
-# @ stub GdiPlayPageEMF
-# @ stub GdiPlayPrivatePageEMF
+@ stub GdiPlayPageEMF
+@ stub GdiPlayPrivatePageEMF
 @ stub GdiPlayScript
-# @ stub GdiPrinterThunk
-# @ stub GdiProcessSetup
-# @ stub GdiQueryFonts
-# @ stub GdiQueryTable
+@ stub GdiPrinterThunk
+@ stub GdiProcessSetup
+@ stub GdiQueryFonts
+@ stub GdiQueryTable
 @ stdcall GdiRealizationInfo(long ptr)
-# @ stub GdiReleaseDC
+@ stub GdiReleaseDC
 @ stub GdiReleaseLocalDC
-# @ stub GdiResetDCEMF
+@ stub GdiResetDCEMF
 @ stub GdiSetAttrs
 @ stdcall GdiSetBatchLimit(long)
-# @ stub GdiSetLastError
-# @ stub GdiSetPixelFormat
+@ stub GdiSetLastError
+@ stub GdiSetPixelFormat
 @ stub GdiSetServerAttr
-# @ stub GdiStartDocEMF
-# @ stub GdiStartPageEMF
-# @ stub GdiSwapBuffers
+@ stub GdiStartDocEMF
+@ stub GdiStartPageEMF
+@ stub GdiSwapBuffers
 @ stdcall GdiTransparentBlt(long long long long long long long long long long long)
-# @ stub GdiValidateHandle
+@ stub GdiValidateHandle
 @ stub GdiWinWatchClose
 @ stub GdiWinWatchDidStatusChange
 @ stub GdiWinWatchGetClipList
 @ stub GdiWinWatchOpen
 @ stdcall GetArcDirection(long)
 @ stdcall GetAspectRatioFilterEx(long ptr)
-# @ stub GetBitmapAttributes
+@ stub GetBitmapAttributes
 @ stdcall GetBitmapBits(long long ptr)
 @ stdcall GetBitmapDimensionEx(long ptr)
 @ stdcall GetBkColor(long)
 @ stdcall GetBkMode(long)
 @ stdcall GetBoundsRect(long ptr long)
-# @ stub GetBrushAttributes
+@ stub GetBrushAttributes
 @ stdcall GetBrushOrgEx(long ptr)
 @ stdcall GetCharABCWidthsA(long long long ptr)
 @ stdcall GetCharABCWidthsFloatA(long long long ptr)
@@ -238,7 +372,7 @@
 @ stdcall GetCharWidthFloatA(long long long ptr)
 @ stdcall GetCharWidthFloatW(long long long ptr)
 @ stdcall GetCharWidthI(ptr long long ptr ptr)
-# @ stub GetCharWidthInfo
+@ stub GetCharWidthInfo
 @ stdcall GetCharWidthW(long long long long) GetCharWidth32W
 @ stub GetCharWidthWOW
 @ stdcall GetCharacterPlacementA(long str long long ptr long)
@@ -257,17 +391,17 @@
 @ stdcall GetDeviceCaps(long long)
 @ stdcall GetDeviceGammaRamp(long ptr)
 @ stub GetETM
-# @ stub GetEUDCTimeStamp
-# @ stub GetEUDCTimeStampExW
+@ stub GetEUDCTimeStamp
+@ stub GetEUDCTimeStampExW
 @ stdcall GetEnhMetaFileA(str)
 @ stdcall GetEnhMetaFileBits(long long ptr)
 @ stdcall GetEnhMetaFileDescriptionA(long long ptr)
 @ stdcall GetEnhMetaFileDescriptionW(long long ptr)
 @ stdcall GetEnhMetaFileHeader(long long ptr)
 @ stdcall GetEnhMetaFilePaletteEntries (long long ptr)
-# @ stub GetEnhMetaFilePixelFormat
+@ stub GetEnhMetaFilePixelFormat
 @ stdcall GetEnhMetaFileW(wstr)
-# @ stub GetFontAssocStatus
+@ stub GetFontAssocStatus
 @ stdcall GetFontData(long long long ptr long)
 @ stdcall GetFontLanguageInfo(long)
 @ stub GetFontResourceInfo
@@ -280,7 +414,7 @@
 @ stdcall GetGlyphOutlineW(long long long ptr long ptr ptr)
 @ stub GetGlyphOutlineWow
 @ stdcall GetGraphicsMode(long)
-# @ stub GetHFONT
+@ stub GetHFONT
 @ stdcall GetICMProfileA(long ptr ptr)
 @ stdcall GetICMProfileW(long ptr ptr)
 @ stdcall GetKerningPairs(long long ptr) GetKerningPairsA
@@ -315,8 +449,8 @@
 @ stdcall GetRgnBox(long ptr)
 @ stdcall GetStockObject(long)
 @ stdcall GetStretchBltMode(long)
-# @ stub GetStringBitmapA
-# @ stub GetStringBitmapW
+@ stub GetStringBitmapA
+@ stub GetStringBitmapW
 @ stdcall GetSystemPaletteEntries(long long long ptr)
 @ stdcall GetSystemPaletteUse(long)
 @ stdcall GetTextAlign(long)
@@ -327,14 +461,14 @@
 @ stdcall GetTextExtentExPointA(long str long long ptr ptr ptr)
 @ stdcall GetTextExtentExPointI(long ptr long long ptr ptr ptr)
 @ stdcall GetTextExtentExPointW(long wstr long long ptr ptr ptr)
-# @ stub GetTextExtentExPointWPri
+@ stub GetTextExtentExPointWPri
 @ stdcall GetTextExtentPoint32A(long str long ptr)
 @ stdcall GetTextExtentPoint32W(long wstr long ptr)
 @ stdcall GetTextExtentPointA(long str long ptr)
 @ stdcall GetTextExtentPointI(long ptr long ptr)
 @ stdcall GetTextExtentPointW(long wstr long ptr)
 @ stdcall GetTextFaceA(long long ptr)
-# @ stub GetTextFaceAliasW
+@ stub GetTextFaceAliasW
 @ stdcall GetTextFaceW(long long ptr)
 @ stdcall GetTextMetricsA(long ptr)
 @ stdcall GetTextMetricsW(long ptr)
@@ -347,15 +481,15 @@
 @ stdcall GetWorldTransform(long ptr)
 @ stdcall IntersectClipRect(long long long long long)
 @ stdcall InvertRgn(long long)
-# @ stub IsValidEnhMetaRecord
-# @ stub IsValidEnhMetaRecordOffExt
+@ stub IsValidEnhMetaRecord
+@ stub IsValidEnhMetaRecordOffExt
 @ stdcall LPtoDP(long ptr long)
 @ stdcall LineDDA(long long long long ptr long)
 @ stdcall LineTo(long long long)
 @ stub LoadImageColorMatcherA
 @ stub LoadImageColorMatcherW
 @ stdcall MaskBlt(long long long long long long long long long long long long)
-# @ stub MirrorRgn
+@ stub MirrorRgn
 @ stdcall ModifyWorldTransform(long ptr long)
 @ stdcall MoveToEx(long long long ptr)
 @ stdcall NamedEscape(long wstr long long ptr long ptr)
@@ -375,7 +509,7 @@
 @ stdcall PolyBezier(long ptr long)
 @ stdcall PolyBezierTo(long ptr long)
 @ stdcall PolyDraw(long ptr ptr long)
-# @ stub PolyPatBlt
+@ stub PolyPatBlt
 @ stdcall PolyPolygon(long ptr ptr long)
 @ stdcall PolyPolyline(long ptr ptr long)
 @ stdcall PolyTextOutA(long ptr long)
@@ -385,7 +519,7 @@
 @ stdcall PolylineTo(long ptr long)
 @ stdcall PtInRegion(long long long)
 @ stdcall PtVisible(long long long)
-# @ stub QueryFontAssocStatus
+@ stub QueryFontAssocStatus
 @ stdcall RealizePalette(long)
 @ stdcall RectInRegion(long ptr)
 @ stdcall RectVisible(long ptr)
@@ -412,13 +546,13 @@
 @ stdcall SelectPalette(long long long)
 @ stdcall SetAbortProc(long ptr)
 @ stdcall SetArcDirection(long long)
-# @ stub SetBitmapAttributes
+@ stub SetBitmapAttributes
 @ stdcall SetBitmapBits(long long ptr)
 @ stdcall SetBitmapDimensionEx(long long long ptr)
 @ stdcall SetBkColor(long long)
 @ stdcall SetBkMode(long long)
 @ stdcall SetBoundsRect(long ptr long)
-# @ stub SetBrushAttributes
+@ stub SetBrushAttributes
 @ stdcall SetBrushOrgEx(long long long ptr)
 @ stdcall SetColorAdjustment(long ptr)
 @ stdcall SetColorSpace(long long)
@@ -435,7 +569,7 @@
 @ stdcall SetICMProfileA(long str)
 @ stdcall SetICMProfileW(long wstr)
 @ stdcall SetLayout(long long)
-# @ stub SetLayoutWidth
+@ stub SetLayoutWidth
 @ stdcall SetMagicColors(ptr long long)
 @ stdcall SetMapMode(long long)
 @ stdcall SetMapperFlags(long long)
@@ -466,7 +600,7 @@
 @ stdcall SetWorldTransform(long ptr)
 @ stdcall StartDocA(long ptr)
 @ stdcall StartDocW(long ptr)
-# @ stub StartFormPage
+@ stub StartFormPage
 @ stdcall StartPage(long)
 @ stdcall StretchBlt(long long long long long long long long long long long)
 @ stdcall StretchDIBits(long long long long long long long long long ptr ptr long long)
@@ -483,6 +617,9 @@
 @ stdcall UpdateICMRegKeyA(long str str long)
 @ stdcall UpdateICMRegKeyW(long wstr wstr long)
 @ stdcall WidenPath(long)
+@ stub bInitSystemAndFontsDirectoriesW
+@ stub bMakePathNameW
+@ stub cGetTTFFromFOT
 @ stub gdiPlaySpoolStream
 @ extern pfnRealizePalette
 @ extern pfnSelectPalette

Modified: branches/arwinss/reactos/dll/win32/gdi32/gdi_private.h
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/gdi_private.h?rev=42025&r1=42024&r2=42025&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/gdi_private.h [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/gdi_private.h [iso-8859-1] Sat Jul 18 10:29:27 2009
@@ -516,5 +516,23 @@
 BOOL WINAPI FontIsLinked(HDC);
 
 BOOL WINAPI SetVirtualResolution(HDC hdc, DWORD horz_res, DWORD vert_res, DWORD horz_size, DWORD vert_size);
+NTSYSAPI
+VOID
+NTAPI
+RtlAssert(
+    PVOID FailedAssertion,
+    PVOID FileName,
+    ULONG LineNumber,
+    PCHAR Message
+);
+
+#ifdef assert
+#undef assert
+#endif
+#define assert(x) if (!(x)) {RtlAssert("#x",__FILE__,__LINE__, ""); }
+
+#ifndef ASSERT
+#define ASSERT(x) if (!(x)) {RtlAssert("#x",__FILE__,__LINE__, ""); }
+#endif
 
 #endif /* __WINE_GDI_PRIVATE_H */

Modified: branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c?rev=42025&r1=42024&r2=42025&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/gdi32/gdiobj.c [iso-8859-1] Sat Jul 18 10:29:27 2009
@@ -492,6 +492,7 @@
 static DWORD get_dpi( void )
 {
     DWORD dpi = 96;
+#if 0
     HKEY hkey;
 
     if (RegOpenKeyW(HKEY_CURRENT_CONFIG, dpi_key_name, &hkey) == ERROR_SUCCESS)
@@ -506,6 +507,7 @@
         }
         RegCloseKey(hkey);
     }
+#endif
     return dpi;
 }
 



More information about the Ros-diffs mailing list