Added partial implementation of GetICMProfileA, required by Paint Shop

Pro 5.
This commit is contained in:
Ian Schmidt 1999-09-22 15:12:41 +00:00 committed by Alexandre Julliard
parent b59d4bc503
commit 31b47218c8
2 changed files with 51 additions and 1 deletions

View File

@ -18,6 +18,7 @@
#include "palette.h"
#include "xmalloc.h"
#include "debugtools.h"
#include "winerror.h"
DEFAULT_DEBUG_CHANNEL(palette)
@ -868,3 +869,52 @@ VOID WINAPI SetMagicColors16(HDC16 hDC, COLORREF color, UINT16 index)
FIXME("(hDC %04x, color %04x, index %04x): stub\n", hDC, (int)color, index);
}
/**********************************************************************
* GetICMProfileA [GDI32.316]
*
* Returns the filename of the specified device context's color
* management profile, even if color management is not enabled
* for that DC.
*
* RETURNS
* TRUE if name copied succesfully OR lpszFilename is NULL
* FALSE if the buffer length pointed to by lpcbName is too small
*
* NOTE
* The buffer length pointed to by lpcbName is ALWAYS updated to
* the length required regardless of other actions this function
* may take.
*
* FIXME
* How does Windows assign these? Some registry key?
*/
#define WINEICM "winefake.icm" /* easy-to-identify fake filename */
BOOL WINAPI GetICMProfileA(HDC hDC, LPDWORD lpcbName, LPSTR lpszFilename)
{
DWORD callerLen;
FIXME("(%04x, %p, %p): partial stub\n", hDC, lpcbName, lpszFilename);
callerLen = *lpcbName;
/* all 3 behaviors require the required buffer size to be set */
*lpcbName = strlen(WINEICM);
/* behavior 1: if lpszFilename is NULL, return size of string and no error */
if ((DWORD)lpszFilename == (DWORD)0x00000000)
return TRUE;
/* behavior 2: if buffer size too small, return size of string and error */
if (callerLen < strlen(WINEICM))
{
SetLastError(ERROR_INSUFFICIENT_BUFFER);
return FALSE;
}
/* behavior 3: if buffer size OK and pointer not NULL, copy and return size */
lstrcpyA(lpszFilename, WINEICM);
return TRUE;
}

View File

@ -218,7 +218,7 @@ init MAIN_GdiInit
313 stdcall GetGlyphOutlineW(long long long ptr long ptr ptr) GetGlyphOutlineW
314 stub GetGlyphOutlineWow
315 stdcall GetGraphicsMode(long) GetGraphicsMode
316 stub GetICMProfileA
316 stdcall GetICMProfileA(long ptr ptr) GetICMProfileA
317 stub GetICMProfileW
318 stub GetKerningPairs
319 stdcall GetKerningPairsA(long long ptr) GetKerningPairsA