Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

icm32.c File Reference

#include "Windef.h"
#include "WinGdi.h"
#include <wtypes.h>
#include <winbase.h>
#include <WindowsX.h>
#include "ICM.h"
#include "General.h"
#include "MemProf.h"

Go to the source code of this file.

Defines

#define CMM_WIN_VERSION   0
#define CMM_IDENT   1
#define CMM_DRIVER_LEVEL   2
#define CMM_DLL_VERSION   3
#define CMM_VERSION   4
#define CMS_LEVEL_1   1
#define DllExport   __declspec( dllexport )

Typedefs

typedef HANDLE HCMTRANSFORM
typedef LPVOID LPDEVCHARACTER
typedef LPVOID LPHPROFILE
typedef LPVOID LPARGBQUAD
typedef COLORREF FAR * LPCOLORREF

Functions

BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
HCMTRANSFORM WINAPI CMCreateMultiProfileTransform (LPHPROFILE lpahProfiles, DWORD nProfiles, UINT32 *aIntentArr, UINT32 nIntents, UINT32 dwFlags)
long FillProfileFromLog (LPLOGCOLORSPACEA lpColorSpace, PPROFILE theProf)
long FillProfileFromLogW (LPLOGCOLORSPACEW lpColorSpace, PPROFILE theProf)
BOOL WINAPI CMCreateProfile (LPLOGCOLORSPACEA lpColorSpace, LPBYTE *lpProfileData)
CMWorldRef StoreTransform (CMWorldRef aRef)
CMBitmapColorSpace CMGetDataColorSpace (BMFORMAT c, long *pixelSize)
HCMTRANSFORM WINAPI CMGetTransform (HCMTRANSFORM hcmTransform)
long CMCreateMultiProfileTransformInternal (CMWorldRef *cw, LPHPROFILE lpahProfiles, DWORD nProfiles, UINT32 *aIntentArr, UINT32 nIntents, UINT32 dwFlags, UINT32 dwCreateLink)
DWORD WINAPI CMGetInfo (DWORD dwInfo)
long CMCreateTransformExtInternal (CMWorldRef *cwOut, UINT32 dwFlags, UINT32 lcsIntent, HPROFILE aProf, LPBYTE ptDeRef, LPBYTE pdDeRef)
void WriteProf (LPSTR name, icProfile *theProf, long currentSize)
HCMTRANSFORM WINAPI CMCreateTransformExt (LPLOGCOLORSPACEA lpColorSpace, LPDEVCHARACTER lpDevCharacter, LPDEVCHARACTER lpTargetDevCharacter, UINT32 dwFlags)
HCMTRANSFORM WINAPI CMCreateTransform (LPLOGCOLORSPACEA lpColorSpace, LPDEVCHARACTER lpDevCharacter, LPDEVCHARACTER lpTargetDevCharacter)
HCMTRANSFORM WINAPI CMCreateTransformExtW (LPLOGCOLORSPACEW lpColorSpace, LPDEVCHARACTER lpDevCharacter, LPDEVCHARACTER lpTargetDevCharacter, UINT32 dwFlags)
HCMTRANSFORM WINAPI CMCreateTransformW (LPLOGCOLORSPACEW lpColorSpace, LPDEVCHARACTER lpDevCharacter, LPDEVCHARACTER lpTargetDevCharacter)
BOOL WINAPI CMDeleteTransform (HCMTRANSFORM hcmTransform)
BOOL WINAPI CMCreateProfileW (LPLOGCOLORSPACEW lpColorSpace, LPBYTE *lpProfileData)
BOOL WINAPI CMCreateDeviceLinkProfile (LPHPROFILE lpahProfiles, DWORD nProfiles, UINT32 *aIntentArr, UINT32 nIntents, UINT32 dwFlags, LPBYTE *lpProfileData)
BOOL WINAPI CMIsProfileValid (HPROFILE hProfile, LPBOOL lpbValid)
BOOL WINAPI CMTranslateColors (HCMTRANSFORM hcmTransform, LPCOLOR lpaInputColors, DWORD nColors, COLORTYPE ctInput, LPCOLOR lpaOutputColors, COLORTYPE ctOutput)
BOOL WINAPI CMCheckColors (HCMTRANSFORM hcmTransform, LPCOLOR lpaInputColors, DWORD nColors, COLORTYPE ctInput, LPBYTE lpaResult)
BOOL WINAPI CMTranslateRGBs (HCMTRANSFORM hcmTransform, LPVOID lpSrcBits, BMFORMAT bmInput, DWORD dwWidth, DWORD dwHeight, DWORD dwStride, LPVOID lpDestBits, BMFORMAT bmOutput, DWORD dwTranslateDirection)
BOOL WINAPI CMTranslateRGBsExt (HCMTRANSFORM hcmTransform, LPVOID lpSrcBits, BMFORMAT bmInput, DWORD dwWidth, DWORD dwHeight, DWORD dwInputStride, LPVOID lpDestBits, BMFORMAT bmOutput, DWORD dwOutputStride, LPBMCALLBACKFN lpfnCallback, LPARAM ulCallbackData)
BOOL WINAPI CMCheckRGBs (HCMTRANSFORM hcmTransform, LPVOID lpSrcBits, BMFORMAT bmInput, DWORD dwWidth, DWORD dwHeight, DWORD dwStride, LPBYTE lpDestBits, PBMCALLBACKFN pfnCallback, LPARAM ulCallbackData)
BOOL WINAPI CMTranslateRGB (HCMTRANSFORM hcmTransform, COLORREF colorRef, LPCOLORREF lpColorRef, DWORD dwFlags)
BOOL WINAPI CMCheckColorsInGamut (HCMTRANSFORM hcmTransform, LPARGBQUAD lpaRGBTriplet, LPBYTE lpBuffer, UINT nCount)
BOOL WINAPI CMConvertColorNameToIndex (HPROFILE aProf, LPCOLOR_NAME aColorNameArr, LPDWORD aDWordArr, DWORD count)
BOOL WINAPI CMConvertIndexToColorName (HPROFILE aProf, LPDWORD aDWordArr, LPCOLOR_NAME aColorNameArr, DWORD count)
BOOL WINAPI CMGetNamedProfileInfo (HPROFILE aProf, LPNAMED_PROFILE_INFO Info)

Variables

long IndexTransform = 0
HCMTRANSFORM TheTransform [1000] = {0}
CRITICAL_SECTION GlobalCriticalSection


Define Documentation

#define CMM_DLL_VERSION   3
 

Definition at line 31 of file w98/mscmm/icm32.c.

#define CMM_DRIVER_LEVEL   2
 

Definition at line 30 of file w98/mscmm/icm32.c.

#define CMM_IDENT   1
 

Definition at line 29 of file w98/mscmm/icm32.c.

#define CMM_VERSION   4
 

Definition at line 32 of file w98/mscmm/icm32.c.

#define CMM_WIN_VERSION   0
 

Definition at line 28 of file w98/mscmm/icm32.c.

#define CMS_LEVEL_1   1
 

Definition at line 33 of file w98/mscmm/icm32.c.

#define DllExport   __declspec( dllexport )
 

Definition at line 88 of file w98/mscmm/icm32.c.


Typedef Documentation

typedef HANDLE HCMTRANSFORM
 

Definition at line 35 of file w98/mscmm/icm32.c.

typedef LPVOID LPARGBQUAD
 

Definition at line 38 of file w98/mscmm/icm32.c.

typedef COLORREF FAR* LPCOLORREF
 

Definition at line 39 of file w98/mscmm/icm32.c.

typedef LPVOID LPDEVCHARACTER
 

Definition at line 36 of file w98/mscmm/icm32.c.

typedef LPVOID LPHPROFILE
 

Definition at line 37 of file w98/mscmm/icm32.c.


Function Documentation

BOOL WINAPI CMCheckColors HCMTRANSFORM  hcmTransform,
LPCOLOR  lpaInputColors,
DWORD  nColors,
COLORTYPE  ctInput,
LPBYTE  lpaResult
 

Definition at line 1003 of file w98/mscmm/icm32.c.

References BOOL, CMGetTransform(), and CWCheckColorsMS().

01008 { 01009 long matchErr; 01010 01011 matchErr = CWCheckColorsMS( CMGetTransform( hcmTransform ), (CMColor *)lpaInputColors, nColors, lpaResult ); 01012 if( matchErr ){ 01013 SetLastError( matchErr ); 01014 return 0; 01015 } 01016 return 1; 01017 }

BOOL WINAPI CMCheckColorsInGamut HCMTRANSFORM  hcmTransform,
LPARGBQUAD  lpaRGBTriplet,
LPBYTE  lpBuffer,
UINT  nCount
 

Definition at line 1433 of file w98/mscmm/icm32.c.

References BOOL, cm8PerChannelPacking, CMBitmapCallBackUPP, CMGetTransform(), cmRGBSpace, CWCheckBitmap(), FALSE, CMBitmap::height, CMBitmap::image, NULL, CMBitmap::pixelSize, CMBitmap::rowBytes, CMBitmap::space, and CMBitmap::width.

01437 { 01438 CMBitmap InBitmap,OutBitmap; 01439 long matchErr; 01440 BOOL aBgrMode = FALSE; 01441 01442 InBitmap.image = (char *)(lpaRGBTriplet); 01443 InBitmap.width = nCount; 01444 InBitmap.height = 1; 01445 InBitmap.rowBytes = 3*nCount; 01446 InBitmap.pixelSize = 24; 01447 InBitmap.space = cm8PerChannelPacking + cmRGBSpace; 01448 OutBitmap = InBitmap; 01449 OutBitmap.rowBytes = nCount; // perhaps wrong format? 01450 OutBitmap.pixelSize = 8; 01451 OutBitmap.image = (char *)lpBuffer; 01452 01453 matchErr = CWCheckBitmap( CMGetTransform( hcmTransform ), &InBitmap, 01454 (CMBitmapCallBackUPP)0,(void *)NULL,&OutBitmap ); 01455 if( matchErr ){ 01456 SetLastError( matchErr ); 01457 return 0; 01458 } 01459 return 1; 01460 }

BOOL WINAPI CMCheckRGBs HCMTRANSFORM  hcmTransform,
LPVOID  lpSrcBits,
BMFORMAT  bmInput,
DWORD  dwWidth,
DWORD  dwHeight,
DWORD  dwStride,
LPBYTE  lpDestBits,
PBMCALLBACKFN  pfnCallback,
LPARAM  ulCallbackData
 

Definition at line 1277 of file w98/mscmm/icm32.c.

References BOOL, cm8PerChannelPacking, CMBitmapCallBackUPP, CMBitmapColorSpace, cmGamutResultSpace, CMGetDataColorSpace(), CMGetTransform(), cmGraySpace, cmInvalidColorSpace, CWCheckBitmap(), DWORD, FALSE, CMBitmap::height, CMBitmap::image, CMBitmap::pixelSize, CMBitmap::rowBytes, CMBitmap::space, and CMBitmap::width.

01287 { 01288 CMBitmapColorSpace spaceIn,spaceOut; 01289 CMBitmap InBitmap,OutBitmap; 01290 long matchErr, inPixelSize; 01291 BOOL aBgrMode = FALSE; 01292 01293 spaceIn = CMGetDataColorSpace( bmInput, &inPixelSize ); 01294 if( spaceIn == 0 ){ 01295 SetLastError( (DWORD)cmInvalidColorSpace ); 01296 return 0; 01297 } 01298 spaceOut = cm8PerChannelPacking + cmGraySpace; 01299 01300 if( spaceOut == 0 )return 0; 01301 InBitmap.image = lpSrcBits; 01302 InBitmap.width = dwWidth; 01303 InBitmap.height = dwHeight; 01304 if( dwStride == 0 ){ 01305 InBitmap.rowBytes = ( dwWidth * (inPixelSize / 8) + 3 ) & ~3; 01306 } 01307 else{ 01308 InBitmap.rowBytes = dwStride; 01309 } 01310 InBitmap.pixelSize = inPixelSize; 01311 InBitmap.space = spaceIn; 01312 01313 OutBitmap.image = lpDestBits; 01314 OutBitmap.width = dwWidth; 01315 OutBitmap.height = dwHeight; 01316 OutBitmap.rowBytes = dwWidth; // perhaps wrong format? 01317 OutBitmap.pixelSize = 8; 01318 OutBitmap.space = cmGamutResultSpace; 01319 01320 matchErr = CWCheckBitmap( CMGetTransform( hcmTransform ), &InBitmap, 01321 (CMBitmapCallBackUPP)pfnCallback,(void *)ulCallbackData,&OutBitmap ); 01322 01323 if( matchErr ){ 01324 SetLastError( matchErr ); 01325 return 0; 01326 } 01327 return 1; 01328 }

BOOL WINAPI CMConvertColorNameToIndex HPROFILE  aProf,
LPCOLOR_NAME  aColorNameArr,
LPDWORD  aDWordArr,
DWORD  count
 

Definition at line 1786 of file w98/mscmm/icm32.c.

References BOOL, CMConvNameToIndexProfile(), and CMError.

01787 { 01788 CMError err; 01789 01790 err = CMConvNameToIndexProfile( aProf, aColorNameArr, aDWordArr, count ); 01791 if( err ){ 01792 SetLastError( err ); 01793 return 0; 01794 } 01795 return 1; 01796 }

BOOL WINAPI CMConvertIndexToColorName HPROFILE  aProf,
LPDWORD  aDWordArr,
LPCOLOR_NAME  aColorNameArr,
DWORD  count
 

Definition at line 1798 of file w98/mscmm/icm32.c.

References BOOL, and CMConvIndexToNameProfile().

01799 { 01800 long matchErr; 01801 01802 matchErr = CMConvIndexToNameProfile( aProf, aDWordArr, aColorNameArr, count ); 01803 if( matchErr ){ 01804 SetLastError( matchErr ); 01805 return 0; 01806 } 01807 return 1; 01808 }

BOOL WINAPI CMCreateDeviceLinkProfile LPHPROFILE  lpahProfiles,
DWORD  nProfiles,
UINT32 aIntentArr,
UINT32  nIntents,
UINT32  dwFlags,
LPBYTE *  lpProfileData
 

Definition at line 811 of file w98/mscmm/icm32.c.

References BOOL, CMConcatProfileSet, CMCreateMultiProfileTransformInternal(), CMMModelPtr, CMProfileRef, CMWorldRef, CMConcatProfileSet::count, CWDisposeColorWorld(), DeviceLinkFill(), DisposeIfPtr(), dwFlags, DWORD, CMConcatProfileSet::keyIndex, OSErr, CMConcatProfileSet::profileSet, Ptr, SmartNewPtrClear(), and UINT32.

00817 { 00818 long err; 00819 OSErr aOSErr; 00820 CMWorldRef cw; 00821 CMConcatProfileSet *profileSet; 00822 UINT32 i; 00823 00824 *lpProfileData = 0; 00825 00826 err = CMCreateMultiProfileTransformInternal( &cw, lpahProfiles, nProfiles, aIntentArr, nIntents, dwFlags, 0 ); 00827 if( err ){ 00828 SetLastError( err ); 00829 return 0; 00830 } 00831 profileSet = (CMConcatProfileSet *)SmartNewPtrClear(sizeof (CMConcatProfileSet) + (nProfiles)* sizeof(CMProfileRef),&aOSErr); 00832 err = aOSErr; 00833 if (aOSErr == 0 ) 00834 { 00835 profileSet->keyIndex = 0; 00836 profileSet->count = (unsigned short)nProfiles; 00837 for( i=0; i<nProfiles; i++) 00838 profileSet->profileSet[i] = (CMProfileRef)((DWORD *)(((PVOID *)lpahProfiles)[i])); 00839 } 00840 else goto CleanupAndExit; 00841 00842 err = DeviceLinkFill( (CMMModelPtr)cw, profileSet, (icProfile **)lpProfileData, aIntentArr[0] ); 00843 profileSet= (CMConcatProfileSet *)DisposeIfPtr( (Ptr) profileSet ); 00844 00845 if( err )goto CleanupAndExit; 00846 CWDisposeColorWorld ( cw ); 00847 return 1; 00848 00849 CleanupAndExit: 00850 CWDisposeColorWorld ( cw ); 00851 SetLastError( err ); 00852 return 0; 00853 }

HCMTRANSFORM WINAPI CMCreateMultiProfileTransform LPHPROFILE  lpahProfiles,
DWORD  nProfiles,
UINT32 aIntentArr,
UINT32  nIntents,
UINT32  dwFlags
 

Definition at line 626 of file w98/mscmm/icm32.c.

References CMCreateMultiProfileTransformInternal(), CMWorldRef, dwFlags, HCMTRANSFORM, and StoreTransform().

00631 { 00632 long err; 00633 CMWorldRef cw; 00634 00635 err = CMCreateMultiProfileTransformInternal( &cw, lpahProfiles, nProfiles, aIntentArr, nIntents, dwFlags, 0 ); 00636 if( err ){ 00637 SetLastError( err ); 00638 return (HCMTRANSFORM)(ULONG_PTR)(err & 255); 00639 } 00640 cw = StoreTransform( cw ); 00641 return (HCMTRANSFORM)cw; 00642 }

long CMCreateMultiProfileTransformInternal CMWorldRef cw,
LPHPROFILE  lpahProfiles,
DWORD  nProfiles,
UINT32 aIntentArr,
UINT32  nIntents,
UINT32  dwFlags,
UINT32  dwCreateLink
 

Definition at line 516 of file w98/mscmm/icm32.c.

References cmBestMode, CMConcatProfileSet, cmDraftMode, cmNormalMode, CMProfileRef, CMConcatProfileSet::count, CWConcatColorWorld4MS(), DisposeIfPtr(), dwFlags, DWORD, icAbsoluteColorimetric, icPerceptual, icRelativeColorimetric, kCreateGamutLutMask, CMConcatProfileSet::keyIndex, kLookupOnlyMask, kUseRelColorimetric, MyNewDeviceLink(), OSErr, CMConcatProfileSet::profileSet, Ptr, SmartNewPtrClear(), and UINT32.

Referenced by CMCreateDeviceLinkProfile(), CMCreateMultiProfileTransform(), and CMCreateTransformExtInternal().

00523 { 00524 CMConcatProfileSet *profileSet; 00525 OSErr aOSErr; 00526 DWORD i; 00527 long err; 00528 UINT32 theFlags; 00529 UINT32 *arrIntents = 0;; 00530 00531 profileSet = (CMConcatProfileSet *)SmartNewPtrClear( sizeof (CMConcatProfileSet) + (nProfiles)* sizeof(CMProfileRef), &aOSErr ); 00532 if (aOSErr == 0 ) 00533 { 00534 profileSet->keyIndex = 0; 00535 profileSet->count = (unsigned short)nProfiles; 00536 for( i=0; i<nProfiles; i++) 00537 profileSet->profileSet[i] = (CMProfileRef)((DWORD *)(((PVOID *)lpahProfiles)[i])); 00538 } 00539 else return ERROR_NOT_ENOUGH_MEMORY; 00540 00541 switch( dwFlags & 0xffff ){ 00542 case BEST_MODE: 00543 theFlags = cmBestMode; 00544 break; 00545 case PROOF_MODE: 00546 theFlags = cmDraftMode; 00547 break; 00548 default: 00549 theFlags = cmNormalMode; 00550 break; 00551 } 00552 if( ! (dwFlags & ENABLE_GAMUT_CHECKING) ){ 00553 theFlags |= kCreateGamutLutMask; 00554 } 00555 if( dwFlags & USE_RELATIVE_COLORIMETRIC ){ 00556 theFlags |= kUseRelColorimetric; 00557 } 00558 if( dwFlags & FAST_TRANSLATE ){ 00559 theFlags |= kLookupOnlyMask; 00560 } 00561 if( nProfiles > 1 && nIntents == 1 ){ 00562 arrIntents = (UINT32 *)SmartNewPtrClear( nProfiles * sizeof (UINT32), &aOSErr); 00563 if (aOSErr != 0 ){ 00564 err = ERROR_NOT_ENOUGH_MEMORY; 00565 goto CleanupAndExit; 00566 } 00567 arrIntents[0] = icPerceptual; 00568 arrIntents[1] = aIntentArr[0]; 00569 for( i=2; i<nProfiles; i++){ 00570 arrIntents[i] = icAbsoluteColorimetric; 00571 if( dwFlags & kUseRelColorimetric ) arrIntents[i] = icRelativeColorimetric; 00572 } 00573 err = CWConcatColorWorld4MS( cw, profileSet, arrIntents, nProfiles, theFlags ); 00574 arrIntents= (UINT32 *)DisposeIfPtr( (Ptr) arrIntents ); 00575 } 00576 else{ 00577 err = CWConcatColorWorld4MS( cw, profileSet, aIntentArr, nIntents, theFlags ); 00578 } 00579 #ifdef WRITE_PROFILE 00580 if( err == 0 ){ 00581 err = MyNewDeviceLink( *cw, profileSet, "MyCreateTransform.pf" ); 00582 //goto CleanupAndExit; 00583 } 00584 #endif 00585 CleanupAndExit: 00586 profileSet= (CMConcatProfileSet *)DisposeIfPtr( (Ptr) profileSet ); 00587 return err; 00588 }

BOOL WINAPI CMCreateProfile LPLOGCOLORSPACEA  lpColorSpace,
LPBYTE *  lpProfileData
 

Definition at line 712 of file mscmm/icm32.c.

References BOOL, CMWorldRef, and MyNewAbstract().

Referenced by CMCreateTransformExt().

00714 { 00715 CMWorldRef cw=0; 00716 long err; 00717 00718 if( lpColorSpace->lcsFilename[0] ) return 0; 00719 err = MyNewAbstract( lpColorSpace, (icProfile **)lpProfileData ); 00720 //err = FillProfileFromLog( lpColorSpace, &theProf ); 00721 if( err ){ 00722 SetLastError( err ); 00723 goto CleanupAndExit; 00724 } 00725 return 1; 00726 CleanupAndExit: 00727 return 0; 00728 }

BOOL WINAPI CMCreateProfileW LPLOGCOLORSPACEW  lpColorSpace,
LPBYTE *  lpProfileData
 

Definition at line 750 of file w98/mscmm/icm32.c.

References BOOL, CMWorldRef, and MyNewAbstractW().

00752 { 00753 CMWorldRef cw=0; 00754 long err; 00755 00756 if( lpColorSpace->lcsFilename[0] ) return 0; 00757 err = MyNewAbstractW( lpColorSpace, (icProfile **)lpProfileData ); 00758 //err = FillProfileFromLogW( lpColorSpace, &theProf ); 00759 if( err ){ 00760 SetLastError( err ); 00761 goto CleanupAndExit; 00762 } 00763 return 1; 00764 CleanupAndExit: 00765 return 0; 00766 }

HCMTRANSFORM WINAPI CMCreateTransform LPLOGCOLORSPACEA  lpColorSpace,
LPDEVCHARACTER  lpDevCharacter,
LPDEVCHARACTER  lpTargetDevCharacter
 

Definition at line 410 of file w98/mscmm/icm32.c.

References CMCreateTransformExt(), and HCMTRANSFORM.

00413 { 00414 return CMCreateTransformExt( lpColorSpace, lpDevCharacter, lpTargetDevCharacter, PROOF_MODE | ENABLE_GAMUT_CHECKING | 0x80000000 ); 00415 }

HCMTRANSFORM WINAPI CMCreateTransformExt LPLOGCOLORSPACEA  lpColorSpace,
LPDEVCHARACTER  lpDevCharacter,
LPDEVCHARACTER  lpTargetDevCharacter,
UINT32  dwFlags
 

Definition at line 282 of file w98/mscmm/icm32.c.

References BOOL, CloseColorProfile(), CMCreateProfile(), CMCreateTransformExtInternal(), CMWorldRef, dwFlags, DWORD, FillProfileFromLog(), HCMTRANSFORM, OPEN_EXISTING, pd, and WriteProf().

Referenced by CMCreateTransform().

00286 { 00287 CMWorldRef cw=0; 00288 long err; 00289 LPBYTE pt,pd, ptDeRef, pdDeRef; 00290 HPROFILE aProf; 00291 PROFILE theProf; 00292 BOOL bWin95; 00293 OSVERSIONINFO osvi; 00294 00295 #if 0 /* Test for CMCreateProfile */ 00296 CMCreateProfile( lpColorSpace, &pt ); 00297 err = *(long *)pt; 00298 SwapLong(&err); 00299 WriteProf( "CMCreateProfile.icc", (icProfile *)pt, err ); 00300 GlobalFreePtr( pt ); 00301 #endif 00302 00303 00304 err = FillProfileFromLog( lpColorSpace, &theProf ); 00305 if( err ){ 00306 SetLastError( err ); 00307 goto CleanupAndExit; 00308 } 00309 aProf = OpenColorProfile(&theProf, PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING ); 00310 if( !aProf ){ 00311 err = GetLastError(); 00312 goto CleanupAndExit; 00313 } 00314 osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); 00315 GetVersionEx(&osvi); 00316 bWin95 = osvi.dwMajorVersion == 4 && 00317 osvi.dwMinorVersion == 0 && 00318 osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS; 00319 00320 if (bWin95) 00321 { 00322 PROFILE myProf; 00323 DWORD l; 00324 00325 // 00326 // Handles are not provided below LCS structure, so create handles 00327 // 00328 00329 myProf.dwType = PROFILE_MEMBUFFER; 00330 myProf.pProfileData = lpDevCharacter; 00331 l = *(DWORD *)(myProf.pProfileData); 00332 myProf.cbDataSize = SwapLong(&l); 00333 pdDeRef = OpenColorProfile(&myProf, PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING ); 00334 if( !pdDeRef ){ 00335 err = GetLastError(); 00336 goto CleanupAndExit; 00337 } 00338 00339 ptDeRef = 0; 00340 if (lpTargetDevCharacter) 00341 { 00342 myProf.dwType = PROFILE_MEMBUFFER; 00343 myProf.pProfileData = lpTargetDevCharacter; 00344 l = *(DWORD *)(myProf.pProfileData); 00345 myProf.cbDataSize = SwapLong(&l); 00346 ptDeRef = OpenColorProfile(&myProf, PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING ); 00347 if( !ptDeRef ){ 00348 err = GetLastError(); 00349 goto CleanupAndExit; 00350 } 00351 } 00352 } 00353 else 00354 { 00355 pd = ((LPBYTE)lpColorSpace+sizeof(LOGCOLORSPACEA)); 00356 pdDeRef= (LPBYTE)*(PULONG_PTR)pd; 00357 00358 pt = ((LPBYTE)lpColorSpace+sizeof(LOGCOLORSPACEA)+sizeof(HPROFILE)); 00359 ptDeRef= (LPBYTE)*(PULONG_PTR)pt; 00360 } 00361 00362 err = CMCreateTransformExtInternal( &cw, dwFlags, 00363 lpColorSpace->lcsIntent, aProf, ptDeRef, pdDeRef ); 00364 00365 CleanupAndExit: 00366 if( lpColorSpace->lcsFilename[0] == 0 ){ 00367 if( theProf.pProfileData )GlobalFreePtr( theProf.pProfileData ); 00368 theProf.pProfileData = 0; 00369 } 00370 if (bWin95) 00371 { 00372 if (pdDeRef) 00373 { 00374 CloseColorProfile(pdDeRef); 00375 } 00376 if (ptDeRef) 00377 { 00378 CloseColorProfile(ptDeRef); 00379 } 00380 } 00381 if( err ){ 00382 return (HCMTRANSFORM)(ULONG_PTR)(err & 255); 00383 } 00384 return (HCMTRANSFORM)cw; 00385 }

long CMCreateTransformExtInternal CMWorldRef cwOut,
UINT32  dwFlags,
UINT32  lcsIntent,
HPROFILE  aProf,
LPBYTE  ptDeRef,
LPBYTE  pdDeRef
 

Definition at line 167 of file w98/mscmm/icm32.c.

References CloseColorProfile(), CMCreateMultiProfileTransformInternal(), CMMModelPtr, CMWorldRef, CWDisposeColorWorld(), DATA_2_PTR, dwFlags, icAbsoluteColorimetric, icPerceptual, icRelativeColorimetric, icSaturation, LCS_GM_BUSINESS, LCS_GM_GRAPHICS, LOCK_DATA, StoreTransform(), UINT32, and UNLOCK_DATA.

Referenced by CMCreateTransformExt(), and CMCreateTransformExtW().

00173 { 00174 CMWorldRef cw=0; 00175 CMWorldRef cw2=0; 00176 long err; 00177 HPROFILE saveProf; 00178 HPROFILE hArray[3]; 00179 UINT32 aIntent[3]; 00180 UINT32 aUINT32,count; 00181 CMMModelPtr theModelPtr; 00182 00183 *cwOut = 0; 00184 aIntent[0] = icRelativeColorimetric; 00185 switch( lcsIntent ){ 00186 case LCS_GM_BUSINESS: 00187 aIntent[1] = icSaturation; 00188 break; 00189 case LCS_GM_GRAPHICS: 00190 aIntent[1] = icRelativeColorimetric; 00191 break; 00192 case LCS_GM_ABS_COLORIMETRIC: 00193 aIntent[1] = icAbsoluteColorimetric; 00194 break; 00195 default: 00196 aIntent[1] = icPerceptual; 00197 break; 00198 } 00199 if( ptDeRef == 0 ){ 00200 count = 2; 00201 hArray[0] = aProf; 00202 hArray[1] = pdDeRef; 00203 } 00204 else{ 00205 count = 3; 00206 hArray[0] = aProf; 00207 hArray[1] = ptDeRef; 00208 hArray[2] = pdDeRef; 00209 if( dwFlags & USE_RELATIVE_COLORIMETRIC )aIntent[2] = INTENT_RELATIVE_COLORIMETRIC; 00210 else aIntent[2] = INTENT_ABSOLUTE_COLORIMETRIC; 00211 } 00212 00213 err = CMCreateMultiProfileTransformInternal( &cw, hArray, count, aIntent, count, dwFlags, 0 ); 00214 if( err ){ 00215 goto CleanupAndExit; 00216 } 00217 if( dwFlags & 0x80000000 ){ /* this is for the backward transform */ 00218 count--; 00219 saveProf = hArray[count]; 00220 hArray[count] = hArray[0]; 00221 hArray[0] = saveProf; 00222 aUINT32 = aIntent[count]; 00223 aIntent[count] = aIntent[0]; 00224 aIntent[0] = aUINT32; 00225 00226 count++; 00227 err = CMCreateMultiProfileTransformInternal( &cw2, hArray, count, aIntent, count, dwFlags, 0 ); 00228 if( err ){ 00229 CWDisposeColorWorld( cw ); /* delete other cw */ 00230 goto CleanupAndExit; 00231 } 00232 LOCK_DATA( cw ); 00233 theModelPtr = (CMMModelPtr)(DATA_2_PTR( cw )); 00234 theModelPtr->pBackwardTransform = cw2; 00235 UNLOCK_DATA( aTrans ); 00236 } 00237 00238 CleanupAndExit: 00239 CloseColorProfile( aProf ); 00240 if( err ){ 00241 SetLastError( err ); 00242 cw = (CMWorldRef)(ULONG_PTR)(err & 255); 00243 } 00244 else{ 00245 cw = StoreTransform( cw ); 00246 } 00247 *cwOut = cw; 00248 return 0; 00249 }

HCMTRANSFORM WINAPI CMCreateTransformExtW LPLOGCOLORSPACEW  lpColorSpace,
LPDEVCHARACTER  lpDevCharacter,
LPDEVCHARACTER  lpTargetDevCharacter,
UINT32  dwFlags
 

Definition at line 446 of file w98/mscmm/icm32.c.

References CMCreateTransformExtInternal(), CMWorldRef, dwFlags, FillProfileFromLogW(), HCMTRANSFORM, OPEN_EXISTING, OpenColorProfileW(), and pd.

Referenced by CMCreateTransformW().

00450 { 00451 CMWorldRef cw=0; 00452 long err; 00453 LPBYTE pt,pd, ptDeRef, pdDeRef; 00454 HPROFILE aProf; 00455 PROFILE theProf; 00456 00457 err = FillProfileFromLogW( lpColorSpace, &theProf ); 00458 if( err ){ 00459 SetLastError( err ); 00460 goto CleanupAndExit; 00461 } 00462 aProf = OpenColorProfileW(&theProf, PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING ); 00463 if( !aProf ){ 00464 err = GetLastError(); 00465 goto CleanupAndExit; 00466 } 00467 pd = ((LPBYTE)lpColorSpace+sizeof(LOGCOLORSPACEW)); 00468 pdDeRef= (LPBYTE)*(PULONG_PTR)pd; 00469 00470 pt = ((LPBYTE)lpColorSpace+sizeof(LOGCOLORSPACEW)+sizeof(HPROFILE)); 00471 ptDeRef= (LPBYTE)*(PULONG_PTR)pt; 00472 00473 err = CMCreateTransformExtInternal( &cw, dwFlags, 00474 lpColorSpace->lcsIntent, aProf, ptDeRef, pdDeRef ); 00475 00476 CleanupAndExit: 00477 if( lpColorSpace->lcsFilename[0] == 0 ){ 00478 if( theProf.pProfileData )GlobalFreePtr( theProf.pProfileData ); 00479 theProf.pProfileData = 0; 00480 } 00481 if( err ){ 00482 return (HCMTRANSFORM)(ULONG_PTR)(err & 255); 00483 } 00484 return (HCMTRANSFORM)cw; 00485 }

HCMTRANSFORM WINAPI CMCreateTransformW LPLOGCOLORSPACEW  lpColorSpace,
LPDEVCHARACTER  lpDevCharacter,
LPDEVCHARACTER  lpTargetDevCharacter
 

Definition at line 509 of file w98/mscmm/icm32.c.

References CMCreateTransformExtW(), and HCMTRANSFORM.

00512 { 00513 return CMCreateTransformExtW( lpColorSpace, lpDevCharacter, lpTargetDevCharacter, PROOF_MODE | ENABLE_GAMUT_CHECKING ); 00514 }

BOOL WINAPI CMDeleteTransform HCMTRANSFORM  hcmTransform  ) 
 

Definition at line 658 of file w98/mscmm/icm32.c.

References BOOL, CMMModelPtr, CMWorldRef, CWDisposeColorWorld(), DATA_2_PTR, GlobalCriticalSection, HCMTRANSFORM, IndexTransform, LOCK_DATA, TheTransform, and UNLOCK_DATA.

00659 { 00660 long actTransform = (long)(ULONG_PTR)hcmTransform - 256; 00661 HCMTRANSFORM aTrans; 00662 CMMModelPtr theModelPtr; 00663 CMWorldRef theWorldRef; 00664 00665 __try { 00666 EnterCriticalSection(&GlobalCriticalSection); 00667 if( actTransform < IndexTransform && actTransform >= 0 ){ 00668 aTrans = TheTransform[actTransform]; 00669 TheTransform[ actTransform ] = 0; 00670 if( actTransform == IndexTransform-1 )IndexTransform--; 00671 return 1; 00672 } 00673 else return 0; 00674 } 00675 __finally{ 00676 LeaveCriticalSection(&GlobalCriticalSection); 00677 00678 LOCK_DATA( aTrans ); 00679 theModelPtr = (CMMModelPtr)(DATA_2_PTR( aTrans )); 00680 theWorldRef = theModelPtr->pBackwardTransform; 00681 UNLOCK_DATA( aTrans ); 00682 if( theWorldRef != 0 ){ 00683 CWDisposeColorWorld( theWorldRef ); 00684 } 00685 00686 CWDisposeColorWorld( aTrans ); 00687 } 00688 }

CMBitmapColorSpace CMGetDataColorSpace BMFORMAT  c,
long *  pixelSize
 

Referenced by CMCheckRGBs(), CMTranslateRGBs(), and CMTranslateRGBsExt().

DWORD WINAPI CMGetInfo DWORD  dwInfo  ) 
 

Definition at line 134 of file w98/mscmm/icm32.c.

References CMM_DLL_VERSION, CMM_DRIVER_LEVEL, CMM_IDENT, CMM_VERSION, CMM_WIN_VERSION, CMS_LEVEL_1, and DWORD.

00135 { 00136 DWORD ret = 0; 00137 switch( dwInfo ){ 00138 case CMM_VERSION: 00139 ret = 0x00050000; 00140 break; 00141 case CMM_WIN_VERSION: 00142 ret = 0x00040000; 00143 break; 00144 case CMM_DLL_VERSION: 00145 ret = 0x00010000; 00146 break; 00147 case CMM_IDENT: 00148 ret = 'Win '; 00149 break; 00150 case CMM_LOGOICON: 00151 ret = 100; 00152 break; 00153 case CMM_DESCRIPTION: 00154 ret = 100; 00155 break; 00156 case CMM_DRIVER_LEVEL: 00157 ret = CMS_LEVEL_1; 00158 break; 00159 default: 00160 ret = 0; 00161 break; 00162 } 00163 return ret; 00164 }

BOOL WINAPI CMGetNamedProfileInfo HPROFILE  aProf,
LPNAMED_PROFILE_INFO  Info
 

Definition at line 1810 of file w98/mscmm/icm32.c.

References BOOL, and CMGetNamedProfileInfoProfile().

01811 { 01812 long matchErr; 01813 01814 matchErr = CMGetNamedProfileInfoProfile( aProf, (pCMNamedProfileInfo)Info ); 01815 if( matchErr ){ 01816 SetLastError( matchErr ); 01817 return 0; 01818 } 01819 return 1; 01820 }

HCMTRANSFORM WINAPI CMGetTransform HCMTRANSFORM  hcmTransform  ) 
 

Referenced by CMCheckColors(), CMCheckColorsInGamut(), CMCheckRGBs(), CMTranslateColors(), CMTranslateRGB(), CMTranslateRGBs(), and CMTranslateRGBsExt().

BOOL WINAPI CMIsProfileValid HPROFILE  hProfile,
LPBOOL  lpbValid
 

Definition at line 917 of file w98/mscmm/icm32.c.

References BOOL, Boolean, CMProfileRef, and CMValidateProfile().

00920 { 00921 Boolean valid; 00922 00923 CMValidateProfile( (CMProfileRef)hProfile, &valid ); 00924 00925 *lpbValid = valid; 00926 return valid; 00927 }

BOOL WINAPI CMTranslateColors HCMTRANSFORM  hcmTransform,
LPCOLOR  lpaInputColors,
DWORD  nColors,
COLORTYPE  ctInput,
LPCOLOR  lpaOutputColors,
COLORTYPE  ctOutput
 

Definition at line 954 of file w98/mscmm/icm32.c.

References BOOL, CMGetTransform(), CWMatchColors(), and n.

00960 { 00961 long matchErr; 00962 long i,n; 00963 00964 n = nColors * sizeof(COLOR) / sizeof(long); 00965 for( i=0; i<n; i++) lpaOutputColors[ i ] = lpaInputColors[ i ]; 00966 00967 matchErr = CWMatchColors( CMGetTransform( hcmTransform ), (CMColor *)lpaOutputColors, nColors ); 00968 if( matchErr ){ 00969 SetLastError( matchErr ); 00970 return 0; 00971 } 00972 return 1; 00973 }

BOOL WINAPI CMTranslateRGB HCMTRANSFORM  hcmTransform,
COLORREF  colorRef,
LPCOLORREF  lpColorRef,
DWORD  dwFlags
 

Definition at line 1354 of file w98/mscmm/icm32.c.

References BOOL, CMBitmapCallBackUPP, CMBitmapColorSpace, CMGetTransform(), cmKYMC32Space, CMMModelPtr, cmparamErr, cmRGBA32Space, CMS_BACKWARD, CMWorldRef, CWGetColorSpaces(), CWMatchBitmap(), DATA_2_PTR, dwFlags, DWORD, FALSE, HCMTRANSFORM, CMBitmap::height, icSigCmykData, CMBitmap::image, LOCK_DATA, NULL, CMBitmap::pixelSize, CMBitmap::rowBytes, CMBitmap::space, UNLOCK_DATA, and CMBitmap::width.

01359 { 01360 CMBitmapColorSpace spaceIn; 01361 CMBitmap InBitmap,OutBitmap; 01362 long matchErr; 01363 COLORREF aColorRef = colorRef; 01364 BOOL aBgrMode = FALSE; 01365 CMBitmapColorSpace In,Out; 01366 CMMModelPtr theModelPtr; 01367 CMWorldRef theWorldRef; 01368 HCMTRANSFORM theTransform = CMGetTransform( hcmTransform ); 01369 01370 if( dwFlags == CMS_BACKWARD ){ 01371 if( theTransform == 0 ){ 01372 SetLastError( (DWORD)cmparamErr ); 01373 return 0; 01374 } 01375 LOCK_DATA( theTransform ); 01376 theModelPtr = (CMMModelPtr)(DATA_2_PTR( theTransform )); 01377 theWorldRef = theModelPtr->pBackwardTransform; 01378 UNLOCK_DATA( theTransform ); 01379 if( theWorldRef == 0 ){ 01380 SetLastError( (DWORD)cmparamErr ); 01381 return 0; 01382 } 01383 theTransform = (HCMTRANSFORM)theWorldRef; 01384 } 01385 01386 spaceIn = cmRGBA32Space; 01387 InBitmap.image = (char *)(&aColorRef); 01388 InBitmap.width = 1; 01389 InBitmap.height = 1; 01390 InBitmap.rowBytes = 4; 01391 InBitmap.pixelSize = 32; 01392 InBitmap.space = spaceIn; 01393 OutBitmap = InBitmap; 01394 OutBitmap.image = (char *)lpColorRef; 01395 01396 matchErr = CWGetColorSpaces( theTransform, &In, &Out ); 01397 if( matchErr ){ 01398 SetLastError( matchErr ); 01399 return 0; 01400 } 01401 if( Out == icSigCmykData ) OutBitmap.space = cmKYMC32Space; 01402 matchErr = CWMatchBitmap( theTransform, &InBitmap, 01403 (CMBitmapCallBackUPP)0,(void *)NULL,&OutBitmap ); 01404 if( matchErr ){ 01405 SetLastError( matchErr ); 01406 return 0; 01407 } 01408 return 1; 01409 }

BOOL WINAPI CMTranslateRGBs HCMTRANSFORM  hcmTransform,
LPVOID  lpSrcBits,
BMFORMAT  bmInput,
DWORD  dwWidth,
DWORD  dwHeight,
DWORD  dwStride,
LPVOID  lpDestBits,
BMFORMAT  bmOutput,
DWORD  dwTranslateDirection
 

Definition at line 1052 of file w98/mscmm/icm32.c.

References BOOL, CMBitmapCallBackUPP, CMBitmapColorSpace, CMGetDataColorSpace(), CMGetTransform(), cmInvalidColorSpace, CMMModelPtr, cmparamErr, CMS_BACKWARD, CMWorldRef, CWMatchBitmap(), DATA_2_PTR, DWORD, FALSE, HCMTRANSFORM, CMBitmap::height, CMBitmap::image, LOCK_DATA, NULL, CMBitmap::pixelSize, CMBitmap::rowBytes, CMBitmap::space, UNLOCK_DATA, and CMBitmap::width.

01061 { 01062 CMBitmapColorSpace spaceIn,spaceOut; 01063 CMBitmap InBitmap,OutBitmap; 01064 long matchErr, inPixelSize, outPixelSize; 01065 BOOL aBgrMode = FALSE; 01066 CMMModelPtr theModelPtr; 01067 CMWorldRef theWorldRef; 01068 HCMTRANSFORM theTransform = CMGetTransform( hcmTransform ); 01069 01070 if( dwTranslateDirection == CMS_BACKWARD ){ 01071 if( theTransform == 0 ){ 01072 SetLastError( (DWORD)cmparamErr ); 01073 return 0; 01074 } 01075 LOCK_DATA( theTransform ); 01076 theModelPtr = (CMMModelPtr)(DATA_2_PTR( theTransform )); 01077 theWorldRef = theModelPtr->pBackwardTransform; 01078 UNLOCK_DATA( theTransform ); 01079 if( theWorldRef == 0 ){ 01080 SetLastError( (DWORD)cmparamErr ); 01081 return 0; 01082 } 01083 theTransform = (HCMTRANSFORM)theWorldRef; 01084 } 01085 01086 spaceIn = CMGetDataColorSpace( bmInput, &inPixelSize ); 01087 if( spaceIn == 0 ){ 01088 SetLastError( (DWORD)cmInvalidColorSpace ); 01089 return 0; 01090 } 01091 spaceOut = CMGetDataColorSpace( bmOutput, &outPixelSize ); 01092 if( spaceOut == 0 ){ 01093 SetLastError( (DWORD)cmInvalidColorSpace ); 01094 return 0; 01095 } 01096 InBitmap.image = lpSrcBits; 01097 InBitmap.width = dwWidth; 01098 InBitmap.height = dwHeight; 01099 if( dwStride == 0 ){ 01100 InBitmap.rowBytes = ( dwWidth * (inPixelSize / 8) + 3 ) & ~3; 01101 } 01102 else{ 01103 InBitmap.rowBytes = dwStride; 01104 } 01105 InBitmap.pixelSize = inPixelSize; 01106 InBitmap.space = spaceIn; 01107 01108 OutBitmap.image = lpDestBits; 01109 OutBitmap.width = dwWidth; 01110 OutBitmap.height = dwHeight; 01111 OutBitmap.rowBytes = ( dwWidth * (outPixelSize / 8) + 3 ) & ~3; 01112 OutBitmap.pixelSize = outPixelSize; 01113 OutBitmap.space = spaceOut; 01114 01115 matchErr = CWMatchBitmap( theTransform, &InBitmap, 01116 (CMBitmapCallBackUPP)0,(void *)NULL,&OutBitmap ); 01117 if( matchErr ){ 01118 SetLastError( matchErr ); 01119 return 0; 01120 } 01121 return 1; 01122 }

BOOL WINAPI CMTranslateRGBsExt HCMTRANSFORM  hcmTransform,
LPVOID  lpSrcBits,
BMFORMAT  bmInput,
DWORD  dwWidth,
DWORD  dwHeight,
DWORD  dwInputStride,
LPVOID  lpDestBits,
BMFORMAT  bmOutput,
DWORD  dwOutputStride,
LPBMCALLBACKFN  lpfnCallback,
LPARAM  ulCallbackData
 

Definition at line 1167 of file w98/mscmm/icm32.c.

References BOOL, CMBitmapCallBackUPP, CMBitmapColorSpace, CMGetDataColorSpace(), CMGetTransform(), cmInvalidColorSpace, CWMatchBitmap(), DWORD, FALSE, CMBitmap::height, CMBitmap::image, CMBitmap::pixelSize, CMBitmap::rowBytes, CMBitmap::space, and CMBitmap::width.

01178 { 01179 CMBitmapColorSpace spaceIn,spaceOut; 01180 CMBitmap InBitmap,OutBitmap; 01181 long matchErr, inPixelSize, outPixelSize; 01182 BOOL aBgrMode = FALSE; 01183 01184 spaceIn = CMGetDataColorSpace( bmInput, &inPixelSize ); 01185 if( spaceIn == 0 ){ 01186 SetLastError( (DWORD)cmInvalidColorSpace ); 01187 return 0; 01188 } 01189 spaceOut = CMGetDataColorSpace( bmOutput, &outPixelSize ); 01190 if( spaceOut == 0 ){ 01191 SetLastError( (DWORD)cmInvalidColorSpace ); 01192 return 0; 01193 } 01194 InBitmap.image = lpSrcBits; 01195 InBitmap.width = dwWidth; 01196 InBitmap.height = dwHeight; 01197 if( dwInputStride == 0 ){ 01198 InBitmap.rowBytes = ( dwWidth * (inPixelSize / 8) + 3 ) & ~3; 01199 } 01200 else{ 01201 InBitmap.rowBytes = dwInputStride; 01202 } 01203 InBitmap.pixelSize = inPixelSize; 01204 InBitmap.space = spaceIn; 01205 01206 OutBitmap.image = lpDestBits; 01207 OutBitmap.width = dwWidth; 01208 OutBitmap.height = dwHeight; 01209 if( dwOutputStride == 0 ){ 01210 OutBitmap.rowBytes = ( dwWidth * (outPixelSize / 8) + 3 ) & ~3; 01211 } 01212 else{ 01213 OutBitmap.rowBytes = dwOutputStride; 01214 } 01215 OutBitmap.pixelSize = outPixelSize; 01216 OutBitmap.space = spaceOut; 01217 01218 matchErr = CWMatchBitmap( CMGetTransform( hcmTransform ), &InBitmap, 01219 (CMBitmapCallBackUPP)lpfnCallback,(void *)ulCallbackData,&OutBitmap ); 01220 if( matchErr ){ 01221 SetLastError( matchErr ); 01222 return 0; 01223 } 01224 return 1; 01225 }

BOOL WINAPI DllMain HINSTANCE  hinstDLL,
DWORD  fdwReason,
LPVOID  lpvReserved
 

Definition at line 71 of file w98/mscmm/icm32.c.

References BOOL, GlobalCriticalSection, and TRUE.

00074 { 00075 switch (fdwReason) 00076 { 00077 case DLL_PROCESS_ATTACH: 00078 DisableThreadLibraryCalls(hinstDLL); 00079 InitializeCriticalSection(&GlobalCriticalSection); 00080 break; 00081 case DLL_PROCESS_DETACH: 00082 DeleteCriticalSection(&GlobalCriticalSection); 00083 break; 00084 } 00085 return TRUE; 00086 }

long FillProfileFromLog LPLOGCOLORSPACEA  lpColorSpace,
PPROFILE  theProf
 

Referenced by CMCreateTransformExt().

long FillProfileFromLogW LPLOGCOLORSPACEW  lpColorSpace,
PPROFILE  theProf
 

Referenced by CMCreateTransformExtW().

CMWorldRef StoreTransform CMWorldRef  aRef  ) 
 

Referenced by CMCreateMultiProfileTransform(), and CMCreateTransformExtInternal().

void WriteProf LPSTR  name,
icProfile theProf,
long  currentSize
 

Referenced by CMCreateTransformExt(), CWConcatColorWorld4MS(), and DeviceLinkFill().


Variable Documentation

CRITICAL_SECTION GlobalCriticalSection
 

Definition at line 51 of file w98/mscmm/icm32.c.

long IndexTransform = 0
 

Definition at line 48 of file w98/mscmm/icm32.c.

HCMTRANSFORM TheTransform[1000] = {0}
 

Definition at line 49 of file w98/mscmm/icm32.c.


Generated on Sat May 15 19:44:09 2004 for test by doxygen 1.3.7