summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2013-09-27 14:02:34 +0000
committerGeorge Hazan <george.hazan@gmail.com>2013-09-27 14:02:34 +0000
commit57a672e41da2cba46722e337a80f9c080b39305d (patch)
treea4b99a66af2f9bb46bb8b8c51f42c0af4e752008 /plugins
parent93803b014deca7d3cd450b4536cb0baa310f612b (diff)
ShellExt shall not call mir_core.dll
git-svn-id: http://svn.miranda-ng.org/main/trunk@6250 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins')
-rw-r--r--plugins/ShellExt/src/Version.h2
-rw-r--r--plugins/ShellExt/src/main.cpp3
-rw-r--r--plugins/ShellExt/src/shlcom.cpp4
-rw-r--r--plugins/ShellExt/src/shlext.cpp14
-rw-r--r--plugins/ShellExt/src/stdafx.h1
5 files changed, 14 insertions, 10 deletions
diff --git a/plugins/ShellExt/src/Version.h b/plugins/ShellExt/src/Version.h
index a0257b4297..5adf2fa76e 100644
--- a/plugins/ShellExt/src/Version.h
+++ b/plugins/ShellExt/src/Version.h
@@ -1,7 +1,7 @@
#define __MAJOR_VERSION 2
#define __MINOR_VERSION 2
#define __RELEASE_NUM 0
-#define __BUILD_NUM 2
+#define __BUILD_NUM 3
#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
#define __FILEVERSION_STRING_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM
diff --git a/plugins/ShellExt/src/main.cpp b/plugins/ShellExt/src/main.cpp
index e6b87adf42..24e1cdc736 100644
--- a/plugins/ShellExt/src/main.cpp
+++ b/plugins/ShellExt/src/main.cpp
@@ -3,6 +3,7 @@
HINSTANCE hInst;
int hLangpack;
+bool bIsVistaPlus;
TCHAR tszLogPath[MAX_PATH];
@@ -23,6 +24,8 @@ PLUGININFOEX pluginInfoEx = {
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH) {
+ bIsVistaPlus = GetProcAddress( GetModuleHandleA("kernel32.dll"), "GetProductInfo") != NULL;
+
GetTempPath(SIZEOF(tszLogPath), tszLogPath);
_tcscat_s(tszLogPath, SIZEOF(tszLogPath), _T("shlext.log"));
diff --git a/plugins/ShellExt/src/shlcom.cpp b/plugins/ShellExt/src/shlcom.cpp
index 3ecc0363ec..5457f5e307 100644
--- a/plugins/ShellExt/src/shlcom.cpp
+++ b/plugins/ShellExt/src/shlcom.cpp
@@ -561,7 +561,7 @@ HRESULT RemoveCOMRegistryEntries()
void CheckUnregisterServer()
{
- if ( IsWinVerVistaPlus()) {
+ if (bIsVistaPlus) {
// launches regsvr to remove the dll under admin.
TCHAR szFileName[MAX_PATH], szBuf[MAX_PATH * 2];
GetModuleFileName(hInst, szFileName, SIZEOF(szFileName));
@@ -589,7 +589,7 @@ void CheckRegisterServer()
HKEY hRegKey;
if ( !RegOpenKeyExA(HKEY_CLASSES_ROOT, "miranda.shlext", 0, KEY_READ, &hRegKey))
RegCloseKey(hRegKey);
- else if ( IsWinVerVistaPlus()) {
+ else if (bIsVistaPlus) {
MessageBoxA(0,
"Shell context menus requires your permission to register with Windows Explorer (one time only).",
"Miranda NG - Shell context menus (shellext.dll)", MB_OK | MB_ICONINFORMATION);
diff --git a/plugins/ShellExt/src/shlext.cpp b/plugins/ShellExt/src/shlext.cpp
index 29434221d9..64f46e1855 100644
--- a/plugins/ShellExt/src/shlext.cpp
+++ b/plugins/ShellExt/src/shlext.cpp
@@ -212,7 +212,7 @@ void DecideMenuItemInfo(TSlotIPC *pct, TGroupNode *pg, MENUITEMINFOA &mii, TEnum
mii.dwTypeData = pg->szGroup;
// For Vista + let the system draw the theme && icons, pct = contact associated data
- if ( IsWinVerVistaPlus() && pct != NULL && psd != NULL) {
+ if (bIsVistaPlus && pct != NULL && psd != NULL) {
mii.fMask = MIIM_BITMAP | MIIM_FTYPE | MIIM_ID | MIIM_DATA | MIIM_STRING;
// BuildSkinIcons() built an array of bitmaps which we can use here
mii.hbmpItem = psd->hStatusBitmap;
@@ -237,7 +237,7 @@ int __stdcall ClearMRUIPC(
void RemoveCheckmarkSpace(HMENU HMENU)
{
- if ( !IsWinVerVistaPlus())
+ if (!bIsVistaPlus)
return;
MENUINFO mi;
@@ -473,7 +473,7 @@ static void BuildMenus(TEnumData *lParam)
// allocate display info/memory for "Miranda" string
mii.cbSize = sizeof(MENUITEMINFO);
- if ( IsWinVerVistaPlus())
+ if (bIsVistaPlus)
mii.fMask = MIIM_ID | MIIM_DATA | MIIM_FTYPE | MIIM_SUBMENU | MIIM_STRING | MIIM_BITMAP;
else
mii.fMask = MIIM_ID | MIIM_DATA | MIIM_TYPE | MIIM_SUBMENU;
@@ -532,7 +532,7 @@ static void BuildMenus(TEnumData *lParam)
static void BuildSkinIcons(TEnumData *lParam)
{
- IWICImagingFactory *factory = ( IsWinVerVistaPlus()) ? ARGB_GetWorker() : NULL;
+ IWICImagingFactory *factory = (bIsVistaPlus) ? ARGB_GetWorker() : NULL;
TSlotIPC *pct = lParam->ipch->NewIconsBegin;
TShellExt *Self = lParam->Self;
@@ -550,7 +550,7 @@ static void BuildSkinIcons(TEnumData *lParam)
// with the shell object.
for (int j = 0; j < 10; j++) {
- if ( IsWinVerVistaPlus()) {
+ if (bIsVistaPlus) {
d->hBitmaps[j] = ARGB_BitmapFromIcon(factory, Self->hMemDC, p->hIcons[j]);
d->hIcons[j] = NULL;
}
@@ -654,7 +654,7 @@ HRESULT TShellExt::QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT _idCmdFirs
}
// if we're using Vista (or later), the ownerdraw code will be disabled, because the system draws the icons.
- if ( IsWinVerVistaPlus())
+ if (bIsVistaPlus)
bMF_OWNERDRAW = false;
HANDLE hMap = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, IPC_PACKET_SIZE, IPC_PACKET_NAME);
@@ -901,7 +901,7 @@ HRESULT TShellExt::HandleMenuMsg2(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESU
MEASUREITEMSTRUCT *msi = (MEASUREITEMSTRUCT*)lParam;
TMenuDrawInfo *psd = (TMenuDrawInfo*)msi->itemData;
NONCLIENTMETRICS ncm;
- ncm.cbSize = (IsWinVerVistaPlus()) ? sizeof(ncm) : offsetof(NONCLIENTMETRICS, iPaddedBorderWidth);
+ ncm.cbSize = (bIsVistaPlus) ? sizeof(ncm) : offsetof(NONCLIENTMETRICS, iPaddedBorderWidth);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0);
// create the font used in menus, this font should be cached somewhere really
HFONT hFont = CreateFontIndirect(&ncm.lfMenuFont);
diff --git a/plugins/ShellExt/src/stdafx.h b/plugins/ShellExt/src/stdafx.h
index bf47755b11..83fc655a65 100644
--- a/plugins/ShellExt/src/stdafx.h
+++ b/plugins/ShellExt/src/stdafx.h
@@ -46,6 +46,7 @@ HRESULT RemoveCOMRegistryEntries();
extern HINSTANCE hInst;
extern HANDLE hLogger;
+extern bool bIsVistaPlus;
extern int DllFactoryCount, DllObjectCount;
int OnOptionsInit(WPARAM wParam, LPARAM lParam);