summaryrefslogtreecommitdiff
path: root/plugins/Scriver
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2013-09-24 18:08:07 +0000
committerKirill Volinsky <mataes2007@gmail.com>2013-09-24 18:08:07 +0000
commit555ce4dfcc5b028219da4e6401a32f7f976044ae (patch)
tree77ad49c389f73170ae4ece6d79742e5dff00d1ec /plugins/Scriver
parentef62ee59a0cd7ce34af0f62fbe4768ac12320edb (diff)
plugins cleanup
git-svn-id: http://svn.miranda-ng.org/main/trunk@6211 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Scriver')
-rw-r--r--plugins/Scriver/scriver_10.vcxproj1
-rw-r--r--plugins/Scriver/scriver_10.vcxproj.filters3
-rw-r--r--plugins/Scriver/scriver_11.vcxproj1
-rw-r--r--plugins/Scriver/scriver_11.vcxproj.filters3
-rw-r--r--plugins/Scriver/src/globals.cpp3
-rw-r--r--plugins/Scriver/src/msgoptions.cpp26
-rw-r--r--plugins/Scriver/src/msgs.cpp5
-rw-r--r--plugins/Scriver/src/msgs.h3
-rw-r--r--plugins/Scriver/src/msgwindow.cpp6
-rw-r--r--plugins/Scriver/src/multimon.h381
10 files changed, 12 insertions, 420 deletions
diff --git a/plugins/Scriver/scriver_10.vcxproj b/plugins/Scriver/scriver_10.vcxproj
index cab93a63bd..c75c25bcdc 100644
--- a/plugins/Scriver/scriver_10.vcxproj
+++ b/plugins/Scriver/scriver_10.vcxproj
@@ -250,7 +250,6 @@
<ClInclude Include="src\input.h" />
<ClInclude Include="src\msgs.h" />
<ClInclude Include="src\msgwindow.h" />
- <ClInclude Include="src\multimon.h" />
<ClInclude Include="src\resource.h" />
<ClInclude Include="src\richutil.h" />
<ClInclude Include="src\sendqueue.h" />
diff --git a/plugins/Scriver/scriver_10.vcxproj.filters b/plugins/Scriver/scriver_10.vcxproj.filters
index 7c1cca3200..b6e855c27f 100644
--- a/plugins/Scriver/scriver_10.vcxproj.filters
+++ b/plugins/Scriver/scriver_10.vcxproj.filters
@@ -122,9 +122,6 @@
<ClInclude Include="src\msgwindow.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="src\multimon.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="src\resource.h">
<Filter>Header Files</Filter>
</ClInclude>
diff --git a/plugins/Scriver/scriver_11.vcxproj b/plugins/Scriver/scriver_11.vcxproj
index e30c09d19d..e294bc5749 100644
--- a/plugins/Scriver/scriver_11.vcxproj
+++ b/plugins/Scriver/scriver_11.vcxproj
@@ -253,7 +253,6 @@
<ClInclude Include="src\input.h" />
<ClInclude Include="src\msgs.h" />
<ClInclude Include="src\msgwindow.h" />
- <ClInclude Include="src\multimon.h" />
<ClInclude Include="src\resource.h" />
<ClInclude Include="src\richutil.h" />
<ClInclude Include="src\sendqueue.h" />
diff --git a/plugins/Scriver/scriver_11.vcxproj.filters b/plugins/Scriver/scriver_11.vcxproj.filters
index 7c1cca3200..b6e855c27f 100644
--- a/plugins/Scriver/scriver_11.vcxproj.filters
+++ b/plugins/Scriver/scriver_11.vcxproj.filters
@@ -122,9 +122,6 @@
<ClInclude Include="src\msgwindow.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="src\multimon.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="src\resource.h">
<Filter>Header Files</Filter>
</ClInclude>
diff --git a/plugins/Scriver/src/globals.cpp b/plugins/Scriver/src/globals.cpp
index 1afbfd9c24..ce3d071f5b 100644
--- a/plugins/Scriver/src/globals.cpp
+++ b/plugins/Scriver/src/globals.cpp
@@ -24,7 +24,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "commonheaders.h"
GlobalMessageData g_dat;
-extern PSLWA pSetLayeredWindowAttributes;
static int ackevent(WPARAM wParam, LPARAM lParam);
@@ -388,7 +387,7 @@ void ReloadGlobals()
if (db_get_b(NULL, SRMMMOD, SRMSGSET_SHOWTYPINGSWITCH, SRMSGDEFSET_SHOWTYPINGSWITCH))
g_dat.flags2 |= SMF2_SHOWTYPINGSWITCH;
- if (LOBYTE(LOWORD(GetVersion())) >= 5 && pSetLayeredWindowAttributes != NULL) {
+ if (LOBYTE(LOWORD(GetVersion())) >= 5) {
if (db_get_b(NULL, SRMMMOD, SRMSGSET_USETRANSPARENCY, SRMSGDEFSET_USETRANSPARENCY))
g_dat.flags2 |= SMF2_USETRANSPARENCY;
g_dat.activeAlpha = db_get_dw(NULL, SRMMMOD, SRMSGSET_ACTIVEALPHA, SRMSGDEFSET_ACTIVEALPHA);
diff --git a/plugins/Scriver/src/msgoptions.cpp b/plugins/Scriver/src/msgoptions.cpp
index 262171f5d6..2a9354c5f1 100644
--- a/plugins/Scriver/src/msgoptions.cpp
+++ b/plugins/Scriver/src/msgoptions.cpp
@@ -510,23 +510,13 @@ static INT_PTR CALLBACK DlgProcLayoutOptions(HWND hwndDlg, UINT msg, WPARAM wPar
SendDlgItemMessage(hwndDlg, IDC_INPUTLINESSPIN, UDM_SETRANGE, 0, MAKELONG(100, 1));
SendDlgItemMessage(hwndDlg, IDC_INPUTLINESSPIN, UDM_SETPOS, 0, db_get_dw(NULL, SRMMMOD, SRMSGSET_AUTORESIZELINES, SRMSGDEFSET_AUTORESIZELINES));
- if (pSetLayeredWindowAttributes == NULL) {
- EnableWindow(GetDlgItem(hwndDlg, IDC_TRANSPARENCY), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ATRANSPARENCYVALUE), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ATRANSPARENCYPERC), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ITRANSPARENCYVALUE), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ITRANSPARENCYPERC), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TRANSPARENCYTEXT1), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TRANSPARENCYTEXT2), FALSE);
- } else {
- bChecked = IsDlgButtonChecked(hwndDlg, IDC_TRANSPARENCY);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ATRANSPARENCYVALUE), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ATRANSPARENCYPERC), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ITRANSPARENCYVALUE), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_ITRANSPARENCYPERC), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TRANSPARENCYTEXT1), bChecked);
- EnableWindow(GetDlgItem(hwndDlg, IDC_TRANSPARENCYTEXT2), bChecked);
- }
+ bChecked = IsDlgButtonChecked(hwndDlg, IDC_TRANSPARENCY);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_ATRANSPARENCYVALUE), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_ATRANSPARENCYPERC), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_ITRANSPARENCYVALUE), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_ITRANSPARENCYPERC), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TRANSPARENCYTEXT1), bChecked);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TRANSPARENCYTEXT2), bChecked);
CheckDlgButton(hwndDlg, IDC_STATUSWIN, db_get_b(NULL, SRMMMOD, SRMSGSET_STATUSICON, SRMSGDEFSET_STATUSICON));
CheckDlgButton(hwndDlg, IDC_SHOWPROGRESS, db_get_b(NULL, SRMMMOD, SRMSGSET_SHOWPROGRESS, SRMSGDEFSET_SHOWPROGRESS));
@@ -537,7 +527,7 @@ static INT_PTR CALLBACK DlgProcLayoutOptions(HWND hwndDlg, UINT msg, WPARAM wPar
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_TRANSPARENCY:
- if (pSetLayeredWindowAttributes != NULL) {
+ {
int bChecked = IsDlgButtonChecked(hwndDlg, IDC_TRANSPARENCY);
EnableWindow(GetDlgItem(hwndDlg, IDC_ATRANSPARENCYVALUE), bChecked);
EnableWindow(GetDlgItem(hwndDlg, IDC_ATRANSPARENCYPERC), bChecked);
diff --git a/plugins/Scriver/src/msgs.cpp b/plugins/Scriver/src/msgs.cpp
index 8872f21165..7c00117e84 100644
--- a/plugins/Scriver/src/msgs.cpp
+++ b/plugins/Scriver/src/msgs.cpp
@@ -29,8 +29,6 @@ HGENMENU hMsgMenuItem;
extern HWND GetParentWindow(HANDLE hContact, BOOL bChat);
-PSLWA pSetLayeredWindowAttributes;
-
#define EVENTTYPE_SCRIVER 2010
#define SCRIVER_DB_GETEVENTTEXT "Scriver/GetText"
@@ -524,9 +522,6 @@ int OnLoadModule(void)
return 0;
}
- HMODULE hDLL = GetModuleHandle(_T("user32"));
- pSetLayeredWindowAttributes = (PSLWA) GetProcAddress(hDLL,"SetLayeredWindowAttributes");
-
InitGlobals();
RichUtil_Load();
OleInitialize(NULL);
diff --git a/plugins/Scriver/src/msgs.h b/plugins/Scriver/src/msgs.h
index f39b3eb115..db6cec558f 100644
--- a/plugins/Scriver/src/msgs.h
+++ b/plugins/Scriver/src/msgs.h
@@ -27,9 +27,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define MSGERROR_RETRY 1
#define MSGERROR_DONE 2
-typedef DWORD (WINAPI *PSLWA)(HWND, DWORD, BYTE, DWORD);
-extern PSLWA pSetLayeredWindowAttributes;
-
typedef struct ToolbarButtonStruct
{
TCHAR *name;
diff --git a/plugins/Scriver/src/msgwindow.cpp b/plugins/Scriver/src/msgwindow.cpp
index 99029f9758..abe6b0ac84 100644
--- a/plugins/Scriver/src/msgwindow.cpp
+++ b/plugins/Scriver/src/msgwindow.cpp
@@ -439,7 +439,7 @@ static void SetContainerWindowStyle(ParentWindowData *dat)
ws |= dat->flags2 & SMF2_USETRANSPARENCY ? WS_EX_LAYERED : 0;
SetWindowLongPtr(dat->hwnd , GWL_EXSTYLE , ws);
if (dat->flags2 & SMF2_USETRANSPARENCY)
- pSetLayeredWindowAttributes(dat->hwnd, RGB(255,255,255), (BYTE)(255-g_dat.inactiveAlpha), LWA_ALPHA);
+ SetLayeredWindowAttributes(dat->hwnd, RGB(255,255,255), (BYTE)(255-g_dat.inactiveAlpha), LWA_ALPHA);
ws = GetWindowLongPtr(dat->hwndTabs, GWL_STYLE) & ~(TCS_BOTTOM | 0x2000);
if (dat->flags2 & SMF2_TABSATBOTTOM)
@@ -755,7 +755,7 @@ INT_PTR CALLBACK DlgProcParentWindow(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
ws |= dat->flags2 & SMF2_USETRANSPARENCY ? WS_EX_LAYERED : 0;
SetWindowLongPtr(hwndDlg , GWL_EXSTYLE , ws);
if (dat->flags2 & SMF2_USETRANSPARENCY) {
- pSetLayeredWindowAttributes(hwndDlg, RGB(255,255,255), (BYTE)(255-g_dat.inactiveAlpha), LWA_ALPHA);
+ SetLayeredWindowAttributes(hwndDlg, RGB(255,255,255), (BYTE)(255-g_dat.inactiveAlpha), LWA_ALPHA);
// RedrawWindow(hwndDlg, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN);
}
break;
@@ -773,7 +773,7 @@ INT_PTR CALLBACK DlgProcParentWindow(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR
ws |= dat->flags2 & SMF2_USETRANSPARENCY ? WS_EX_LAYERED : 0;
SetWindowLongPtr(hwndDlg , GWL_EXSTYLE , ws);
if (dat->flags2 & SMF2_USETRANSPARENCY)
- pSetLayeredWindowAttributes(hwndDlg, RGB(255,255,255), (BYTE)(255-g_dat.activeAlpha), LWA_ALPHA);
+ SetLayeredWindowAttributes(hwndDlg, RGB(255,255,255), (BYTE)(255-g_dat.activeAlpha), LWA_ALPHA);
break;
case WM_LBUTTONDOWN:
diff --git a/plugins/Scriver/src/multimon.h b/plugins/Scriver/src/multimon.h
deleted file mode 100644
index 8498b775bd..0000000000
--- a/plugins/Scriver/src/multimon.h
+++ /dev/null
@@ -1,381 +0,0 @@
-//#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500)
-
-//=============================================================================
-//
-// MULTIMON
-// stub module that "stubs" multiple monitor APIs on pre-Memphis Win32 OSes
-//
-// By using this header your code will work unchanged on Win95,
-// you will get back correct values from GetSystemMetrics() for new metrics
-// and the new APIs will act like only one display is present.
-//
-// exactly one source must include this with COMPILE_MULTIMON_STUBS defined
-//
-//=============================================================================
-
-#ifdef __cplusplus
-extern "C" { /* Assume C declarations for C++ */
-#endif /* __cplusplus */
-
-//
-// if we are building on Win95/NT4 headers we need to declare this stuff ourselves
-//
-#ifndef SM_SAMEDISPLAYFORMAT
-#define SM_SAMEDISPLAYFORMAT 81
-#endif
-
-#ifndef SM_CMONITORS
-#ifndef MONITORINFOF_PRIMARY
-
-#define SM_XVIRTUALSCREEN 76
-#define SM_YVIRTUALSCREEN 77
-#define SM_CXVIRTUALSCREEN 78
-#define SM_CYVIRTUALSCREEN 79
-#define SM_CMONITORS 80
-
-DECLARE_HANDLE(HMONITOR);
-
-typedef struct tagMONITORINFO
-{
- DWORD cbSize;
- RECT rcMonitor;
- RECT rcWork;
- DWORD dwFlags;
-} MONITORINFO, *LPMONITORINFO;
-
-#define CCHDEVICENAME 32
-#endif // SM_CMONITORS
-
-#define MONITORINFOF_PRIMARY 0x00000001
-
-#ifndef MONITOR_DEFAULTTONULL
-#define MONITOR_DEFAULTTONULL 0x00000000
-#endif
-#ifndef MONITOR_DEFAULTTOPRIMARY
-#define MONITOR_DEFAULTTOPRIMARY 0x00000001
-#endif
-#ifndef MONITOR_DEFAULTTONEAREST
-#define MONITOR_DEFAULTTONEAREST 0x00000002
-#endif
-
-typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM);
-
- #ifdef __cplusplus
- typedef struct tagMONITORINFOEX : public tagMONITORINFO
- {
- TCHAR szDevice[CCHDEVICENAME];
- } MONITORINFOEX, *LPMONITORINFOEX;
- #else
- typedef struct
- {
- MONITORINFO;
- TCHAR szDevice[CCHDEVICENAME];
- } MONITORINFOEX, *LPMONITORINFOEX;
- #endif
-
-
-#ifndef DISPLAY_DEVICE_ATTACHED_TO_DESKTOP
-
-typedef struct {
- DWORD cb;
- CHAR DeviceName[32];
- CHAR DeviceString[128];
- DWORD StateFlags;
-} DISPLAY_DEVICE;
-
-#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
-#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
-#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
-#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
-
-#endif
-#endif
-#define DISPLAY_DEVICE_VGA 0x00000010
-
-#ifndef ENUM_CURRENT_SETTINGS
-#define ENUM_CURRENT_SETTINGS ((DWORD)-1)
-#define ENUM_REGISTRY_SETTINGS ((DWORD)-2)
-#endif
-
-#undef GetMonitorInfo
-#undef GetSystemMetrics
-#undef MonitorFromWindow
-#undef MonitorFromRect
-#undef MonitorFromPoint
-#undef EnumDisplayMonitors
-#undef EnumDisplayDevices
-
-//
-// define this to compile the stubs
-// otherwise you get the declarations
-//
-#ifdef COMPILE_MULTIMON_STUBS
-
- //---------------------------------------------------------------------------
- //
- // Implement the API stubs.
- //
- //---------------------------------------------------------------------------
-
- int (WINAPI* g_pfnGetSystemMetrics)(int);
- HMONITOR (WINAPI* g_pfnMonitorFromWindow)(HWND, BOOL);
- HMONITOR (WINAPI* g_pfnMonitorFromRect)(LPCRECT, BOOL);
- HMONITOR (WINAPI* g_pfnMonitorFromPoint)(POINT, BOOL);
- BOOL (WINAPI* g_pfnGetMonitorInfo)(HMONITOR, LPMONITORINFO);
- BOOL (WINAPI* g_pfnEnumDisplayMonitors)(HDC, LPCRECT,
- MONITORENUMPROC, LPARAM);
- BOOL (WINAPI *g_pfnEnumDisplayDevices)(LPVOID, int,
- DISPLAY_DEVICE *,DWORD);
-
- BOOL InitMultipleMonitorStubs(void)
- {
- HMODULE hUser32;
- static BOOL fInitDone;
-
- if (fInitDone)
- {
- return g_pfnGetMonitorInfo != NULL;
- }
-
- if ((hUser32 = GetModuleHandle(TEXT("USER32"))) &&
- (*(FARPROC*)&g_pfnGetSystemMetrics = GetProcAddress(hUser32,"GetSystemMetrics")) &&
- (*(FARPROC*)&g_pfnMonitorFromWindow = GetProcAddress(hUser32,"MonitorFromWindow")) &&
- (*(FARPROC*)&g_pfnMonitorFromRect = GetProcAddress(hUser32,"MonitorFromRect")) &&
- (*(FARPROC*)&g_pfnMonitorFromPoint = GetProcAddress(hUser32,"MonitorFromPoint")) &&
- (*(FARPROC*)&g_pfnEnumDisplayMonitors = GetProcAddress(hUser32,"EnumDisplayMonitors")) &&
- (*(FARPROC*)&g_pfnGetMonitorInfo = GetProcAddress(hUser32,"GetMonitorInfoW")) &&
- (*(FARPROC*)&g_pfnEnumDisplayDevices = GetProcAddress(hUser32,"EnumDisplayDevicesW")) &&
- (GetSystemMetrics(SM_CXVIRTUALSCREEN) >= GetSystemMetrics(SM_CXSCREEN)) &&
- (GetSystemMetrics(SM_CYVIRTUALSCREEN) >= GetSystemMetrics(SM_CYSCREEN)))
- {
- fInitDone = TRUE;
- return TRUE;
- }
- else
- {
- g_pfnGetSystemMetrics = NULL;
- g_pfnMonitorFromWindow = NULL;
- g_pfnMonitorFromRect = NULL;
- g_pfnMonitorFromPoint = NULL;
- g_pfnGetMonitorInfo = NULL;
- g_pfnEnumDisplayMonitors = NULL;
- g_pfnEnumDisplayDevices = NULL;
-
- fInitDone = TRUE;
- return FALSE;
- }
- }
-
- //---------------------------------------------------------------------------
- //
- // "stubbed" implementations of Monitor APIs that work with the primary // display
- //
- //---------------------------------------------------------------------------
-
- int WINAPI
- xGetSystemMetrics(int nIndex)
- {
- if (InitMultipleMonitorStubs())
- return g_pfnGetSystemMetrics(nIndex);
-
- switch (nIndex) {
- case SM_CMONITORS:
- case SM_SAMEDISPLAYFORMAT:
- return 1;
-
- case SM_XVIRTUALSCREEN:
- case SM_YVIRTUALSCREEN:
- return 0;
-
- case SM_CXVIRTUALSCREEN:
- nIndex = SM_CXSCREEN;
- break;
-
- case SM_CYVIRTUALSCREEN:
- nIndex = SM_CYSCREEN;
- break;
- }
-
- return GetSystemMetrics(nIndex);
- }
-
- #define xPRIMARY_MONITOR ((HMONITOR)0x42)
-
- HMONITOR WINAPI
- xMonitorFromRect(LPCRECT lprcScreenCoords, UINT uFlags)
- {
- if (InitMultipleMonitorStubs())
- return g_pfnMonitorFromRect(lprcScreenCoords, uFlags);
-
- if ((uFlags & (MONITOR_DEFAULTTOPRIMARY | MONITOR_DEFAULTTONEAREST)) ||
- ((lprcScreenCoords->right > 0) &&
- (lprcScreenCoords->bottom > 0) &&
- (lprcScreenCoords->left < GetSystemMetrics(SM_CXSCREEN)) &&
- (lprcScreenCoords->top < GetSystemMetrics(SM_CYSCREEN))))
- {
- return xPRIMARY_MONITOR;
- }
-
- return NULL;
- }
-
- HMONITOR WINAPI
- xMonitorFromWindow(HWND hWnd, UINT uFlags)
- {
- RECT rc;
-
- if (InitMultipleMonitorStubs())
- return g_pfnMonitorFromWindow(hWnd, uFlags);
-
- if (uFlags & (MONITOR_DEFAULTTOPRIMARY | MONITOR_DEFAULTTONEAREST))
- return xPRIMARY_MONITOR;
-
- if (GetWindowRect(hWnd, &rc))
- return xMonitorFromRect(&rc, uFlags);
-
- return NULL;
- }
-
- HMONITOR WINAPI
- xMonitorFromPoint(POINT ptScreenCoords, UINT uFlags)
- {
- if (InitMultipleMonitorStubs())
- return g_pfnMonitorFromPoint(ptScreenCoords, uFlags);
-
- if ((uFlags & (MONITOR_DEFAULTTOPRIMARY | MONITOR_DEFAULTTONEAREST)) ||
- ((ptScreenCoords.x >= 0) &&
- (ptScreenCoords.x < GetSystemMetrics(SM_CXSCREEN)) &&
- (ptScreenCoords.y >= 0) &&
- (ptScreenCoords.y < GetSystemMetrics(SM_CYSCREEN))))
- {
- return xPRIMARY_MONITOR;
- }
-
- return NULL;
- }
-
- BOOL WINAPI
- xGetMonitorInfo(HMONITOR hMonitor, LPMONITORINFO lpMonitorInfo)
- {
- RECT rcWork;
-
- if (InitMultipleMonitorStubs())
- return g_pfnGetMonitorInfo(hMonitor, lpMonitorInfo);
-
- if ((hMonitor == xPRIMARY_MONITOR) && lpMonitorInfo &&
- (lpMonitorInfo->cbSize >= sizeof(MONITORINFO)) &&
- SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWork, 0))
- {
- lpMonitorInfo->rcMonitor.left = 0;
- lpMonitorInfo->rcMonitor.top = 0;
- lpMonitorInfo->rcMonitor.right = GetSystemMetrics(SM_CXSCREEN);
- lpMonitorInfo->rcMonitor.bottom = GetSystemMetrics(SM_CYSCREEN);
- lpMonitorInfo->rcWork = rcWork;
- lpMonitorInfo->dwFlags = MONITORINFOF_PRIMARY;
-
- if (lpMonitorInfo->cbSize >= sizeof(MONITORINFOEX))
- lstrcpy(((MONITORINFOEX*)lpMonitorInfo)->szDevice,
- TEXT("DISPLAY"));
-
- return TRUE;
- }
-
- return FALSE;
- }
-
- BOOL WINAPI
- xEnumDisplayMonitors(
- HDC hdc,
- LPCRECT lprcIntersect,
- MONITORENUMPROC lpfnEnumProc,
- LPARAM lData)
- {
- RECT rcCallback, rcLimit;
-
- if (InitMultipleMonitorStubs())
- return g_pfnEnumDisplayMonitors(hdc, lprcIntersect, lpfnEnumProc,
- lData);
-
- if (!lpfnEnumProc)
- return FALSE;
-
- rcLimit.left = 0;
- rcLimit.top = 0;
- rcLimit.right = GetSystemMetrics(SM_CXSCREEN);
- rcLimit.bottom = GetSystemMetrics(SM_CYSCREEN);
-
- if (hdc)
- {
- RECT rcClip;
- HWND hWnd;
-
- if ((hWnd = WindowFromDC(hdc)) == NULL)
- return FALSE;
-
- switch (GetClipBox(hdc, &rcClip)) {
- default:
- MapWindowPoints(NULL, hWnd, (LPPOINT)&rcLimit, 2);
- if (IntersectRect(&rcCallback, &rcClip, &rcLimit))
- break;
- //fall thru
- case NULLREGION:
- return TRUE;
- case ERROR:
- return FALSE;
- }
-
- rcLimit = rcCallback;
- }
-
- if (!lprcIntersect ||
- IntersectRect(&rcCallback, lprcIntersect, &rcLimit))
- {
- lpfnEnumProc(xPRIMARY_MONITOR, hdc, &rcCallback, lData);
- }
-
- return TRUE;
- }
-
- BOOL WINAPI
- xEnumDisplayDevices(LPVOID lpReserved, int iDeviceNum,
-DISPLAY_DEVICE * pDisplayDevice, DWORD dwFlags)
- {
- if (InitMultipleMonitorStubs())
- return g_pfnEnumDisplayDevices(lpReserved, iDeviceNum,
- pDisplayDevice, dwFlags);
-
- return FALSE;
- }
-
- #undef xPRIMARY_MONITOR
- #undef COMPILE_MULTIMON_STUBS
-
-#else // COMPILE_MULTIMON_STUBS
-
- extern int WINAPI xGetSystemMetrics(int);
- extern HMONITOR WINAPI xMonitorFromWindow(HWND, UINT);
- extern HMONITOR WINAPI xMonitorFromRect(LPCRECT, UINT);
- extern HMONITOR WINAPI xMonitorFromPoint(POINT, UINT);
- extern BOOL WINAPI xGetMonitorInfo(HMONITOR, LPMONITORINFO);
- extern BOOL WINAPI xEnumDisplayMonitors(HDC, LPCRECT, MONITORENUMPROC,
- LPARAM);
- extern BOOL WINAPI xEnumDisplayDevices(LPVOID, int, DISPLAY_DEVICE *,DWORD);
-
-#endif // COMPILE_MULTIMON_STUBS
-
-//
-// build defines that replace the regular APIs with our versions
-//
-#define GetSystemMetrics xGetSystemMetrics
-#define MonitorFromWindow xMonitorFromWindow
-#define MonitorFromRect xMonitorFromRect
-#define MonitorFromPoint xMonitorFromPoint
-#define GetMonitorInfo xGetMonitorInfo
-#define EnumDisplayMonitors xEnumDisplayMonitors
-#define EnumDisplayDevices xEnumDisplayDevices
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-//#endif /* !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) */ \ No newline at end of file