ICMVIEW.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. //THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  2. //ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  3. //THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  4. // PARTICULAR PURPOSE.
  5. //
  6. // Copyright  1994-1997  Microsoft Corporation.  All Rights Reserved.
  7. //
  8. //  FILE:
  9. //    ICMVIEW.H
  10. //
  11. //  PURPOSE:
  12. //    Include file for ICMVIEW.C
  13. //
  14. //  PLATFORMS:
  15. //    Windows 95, Windows NT
  16. //
  17. //  SPECIAL INSTRUCTIONS: N/A
  18. //
  19. // General pre-processor macros
  20. #define APPNAMEA    "ICMVIEW"
  21. #define APPNAME __TEXT("ICMVIEW")
  22. #ifndef MAX_STRING
  23.     #define MAX_STRING    256
  24. #endif
  25. //
  26. // Constants for use by Windows ICM APIs
  27. //    These *should* be in WINGDI.H
  28. //
  29. //  API:  ColorMatchToTarget.
  30. #ifndef CS_ENABLE
  31.     #define CS_ENABLE           1
  32.     #define CS_DISABLE          2
  33.     #define CS_DELETE_TRANSFORM 3
  34. #endif
  35. // Values for BITMAPV5HEADER field bV5CSType
  36. #ifndef PROFILE_LINKED
  37.     #define PROFILE_LINKED          'LINK'
  38.     #define PROFILE_EMBEDDED        'MBED'
  39. #endif
  40. // Makes it easier to determine appropriate code paths:
  41. #if defined (WIN32)
  42.     #define IS_WIN32 TRUE
  43. #else
  44.     #define IS_WIN32 FALSE
  45. #endif
  46. #define IS_NT      (0 != (IS_WIN32 && ((BOOL)(GetVersion() < 0x80000000))) )
  47. #define IS_WIN32S  (0 != (IS_WIN32 && (BOOL)(!(IS_NT) && (LOBYTE(LOWORD(GetVersion()))<4))))
  48. #define IS_WIN95   (0 != ((BOOL)(!(IS_NT) && !(IS_WIN32S)) && IS_WIN32))
  49. // Support macros
  50. #ifndef C1_GAMMA_RAMP
  51.     #define C1_GAMMA_RAMP 0x00000020
  52. #endif
  53. #ifndef CAPS1
  54.     #define CAPS1   94
  55. #endif
  56. #define SUPPORT_GAMMA_RAMPS(hDC) (BOOL)((GetDeviceCaps(hDC, CAPS1) & C1_GAMMA_RAMP) != 0)
  57. // Default profile to use
  58. #define DEFAULT_ICM_PROFILE __TEXT("sRGB Color Space Profile.ICM")
  59. // Window extra bytes
  60. #define GWL_DIBINFO GWL_USERDATA
  61. // DWORD Flag macros
  62. #define CHECK_DWFLAG(dwFlag,dwBits)((BOOL)((dwFlag & dwBits) != 0))
  63. #define ENABLE_DWFLAG(dwFlag,dwBits)   (dwFlag |= dwBits)
  64. #define CLEAR_DWFLAG(dwFlag,dwBits) (dwFlag &= ~dwBits)
  65. #define SET_DWFlag(dwFlag, dwBits, bSet) (bSet ? (dwFlag |= dwBits) : (dwFlag &= ~dwFlag))
  66. #define START_WAIT_CURSOR(hCur) hCur = SetCursor(LoadCursor(NULL,IDC_WAIT));
  67. #define END_WAIT_CURSOR(hCur) SetCursor(hCur);
  68. #define IVF_MAXIMIZED   0x1L
  69. // Constants for use in converting ICC Intents to LCS Intents
  70. #define MAX_ICC_INTENT  INTENT_ABSOLUTE_COLORIMETRIC
  71. #define ICC_TO_LCS      0
  72. #define LCS_TO_ICC      1
  73. // General STRUCTS && TYPEDEFS
  74. #ifndef ICMVIEW_INTERNAL
  75. // Global variables for the application.
  76. extern  HINSTANCE   ghInst;                 // Global instance handle
  77. extern  TCHAR       gstTitle[];             // The title bar text
  78. extern  HWND        ghAppWnd;               // Handle to application window
  79. extern  HWND        ghWndMDIClient;
  80. extern  DWORD       gdwLastError;           // Used to track LastError value
  81. extern  TCHAR       gstProfilesDir[MAX_PATH];       // System directory for ICM profiles
  82. #endif
  83. // Function prototypes
  84. LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
  85. LPTSTR  CopyString(LPTSTR lpszSrc);
  86. BOOL    UpdateString(LPTSTR *lpszDest, LPTSTR lpszSrc);
  87. BOOL    CenterWindow(HWND, HWND);
  88. BOOL    ConvertIntent(DWORD dwOrig, DWORD dwDirection, LPDWORD lpdwXlate);
  89. DWORD   SetDWFlags(LPDWORD lpdwFlag, DWORD dwBitValue, BOOL bSet);
  90. HMENU   InitImageMenu(HWND hWnd);
  91. BOOL    GetBaseFilename(LPTSTR lpszFilename, LPTSTR *lpszBaseFilename);