gdi32: Make GetICMProfile behave more like native. Rewrite ansi version as a wrapper and move color management functions to their own file.
hans at it.vu.nl
Tue Jan 22 02:56:05 CST 2008
On Tuesday 22 January 2008 01:04:31 am Detlef Riekenberg wrote:
> - gdi32: Make GetICMProfile behave more like native. Rewrite ansi
> version as a wrapper and move color management functions to their own
> The large subject is an indicator, that the Patch can be splitted.
> IMHO, moving the stubs to a different file can be a seperate patch.
My reasoning was that moving the code and rewriting the ansi version
are neutral operations from a functional perspective, and the tests show
that (actually, the previous implementation crashes on my test, but you
get the point).
I agree that the changelog entry is long, I could have left the second
sentence out since it's more of a patch reading hint.
> > +BOOL WINAPI GetICMProfileA(HDC hdc, LPDWORD size, LPSTR filename)
> > + if (!hdc || !size || !filename) return FALSE;
> This is not the same as documented in MSDN, and
> > +BOOL WINAPI GetICMProfileW(HDC hdc, LPDWORD size, LPWSTR filename)
> > +
> > + if (!hdc || !size) return FALSE;
> ANSI and UNICODE are different.
> Are you really sure?
> (Please insert a big warning in the comment then)
Yes, I'm sure, it's what the tests brought up and they serve very well
as documentation here IMO.
> Returning FALSE without a SetLastError() looks not correct, compared to
> SetLastError(ERROR_INSUFFICIENT_BUFFER) below.
We return FALSE without a SetLastError() in many places. I think the
consensus is that we do it only when applications depend on it. Setting
ERROR_INSUFFICIENT_BUFFER is part of the idiom for querying the buffer
size, clearly something that applications can be expected to depend on.
More information about the wine-devel