mirror of https://github.com/UMSKT/xpmgr.git
91 lines
2.4 KiB
C
91 lines
2.4 KiB
C
// -------------------------------------------------------------
|
|
// magnification.h
|
|
//
|
|
// Magnification Control API
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// -------------------------------------------------------------
|
|
|
|
|
|
#ifndef _INC_MAGNIFIER
|
|
#define _INC_MAGNIFIER
|
|
|
|
#ifndef __wincodec_h__
|
|
#include <wincodec.h>
|
|
#endif
|
|
|
|
#ifdef __cplusplus // If used by C++ code,
|
|
extern "C" { // we need to export the C interface
|
|
#endif
|
|
|
|
#ifdef _WIN32
|
|
|
|
// Magnifier Class Name
|
|
#define WC_MAGNIFIERA "Magnifier"
|
|
#define WC_MAGNIFIERW L"Magnifier"
|
|
|
|
#ifdef UNICODE
|
|
#define WC_MAGNIFIER WC_MAGNIFIERW
|
|
#else
|
|
#define WC_MAGNIFIER WC_MAGNIFIERA
|
|
#endif
|
|
|
|
#else
|
|
#define WC_MAGNIFIER "Magnifier"
|
|
#endif
|
|
|
|
// Magnifier Window Styles
|
|
#define MS_SHOWMAGNIFIEDCURSOR 0x0001L
|
|
#define MS_CLIPAROUNDCURSOR 0x0002L
|
|
#define MS_INVERTCOLORS 0x0004L
|
|
|
|
|
|
// Filter Modes
|
|
#define MW_FILTERMODE_EXCLUDE 0
|
|
#define MW_FILTERMODE_INCLUDE 1
|
|
|
|
typedef struct tagMAGTRANSFORM
|
|
{
|
|
float v[3][3];
|
|
} MAGTRANSFORM, *PMAGTRANSFORM;
|
|
|
|
typedef struct tagMAGIMAGEHEADER
|
|
{
|
|
UINT width;
|
|
UINT height;
|
|
WICPixelFormatGUID format;
|
|
UINT stride;
|
|
UINT offset;
|
|
SIZE_T cbSize;
|
|
} MAGIMAGEHEADER, *PMAGIMAGEHEADER;
|
|
|
|
typedef struct tagMAGCOLOREFFECT
|
|
{
|
|
float transform[5][5];
|
|
} MAGCOLOREFFECT, *PMAGCOLOREFFECT;
|
|
|
|
typedef BOOL (CALLBACK* MagImageScalingCallback)(HWND hwnd, void * srcdata, MAGIMAGEHEADER srcheader, void * destdata, MAGIMAGEHEADER destheader, RECT unclipped, RECT clipped, HRGN dirty );
|
|
|
|
// Public Functions
|
|
BOOL WINAPI MagInitialize();
|
|
BOOL WINAPI MagUninitialize();
|
|
|
|
BOOL WINAPI MagSetWindowSource(HWND hwnd, RECT rect);
|
|
BOOL WINAPI MagGetWindowSource(HWND hwnd, RECT *pRect);
|
|
BOOL WINAPI MagSetWindowTransform(HWND hwnd, PMAGTRANSFORM pTransform);
|
|
BOOL WINAPI MagGetWindowTransform(HWND hwnd, PMAGTRANSFORM pTransform);
|
|
BOOL WINAPI MagSetWindowFilterList(HWND hwnd, DWORD dwFilterMode, int count, HWND *pHWND );
|
|
int WINAPI MagGetWindowFilterList(HWND hwnd, DWORD *pdwFilterMode, int count, HWND *pHWND );
|
|
BOOL WINAPI MagSetImageScalingCallback(HWND hwnd, MagImageScalingCallback callback );
|
|
MagImageScalingCallback WINAPI MagGetImageScalingCallback(HWND hwnd );
|
|
BOOL WINAPI MagSetColorEffect(HWND hwnd, PMAGCOLOREFFECT pEffect);
|
|
BOOL WINAPI MagGetColorEffect(HWND hwnd, PMAGCOLOREFFECT pEffect);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // !_INC_MAGNIFIER
|
|
|