Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// setup.cpp : Defines the entry point for the console application.
//
#include "Windows.h"
#include "Tchar.h"
//int main(int argc, char* argv[])
#ifdef UNICODE
extern "C" int __cdecl wmain( #else
int __cdecl main( #endif
int argc, TCHAR *argv[])
{ STARTUPINFO structStartInfo; PROCESS_INFORMATION structProcInfo; BOOL bRet = FALSE; DWORD dwLastRet = 0L; TCHAR szMsiexecPath[MAX_PATH+1] = _T(""); LPCTSTR lpszSystem32Path = NULL;
do {
ZeroMemory( (void*)&structStartInfo, sizeof( STARTUPINFO ) ); ZeroMemory( (void*)&structProcInfo, sizeof( PROCESS_INFORMATION ) );
structStartInfo.cb = sizeof( STARTUPINFO ); structStartInfo.cbReserved2 = 0L; structStartInfo.dwFillAttribute = 0L; //GUI App.
structStartInfo.dwFlags = STARTF_USESHOWWINDOW; structStartInfo.dwX = 0L; structStartInfo.dwXCountChars = 0L; structStartInfo.dwXSize = 0L; structStartInfo.dwY = 0L; structStartInfo.dwYCountChars = 0L; structStartInfo.dwYSize = 0L; structStartInfo.hStdError = NULL; structStartInfo.hStdInput = NULL; structStartInfo.hStdOutput = NULL; structStartInfo.lpDesktop = NULL; structStartInfo.lpReserved = NULL; structStartInfo.lpReserved2 = NULL; structStartInfo.lpTitle = NULL; structStartInfo.wShowWindow = SW_NORMAL;
lpszSystem32Path = _tgetenv( _T("WINDIR") ); _tcscpy( szMsiexecPath, lpszSystem32Path ); _tcscat( szMsiexecPath, _T("\\system32\\msiexec.exe") );
bRet = CreateProcess( szMsiexecPath, _T(" /i suptools.msi"), NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &structStartInfo, &structProcInfo );
if( FALSE == bRet ) {
dwLastRet = GetLastError(); break; }
dwLastRet = 0L; } while( FALSE );
if( dwLastRet != 0L ) { MessageBox( NULL, _T("Error starting the MSI file"), _T("Error"), MB_OK | MB_ICONERROR ); }
return 0; }
|