16 : IsUserKey(bIsUserKey), WowKey(RegWowKey), hSubKey(
hKey)
21 BOOL bIsSystemComponent;
34 bIsSystemComponent = (dwValue == 0x1);
38 bIsSystemComponent =
FALSE;
51 if (bIsSystemComponent)
163 if (pRegDeleteKeyExW)
198 for (
int i = 0;
i < LoopTime;
i++)
206 L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall",
229 Info->szKeyName = szKeyName;
235 if (
Info->GetApplicationRegString(
L"DisplayName",
Info->szDisplayName))
237 Info->GetApplicationRegString(
L"DisplayIcon",
Info->szDisplayIcon);
238 Info->GetApplicationRegString(
L"DisplayVersion",
Info->szDisplayVersion);
239 Info->GetApplicationRegString(
L"Publisher",
Info->szPublisher);
240 Info->GetApplicationRegString(
L"RegOwner",
Info->szRegOwner);
241 Info->GetApplicationRegString(
L"ProductID",
Info->szProductID);
242 Info->GetApplicationRegString(
L"HelpLink",
Info->szHelpLink);
243 Info->GetApplicationRegString(
L"HelpTelephone",
Info->szHelpTelephone);
244 Info->GetApplicationRegString(
L"Readme",
Info->szReadme);
245 Info->GetApplicationRegString(
L"Contact",
Info->szContact);
246 Info->GetApplicationRegString(
L"URLUpdateInfo",
Info->szURLUpdateInfo);
247 Info->GetApplicationRegString(
L"URLInfoAbout",
Info->szURLInfoAbout);
248 Info->GetApplicationRegString(
L"Comments",
Info->szComments);
249 if (
Info->GetApplicationRegString(
L"InstallDate",
Info->szInstallDate) ==
FALSE)
252 DWORD dwInstallTimeStamp;
253 if (
Info->GetApplicationRegDword(
L"InstallDate", &dwInstallTimeStamp))
256 SYSTEMTIME InstallSystemTime, InstallLocalTime;
273 NULL,
Info->szInstallDate.GetBuffer(cchTimeStrLen), cchTimeStrLen);
274 Info->szInstallDate.ReleaseBuffer();
277 Info->GetApplicationRegString(
L"InstallLocation",
Info->szInstallLocation);
278 Info->GetApplicationRegString(
L"InstallSource",
Info->szInstallSource);
279 Info->GetApplicationRegString(
L"UninstallString",
Info->szUninstallString);
280 Info->GetApplicationRegString(
L"ModifyPath",
Info->szModifyPath);
330 while (InfoListPosition)
POSITION GetHeadPosition() const
#define LOCALE_USER_DEFAULT
#define HKEY_CURRENT_USER
BOOL(CALLBACK * APPENUMPROC)(CInstalledApplicationInfo *Info, PVOID param)
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
CInstalledApplicationInfo(BOOL bIsUserKey, REGSAM RegWowKey, HKEY hKey)
BOOL StartProcess(ATL::CStringW &Path, BOOL Wait)
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
BOOL WINAPI SystemTimeToTzSpecificLocalTime(CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation, CONST SYSTEMTIME *lpUniversalTime, LPSYSTEMTIME lpLocalTime)
LONG WINAPI RegCloseKey(HKEY hKey)
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
void ReleaseBuffer(_In_ int nNewLength=-1)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LSTATUS(WINAPI * RegDeleteKeyExWProc)(HKEY, LPCWSTR, REGSAM, DWORD)
ATL::CAtlList< CInstalledApplicationInfo * > m_InfoList
BOOL Enum(INT EnumType, APPENUMPROC lpEnumProc, PVOID param)
ATL::CStringW szModifyPath
BOOL UninstallApplication(BOOL bModify)
E & GetNext(_Inout_ POSITION &pos)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
~CInstalledApplicationInfo()
BOOL RetrieveIcon(ATL::CStringW &IconLocation)
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
ATL::CStringW szUninstallString
ATL::CStringW szDisplayIcon
POSITION AddTail(INARGTYPE element)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOL GetApplicationRegString(LPCWSTR lpKeyName, ATL::CStringW &String)
void UnixTimeToFileTime(DWORD dwUnixTime, LPFILETIME pFileTime)
BOOL GetApplicationRegDword(LPCWSTR lpKeyName, DWORD *lpValue)
LSTATUS RemoveFromRegistry()
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
#define GetProcAddress(x, y)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
#define HKEY_LOCAL_MACHINE