Re: user32: Do not allow a change of capture if the currently capture window is a menu unless explicitly specified

2010-01-06 Thread Paul Vriens

On 01/07/2010 03:33 AM, Peter Dons Tychsen wrote:

+/* check that SetCapture fails for another window and that it does 
not touch the error code */
+set_cap_wnd = SetCapture(hWnd);
+err = GetLastError();
+ok(!set_cap_wnd, "ReleaseCapture should have failed!\n");
+ok(err == ERROR_SUCCESS, "Bad error-code from SetCapture. got %08X 
expected %08X\n", err, 0);
+
+/* check that ReleaseCapture fails and does not touch the error 
code */
+status = ReleaseCapture();
+err = GetLastError();
+ok(!status, "ReleaseCapture should have failed!\n");
+ok(err == ERROR_SUCCESS, "Bad error-code from ReleaseCapture. got %08X 
expected %08X\n", err, 0);


Hi Peter,

The comment says 'does not touch the error code' but the tests don't 
actually prove this. In general when we try to get a true hold of the 
last error to see if it changed we set it first, f.e. 
"SetLastError(0xdeadbeef)".


--
Cheers,

Paul.




Re: gdi32: Use the LOGFONT charset field on OEM font creation

2010-01-06 Thread Ilya Shpigor
On Tuesday 05 January 2010 17:08:52 Dmitry Timoshkov wrote:
> "Ilya Shpigor"  wrote:
> > Some explanation for this patch:
> >
> > The fsCsb is bitfield that is used as boolean value. If this is false the
> > DEFAULT_CHARSET is using and the real charset is choosen through the
> > current ANSI codepage. But this is mistake in case of the OEM charset.
>
> A real fix would be to add "Terminal" font to Wine.

If the "Terminal" font will be changed in test to "Tahoma" this still be 
failed.

Are you sure what the current behavior of the WineEngCreateFontInstance is 
correct? When the user create logical font with OEM charset the 
GetTextCharset function will be always return ANSI independently of font 
name. This conversions occurs because of the current logic 
WineEngCreateFontInstance.

Can there be a solution for the already existed fonts?

-- 
Best regards,
Ilya Shpigor.




Re: FIXMEs in DllCanUnloadNow and friends (and how to handle them)

2010-01-06 Thread James McKenzie
Reece Dunn wrote:
> Hi,
>
> As a result of the "Wine FIXME Report 2009 Aug - Dec" thread, I
> created the following to hunt for DllCanUnloadNow calls that were
> marked as being FIXME stubs:
>   
Thank you for the patch, Reece.

James McKenzie





Re: mlang: [RESEND] Print a FIXME only for unused parameter (Wine FIXME Report)

2010-01-06 Thread James Hawkins
On Wed, Jan 6, 2010 at 3:28 PM, Detlef Riekenberg  wrote:
> According to MSDN, both parameter are unused and must be 0/NULL
> A FIXME for every call is useless
>
> (there is no PATCH 1/2, so a resend without that prefix)
>
> --
> By by ... Detlef
>
>
> ---
>  dlls/mlang/mlang.c |    8 
>  1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/dlls/mlang/mlang.c b/dlls/mlang/mlang.c
> index 49f0605..9abe124 100644
> --- a/dlls/mlang/mlang.c
> +++ b/dlls/mlang/mlang.c
> @@ -3007,9 +3007,6 @@ exit:
>     return hr;
>  }
>
> -/*
> - * TODO: handle dwFlag and lpFallBack
> -*/
>  static HRESULT WINAPI fnIMultiLanguage2_ConvertStringToUnicodeEx(
>     IMultiLanguage3* iface,
>     DWORD* pdwMode,
> @@ -3021,7 +3018,10 @@ static HRESULT WINAPI 
> fnIMultiLanguage2_ConvertStringToUnicodeEx(
>     DWORD dwFlag,
>     WCHAR* lpFallBack)
>  {
> -    FIXME("\n");
> +    if (dwFlag || (lpFallBack != NULL))
> +        FIXME("Ignoring dwFlag (0x%x/%d) and lpFallBack (%p)\n",
> +                dwFlag, dwFlag, lpFallBack);
> +

if (dwFlag || lpFallBack)

seems to be simpler and easier to read.

-- 
James Hawkins




New Icon set

2010-01-06 Thread Detlef Riekenberg
Hi Joel

When I read your preview page in Firefox, the lens for print preview in 
idb_std_small.bmp is to large.
You can't detect the printer behind the lens. (LCD Resolution here is 1400x1050)

As an Idea for an improvement, the print preview menu icon in Firefox is 
readable:
The lens is a bit smaller but more important, the inner circle of the lens is 
transparent.

Thanks for your artwork.

-- 
By by ... Detlef




___
Preisknaller: WEB.DE DSL Flatrate für nur 16,99 Euro/mtl.! 
http://produkte.web.de/go/02/





Re: Wine FIXME Report 2009 Aug - Dec

2010-01-06 Thread Kai Blin
On Wednesday 06 January 2010 17:49:12 Kai Blin wrote:

> I'll send a patch.

I see Wolfram beat me to it. :)

Cheers,
Kai

-- 
Kai Blin
WorldForge developer  http://www.worldforge.org/
Wine developerhttp://wiki.winehq.org/KaiBlin
Samba team member http://www.samba.org/samba/team/
--
Will code for cotton.


signature.asc
Description: This is a digitally signed message part.



Re: [PATCH] kernel32: GetPrivateProfileSectionNamesA error checking (Coverity)

2010-01-06 Thread Dan Kegel
On Wed, Jan 6, 2010 at 7:21 AM, Alexandre Julliard  wrote:
> Crashing is the best behavior. Adding parameter checks all over the
> place only hides bugs.

I keep forgetting that crashing is good sometimes :-)




Re: Wine FIXME Report 2009 Aug - Dec

2010-01-06 Thread Kai Blin
On Wednesday 06 January 2010 01:02:04 Reece Dunn wrote:
> 2010/1/5 Michael Stefaniuc :
> >  2040  |  36   | ntdll:RtlNtStatusToDosErrorNoTeb no mapping for c109
>
> 0xc109 is NT_STATUS_MESSAGE_NOT_FOUND according to
> http://lists.samba.org/archive/jcifs/2004-February/003038.html.
>
> Interestingly, in dlls/ntdll/tests/error.c, there is already an entry
> for STATUS_MESSAGE_NOT_FOUND, so I am not sure where this fixme is
> originating (older version of wine?):
>  511 cmp(STATUS_MESSAGE_NOT_FOUND,   
> ERROR_MR_MID_NOT_FOUND);

Nope, that fixme is still in the code. To quote from dlls/ntdll/error.c:

while (table->start)
{
if (status < table->start) break;
if (status < table->end)
{
DWORD ret = table->table[status - table->start];
if (ret == ERROR_MR_MID_NOT_FOUND) FIXME( "no mapping for %08x\n", 
status );
^^^
return ret;
}
table++;
}

So there's an explicit test for the STATUS_MESSAGE_NOT_FOUND mapping, as 
that's also used for a "No mapping found" return in the mapping table. It 
looks like it'd make sense to change that if check to

if (ret == ERROR_MR_MID_NOT_FOUND && status != STATUS_MESSAGE_NOT_FOUND) 
FIXME(...);

I'll send a patch.

Cheers,
Kai

-- 
Kai Blin
WorldForge developer  http://www.worldforge.org/
Wine developerhttp://wiki.winehq.org/KaiBlin
Samba team member http://www.samba.org/samba/team/
--
Will code for cotton.


signature.asc
Description: This is a digitally signed message part.



Re: [PATCH] kernel32: GetPrivateProfileSectionNamesA error checking (Coverity)

2010-01-06 Thread Alexandre Julliard
Dan Kegel  writes:

> AJ wrote:
>> Marcus Meissner  writes:
>>> buffer and size need to be either 0 at the same time or not,
>>> otherwise this breaks up. Windows is inconsistent (either crashes
>>> or returns invalids), so we can just add checking.
>>
>>If Windows crashes we don't need extra checks. Just tell Coverity that
>>crashing is allowed here.
>
> If later versions of Windows return INVALID_PARAMETER,
> wouldn't it be ok for Wine to do so rather than crashing?
> In other words, isn't it ok to emulate the 'best' behaved
> version of windows in cases like this, rather than the 'worst'?

Crashing is the best behavior. Adding parameter checks all over the
place only hides bugs.

-- 
Alexandre Julliard
julli...@winehq.org




Re: [PATCH] kernel32: GetPrivateProfileSectionNamesA error checking (Coverity)

2010-01-06 Thread Paul Vriens

On 01/06/2010 04:03 PM, Dan Kegel wrote:

AJ wrote:

Marcus Meissner  writes:

buffer and size need to be either 0 at the same time or not,
otherwise this breaks up. Windows is inconsistent (either crashes
or returns invalids), so we can just add checking.


If Windows crashes we don't need extra checks. Just tell Coverity that
crashing is allowed here.


If later versions of Windows return INVALID_PARAMETER,
wouldn't it be ok for Wine to do so rather than crashing?
In other words, isn't it ok to emulate the 'best' behaved
version of windows in cases like this, rather than the 'worst'?


I could agree with that in general. This particular one crashes on all 
of the boxes at winetestbot though:


https://winetestbot.geldorp.nl/JobDetails.pl?Key=254

One unfortunate thing is of course that we would have a hard time fixing 
tests on boxes that would crash whereas newer ones don't.


--
Cheers,

Paul.




Re: [PATCH] Don't generate FIXME warnings for DllCanUnloadNow.

2010-01-06 Thread Reece Dunn
2010/1/6 Maarten Lankhorst :
> Hi Reece,
>
> Reece Dunn schreef:
>>
>> NOTE: Some of the DllCanUnloadNow functions always return S_OK. I
>> intend to address that in a separate patch once I have investigated
>> whether the DLLs implement COM objects or not.
>>
>
> When a dll is first implemented it probably returns S_OK since no interfaces
> were used yet, but some programs just depended on the dll being present.
> However the FIXME should not be removed then, since if it does implement
> interfaces and it gets freed while in use this can be a serious crash. I'd
> rather have that message then as a red flag for investigation. Returning
> nothing in case of S_FALSE is fine though, but a TRACE() would still be nice
> there just in case.

Ok.

I'll keep the FIXMEs for the ones that return S_OK and convert the
others to TRACE.

Thanks,
- Reece




re: [PATCH] kernel32: GetPrivateProfileSectionNamesA error checking (Coverity)

2010-01-06 Thread Dan Kegel
AJ wrote:
> Marcus Meissner  writes:
>> buffer and size need to be either 0 at the same time or not,
>> otherwise this breaks up. Windows is inconsistent (either crashes
>> or returns invalids), so we can just add checking.
>
>If Windows crashes we don't need extra checks. Just tell Coverity that
>crashing is allowed here.

If later versions of Windows return INVALID_PARAMETER,
wouldn't it be ok for Wine to do so rather than crashing?
In other words, isn't it ok to emulate the 'best' behaved
version of windows in cases like this, rather than the 'worst'?




Re: [PATCH] Don't generate FIXME warnings for DllCanUnloadNow.

2010-01-06 Thread Maarten Lankhorst

Hi Reece,

Reece Dunn schreef:

NOTE: Some of the DllCanUnloadNow functions always return S_OK. I
intend to address that in a separate patch once I have investigated
whether the DLLs implement COM objects or not.
  
When a dll is first implemented it probably returns S_OK since no 
interfaces were used yet, but some programs just depended on the dll 
being present. However the FIXME should not be removed then, since if it 
does implement interfaces and it gets freed while in use this can be a 
serious crash. I'd rather have that message then as a red flag for 
investigation. Returning nothing in case of S_FALSE is fine though, but 
a TRACE() would still be nice there just in case.


Cheers,
Maarten.




Re: The (Casual) Game Support Report in Wine (Jan 2009)

2010-01-06 Thread Reece Dunn
2010/1/6 David Gerard :
> whoops, sending to list as well!
>
> 2010/1/5 Reece Dunn :
>
>>  2/  the major issues appear to be in the application launchers used
>> by different game providers (most of which are in the current wine
>> implementation of the IE browser ActiveX control);
>
> Curious question: you tested with IE6, how do things work if you
> install IE7? Any better?

If you read down into the comments on the various game vendors (e.g.
Big Fish Games), I noted that with IE7 installed via winetricks, the
game launcher crashes.

I have not done any extensive investigation/analysis at this point
(maybe for the February report :)).

>From experience:
  -  Wine/Gecko will display some pages and work with some vendors, but not all
  -  IE6 works
  -  IE7 crashes when used as an ActiveX component (but works as a
browser via iexplore)
  -  IE8 does not work (even as a browser) when using the IE7 recipe

See the original report for comments on what works with each vendor.

- Reece




Fwd: The (Casual) Game Support Report in Wine (Jan 2009)

2010-01-06 Thread David Gerard
whoops, sending to list as well!


-- Forwarded message --
From: David Gerard 
Date: 2010/1/6
Subject: Re: The (Casual) Game Support Report in Wine (Jan 2009)
To: Reece Dunn 


2010/1/5 Reece Dunn :

>  2/  the major issues appear to be in the application launchers used
> by different game providers (most of which are in the current wine
> implementation of the IE browser ActiveX control);


Curious question: you tested with IE6, how do things work if you
install IE7? Any better?

(I installed IE7 with winetricks to see if I could get the ActiveX
control for our work VPN going. It didn't work, and I didn't expect it
to - it uses ActiveX to completely take over and try to secure a
Windows installation, and I think it just recoiled in horror when it
found itself in Wine on Linux - but I routinely use it now to check
website rendering. It's really horrible. But useful.)


- d.




Re: [PATCH] kernel32: GetPrivateProfileSectionNamesA error checking (Coverity)

2010-01-06 Thread Paul Vriens

On 01/06/2010 01:59 PM, Marcus Meissner wrote:

diff --git a/dlls/kernel32/tests/profile.c b/dlls/kernel32/tests/profile.c
index e3f7156..8e64e73 100644
--- a/dlls/kernel32/tests/profile.c
+++ b/dlls/kernel32/tests/profile.c
@@ -266,6 +266,10 @@ static void test_profile_sections_names(void)
  WriteFile( h, content, sizeof(content),&count, NULL);
  CloseHandle( h);

+ret = GetPrivateProfileSectionNames( NULL, 2, testfile3);
+ok (ret == 0, "NULL buf but non-0 size, expected error\n");
+ret = GetPrivateProfileSectionNames( buf, 29, NULL);
+ok (ret == 0, "NULL filename, expected error\n");
  /* Test with sufficiently large buffer */
  memset(buf, 0xc, sizeof(buf));
  ret = GetPrivateProfileSectionNamesA( buf, 29, testfile3 );


Just crosscompiled for you, but winetestbot accepts patches these days ;)

--
Cheers,

Paul.




Re: [PATCH] kernel32: GetPrivateProfileSectionNamesA error checking (Coverity)

2010-01-06 Thread Paul Vriens

On 01/06/2010 01:59 PM, Marcus Meissner wrote:

diff --git a/dlls/kernel32/tests/profile.c b/dlls/kernel32/tests/profile.c
index e3f7156..8e64e73 100644
--- a/dlls/kernel32/tests/profile.c
+++ b/dlls/kernel32/tests/profile.c
@@ -266,6 +266,10 @@ static void test_profile_sections_names(void)
  WriteFile( h, content, sizeof(content),&count, NULL);
  CloseHandle( h);

+ret = GetPrivateProfileSectionNames( NULL, 2, testfile3);
+ok (ret == 0, "NULL buf but non-0 size, expected error\n");
+ret = GetPrivateProfileSectionNames( buf, 29, NULL);
+ok (ret == 0, "NULL filename, expected error\n");
  /* Test with sufficiently large buffer */
  memset(buf, 0xc, sizeof(buf));
  ret = GetPrivateProfileSectionNamesA( buf, 29, testfile3 );


Looks like it crashes on most OS versions:

https://winetestbot.geldorp.nl/JobDetails.pl?Key=254

--
Cheers,

Paul.




Re: [PATCH] kernel32: GetPrivateProfileSectionNamesA error checking (Coverity)

2010-01-06 Thread Marcus Meissner
On Wed, Jan 06, 2010 at 01:34:28PM +0100, Alexandre Julliard wrote:
> Marcus Meissner  writes:
> 
> > buffer and size need to be either 0 at the same time or not,
> > otherwise this breaks up. Windows is inconsistent (either crashes
> > or returns invalids), so we can just add checking.
> 
> If Windows crashes we don't need extra checks. Just tell Coverity that
> crashing is allowed here.

I can't really say without a testcase. 

Could someone please run this test under some Windows versions?
(Have not setup a Win32 buildenv :/) 

Ciao, Marcus

diff --git a/dlls/kernel32/tests/profile.c b/dlls/kernel32/tests/profile.c
index e3f7156..8e64e73 100644
--- a/dlls/kernel32/tests/profile.c
+++ b/dlls/kernel32/tests/profile.c
@@ -266,6 +266,10 @@ static void test_profile_sections_names(void)
 WriteFile( h, content, sizeof(content), &count, NULL);
 CloseHandle( h);
 
+ret = GetPrivateProfileSectionNames( NULL, 2, testfile3);
+ok (ret == 0, "NULL buf but non-0 size, expected error\n");
+ret = GetPrivateProfileSectionNames( buf, 29, NULL);
+ok (ret == 0, "NULL filename, expected error\n");
 /* Test with sufficiently large buffer */
 memset(buf, 0xc, sizeof(buf));
 ret = GetPrivateProfileSectionNamesA( buf, 29, testfile3 );




Re: [PATCH] kernel32: GetPrivateProfileSectionNamesA error checking (Coverity)

2010-01-06 Thread Alexandre Julliard
Marcus Meissner  writes:

> buffer and size need to be either 0 at the same time or not,
> otherwise this breaks up. Windows is inconsistent (either crashes
> or returns invalids), so we can just add checking.

If Windows crashes we don't need extra checks. Just tell Coverity that
crashing is allowed here.

-- 
Alexandre Julliard
julli...@winehq.org




Re: [PATCH] kernel32: GetPrivateProfileSectionNamesA error checking (Coverity)

2010-01-06 Thread Paul Vriens

On 01/06/2010 01:26 PM, Marcus Meissner wrote:

+if (!RtlCreateUnicodeStringFromAsciiz(&filenameW, filename)) {
+SetLastError(ERROR_OUTOFMEMORY);
+return 0;
+}


Aren't you leaking bufferW here?

--
Cheers,

Paul.




Re: [4/5] WineD3D: Implement manual fencing with GL_APPLE_flush_buffer_range

2010-01-06 Thread Henri Verbeet
2010/1/5 Stefan Dösinger :
> After the discussion on IRC I wasn't quite sure what you intended with 
> wined3d_event_query_wait(), but maybe it was something like this:
>
More something along the lines of the attached patch, actually. There
are of course some intermediate steps.
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
index 1280a3b..fd146ba 100644
--- a/dlls/wined3d/query.c
+++ b/dlls/wined3d/query.c
@@ -31,7 +31,126 @@
  */
 
 WINE_DEFAULT_DEBUG_CHANNEL(d3d);
-#define GLINFO_LOCATION This->device->adapter->gl_info
+#define GLINFO_LOCATION (*gl_info)
+
+void wined3d_event_query_set(struct wined3d_event_query *query, const struct 
wined3d_context *context)
+{
+const struct wined3d_gl_info *gl_info = context->gl_info;
+
+if (query->context != context)
+{
+ERR("Query was allocated in a different context, or not at all.\n");
+return;
+}
+
+ENTER_GL();
+
+if (gl_info->supported[APPLE_FENCE])
+{
+GL_EXTCALL(glSetFenceAPPLE(query->id));
+checkGLcall("glSetFenceAPPLE");
+}
+else if (gl_info->supported[NV_FENCE])
+{
+GL_EXTCALL(glSetFenceNV(query->id, GL_ALL_COMPLETED_NV));
+checkGLcall("glSetFenceNV");
+}
+
+LEAVE_GL();
+}
+
+BOOL wined3d_event_query_test(struct wined3d_event_query *query, 
IWineD3DDeviceImpl *device)
+{
+const struct wined3d_gl_info *gl_info;
+struct wined3d_context *context;
+BOOL ret;
+
+if (!query->context)
+{
+TRACE("Query not started, returning TRUE.\n");
+return TRUE;
+}
+
+if (query->context->tid != GetCurrentThreadId())
+{
+FIXME("Wrong thread, returning FALSE.\n");
+return FALSE;
+}
+
+context = context_acquire(device, query->context->current_rt, 
CTXUSAGE_RESOURCELOAD);
+gl_info = context->gl_info;
+
+ENTER_GL();
+
+if (gl_info->supported[APPLE_FENCE])
+{
+ret = GL_EXTCALL(glTestFenceAPPLE(query->id));
+checkGLcall("glTestFenceAPPLE");
+}
+else if (gl_info->supported[NV_FENCE])
+{
+ret = GL_EXTCALL(glTestFenceNV(query->id));
+checkGLcall("glTestFenceNV");
+}
+else
+{
+ERR("Query shouldn't exist.\n");
+ret = FALSE;
+}
+
+LEAVE_GL();
+
+context_release(context);
+
+return ret;
+}
+
+void wined3d_event_query_wait(struct wined3d_event_query *query, 
IWineD3DDeviceImpl *device)
+{
+const struct wined3d_gl_info *gl_info;
+struct wined3d_context *context;
+
+if (!query->context)
+{
+TRACE("Query not started, returning.\n");
+return;
+}
+
+if (query->context->tid != GetCurrentThreadId())
+{
+FIXME("Wrong thread, falling back to wglFinish().\n");
+/* We can also end all other event queries here. */
+wine_wglFinish();
+return;
+}
+
+context = context_acquire(device, query->context->current_rt, 
CTXUSAGE_RESOURCELOAD);
+gl_info = context->gl_info;
+
+ENTER_GL();
+
+if (gl_info->supported[APPLE_FENCE])
+{
+GL_EXTCALL(glFinishFenceAPPLE(query->id));
+checkGLcall("glFinishFenceAPPLE");
+}
+else if (gl_info->supported[NV_FENCE])
+{
+GL_EXTCALL(glFinishFenceNV(query->id));
+checkGLcall("glFinishFenceNV");
+}
+else
+{
+ERR("Query shouldn't exist, falling back to wglFinish().\n");
+/* We can also end all other event queries here. */
+wine_wglFinish();
+return;
+}
+
+LEAVE_GL();
+
+context_release(context);
+}
 
 /* ***
IWineD3DQuery IUnknown parts follow
@@ -341,53 +460,13 @@ static HRESULT  WINAPI 
IWineD3DOcclusionQueryImpl_GetData(IWineD3DQuery* iface,
 static HRESULT  WINAPI IWineD3DEventQueryImpl_GetData(IWineD3DQuery* iface, 
void* pData, DWORD dwSize, DWORD dwGetDataFlags) {
 IWineD3DQueryImpl *This = (IWineD3DQueryImpl *) iface;
 struct wined3d_event_query *query = This->extendedData;
-struct wined3d_context *context;
 BOOL *data = pData;
 
 TRACE("(%p) : type D3DQUERY_EVENT, pData %p, dwSize %#x, dwGetDataFlags 
%#x\n", This, pData, dwSize, dwGetDataFlags);
 
 if (!pData || !dwSize) return S_OK;
 
-if (!query->context)
-{
-TRACE("Query not started, returning TRUE.\n");
-*data = TRUE;
-
-return S_OK;
-}
-
-if (query->context->tid != GetCurrentThreadId())
-{
-/* See comment in IWineD3DQuery::Issue, event query codeblock */
-FIXME("Wrong thread, reporting GPU idle.\n");
-*data = TRUE;
-
-return S_OK;
-}
-
-context = context_acquire(This->device, query->context->current_rt, 
CTXUSAGE_RESOURCELOAD);
-
-ENTER_GL();
-
-if (context->gl_info->supported[APPLE_FENCE])
-{
-*data = GL_EXTCALL(glTestFenceAPPLE(query->id));
-checkGLcall("glTestFenceAPPLE");
-}
-else if (context->gl_info->supported[NV_FENCE])
-{
-*data = GL_EXTCALL(glT

Re: Wine FIXME Report 2009 Aug - Dec

2010-01-06 Thread Damjan Jovanovic
On Wed, Jan 6, 2010 at 2:45 AM, Vincent Povirk
 wrote:
> It might be interesting to select for err:module:import_dll lines,
> which are (sometimes) missing dll's.
>
>>   77   |   99  | ole:CoGetClassObject no class object
>> {9a5ea990-3034-4d6f-9128-01f3c61022bc} could be created for context 0x1
>>   75   |   98  | ole:CoGetClassObject class
>> {9a5ea990-3034-4d6f-9128-01f3c61022bc} not registered
>
> Regedit tells me this is "GameExplorer class", in gameux.dll.
>
> I assume this is the class id for IGameExplorer interface documented
> here: 
> http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.igameexplorer.igameexplorer%28VS.85%29.aspx
>
> Searching for that class id in google gives me the impression that
> it's not a problem when it comes up. This makes sense, given that it's
> a vista-only API. Still, it's a surprise to me how widespread the use
> of that class apparently is.

It's a good surprise: Wine has gotten to the point where many people
are trying to use it to play the latest games :-).




Re: gdi32: Use the LOGFONT charset field on OEM font creation

2010-01-06 Thread Dmitry Timoshkov
Ilya Shpigor  wrote:

> If the "Terminal" font will be changed in test to "Tahoma" this still be 
> failed.
> 
> Are you sure what the current behavior of the WineEngCreateFontInstance is 
> correct? When the user create logical font with OEM charset the 
> GetTextCharset function will be always return ANSI independently of font 
> name. This conversions occurs because of the current logic 
> WineEngCreateFontInstance.

This needs more testing. Obviously testing with a non-existant bitmap OEM
font is not enough.

-- 
Dmitry.




Re: [PATCH] wined3d: Do not try to use not available texture stages in set_tex_op_nvr

2010-01-06 Thread Henri Verbeet
2010/1/5 Christian Costa :
> Here it is. The fixme message is :
> fixme:d3d:set_tex_op_nvrc > GL_INVALID_ENUM (0x500) from
> set_tex_op_nvrc() @ nvidia_texture_shader.c / 460
>
Looks like the context creation code invalidates those states simply
because they exist. Does the attached patch make the errors go away?
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index adb426b..10fa94f 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -5733,6 +5733,7 @@ HRESULT compile_state_table(struct StateEntry 
*StateTable, APPLYSTATEFUNC **dev_
 APPLYSTATEFUNC multistate_funcs[STATE_HIGHEST + 1][3];
 const struct StateEntryTemplate *cur;
 BOOL set[STATE_HIGHEST + 1];
+unsigned int start, last;
 
 memset(multistate_funcs, 0, sizeof(multistate_funcs));
 
@@ -5824,6 +5825,14 @@ HRESULT compile_state_table(struct StateEntry 
*StateTable, APPLYSTATEFUNC **dev_
 }
 }
 
+start = STATE_TEXTURESTAGE(gl_info->limits.texture_stages, 0);
+last = STATE_TEXTURESTAGE(MAX_TEXTURES - 1, WINED3D_HIGHEST_TEXTURE_STATE);
+for (i = start; i <= last; ++i)
+{
+StateTable[i].representative = 0;
+StateTable[i].apply = state_undefined;
+}
+
 return WINED3D_OK;
 
 out_of_mem:



Re: The (Casual) Game Support Report in Wine (Jan 2009)

2010-01-06 Thread Christian Costa

Reece Dunn a écrit :

2010/1/6 Christian Costa :
  

Reece Dunn a écrit :


 1/  the games themselves tend to work very well (and have done for a
long while now thanks to the great work CodeWeavers did in getting
DirectDraw and Direct3D working);
  

While you are at in, you can also thanks people that worked in this area in
their spare time.



I didn't mean to slight the non-CodeWeavers contributers (like you) to
wine and DirectDraw/Direct3D -- everyone has done (and continues to
do) amazing work. So thank you all.

Everyone who has worked on wine in one form or other (be it in
implementing functionality, fixing bugs, fixing tests, triaging bugs,
testing applications and filing useful bug reports, translating,
working on the artwork, performing cleanups and simplifying the code,
addressing valgrind/coverity issues, ...) have helped to make wine
what it is today.

- Reece
  
Seems it was misleading. I just wanted to point out that there was a 
pretty correct implementation
of direct3D and ddraw up to d3d8 before CodeWeavers decided to focus on 
games. That said this is very
nice what has been achieved recently in this area by current d3d 
developpers. But we shouldn't forget either that
these are also all small contributions in all different areas that help 
games work correctly.

So thanks to all of you and why I'm at it I wish you a happy new year !

A+
Christian







Re: ole32/tests: remove a test, as it fails or hangs on Vista+

2010-01-06 Thread Paul Vriens

On 01/05/2010 08:05 PM, André Hentschel wrote:

vista and 2k8: fails
w7:timeout
---
  dlls/ole32/tests/clipboard.c |2 ++
  1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/dlls/ole32/tests/clipboard.c b/dlls/ole32/tests/clipboard.c
index 626d244..4a9e234 100644
--- a/dlls/ole32/tests/clipboard.c
+++ b/dlls/ole32/tests/clipboard.c
@@ -1186,6 +1186,7 @@ static void test_flushed_getdata(void)
 "got %08x\n", hr);
  if(SUCCEEDED(hr)) ReleaseStgMedium(&med);

+#if 0 /* broken on Vista+ */
  InitFormatEtc(fmt, cf_another, 0x);
  memset(&dm, 0, sizeof(dm));
  dm.dmSize = sizeof(dm);
@@ -1204,6 +1205,7 @@ static void test_flushed_getdata(void)
  ok(hr == S_OK, "got %08x\n", hr);
  ok(med.tymed == TYMED_ISTORAGE, "got %x\n", med.tymed);
  if(SUCCEEDED(hr)) ReleaseStgMedium(&med);
+#endif

  HeapFree(GetProcessHeap(), 0, fmt.ptd);



The test doesn't fail or hang on all Vista+ boxes though. There have 
been several attempts to fix these failures but I'm not sure just 
removing them is the best option.


Apart from that I think "if (0)" is preferred over "#if 0".

--
Cheers,

Paul.




Re: The (Casual) Game Support Report in Wine (Jan 2009)

2010-01-06 Thread Reece Dunn
2010/1/6 Christian Costa :
> Reece Dunn a écrit :
>>
>>  1/  the games themselves tend to work very well (and have done for a
>> long while now thanks to the great work CodeWeavers did in getting
>> DirectDraw and Direct3D working);
>
> While you are at in, you can also thanks people that worked in this area in
> their spare time.

I didn't mean to slight the non-CodeWeavers contributers (like you) to
wine and DirectDraw/Direct3D -- everyone has done (and continues to
do) amazing work. So thank you all.

Everyone who has worked on wine in one form or other (be it in
implementing functionality, fixing bugs, fixing tests, triaging bugs,
testing applications and filing useful bug reports, translating,
working on the artwork, performing cleanups and simplifying the code,
addressing valgrind/coverity issues, ...) have helped to make wine
what it is today.

- Reece




Re: The (Casual) Game Support Report in Wine (Jan 2009)

2010-01-06 Thread Christian Costa

Reece Dunn a écrit :

  1/  the games themselves tend to work very well (and have done for a
long while now thanks to the great work CodeWeavers did in getting
DirectDraw and Direct3D working);
While you are at in, you can also thanks people that worked in this area 
in their spare time.


A+