summaryrefslogtreecommitdiff
path: root/setup_native/source/win32/customactions/quickstarter/quickstarter.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'setup_native/source/win32/customactions/quickstarter/quickstarter.cxx')
-rw-r--r--setup_native/source/win32/customactions/quickstarter/quickstarter.cxx223
1 files changed, 0 insertions, 223 deletions
diff --git a/setup_native/source/win32/customactions/quickstarter/quickstarter.cxx b/setup_native/source/win32/customactions/quickstarter/quickstarter.cxx
deleted file mode 100644
index 396b293d9..000000000
--- a/setup_native/source/win32/customactions/quickstarter/quickstarter.cxx
+++ /dev/null
@@ -1,223 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-#include "quickstarter.hxx"
-#ifdef _MSC_VER
-#pragma warning(push, 1) /* disable warnings within system headers */
-#endif
-#include <psapi.h>
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-#include <tlhelp32.h>
-#include <malloc.h>
-
-std::string GetOfficeInstallationPath(MSIHANDLE handle)
-{
- std::string progpath;
- DWORD sz = 0;
- LPTSTR dummy = TEXT("");
-
- if (MsiGetProperty(handle, TEXT("INSTALLLOCATION"), dummy, &sz) == ERROR_MORE_DATA)
- {
- sz++; // space for the final '\0'
- DWORD nbytes = sz * sizeof(TCHAR);
- LPTSTR buff = reinterpret_cast<LPTSTR>(_alloca(nbytes));
- ZeroMemory(buff, nbytes);
- MsiGetProperty(handle, TEXT("INSTALLLOCATION"), buff, &sz);
- progpath = buff;
- }
- return progpath;
-}
-
-std::string GetOfficeProductName(MSIHANDLE handle)
-{
- std::string productname;
- DWORD sz = 0;
- LPTSTR dummy = TEXT("");
-
- if (MsiGetProperty(handle, TEXT("ProductName"), dummy, &sz) == ERROR_MORE_DATA)
- {
- sz++; // space for the final '\0'
- DWORD nbytes = sz * sizeof(TCHAR);
- LPTSTR buff = reinterpret_cast<LPTSTR>(_alloca(nbytes));
- ZeroMemory(buff, nbytes);
- MsiGetProperty(handle, TEXT("ProductName"), buff, &sz);
- productname = buff;
- }
- return productname;
-}
-
-std::string GetQuickstarterLinkName(MSIHANDLE handle)
-{
- std::string quickstarterlinkname;
- DWORD sz = 0;
- LPTSTR dummy = TEXT("");
-
- if (MsiGetProperty(handle, TEXT("Quickstarterlinkname"), dummy, &sz) == ERROR_MORE_DATA)
- {
- sz++; // space for the final '\0'
- DWORD nbytes = sz * sizeof(TCHAR);
- LPTSTR buff = reinterpret_cast<LPTSTR>(_alloca(nbytes));
- ZeroMemory(buff, nbytes);
- MsiGetProperty(handle, TEXT("Quickstarterlinkname"), buff, &sz);
- quickstarterlinkname = buff;
- }
- else if (MsiGetProperty(handle, TEXT("ProductName"), dummy, &sz) == ERROR_MORE_DATA)
- {
- sz++; // space for the final '\0'
- DWORD nbytes = sz * sizeof(TCHAR);
- LPTSTR buff = reinterpret_cast<LPTSTR>(_alloca(nbytes));
- ZeroMemory(buff, nbytes);
- MsiGetProperty(handle, TEXT("ProductName"), buff, &sz);
- quickstarterlinkname = buff;
- }
- return quickstarterlinkname;
-}
-
-inline bool IsValidHandle( HANDLE handle )
-{
- return NULL != handle && INVALID_HANDLE_VALUE != handle;
-}
-
-
-static HANDLE WINAPI _CreateToolhelp32Snapshot( DWORD dwFlags, DWORD th32ProcessID )
-{
- typedef HANDLE (WINAPI *FN_PROC)( DWORD dwFlags, DWORD th32ProcessID );
- static FN_PROC lpProc = NULL;
-
- HANDLE hSnapshot = NULL;
-
- if ( !lpProc )
- {
- HMODULE hLibrary = GetModuleHandle("KERNEL32.DLL");
-
- if ( hLibrary )
- lpProc = reinterpret_cast< FN_PROC >(GetProcAddress( hLibrary, "CreateToolhelp32Snapshot" ));
- }
-
- if ( lpProc )
- hSnapshot = lpProc( dwFlags, th32ProcessID );
-
- return hSnapshot;
-}
-
-static BOOL WINAPI _Process32First( HANDLE hSnapshot, PROCESSENTRY32 *lppe32 )
-{
- typedef BOOL (WINAPI *FN_PROC)( HANDLE hSnapshot, PROCESSENTRY32 *lppe32 );
- static FN_PROC lpProc = NULL;
-
- BOOL fSuccess = FALSE;
-
- if ( !lpProc )
- {
- HMODULE hLibrary = GetModuleHandle("KERNEL32.DLL");
-
- if ( hLibrary )
- lpProc = reinterpret_cast< FN_PROC >(GetProcAddress( hLibrary, "Process32First" ));
- }
-
- if ( lpProc )
- fSuccess = lpProc( hSnapshot, lppe32 );
-
- return fSuccess;
-}
-
-static BOOL WINAPI _Process32Next( HANDLE hSnapshot, PROCESSENTRY32 *lppe32 )
-{
- typedef BOOL (WINAPI *FN_PROC)( HANDLE hSnapshot, PROCESSENTRY32 *lppe32 );
- static FN_PROC lpProc = NULL;
-
- BOOL fSuccess = FALSE;
-
- if ( !lpProc )
- {
- HMODULE hLibrary = GetModuleHandle("KERNEL32.DLL");
-
- if ( hLibrary )
- lpProc = reinterpret_cast< FN_PROC >(GetProcAddress( hLibrary, "Process32Next" ));
- }
-
- if ( lpProc )
- fSuccess = lpProc( hSnapshot, lppe32 );
-
- return fSuccess;
-}
-
-static std::string GetProcessImagePath_9x( DWORD dwProcessId )
-{
- std::string sImagePath;
-
- HANDLE hSnapshot = _CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
-
- if ( IsValidHandle( hSnapshot ) )
- {
- PROCESSENTRY32 pe32 = { 0 };
-
- pe32.dwSize = sizeof(PROCESSENTRY32);
-
- BOOL fSuccess = _Process32First( hSnapshot, &pe32 );
- bool found = false;
-
- while ( !found && fSuccess )
- {
- if ( pe32.th32ProcessID == dwProcessId )
- {
- found = true;
- sImagePath = pe32.szExeFile;
- }
-
- if ( !found )
- fSuccess = _Process32Next( hSnapshot, &pe32 );
- }
-
- CloseHandle( hSnapshot );
- }
-
- return sImagePath;
-}
-
-static DWORD WINAPI _GetModuleFileNameExA( HANDLE hProcess, HMODULE hModule, LPSTR lpFileName, DWORD nSize )
-{
- typedef DWORD (WINAPI *FN_PROC)( HANDLE hProcess, HMODULE hModule, LPSTR lpFileName, DWORD nSize );
-
- static FN_PROC lpProc = NULL;
-
- if ( !lpProc )
- {
- HMODULE hLibrary = LoadLibrary("PSAPI.DLL");
-
- if ( hLibrary )
- lpProc = reinterpret_cast< FN_PROC >(GetProcAddress( hLibrary, "GetModuleFileNameExA" ));
- }
-
- if ( lpProc )
- return lpProc( hProcess, hModule, lpFileName, nSize );
-
- return 0;
-
-}
-
-static std::string GetProcessImagePath_NT( DWORD dwProcessId )
-{
- std::string sImagePath;
-
- HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwProcessId );
-
- if ( IsValidHandle( hProcess ) )
- {
- CHAR szPathBuffer[MAX_PATH] = "";
-
- if ( _GetModuleFileNameExA( hProcess, NULL, szPathBuffer, sizeof(szPathBuffer) ) )
- sImagePath = szPathBuffer;
-
- CloseHandle( hProcess );
- }
-
- return sImagePath;
-}
-
-std::string GetProcessImagePath( DWORD dwProcessId )
-{
- return (LONG)GetVersion() < 0 ? GetProcessImagePath_9x( dwProcessId ) : GetProcessImagePath_NT( dwProcessId );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */