Advertisement
Guest User

magnification.h Magnification API Windows 8.1+

a guest
Jan 30th, 2022
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.30 KB | None | 0 0
  1. // -------------------------------------------------------------
  2. // magnification.h
  3. //
  4. // Magnification Control API
  5. //
  6. // Copyright (c) Microsoft Corporation. All rights reserved.
  7. // -------------------------------------------------------------
  8.  
  9.  
  10. #ifndef _INC_MAGNIFIER
  11. #define _INC_MAGNIFIER
  12.  
  13. #include <winapifamily.h>
  14.  
  15. #pragma region Desktop Family
  16. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  17.  
  18. #ifndef __wincodec_h__
  19. #include <wincodec.h>
  20. #endif
  21.  
  22. #ifdef __cplusplus    // If used by C++ code,
  23. extern "C" {          // we need to export the C interface
  24. #endif
  25.  
  26. #ifdef _WIN32
  27.  
  28. // Magnifier Class Name
  29. #define WC_MAGNIFIERA             "Magnifier"
  30. #define WC_MAGNIFIERW             L"Magnifier"
  31.  
  32. #ifdef UNICODE
  33. #define WC_MAGNIFIER              WC_MAGNIFIERW
  34. #else
  35. #define WC_MAGNIFIER              WC_MAGNIFIERA
  36. #endif
  37.  
  38. #else
  39. #define WC_MAGNIFIER              "Magnifier"
  40. #endif
  41.  
  42. // Magnifier Window Styles
  43. #define MS_SHOWMAGNIFIEDCURSOR      0x0001L
  44. #define MS_CLIPAROUNDCURSOR         0x0002L
  45. #define MS_INVERTCOLORS             0x0004L
  46.  
  47.  
  48. // Filter Modes
  49. #define MW_FILTERMODE_EXCLUDE   0
  50. #define MW_FILTERMODE_INCLUDE   1
  51.  
  52. typedef struct tagMAGTRANSFORM
  53. {
  54.     float v[3][3];
  55. } MAGTRANSFORM, *PMAGTRANSFORM;
  56.  
  57. typedef struct tagMAGIMAGEHEADER
  58. {
  59.     UINT width;
  60.     UINT height;
  61.     WICPixelFormatGUID format;
  62.     UINT stride;
  63.     UINT offset;
  64.     SIZE_T cbSize;
  65. } MAGIMAGEHEADER, *PMAGIMAGEHEADER;
  66.  
  67. typedef struct tagMAGCOLOREFFECT
  68. {
  69.     float transform[5][5];
  70. } MAGCOLOREFFECT, *PMAGCOLOREFFECT;
  71.  
  72. typedef BOOL (CALLBACK* MagImageScalingCallback)(HWND hwnd, void * srcdata, MAGIMAGEHEADER srcheader, void * destdata, MAGIMAGEHEADER destheader, RECT unclipped, RECT clipped, HRGN dirty );
  73.  
  74. // Public Functions
  75. BOOL WINAPI MagInitialize();
  76. BOOL WINAPI MagUninitialize();
  77.  
  78. BOOL WINAPI MagSetWindowSource(HWND hwnd, RECT rect);
  79. BOOL WINAPI MagGetWindowSource(HWND hwnd, RECT *pRect);
  80. BOOL WINAPI MagSetWindowTransform(HWND hwnd, PMAGTRANSFORM pTransform);
  81. BOOL WINAPI MagGetWindowTransform(HWND hwnd, PMAGTRANSFORM pTransform);
  82. BOOL WINAPI MagSetWindowFilterList(HWND hwnd, DWORD dwFilterMode, int count, HWND *pHWND );
  83. int  WINAPI MagGetWindowFilterList(HWND hwnd, DWORD *pdwFilterMode, int count, HWND *pHWND );
  84. BOOL WINAPI MagSetImageScalingCallback(HWND hwnd, MagImageScalingCallback callback );
  85. MagImageScalingCallback WINAPI MagGetImageScalingCallback(HWND hwnd );
  86. BOOL WINAPI MagSetColorEffect(HWND hwnd, PMAGCOLOREFFECT pEffect);
  87. BOOL WINAPI MagGetColorEffect(HWND hwnd, PMAGCOLOREFFECT pEffect);
  88. BOOL WINAPI MagSetFullscreenTransform(_In_ float magLevel, _In_ int xOffset, _In_ int yOffset);
  89. BOOL WINAPI MagGetFullscreenTransform(_Out_ float *pMagLevel, _Out_ int *pxOffset, _Out_ int *pyOffset);
  90. BOOL WINAPI MagSetFullscreenColorEffect(_In_ PMAGCOLOREFFECT pEffect);
  91. BOOL WINAPI MagGetFullscreenColorEffect(_Out_ PMAGCOLOREFFECT pEffect);
  92. BOOL WINAPI MagSetInputTransform(_In_ BOOL fEnabled, _In_ const LPRECT pRectSource, _In_ const LPRECT pRectDest);
  93. BOOL WINAPI MagGetInputTransform(_Out_ BOOL *pfEnabled, _Out_ LPRECT pRectSource, _Out_ LPRECT pRectDest);
  94. BOOL WINAPI MagShowSystemCursor(_In_ BOOL fShowCursor);
  95.  
  96. #ifdef __cplusplus
  97. }
  98. #endif
  99.  
  100.  
  101. #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
  102. #pragma endregion
  103.  
  104. #endif // !_INC_MAGNIFIER
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement