mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
495 lines
9.1 KiB
495 lines
9.1 KiB
|
|
/*++
|
|
|
|
Copyright (c) 1991 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
icm.c
|
|
|
|
Abstract:
|
|
|
|
This module implement the code to provide client side support for ICM
|
|
functions
|
|
|
|
Author:
|
|
|
|
Mark Enstrom (marke) 3-23-94
|
|
|
|
Environment:
|
|
|
|
User mode only.
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
|
|
#include "precomp.h"
|
|
#pragma hdrstop
|
|
|
|
BOOL
|
|
WINAPI
|
|
SetICMMode(
|
|
HDC hdc,
|
|
int mode
|
|
)
|
|
{
|
|
BOOL bRet = FALSE;
|
|
//
|
|
// BEGINMSG(MSG_HL,SETICMMODE)
|
|
// pmsg->h = (ULONG)hdc;
|
|
// pmsg->l = (LONG)mode;
|
|
// bRet = CALLSERVER();
|
|
// ENDMSG;
|
|
//
|
|
//MSGERROR:
|
|
|
|
return(bRet);
|
|
|
|
}
|
|
|
|
HCOLORSPACE
|
|
WINAPI
|
|
CreateColorSpaceA(
|
|
LPLOGCOLORSPACEA lpLogColorSpace
|
|
)
|
|
{
|
|
//ULONG ulRet;
|
|
//LOGCOLORSPACEW LogColorSpaceW;
|
|
//
|
|
////
|
|
//// convert ascii to long character version
|
|
////
|
|
//
|
|
//LogColorSpaceW.lcsVersion = lpLogColorSpace->lcsVersion;
|
|
//LogColorSpaceW.lcsSize = lpLogColorSpace->lcsSize;
|
|
//LogColorSpaceW.lcsCSType = lpLogColorSpace->lcsCSType;
|
|
//LogColorSpaceW.lcsIntent = lpLogColorSpace->lcsIntent;
|
|
//LogColorSpaceW.lcsEndpoints = lpLogColorSpace->lcsEndpoints;
|
|
//LogColorSpaceW.lcsGammaRed = lpLogColorSpace->lcsGammaRed;
|
|
//LogColorSpaceW.lcsGammaGreen = lpLogColorSpace->lcsGammaGreen;
|
|
//LogColorSpaceW.lcsGammaBlue = lpLogColorSpace->lcsGammaBlue;
|
|
//
|
|
//vToUnicodeN(
|
|
// LogColorSpaceW.lcsFilename,MAX_PATH,
|
|
// lpLogColorSpace->lcsFilename,strlen(lpLogColorSpace->lcsFilename)+1
|
|
// );
|
|
//
|
|
//BEGINMSG(MSG_CREATECOLORSPACE,CREATECOLORSPACE)
|
|
//
|
|
// pvar = (PBYTE)&pmsg->lcsp;
|
|
//
|
|
// COPYLONGS(&LogColorSpaceW,sizeof(LOGCOLORSPACEW));
|
|
//
|
|
// ulRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
//
|
|
//return((HCOLORSPACE)ulRet);
|
|
//
|
|
//MSGERROR:
|
|
//
|
|
return(NULL);
|
|
}
|
|
|
|
HCOLORSPACE
|
|
WINAPI
|
|
CreateColorSpaceW(
|
|
LPLOGCOLORSPACEW lpLogColorSpace
|
|
)
|
|
{
|
|
//ULONG ulRet;
|
|
//
|
|
//BEGINMSG(MSG_CREATECOLORSPACE,CREATECOLORSPACE)
|
|
//
|
|
// pvar = (PBYTE)&pmsg->lcsp;
|
|
//
|
|
// COPYLONGS(lpLogColorSpace,sizeof(LOGCOLORSPACEW));
|
|
//
|
|
// ulRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
//
|
|
//return((HCOLORSPACE)ulRet);
|
|
//
|
|
////MSGERROR:
|
|
|
|
return((HCOLORSPACE)NULL);
|
|
}
|
|
|
|
|
|
BOOL
|
|
WINAPI
|
|
DeleteColorSpace(
|
|
HCOLORSPACE hColorSpace
|
|
)
|
|
{
|
|
BOOL bRet = FALSE;
|
|
|
|
//BEGINMSG(MSG_H,DELETECOLORSPACE)
|
|
//
|
|
// pmsg->h = (ULONG)hColorSpace;
|
|
// bRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
|
|
//MSGERROR:
|
|
|
|
return(bRet);
|
|
}
|
|
|
|
BOOL
|
|
WINAPI
|
|
SetColorSpace(
|
|
HDC hdc,
|
|
HCOLORSPACE hColorSpace
|
|
)
|
|
{
|
|
BOOL bRet = FALSE;
|
|
|
|
//BEGINMSG(MSG_HH,SETCOLORSPACE)
|
|
//
|
|
// pmsg->h1 = (ULONG)hdc;
|
|
// pmsg->h2 = (ULONG)hColorSpace;
|
|
// bRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
|
|
//MSGERROR:
|
|
|
|
return(bRet);
|
|
}
|
|
|
|
HANDLE
|
|
WINAPI
|
|
GetColorSpace(
|
|
HDC hdc
|
|
)
|
|
{
|
|
ULONG ulRet;
|
|
|
|
//BEGINMSG(MSG_H,GETCOLORSPACE)
|
|
//
|
|
// pmsg->h = (ULONG)hdc;
|
|
//
|
|
// ulRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
//
|
|
//return((HANDLE)ulRet);
|
|
|
|
//MSGERROR:
|
|
|
|
return(NULL);
|
|
}
|
|
|
|
BOOL
|
|
WINAPI
|
|
GetLogColorSpaceA(
|
|
HCOLORSPACE hColorSpace,
|
|
LPLOGCOLORSPACEA lpBuffer,
|
|
DWORD nSize
|
|
)
|
|
{
|
|
BOOL bRet = FALSE;
|
|
//LOGCOLORSPACEW LogColorSpaceW;
|
|
//
|
|
//if ((lpBuffer != NULL) && (nSize > 0)) {
|
|
//
|
|
// BEGINMSG_MINMAX(MSG_HL,GETLOGCOLORSPACE,sizeof(LOGCOLORSPACEW),sizeof(LOGCOLORSPACEW))
|
|
//
|
|
// //
|
|
// // !!! why pass a pointer here (LogColorSpaceW)
|
|
// //
|
|
//
|
|
// pmsg->h = (ULONG)hColorSpace;
|
|
// pmsg->l = nSize;
|
|
// bRet = CALLSERVER_NOPOP();
|
|
//
|
|
// if (bRet == TRUE) {
|
|
//
|
|
// //
|
|
// // copy data from window to user's buffer
|
|
// //
|
|
// // should not need to copy this twice!
|
|
// //
|
|
//
|
|
// COPYMEMOUT((PBYTE)&LogColorSpaceW,nSize);
|
|
// }
|
|
//
|
|
// POPBASE();
|
|
//
|
|
// ENDMSG
|
|
//
|
|
//}
|
|
//
|
|
////
|
|
//// copy LOGCOLORSPACEW back top ASCII LOGCOLORSPACEA
|
|
////
|
|
//
|
|
//lpBuffer->lcsVersion = LogColorSpaceW.lcsVersion ;
|
|
//lpBuffer->lcsSize = LogColorSpaceW.lcsSize ;
|
|
//lpBuffer->lcsCSType = LogColorSpaceW.lcsCSType ;
|
|
//lpBuffer->lcsIntent = LogColorSpaceW.lcsIntent ;
|
|
//lpBuffer->lcsEndpoints = LogColorSpaceW.lcsEndpoints ;
|
|
//lpBuffer->lcsGammaRed = LogColorSpaceW.lcsGammaRed ;
|
|
//lpBuffer->lcsGammaGreen = LogColorSpaceW.lcsGammaGreen ;
|
|
//lpBuffer->lcsGammaBlue = LogColorSpaceW.lcsGammaBlue ;
|
|
//
|
|
//bToASCII_N(
|
|
// lpBuffer->lcsFilename,MAX_PATH,
|
|
// LogColorSpaceW.lcsFilename,MAX_PATH
|
|
// );
|
|
//
|
|
|
|
//MSGERROR:
|
|
|
|
return(bRet);
|
|
|
|
}
|
|
|
|
BOOL
|
|
WINAPI
|
|
GetLogColorSpaceW(
|
|
HCOLORSPACE hColorSpace,
|
|
LPLOGCOLORSPACEW lpBuffer,
|
|
DWORD nSize
|
|
)
|
|
{
|
|
BOOL bRet = FALSE;
|
|
|
|
//if ((lpBuffer != NULL) && (nSize > 0)) {
|
|
//
|
|
// BEGINMSG_MINMAX(MSG_HL,GETLOGCOLORSPACE,sizeof(LOGCOLORSPACEW),sizeof(LOGCOLORSPACEW))
|
|
//
|
|
// pmsg->h = (ULONG)hColorSpace;
|
|
// pmsg->l = nSize;
|
|
// bRet = CALLSERVER_NOPOP();
|
|
//
|
|
// if (bRet == TRUE) {
|
|
//
|
|
// //
|
|
// // copy data from window to user's buffer
|
|
// //
|
|
//
|
|
// COPYMEMOUT((PBYTE)lpBuffer,nSize);
|
|
// }
|
|
//
|
|
// POPBASE();
|
|
//
|
|
// ENDMSG
|
|
//
|
|
//}
|
|
//
|
|
|
|
//MSGERROR:
|
|
|
|
return(bRet);
|
|
|
|
}
|
|
|
|
|
|
BOOL
|
|
WINAPI
|
|
CheckColorsInGamut(
|
|
HDC hdc,
|
|
LPRGBQUAD lpRGBQuad,
|
|
LPBYTE dlpBuffer,
|
|
DWORD nCount
|
|
)
|
|
{
|
|
BOOL bRet = FALSE;
|
|
|
|
//BEGINMSG(MSG_HLLL,CHECKCOLORSINGAMUT)
|
|
//
|
|
// //
|
|
// // This API must be checked to insure it is not bigger than memory window
|
|
// //
|
|
//
|
|
// pmsg->h = (ULONG)hdc;
|
|
// pmsg->l1 = (ULONG)lpRGBQuad;
|
|
// pmsg->l2 = (ULONG)dlpBuffer;
|
|
// pmsg->l3 = nCount;
|
|
// bRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
|
|
//MSGERROR:
|
|
|
|
return(bRet);
|
|
}
|
|
|
|
BOOL
|
|
WINAPI
|
|
ColorMatchToTarget(
|
|
HDC hdc,
|
|
HDC hdcTarget,
|
|
DWORD uiAction
|
|
)
|
|
{
|
|
BOOL bRet = FALSE;
|
|
|
|
//BEGINMSG(MSG_H,COLORMATCHTOTARGET)
|
|
//
|
|
// pmsg->h = (ULONG)hdc;
|
|
// bRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
|
|
//MSGERROR:
|
|
|
|
return(bRet);
|
|
}
|
|
|
|
BOOL WINAPI GetICMProfileA(HDC hdc, DWORD szBuffer, LPSTR pBuffer)
|
|
{
|
|
USE(hdc);
|
|
USE(pBuffer);
|
|
USE(szBuffer);
|
|
GdiSetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
|
|
return(FALSE);
|
|
}
|
|
|
|
BOOL WINAPI GetICMProfileW(HDC hdc, DWORD szBuffer, LPWSTR pBuffer)
|
|
{
|
|
USE(hdc);
|
|
USE(pBuffer);
|
|
USE(szBuffer);
|
|
GdiSetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
|
|
return(FALSE);
|
|
}
|
|
|
|
BOOL WINAPI SetICMProfileA(HDC hdc, LPSTR pszFileName)
|
|
{
|
|
USE(hdc);
|
|
USE(pszFileName);
|
|
GdiSetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
|
|
return(FALSE);
|
|
}
|
|
BOOL WINAPI SetICMProfileW(HDC hdc, LPWSTR pszFileName)
|
|
{
|
|
USE(hdc);
|
|
USE(pszFileName);
|
|
GdiSetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
|
|
return(FALSE);
|
|
}
|
|
|
|
|
|
|
|
int
|
|
WINAPI
|
|
EnumICMProfilesA(
|
|
HDC hdc,
|
|
ICMENUMPROCA lpEnumGamutMatchProc,
|
|
LPARAM lParam
|
|
)
|
|
{
|
|
ULONG ulRet = 0;
|
|
|
|
//BEGINMSG(MSG_HLL,ENUMICMPROFILES)
|
|
//
|
|
// pmsg->h = (ULONG)hdc;
|
|
// pmsg->l1 = (ULONG)lpEnumGamutMatchProc;
|
|
// pmsg->l2 = (ULONG)lParam;
|
|
// ulRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
|
|
//MSGERROR:
|
|
|
|
return((int)ulRet);
|
|
}
|
|
|
|
int
|
|
WINAPI
|
|
EnumICMProfilesW(
|
|
HDC hdc,
|
|
ICMENUMPROCW lpEnumGamutMatchProc,
|
|
LPARAM lParam
|
|
)
|
|
{
|
|
ULONG ulRet = 0;
|
|
|
|
//BEGINMSG(MSG_HLL,ENUMICMPROFILES)
|
|
// pmsg->h = (ULONG)hdc;
|
|
// pmsg->l1 = (ULONG)lpEnumGamutMatchProc;
|
|
// pmsg->l2 = (ULONG)lParam;
|
|
// ulRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
|
|
//MSGERROR:
|
|
|
|
return((int)ulRet);
|
|
}
|
|
|
|
BOOL
|
|
WINAPI
|
|
GetDeviceGammaRamp(
|
|
HDC hdc,
|
|
LPVOID lpGammaRamp
|
|
)
|
|
{
|
|
BOOL bRet = FALSE;
|
|
|
|
//BEGINMSG(MSG_H,GETDEVICEGAMMARAMP)
|
|
//
|
|
// pmsg->h = (ULONG)hdc;
|
|
// bRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
|
|
//MSGERROR:
|
|
|
|
return(bRet);
|
|
}
|
|
|
|
BOOL
|
|
WINAPI
|
|
SetDeviceGammaRamp(
|
|
HDC hdc,
|
|
LPVOID lpGammaRamp
|
|
)
|
|
{
|
|
BOOL bRet = FALSE;
|
|
|
|
//BEGINMSG(MSG_H,SETDEVICEGAMMARAMP)
|
|
//
|
|
// pmsg->h = (ULONG)hdc;
|
|
// bRet = CALLSERVER();
|
|
//
|
|
//ENDMSG
|
|
|
|
//MSGERROR:
|
|
|
|
return(bRet);
|
|
}
|
|
|
|
BOOL WINAPI UpdateICMRegKeyA(DWORD Reserved,PSTR szICMMatcher,PSTR szFileName,DWORD Command)
|
|
{
|
|
USE(Reserved);
|
|
USE(szICMMatcher);
|
|
USE(szFileName);
|
|
USE(Command);
|
|
GdiSetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
|
|
return(FALSE);
|
|
}
|
|
|
|
BOOL WINAPI UpdateICMRegKeyW(DWORD Reserved,PWSTR szICMMatcher,PWSTR szFileName,DWORD Command)
|
|
{
|
|
USE(Reserved);
|
|
USE(szICMMatcher);
|
|
USE(szFileName);
|
|
USE(Command);
|
|
GdiSetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
|
|
return(FALSE);
|
|
}
|
|
|