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/... ============================================================================== --- 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/... ============================================================================== --- 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/... ============================================================================== --- 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%5Cn"); - 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/... ============================================================================== --- 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/... ============================================================================== --- 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/... ============================================================================== --- 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/... ============================================================================== --- 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; }