This article focuses on only one aspect of Target Eye, which is the Auto Update mechanism. This mechanism is used for silently updating the Target Eye Secret Agent whenever there is a newer version available on the server.
|
// TargetEye-AutoUpdate DemonstrationDlg.cpp : implementation file
// This is only a demonstration for codeproject.com, build using original parts of Target Eye's
// source code (developed in 2000) placing this code inside a skeleton MFC Dialog based VS 2010 project
// �2000-2012 Target Eye Limited and Michael Haephrati. www.targeteye.biz
#include "stdafx.h"
#include "TargetEye-AutoUpdate Demonstration.h"
#include "TargetEye-AutoUpdate DemonstrationDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
TEOptions TE_Options; // here we hold global settings and statuses
wchar_t strRegularLocation[256];
wchar_t strTemporaryLocation[256];
// CTargetEyeAutoUpdateDemonstrationApp
BEGIN_MESSAGE_MAP(CTargetEyeAutoUpdateDemonstrationApp, CWinApp)
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()
// CTargetEyeAutoUpdateDemonstrationApp construction
CTargetEyeAutoUpdateDemonstrationApp::CTargetEyeAutoUpdateDemonstrationApp()
{
// support Restart Manager
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
// The one and only CTargetEyeAutoUpdateDemonstrationApp object
CTargetEyeAutoUpdateDemonstrationApp theApp;
// CTargetEyeAutoUpdateDemonstrationApp initialization
BOOL CTargetEyeAutoUpdateDemonstrationApp::InitInstance()
{
if (__argc>1 && strcmp(__argv[0], "")) File1 = (CStringA)__argv[0];
if (__argc>2 && strcmp(__argv[1], "")) File2 = (CStringA)__argv[1];
// InitCommonControlsEx() is required on Windows XP if an application
// manifest specifies use of ComCtl32.dll version 6 or later to enable
// visual styles. Otherwise, any window creation will fail.
INITCOMMONCONTROLSEX InitCtrls;
TE_Options.Version=TEGetVersion(File1); // here we keep the date/time stamp of the current verison
TE_Init();
InitCtrls.dwSize = sizeof(InitCtrls);
// Set this to include all the common control classes you want to use
// in your application.
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
// Create the shell manager, in case the dialog contains
// any shell tree view or shell list view controls.
CShellManager *pShellManager = new CShellManager;
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
CTargetEyeAutoUpdateDemonstrationDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Delete the shell manager created above.
if (pShellManager != NULL)
{
delete pShellManager;
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Michael Haephrati is a music composer, an inventor and an expert specializes in software development and information security, who has built a unique perspective which combines technology and the end user experience. He is the author of a
the book Learning C++ , which teaches C++ 20, and was published in August 2022.
He is the CEO of
Secured Globe, Inc., and also active at
Stack Overflow.
Read our
Corporate blog or read my
Personal blog.