//THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF //ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO //THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A // PARTICULAR PURPOSE. // // Copyright 1994-1997 Microsoft Corporation. All Rights Reserved. // // FILE: // ICMVIEW.H // // PURPOSE: // Include file for ICMVIEW.C // // PLATFORMS: // Windows 95, Windows NT // // SPECIAL INSTRUCTIONS: N/A // // General pre-processor macros #define APPNAMEA "ICMVIEW" #define APPNAME __TEXT("ICMVIEW") #ifndef MAX_STRING #define MAX_STRING 256 #endif // // Constants for use by Windows ICM APIs // These *should* be in WINGDI.H // // API: ColorMatchToTarget. #ifndef CS_ENABLE #define CS_ENABLE 1 #define CS_DISABLE 2 #define CS_DELETE_TRANSFORM 3 #endif // Values for BITMAPV5HEADER field bV5CSType #ifndef PROFILE_LINKED #define PROFILE_LINKED 'LINK' #define PROFILE_EMBEDDED 'MBED' #endif // Makes it easier to determine appropriate code paths: #if defined (WIN32) #define IS_WIN32 TRUE #else #define IS_WIN32 FALSE #endif #define IS_NT (0 != (IS_WIN32 && ((BOOL)(GetVersion() < 0x80000000))) ) #define IS_WIN32S (0 != (IS_WIN32 && (BOOL)(!(IS_NT) && (LOBYTE(LOWORD(GetVersion()))<4)))) #define IS_WIN95 (0 != ((BOOL)(!(IS_NT) && !(IS_WIN32S)) && IS_WIN32)) // Support macros #ifndef C1_GAMMA_RAMP #define C1_GAMMA_RAMP 0x00000020 #endif #ifndef CAPS1 #define CAPS1 94 #endif #define SUPPORT_GAMMA_RAMPS(hDC) (BOOL)((GetDeviceCaps(hDC, CAPS1) & C1_GAMMA_RAMP) != 0) // Default profile to use #define DEFAULT_ICM_PROFILE __TEXT("sRGB Color Space Profile.ICM") // Window extra bytes #define GWL_DIBINFO GWL_USERDATA // DWORD Flag macros #define CHECK_DWFLAG(dwFlag,dwBits)((BOOL)((dwFlag & dwBits) != 0)) #define ENABLE_DWFLAG(dwFlag,dwBits) (dwFlag |= dwBits) #define CLEAR_DWFLAG(dwFlag,dwBits) (dwFlag &= ~dwBits) #define SET_DWFlag(dwFlag, dwBits, bSet) (bSet ? (dwFlag |= dwBits) : (dwFlag &= ~dwFlag)) #define START_WAIT_CURSOR(hCur) hCur = SetCursor(LoadCursor(NULL,IDC_WAIT)); #define END_WAIT_CURSOR(hCur) SetCursor(hCur); #define IVF_MAXIMIZED 0x1L // Constants for use in converting ICC Intents to LCS Intents #define MAX_ICC_INTENT INTENT_ABSOLUTE_COLORIMETRIC #define ICC_TO_LCS 0 #define LCS_TO_ICC 1 // General STRUCTS && TYPEDEFS #ifndef ICMVIEW_INTERNAL // Global variables for the application. extern HINSTANCE ghInst; // Global instance handle extern TCHAR gstTitle[]; // The title bar text extern HWND ghAppWnd; // Handle to application window extern HWND ghWndMDIClient; extern DWORD gdwLastError; // Used to track LastError value extern TCHAR gstProfilesDir[MAX_PATH]; // System directory for ICM profiles #endif // Function prototypes LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LPTSTR CopyString(LPTSTR lpszSrc); BOOL UpdateString(LPTSTR *lpszDest, LPTSTR lpszSrc); BOOL CenterWindow(HWND, HWND); BOOL ConvertIntent(DWORD dwOrig, DWORD dwDirection, LPDWORD lpdwXlate); DWORD SetDWFlags(LPDWORD lpdwFlag, DWORD dwBitValue, BOOL bSet); HMENU InitImageMenu(HWND hWnd); BOOL GetBaseFilename(LPTSTR lpszFilename, LPTSTR *lpszBaseFilename);