65 BOOL bIsSystemComponent, bIsUpdate;
75 L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall",
83 Info.szKeyName.ReleaseBuffer();
96 bIsSystemComponent = (dwValue == 0x1);
100 bIsSystemComponent =
FALSE;
123 if (EnumType < ENUM_ALL_INSTALLED || EnumType >
ENUM_UPDATES)
126 if (!bIsSystemComponent)
132 if (!lpEnumProc(ItemIndex, szDisplayName, &
Info,
param))
156 Info.szKeyName.ReleaseBuffer();
#define HKEY_CURRENT_USER
BOOL GetApplicationString(LPCWSTR lpKeyName, ATL::CStringW &String)
BOOL StartProcess(ATL::CStringW &Path, BOOL Wait)
LONG WINAPI RegCloseKey(HKEY hKey)
void ReleaseBuffer(_In_ int nNewLength=-1)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
BOOL(CALLBACK * APPENUMPROC)(INT ItemIndex, ATL::CStringW &Name, PINSTALLED_INFO Info, PVOID param)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
static const WCHAR szUninstall[]
HRESULT GetString(REFGUID guidKey, [out, size_is(cchBufSize)] LPWSTR pwszValue, UINT32 cchBufSize, [in, out, ptr] UINT32 *pcchLength)
BOOL EnumInstalledApplications(INT EnumType, BOOL IsUserKey, APPENUMPROC lpEnumProc, PVOID param)
BOOL GetApplicationString(HKEY hKey, LPCWSTR lpKeyName, LPWSTR szString)
BOOL UninstallApplication(PINSTALLED_INFO ItemInfo, BOOL bModify)
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