|
|
//////////////////////////////////////////////////////////////////////////////////////////////
//
// AppEntry.cpp
//
// Copyright (C) 1998, 1999 Microsoft Corporation. All rights reserved.
//
// Abstract :
//
//
//////////////////////////////////////////////////////////////////////////////////////////////
#include <comdef.h>
#include "stdafx.h"
#include "AppManDispatch.h"
#include "AppEntry.h"
#include "AppMan.h"
#include "AppManAdmin.h"
#include "AppManDebug.h"
//To flag as DBG_APPMANDP
#ifdef DBG_MODULE
#undef DBG_MODULE
#endif
#define DBG_MODULE DBG_APPMANDP
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
#define JANUARY 1
#define FEBRUARY 2
#define MARCH 3
#define APRIL 4
#define MAY 5
#define JUNE 6
#define JULY 7
#define AUGUST 8
#define SEPTEMBER 9
#define OCTOBER 10
#define NOVEMBER 11
#define DECEMBER 12
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
void SystemTimeToDate(SYSTEMTIME * lpSystemTime, DATE * lpDate) { FUNCTION(" SystemTimeToDate()");
DOUBLE dDouble; DWORD dwIndex;
//
// How many days have elapsed between 1900 and January 1 of this year.
//
dDouble = 1.0; dwIndex = 1900; while (dwIndex < lpSystemTime->wYear) { if (!(dwIndex % 4)) { dDouble += 366.0; } else { dDouble += 365.0; } dwIndex++; }
//
// Is this a bicentile year
//
if ((!(lpSystemTime->wYear % 4))&&(MARCH <= lpSystemTime->wMonth)) { dDouble += 1.0; }
//
// How many days have elapsed since the beginning of the year
//
switch(lpSystemTime->wMonth) { case 1 : dDouble += 0.0; break; case 2 : dDouble += 31.0; break; case 3 : dDouble += 59.0; break; case 4 : dDouble += 90.0; break; case 5 : dDouble += 120.0; break; case 6 : dDouble += 151.0; break; case 7 : dDouble += 181.0; break; case 8 : dDouble += 212.0; break; case 9 : dDouble += 243.0; break; case 10 : dDouble += 273.0; break; case 11 : dDouble += 304.0; break; case 12 : dDouble += 334.0; break; }
//
// How many days have elapsed since the beginning of the month
//
dDouble += ((DOUBLE)lpSystemTime->wDay) - 1.0;
//
// How many hours have elapsed since the beginning of the day
//
dDouble += ((DOUBLE) lpSystemTime->wHour) / 24;
//
// Save the dDouble value
//
*lpDate = dDouble; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
DWORD StrLen(LPCWSTR wszStr) { FUNCTION(" StrLen(LPCWSTR wszStr)");
DWORD dwIndex;
dwIndex = 0; while (wszStr[dwIndex] != 0) { dwIndex++; }
return dwIndex; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
DWORD StrLen(BSTR strStr) { FUNCTION(" StrLen(BSTR strStr)");
return SysStringLen(strStr); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
CAppEntry::CAppEntry(void) { DPFCONSTRUCTOR("CAppEntry()");
m_fInitialized = FALSE;
if (SUCCEEDED(CoInitialize(NULL))) { if (SUCCEEDED(CoCreateInstance(CLSID_ApplicationManager, NULL, CLSCTX_INPROC_SERVER, IID_ApplicationManager, (LPVOID *) &m_IApplicationManager))) { if (SUCCEEDED(m_IApplicationManager->CreateApplicationEntry(&m_IApplicationEntry))) { m_fInitialized = TRUE; } } } }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
CAppEntry::~CAppEntry(void) { DPFDESTRUCTOR("~CAppEntry()");
m_IApplicationEntry->Release(); m_IApplicationManager->Release(); m_fInitialized = FALSE; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::SetPropertyGUID(DWORD dwProperty, BSTR strGuid) { FUNCTION("CAppEntry::SetPropertyGUID()");
HRESULT hResult = APPMAN_E_NOTINITIALIZED; GUID sGuid;
//
// Make sure the IApplicationManager interface was successfully instantiated
//
if (TRUE == m_fInitialized) { hResult = CLSIDFromString(strGuid, &sGuid); if (SUCCEEDED(hResult)) { hResult = m_IApplicationEntry->SetProperty(dwProperty, &sGuid, sizeof(sGuid)); } }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::GetPropertyGUID(DWORD dwProperty, BSTR * lpstrGuid) { FUNCTION("CAppEntry::GetPropertyGUID()");
HRESULT hResult = APPMAN_E_NOTINITIALIZED; OLECHAR * lpszString; GUID sGuid;
//
// Make sure the IApplicationManager interface was successfully instantiated
//
if (TRUE == m_fInitialized) { hResult = m_IApplicationEntry->GetProperty(dwProperty, &sGuid, sizeof(sGuid)); if (SUCCEEDED(hResult)) { hResult = StringFromCLSID(sGuid, &lpszString); if (SUCCEEDED(hResult)) { *lpstrGuid = SysAllocString(lpszString); CoTaskMemFree((LPVOID) lpszString);
//
// Make sure *lpstrGuid is not NULL
//
if (NULL == *lpstrGuid) { hResult = E_OUTOFMEMORY; } } } }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::SetPropertyDWORD(DWORD dwProperty, long lDword) { FUNCTION("CAppEntry::SetPropertyDWORD()");
HRESULT hResult = APPMAN_E_NOTINITIALIZED;
//
// Make sure the IApplicationManager interface was successfully instantiated
//
if (TRUE == m_fInitialized) { hResult = m_IApplicationEntry->SetProperty(dwProperty, &lDword, sizeof(lDword)); }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::GetPropertyDWORD(DWORD dwProperty, long * lplDword) { FUNCTION("CAppEntry::GetPropertyDWORD()");
HRESULT hResult = APPMAN_E_NOTINITIALIZED;
//
// Make sure the IApplicationManager interface was successfully instantiated
//
if (TRUE == m_fInitialized) { hResult = m_IApplicationEntry->GetProperty(dwProperty, lplDword, sizeof(long)); }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::SetPropertyWSTR(DWORD dwProperty, BSTR strString) { FUNCTION("CAppEntry::SetPropertyWSTR()");
HRESULT hResult = APPMAN_E_NOTINITIALIZED;
//
// Make sure the IApplicationManager interface was successfully instantiated
//
if (TRUE == m_fInitialized) { hResult = m_IApplicationEntry->SetProperty(dwProperty | APP_PROPERTY_STR_UNICODE, strString, StrLen(strString) * 2); }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::GetPropertyWSTR(DWORD dwProperty, BSTR * lpstrString) { FUNCTION("CAppEntry::GetPropertyWSTR()");
HRESULT hResult = APPMAN_E_NOTINITIALIZED; OLECHAR lpszString[MAX_PATH+1];
//
// Make sure the IApplicationManager interface was successfully instantiated
//
if (TRUE == m_fInitialized) { ZeroMemory(lpszString, sizeof(lpszString)); hResult = m_IApplicationEntry->GetProperty(dwProperty | APP_PROPERTY_STR_UNICODE, lpszString, sizeof(lpszString)); if (SUCCEEDED(hResult)) { *lpstrString = SysAllocString(lpszString); } }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_Guid(BSTR * lpstrGuid) { FUNCTION("CAppEntry::get_Guid()");
return GetPropertyGUID(APP_PROPERTY_GUID, lpstrGuid); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_Guid(BSTR strGuid) { FUNCTION("CAppEntry::put_Guid()");
return SetPropertyGUID(APP_PROPERTY_GUID, strGuid); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_CompanyName(BSTR * lpstrCompanyName) { FUNCTION("CAppEntry::get_CompanyName()");
return GetPropertyWSTR(APP_PROPERTY_COMPANYNAME, lpstrCompanyName); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_CompanyName(BSTR strCompanyName) { FUNCTION("CAppEntry::put_CompanyName()");
return SetPropertyWSTR(APP_PROPERTY_COMPANYNAME, strCompanyName); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_Signature(BSTR * lpstrSignature) { FUNCTION("CAppEntry::get_Signature()");
return GetPropertyWSTR(APP_PROPERTY_SIGNATURE, lpstrSignature); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_Signature(BSTR strSignature) { FUNCTION("CAppEntry::put_Signature()");
return SetPropertyWSTR(APP_PROPERTY_SIGNATURE, strSignature); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_VersionString(BSTR * lpstrVersionString) { FUNCTION("CAppEntry::get_VersionString()");
return GetPropertyWSTR(APP_PROPERTY_VERSIONSTRING, lpstrVersionString); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_VersionString(BSTR strVersionString) { FUNCTION("CAppEntry::put_VersionString()");
return SetPropertyWSTR(APP_PROPERTY_VERSIONSTRING, strVersionString); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_LastUsedDate(DATE * lpDate) { FUNCTION("CAppEntry::get_LastUsedDate()");
SYSTEMTIME sSystemTime; HRESULT hResult;
hResult = m_IApplicationEntry->GetProperty(APP_PROPERTY_LASTUSEDDATE, &sSystemTime, sizeof(sSystemTime)); if (SUCCEEDED(hResult)) { SystemTimeToDate(&sSystemTime, lpDate); }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_InstallDate(DATE * lpDate) { FUNCTION("CAppEntry::get_InstallDate()");
SYSTEMTIME sSystemTime; HRESULT hResult;
hResult = m_IApplicationEntry->GetProperty(APP_PROPERTY_INSTALLDATE, &sSystemTime, sizeof(sSystemTime)); if (SUCCEEDED(hResult)) { SystemTimeToDate(&sSystemTime, lpDate); }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_Category(long * lplCategory) { FUNCTION("CAppEntry::get_Category()");
return GetPropertyDWORD(APP_PROPERTY_CATEGORY, lplCategory); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_Category(long lCategory) { FUNCTION("CAppEntry::put_Category()");
return SetPropertyDWORD(APP_PROPERTY_CATEGORY, lCategory); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_State(long * lplState) { FUNCTION("CAppEntry::get_State()");
return GetPropertyDWORD(APP_PROPERTY_STATE, lplState); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_State(long lState) { FUNCTION("CAppEntry::put_State()");
return SetPropertyDWORD(APP_PROPERTY_STATE, lState); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_SetupRootPath(BSTR * lpstrSetupRootPath) { FUNCTION("CAppEntry::get_SetupRootPath()");
return GetPropertyWSTR(APP_PROPERTY_SETUPROOTPATH, lpstrSetupRootPath); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_ApplicationRootPath(BSTR * lpstrApplicationRootPath) { FUNCTION("CAppEntry::get_ApplicationRootPath()");
return GetPropertyWSTR(APP_PROPERTY_ROOTPATH, lpstrApplicationRootPath); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_ApplicationRootPath(BSTR strApplicationRootPath) { FUNCTION("CAppEntry::put_ApplicationRootPath()");
return SetPropertyWSTR(APP_PROPERTY_ROOTPATH, strApplicationRootPath); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_EstimatedInstallKilobytes(long * lplKilobytes) { FUNCTION("CAppEntry::get_EstimatedInstallKilobytes()");
return GetPropertyDWORD(APP_PROPERTY_ESTIMATEDINSTALLKILOBYTES, lplKilobytes); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_EstimatedInstallKilobytes(long lKilobytes) { FUNCTION("CAppEntry::put_EstimatedInstallKilobytes()");
return SetPropertyDWORD(APP_PROPERTY_ESTIMATEDINSTALLKILOBYTES, lKilobytes); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_ExecuteCmdLine(BSTR * lpstrExecuteCmdLine) { FUNCTION("CAppEntry::get_ExecuteCmdLine()");
return GetPropertyWSTR(APP_PROPERTY_EXECUTECMDLINE, lpstrExecuteCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_ExecuteCmdLine(BSTR strExecuteCmdLine) { FUNCTION("CAppEntry::put_ExecuteCmdLine()");
return SetPropertyWSTR(APP_PROPERTY_EXECUTECMDLINE, strExecuteCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_DefaultSetupExeCmdLine(BSTR * lpstrDefaultSetupExeCmdLine) { FUNCTION("CAppEntry::get_DefaultSetupExeCmdLine()");
return GetPropertyWSTR(APP_PROPERTY_DEFAULTSETUPEXECMDLINE, lpstrDefaultSetupExeCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_DefaultSetupExeCmdLine(BSTR strDefaultSetupExeCmdLine) { FUNCTION("CAppEntry::put_DefaultSetupExeCmdLine()");
return SetPropertyWSTR(APP_PROPERTY_DEFAULTSETUPEXECMDLINE, strDefaultSetupExeCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_DownsizeCmdLine(BSTR * lpstrDownsizeCmdLine) { FUNCTION("CAppEntry::get_DownsizeCmdLine()");
return GetPropertyWSTR(APP_PROPERTY_DOWNSIZECMDLINE, lpstrDownsizeCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_DownsizeCmdLine(BSTR strDownsizeCmdLine) { FUNCTION("CAppEntry::put_DownsizeCmdLine()");
return SetPropertyWSTR(APP_PROPERTY_DOWNSIZECMDLINE, strDownsizeCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_ReInstallCmdLine(BSTR * lpstrReInstallCmdLine) { FUNCTION("CAppEntry::get_ReInstallCmdLine()");
return GetPropertyWSTR(APP_PROPERTY_REINSTALLCMDLINE, lpstrReInstallCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_ReInstallCmdLine(BSTR strReInstallCmdLine) { FUNCTION("CAppEntry::put_ReInstallCmdLine()");
return SetPropertyWSTR(APP_PROPERTY_REINSTALLCMDLINE, strReInstallCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_UnInstallCmdLine(BSTR * lpstrUnInstallCmdLine) { FUNCTION("CAppEntry::get_UnInstallCmdLine()");
return GetPropertyWSTR(APP_PROPERTY_UNINSTALLCMDLINE, lpstrUnInstallCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_UnInstallCmdLine(BSTR strUnInstallCmdLine) { FUNCTION("CAppEntry::put_UnInstallCmdLine()");
return SetPropertyWSTR(APP_PROPERTY_UNINSTALLCMDLINE, strUnInstallCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_SelfTestCmdLine(BSTR * lpstrSelfTestCmdLine) { FUNCTION("CAppEntry::get_SelfTestCmdLine()");
return GetPropertyWSTR(APP_PROPERTY_SELFTESTCMDLINE, lpstrSelfTestCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_SelfTestCmdLine(BSTR strSelfTestCmdLine) { FUNCTION("CAppEntry::put_SelfTestCmdLine()");
return SetPropertyWSTR(APP_PROPERTY_SELFTESTCMDLINE, strSelfTestCmdLine); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_TitleURL(BSTR * lpstrTitleURL) { FUNCTION("CAppEntry::get_TitleURL()");
return GetPropertyWSTR(APP_PROPERTY_TITLEURL, lpstrTitleURL); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_TitleURL(BSTR strTitleURL) { FUNCTION("CAppEntry::put_TitleURL()");
return SetPropertyWSTR(APP_PROPERTY_TITLEURL, strTitleURL); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_DeveloperURL(BSTR * lpstrDeveloperURL) { FUNCTION("CAppEntry::get_DeveloperURL()");
return GetPropertyWSTR(APP_PROPERTY_DEVELOPERURL, lpstrDeveloperURL); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_DeveloperURL(BSTR strDeveloperURL) { FUNCTION("CAppEntry::put_DeveloperURL()");
return SetPropertyWSTR(APP_PROPERTY_DEVELOPERURL, strDeveloperURL); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_PublisherURL(BSTR * lpstrPublisherURL) { FUNCTION("CAppEntry::get_PublisherURL()");
return GetPropertyWSTR(APP_PROPERTY_PUBLISHERURL, lpstrPublisherURL); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_PublisherURL(BSTR strPublisherURL) { FUNCTION("CAppEntry::put_PublisherURL()");
return SetPropertyWSTR(APP_PROPERTY_PUBLISHERURL, strPublisherURL); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_XMLInfoFile(BSTR * lpstrXMLInfoFile) { FUNCTION("CAppEntry::get_XMLInfoFile()");
return GetPropertyWSTR(APP_PROPERTY_XMLINFOFILE, lpstrXMLInfoFile); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_XMLInfoFile(BSTR strXMLInfoFile) { FUNCTION("CAppEntry::put_XMLInfoFile()");
return SetPropertyWSTR(APP_PROPERTY_XMLINFOFILE, strXMLInfoFile); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::Clear() { FUNCTION("CAppEntry::Clear()");
return m_IApplicationEntry->Clear(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::InitializeInstall(void) { FUNCTION("CAppEntry::InitializeInstall()");
return m_IApplicationEntry->InitializeInstall(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::FinalizeInstall(void) { FUNCTION("CAppEntry::FinalizeInstall()");
return m_IApplicationEntry->FinalizeInstall(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::InitializeDownsize(void) { FUNCTION("CAppEntry::InitializeDownsize()");
return m_IApplicationEntry->InitializeDownsize(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::FinalizeDownsize(void) { FUNCTION("CAppEntry::FinalizeDownsize()");
return m_IApplicationEntry->FinalizeDownsize(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::InitializeReInstall(void) { FUNCTION("CAppEntry::InitializeReInstall()");
return m_IApplicationEntry->InitializeReInstall(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::FinalizeReInstall(void) { FUNCTION("CAppEntry::FinalizeReInstall()");
return m_IApplicationEntry->FinalizeReInstall(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::InitializeUnInstall(void) { FUNCTION("CAppEntry::InitializeUnInstall()");
return m_IApplicationEntry->InitializeUnInstall(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::FinalizeUnInstall(void) { FUNCTION("CAppEntry::FinalizeUnUnInstall()");
return m_IApplicationEntry->FinalizeUnInstall(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::InitializeSelfTest(void) { FUNCTION("CAppEntry::InitializeSelfTest()");
return m_IApplicationEntry->InitializeSelfTest(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::FinalizeSelfTest(void) { FUNCTION("CAppEntry::FinalizeSelfTest()");
return m_IApplicationEntry->FinalizeSelfTest(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::Abort(void) { FUNCTION("CAppEntry::Abort()");
return m_IApplicationEntry->Abort(); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::Run(long lRunFlags, BSTR strCmdLineParameters) { FUNCTION("CAppEntry::Run()");
return m_IApplicationEntry->Run((const DWORD) lRunFlags, APP_PROPERTY_STR_UNICODE, (LPVOID) strCmdLineParameters, StrLen(strCmdLineParameters)); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::AddAssociation(long lAssociationType, IAppEntry * lpAppEntry) { FUNCTION("CAppEntry::AddAssociation()");
IApplicationEntry * lpApplicationEntry; HRESULT hResult = APPMAN_E_NOTINITIALIZED;
if (TRUE == m_fInitialized) { ((CAppEntry *)lpAppEntry)->GetApplicationEntryPtr(&lpApplicationEntry); hResult = m_IApplicationEntry->AddAssociation(lAssociationType, lpApplicationEntry); }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::RemoveAssociation(long lAssociationType, IAppEntry * lpAppEntry) { FUNCTION("CAppEntry::RemoveAssociation()");
IApplicationEntry * lpApplicationEntry; HRESULT hResult = APPMAN_E_NOTINITIALIZED;
if (TRUE == m_fInitialized) { ((CAppEntry *)lpAppEntry)->GetApplicationEntryPtr(&lpApplicationEntry); hResult = m_IApplicationEntry->RemoveAssociation(lAssociationType, lpApplicationEntry); }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::EnumAssociationTypes(long lAssociationIndex, long * lAssociationType) { FUNCTION("CAppEntry::EnumAssociationTypes()");
IApplicationEntry * lpApplicationEntry; HRESULT hResult = APPMAN_E_NOTINITIALIZED;
if (TRUE == m_fInitialized) { hResult = m_IApplicationManager->CreateApplicationEntry(&lpApplicationEntry); if (SUCCEEDED(hResult)) { hResult = m_IApplicationEntry->EnumAssociations(lAssociationIndex, (LPDWORD) lAssociationType, lpApplicationEntry); lpApplicationEntry->Release(); } }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::EnumAssociationObjects(long lAssociationIndex, IAppEntry * lpAppEntry) { FUNCTION("CAppEntry::EnumAssociationObjects()");
IApplicationEntry * lpApplicationEntry; HRESULT hResult = APPMAN_E_NOTINITIALIZED; DWORD dwAssociationType;
if (TRUE == m_fInitialized) { ((CAppEntry *)lpAppEntry)->GetApplicationEntryPtr(&lpApplicationEntry); hResult = m_IApplicationEntry->EnumAssociations(lAssociationIndex, &dwAssociationType, lpApplicationEntry); }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::GetTemporarySpace(long lKilobytesRequired, BSTR * lpstrRootPath) { FUNCTION("CAppEntry::GetTemporarySpace()");
HRESULT hResult = E_FAIL; OLECHAR szString[MAX_PATH+1];
//
// Make sure the IApplicationManager interface was successfully instantiated
//
if (TRUE == m_fInitialized) { ZeroMemory(szString, sizeof(szString)); hResult = m_IApplicationEntry->GetTemporarySpace(lKilobytesRequired, APP_PROPERTY_STR_UNICODE, (LPVOID) szString, sizeof(szString)); if (SUCCEEDED(hResult)) { *lpstrRootPath = SysAllocString(szString); } }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::RemoveTemporarySpace(BSTR strRootPath) { FUNCTION("CAppEntry::RemoveTemporarySpace()");
HRESULT hResult = APPMAN_E_NOTINITIALIZED;
if (TRUE == m_fInitialized) { hResult = m_IApplicationEntry->RemoveTemporarySpace(APP_PROPERTY_STR_UNICODE, (LPVOID) strRootPath, StrLen(strRootPath)); }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::EnumTemporarySpacePaths(long lTempSpaceIndex, BSTR * lpstrRootPath) { FUNCTION("CAppEntry::EnumTemporarySpacePaths()");
HRESULT hResult = APPMAN_E_NOTINITIALIZED; OLECHAR szString[MAX_PATH+1]; DWORD dwKilobytes;
if (TRUE == m_fInitialized) { ZeroMemory(szString, sizeof(szString)); hResult = m_IApplicationEntry->EnumTemporarySpaces(lTempSpaceIndex, &dwKilobytes, APP_PROPERTY_STR_UNICODE, (LPVOID) szString, sizeof(szString)); if (SUCCEEDED(hResult)) { *lpstrRootPath = SysAllocString(szString); } }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::EnumTemporarySpaceAllocations(long lTempSpaceIndex, long * lTempSpaceKilobytes) { FUNCTION("CAppEntry::EnumTemporarySpaceAllocations()");
HRESULT hResult = APPMAN_E_NOTINITIALIZED; OLECHAR szString[MAX_PATH+1];
if (TRUE == m_fInitialized) { hResult = m_IApplicationEntry->EnumTemporarySpaces(lTempSpaceIndex, (LPDWORD) lTempSpaceKilobytes, APP_PROPERTY_STR_UNICODE, (LPVOID) szString, sizeof(szString)); }
return hResult; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_RemovableKilobytes(long * lplKilobytes) { FUNCTION("CAppEntry::get_RemovableKilobytes()");
return GetPropertyDWORD(APP_PROPERTY_REMOVABLEKILOBYTES, lplKilobytes); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_RemovableKilobytes(long lKilobytes) { FUNCTION("CAppEntry::put_RemovableKilobytes()");
return SetPropertyDWORD(APP_PROPERTY_REMOVABLEKILOBYTES, lKilobytes); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::get_NonRemovableKilobytes(long * lplKilobytes) { FUNCTION("CAppEntry::get_NonRemovableKilobytes()");
return GetPropertyDWORD(APP_PROPERTY_NONREMOVABLEKILOBYTES, lplKilobytes); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::put_NonRemovableKilobytes(long lKilobytes) { FUNCTION("CAppEntry::put_NonRemovableKilobytes()");
return SetPropertyDWORD(APP_PROPERTY_NONREMOVABLEKILOBYTES, lKilobytes); }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::Initialize(void) { FUNCTION("CAppEntry::Initialize()");
if (m_fInitialized) { return S_OK; }
return E_FAIL; }
//////////////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CAppEntry::GetApplicationEntryPtr(IApplicationEntry ** lppApplicationEntry) { FUNCTION("CAppEntry::GetApplicationEntryPtr()");
if (!m_fInitialized) { return E_FAIL; }
*lppApplicationEntry = m_IApplicationEntry; return S_OK; }
|