User's Manual

Chapter 7 — Programming
140 CN30 Mobile Computer User’s Manual
list shows the functions that are exported by SETUP.DLL.
Install_Init Called before installation begins. Use this function to check the application version when reinstalling
an application and to determine if a dependent application is present.
Install_Exit Called after installation is complete. Use this function to handle errors that occur during application
installation.
Uninstall_Init Called before the removal process begins. Use this function to close the application, if the application
is running.
Uninstall_Exit Called after the removal process is complete. Use this function to save database information to a
file and delete the database and to tell the user where the user data files are stored and how to reinstall
the application.
Note; Use [DefaultInstall] > CESelfRegister in the .INF file to
point to SETUP.DLL.
After the CAB File Extraction
Cab files that need to cause a warm reset after cab extraction will need to
create the __RESETMEPLEASE__.TXT file in the “\Windows” directory.
The preferred method to create this file is within the DllMain portion of
the SETUP.DLL file. It looks like this:
#include <windows.h>
#include <Tlhelp32.h>
#include <winioctl.h>
#include <ce_setup.h> // in the public SDK dir
#define IOCTL_TERMINAL_RESET CTL_CODE (FILE_DEVICE_UNKNOWN,FILE_ANY_ACCESS,
2050, METHOD_NEITHER)
BOOL APIENTRY DllMain( HANDLE h, DWORD reason, LPVOID lpReserved )
{
return TRUE;
} // DllMain
//************************************************************************
// $DOCBEGIN$
// BOOL IsProcessRunning( TCHAR * pname );
//
// Description: Get process table snapshot, look for pname running.
//
// Arguments: pname - pointer to name of program to look for.
// for example, app.exe.
//
// Returns: TRUE - process is running.
// FALSE - process is not running.
// $DOCEND$
//************************************************************************
BOOL IsProcessRunning( TCHAR * pname )
{
HANDLE hProcList;
PROCESSENTRY32 peProcess;
DWORD thDeviceProcessID;
TCHAR lpname[MAX_PATH];
if ( !pname || !*pname ) return FALSE;