|
From: <no...@us...> - 2003-06-23 05:59:43
|
Log Message:
-----------
No more millions of popups on injection failures.
Modified Files:
--------------
/cvsroot/decaldev/source/DenAgent:
TrayWnd.cpp
TrayWnd.h
Revision Data
-------------
Index: TrayWnd.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/TrayWnd.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- TrayWnd.cpp 20 Jun 2003 06:41:19 -0000 1.14
+++ TrayWnd.cpp 23 Jun 2003 05:59:42 -0000 1.15
@@ -25,6 +25,7 @@
// This is for our windows enumeration process
BOOL CALLBACK EnumerationCallbackProc( HWND, LPARAM );
+CTrayWnd* CTrayWnd::s_pWnd = NULL;
/////////////////////////////////////////////////////////////////////////////
// CTrayWnd
@@ -32,10 +33,12 @@
CTrayWnd::CTrayWnd()
: m_pDialog( NULL ), m_uiTimer( NULL )
{
+ s_pWnd = this;
}
CTrayWnd::~CTrayWnd()
{
+ s_pWnd = NULL;
}
BEGIN_MESSAGE_MAP(CTrayWnd, CWnd)
@@ -129,14 +132,14 @@
else
{
g_bOldInject = false;
- m_uiTimer = SetTimer (1, 1000, NULL);
+ m_uiTimer = SetTimer( 1, 1000, NULL );
}
}
else
{
g_bOldInject = false;
- m_uiTimer = SetTimer (1, 1000, NULL);
+ m_uiTimer = SetTimer( 1, 1000, NULL );
}
}
}
@@ -217,10 +220,18 @@
return TRUE;
}
- if( hwnd != NULL )
+ if( CTrayWnd::s_pWnd != NULL )
+ return CTrayWnd::s_pWnd->OnEnum( hwnd );
+ else
+ return FALSE;
+}
+
+BOOL CTrayWnd::OnEnum( HWND hWndLobby )
+{
+ if( hWndLobby != NULL )
{
DWORD dwProcessId = 0;
- GetWindowThreadProcessId( hwnd, &dwProcessId );
+ GetWindowThreadProcessId( hWndLobby, &dwProcessId );
if( dwProcessId != 0 )
{
@@ -263,7 +274,7 @@
char szBuffer[256];
_snprintf( szBuffer, sizeof( szBuffer ), "Couldn't query AgentPath value: 0x%08lx", dwError );
- MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
+ ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
}
}
@@ -273,7 +284,7 @@
char szBuffer[256];
_snprintf( szBuffer, sizeof( szBuffer ), "Couldn't open HKLM\\Software\\Decal\\Agent key: 0x%08lx", dwError );
- MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
+ ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
}
if( szDllPath[0] )
@@ -284,24 +295,28 @@
DWORD dwError = GetLastError();
char szBuffer[256];
-// _snprintf( szBuffer, sizeof( szBuffer ), "ForceLibraryNow (ForceLibrary.dll) failed: 0x%08lx", dwError );
-// MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
-
_snprintf( szBuffer, sizeof( szBuffer ), "ForceLibraryNow (LobbyHook.dll) has failed( 0x%08lx )\nDo you want to switch to old style injection?\nIf Decal is loading in AC properly answer no.", dwError );
- int iRet = MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_YESNO );
+
+ // Kill timer to avoid 1000 popups
+ KillTimer( m_uiTimer );
+ m_uiTimer = 0;
+
+ int iRet = ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_YESNO );
if( iRet == IDYES )
{
RegKey key;
key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal" ) );
key.SetDWORDValue("OldInjection", 0x1L);
- MessageBox( NULL, "You must restart DenAgent for this option to take effect!", "DenAgent", MB_OK );
- ::PostQuitMessage( 0 );
+ g_bOldInject = true;
+ ::InjectEnable();
}
else // no
{
- MessageBox( NULL, "Restart DenAgent to enable Decal again.", "DenAgent", MB_OK );
- ::PostQuitMessage( 0 );
+ //g_bOldInject = false;
+ //m_uiTimer = SetTimer( 1, 1000, NULL );
+ _snprintf( szBuffer, sizeof( szBuffer ), "Lobby Injection halted... restart DenAgent to try again." );
+ ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
}
}
@@ -315,24 +330,28 @@
DWORD dwError = GetLastError();
char szBuffer[256];
-// _snprintf( szBuffer, sizeof( szBuffer ), "ForceLibraryNow (LobbyHook.dll) failed: 0x%08lx", dwError );
-// MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
-
_snprintf( szBuffer, sizeof( szBuffer ), "ForceLibraryNow (LobbyHook.dll) has failed( 0x%08lx )\nDo you want to switch to old style injection?\nIf Decal is loading in AC properly answer no.", dwError );
- int iRet = MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_YESNO );
+
+ // Kill timer
+ KillTimer( m_uiTimer );
+ m_uiTimer = 0;
+
+ int iRet = ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_YESNO );
if( iRet == IDYES )
{
RegKey key;
key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal" ) );
key.SetDWORDValue("OldInjection", 0x1L);
- MessageBox( NULL, "You must restart DenAgent for this option to take effect!", "DenAgent", MB_OK );
- ::PostQuitMessage( 0 );
+ g_bOldInject = true;
+ ::InjectEnable();
}
else // no
{
- MessageBox( NULL, "Restart DenAgent to enable Decal again.", "DenAgent", MB_OK );
- ::PostQuitMessage( 0 );
+ //g_bOldInject = false;
+ //m_uiTimer = SetTimer( 1, 1000, NULL );
+ _snprintf( szBuffer, sizeof( szBuffer ), "Lobby Injection halted... restart DenAgent to try again." );
+ ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
}
}
}
@@ -343,7 +362,7 @@
char szBuffer[256];
_snprintf( szBuffer, sizeof( szBuffer ), "DLL path was blank: 0x%08lx", dwError );
- MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
+ ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
}
}
@@ -353,7 +372,7 @@
char szBuffer[256];
_snprintf( szBuffer, sizeof( szBuffer ), "Couldn't get process id: 0x%08lx", dwError );
- MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
+ ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK );
}
}
Index: TrayWnd.h
===================================================================
RCS file: /cvsroot/decaldev/source/DenAgent/TrayWnd.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- TrayWnd.h 13 May 2003 07:16:12 -0000 1.4
+++ TrayWnd.h 23 Jun 2003 05:59:42 -0000 1.5
@@ -40,6 +40,9 @@
void UpdateXMLFiles();
+ BOOL OnEnum( HWND hWndLobby );
+ static CTrayWnd* s_pWnd;
+
// Generated message map functions
protected:
//{{AFX_MSG(CTrayWnd)
|