112 lines
3.4 KiB
C
112 lines
3.4 KiB
C
//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);
|
|
|