Author: winesync
Date: Wed Mar 14 15:55:03 2007
New Revision: 26077
URL:
http://svn.reactos.org/svn/reactos?rev=26077&view=rev
Log:
Autosyncing with Wine HEAD
Modified:
trunk/reactos/dll/win32/advpack/advpack.c
trunk/reactos/dll/win32/advpack/advpack_private.h
trunk/reactos/dll/win32/advpack/files.c
trunk/reactos/dll/win32/advpack/install.c
trunk/reactos/dll/win32/advpack/reg.c
trunk/reactos/include/psdk/advpub.h
Modified: trunk/reactos/dll/win32/advpack/advpack.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advpack/advpack.…
==============================================================================
--- trunk/reactos/dll/win32/advpack/advpack.c (original)
+++ trunk/reactos/dll/win32/advpack/advpack.c Wed Mar 14 15:55:03 2007
@@ -191,7 +191,7 @@
*/
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
- TRACE("(%p, %ld, %p)\n", hinstDLL, fdwReason, lpvReserved);
+ TRACE("(%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved);
if (fdwReason == DLL_PROCESS_ATTACH)
DisableThreadLibraryCalls(hinstDLL);
@@ -220,7 +220,7 @@
HANDLE hToken;
PSID pSid;
- TRACE("(%ld, %p)\n", reserved, pReserved);
+ TRACE("(%d, %p)\n", reserved, pReserved);
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
return FALSE;
@@ -302,7 +302,7 @@
*/
BOOL WINAPI NeedReboot(DWORD dwRebootCheck)
{
- FIXME("(%ld): stub\n", dwRebootCheck);
+ FIXME("(%d): stub\n", dwRebootCheck);
return FALSE;
}
@@ -317,7 +317,7 @@
UNICODE_STRING filenameW, installW;
HRESULT res;
- TRACE("(%s, %s, %ld, %p, %p)\n", debugstr_a(pszInfFilename),
+ TRACE("(%s, %s, %d, %p, %p)\n", debugstr_a(pszInfFilename),
debugstr_a(pszInstallSection), dwFlags, phInf, pvReserved);
if (!pszInfFilename || !phInf)
@@ -355,7 +355,7 @@
HRESULT WINAPI OpenINFEngineW(LPCWSTR pszInfFilename, LPCWSTR pszInstallSection,
DWORD dwFlags, HINF *phInf, PVOID pvReserved)
{
- TRACE("(%s, %s, %ld, %p, %p)\n", debugstr_w(pszInfFilename),
+ TRACE("(%s, %s, %d, %p, %p)\n", debugstr_w(pszInfFilename),
debugstr_w(pszInstallSection), dwFlags, phInf, pvReserved);
if (!pszInfFilename || !phInf)
@@ -376,12 +376,12 @@
* See RebootCheckOnInstallW.
*/
HRESULT WINAPI RebootCheckOnInstallA(HWND hWnd, LPCSTR pszINF,
- LPSTR pszSec, DWORD dwReserved)
+ LPCSTR pszSec, DWORD dwReserved)
{
UNICODE_STRING infW, secW;
HRESULT res;
- TRACE("(%p, %s, %s, %ld)\n", hWnd, debugstr_a(pszINF),
+ TRACE("(%p, %s, %s, %d)\n", hWnd, debugstr_a(pszINF),
debugstr_a(pszSec), dwReserved);
if (!pszINF || !pszSec)
@@ -422,9 +422,9 @@
* Unimplemented.
*/
HRESULT WINAPI RebootCheckOnInstallW(HWND hWnd, LPCWSTR pszINF,
- LPWSTR pszSec, DWORD dwReserved)
-{
- FIXME("(%p, %s, %s, %ld): stub\n", hWnd, debugstr_w(pszINF),
+ LPCWSTR pszSec, DWORD dwReserved)
+{
+ FIXME("(%p, %s, %s, %d): stub\n", hWnd, debugstr_w(pszINF),
debugstr_w(pszSec), dwReserved);
return E_FAIL;
@@ -635,7 +635,7 @@
HRESULT res;
DWORD len = 0;
- TRACE("(%s, %s, %s, %s, %p, %ld, %p, %p)\n",
+ TRACE("(%s, %s, %s, %s, %p, %d, %p, %p)\n",
debugstr_a(pszInfFilename), debugstr_a(pszInstallSection),
debugstr_a(pszTranslateSection), debugstr_a(pszTranslateKey),
pszBuffer, dwBufferSize,pdwRequiredSize, pvReserved);
@@ -710,8 +710,9 @@
DWORD dwBufferSize, PDWORD pdwRequiredSize, PVOID pvReserved)
{
HINF hInf;
-
- TRACE("(%s, %s, %s, %s, %p, %ld, %p, %p)\n",
+ HRESULT hret = S_OK;
+
+ TRACE("(%s, %s, %s, %s, %p, %d, %p, %p)\n",
debugstr_w(pszInfFilename), debugstr_w(pszInstallSection),
debugstr_w(pszTranslateSection), debugstr_w(pszTranslateKey),
pszBuffer, dwBufferSize,pdwRequiredSize, pvReserved);
@@ -730,13 +731,13 @@
pszBuffer, dwBufferSize, pdwRequiredSize))
{
if (dwBufferSize < *pdwRequiredSize)
- return HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER);
-
- return SPAPI_E_LINE_NOT_FOUND;
+ hret = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER);
+ else
+ hret = SPAPI_E_LINE_NOT_FOUND;
}
SetupCloseInfFile(hInf);
- return S_OK;
+ return hret;
}
/***********************************************************************
@@ -754,7 +755,7 @@
HRESULT res;
DWORD len = 0;
- TRACE("(%p, %s, %s, %s, %s, %ld, %p, %p)\n", hInf,
debugstr_a(pszInfFilename),
+ TRACE("(%p, %s, %s, %s, %s, %d, %p, %p)\n", hInf,
debugstr_a(pszInfFilename),
debugstr_a(pszTranslateSection), debugstr_a(pszTranslateKey),
debugstr_a(pszBuffer), dwBufferSize, pdwRequiredSize, pvReserved);
@@ -834,7 +835,7 @@
LPWSTR pszBuffer, DWORD dwBufferSize,
PDWORD pdwRequiredSize, PVOID pvReserved)
{
- TRACE("(%p, %s, %s, %s, %s, %ld, %p, %p)\n", hInf,
debugstr_w(pszInfFilename),
+ TRACE("(%p, %s, %s, %s, %s, %d, %p, %p)\n", hInf,
debugstr_w(pszInfFilename),
debugstr_w(pszTranslateSection), debugstr_w(pszTranslateKey),
debugstr_w(pszBuffer), dwBufferSize, pdwRequiredSize, pvReserved);
Modified: trunk/reactos/dll/win32/advpack/advpack_private.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advpack/advpack_…
==============================================================================
--- trunk/reactos/dll/win32/advpack/advpack_private.h (original)
+++ trunk/reactos/dll/win32/advpack/advpack_private.h Wed Mar 14 15:55:03 2007
@@ -26,6 +26,5 @@
void set_ldids(HINF hInf, LPCWSTR pszInstallSection, LPCWSTR pszWorkingDir);
HRESULT launch_exe(LPCWSTR cmd, LPCWSTR dir, HANDLE *phEXE);
-HRESULT do_ocx_reg(HMODULE hocx, BOOL do_reg);
#endif /* __ADVPACK_PRIVATE_H */
Modified: trunk/reactos/dll/win32/advpack/files.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advpack/files.c?…
==============================================================================
--- trunk/reactos/dll/win32/advpack/files.c (original)
+++ trunk/reactos/dll/win32/advpack/files.c Wed Mar 14 15:55:03 2007
@@ -59,10 +59,11 @@
LPCSTR lpcszBaseName, DWORD dwFlags)
{
UNICODE_STRING backupdir, basename;
- LPWSTR filelist, backup;
+ LPWSTR filelist;
+ LPCWSTR backup;
HRESULT res;
- TRACE("(%s, %s, %s, %ld)\n", debugstr_a(lpcszFileList),
+ TRACE("(%s, %s, %s, %d)\n", debugstr_a(lpcszFileList),
debugstr_a(lpcszBackupDir), debugstr_a(lpcszBaseName), dwFlags);
if (lpcszFileList)
@@ -126,7 +127,7 @@
static const WCHAR ini[] = {'.','i','n','i',0};
static const WCHAR backup[] =
{'b','a','c','k','u','p',0};
- TRACE("(%s, %s, %s, %ld)\n", debugstr_w(lpcszFileList),
+ TRACE("(%s, %s, %s, %d)\n", debugstr_w(lpcszFileList),
debugstr_w(lpcszBackupDir), debugstr_w(lpcszBaseName), dwFlags);
if (!lpcszFileList || !*lpcszFileList)
@@ -164,14 +165,14 @@
/* FIXME: this is only for the local case, X:\ */
#define ROOT_LENGTH 3
-UINT CALLBACK pQuietQueueCallback(PVOID Context, UINT Notification,
- UINT_PTR Param1, UINT_PTR Param2)
+static UINT CALLBACK pQuietQueueCallback(PVOID Context, UINT Notification,
+ UINT_PTR Param1, UINT_PTR Param2)
{
return 1;
}
-UINT CALLBACK pQueueCallback(PVOID Context, UINT Notification,
- UINT_PTR Param1, UINT_PTR Param2)
+static UINT CALLBACK pQueueCallback(PVOID Context, UINT Notification,
+ UINT_PTR Param1, UINT_PTR Param2)
{
/* only be verbose for error notifications */
if (!Notification ||
@@ -199,7 +200,7 @@
UNICODE_STRING destdir, destfile;
HRESULT res;
- TRACE("(%p, %s, %s, %s, %s, %ld, %ld)\n", hwnd, debugstr_a(lpszSourceDir),
+ TRACE("(%p, %s, %s, %s, %s, %d, %d)\n", hwnd, debugstr_a(lpszSourceDir),
debugstr_a(lpszSourceFile), debugstr_a(lpszDestDir),
debugstr_a(lpszDestFile), dwFlags, dwReserved);
@@ -256,7 +257,7 @@
HSPFILEQ fileQueue;
PVOID pContext;
- TRACE("(%p, %s, %s, %s, %s, %ld, %ld)\n", hwnd, debugstr_w(lpszSourceDir),
+ TRACE("(%p, %s, %s, %s, %s, %d, %d)\n", hwnd, debugstr_w(lpszSourceDir),
debugstr_w(lpszSourceFile), debugstr_w(lpszDestDir),
debugstr_w(lpszDestFile), dwFlags, dwReserved);
@@ -403,7 +404,7 @@
UNICODE_STRING fileordirname;
HRESULT res;
- TRACE("(%s, %ld)\n", debugstr_a(pszFileOrDirName), dwFlags);
+ TRACE("(%s, %d)\n", debugstr_a(pszFileOrDirName), dwFlags);
RtlCreateUnicodeStringFromAsciiz(&fileordirname, pszFileOrDirName);
@@ -437,7 +438,7 @@
WCHAR fname[MAX_PATH];
HRESULT ret = E_FAIL;
- TRACE("(%s, %ld)\n", debugstr_w(pszFileOrDirName), dwFlags);
+ TRACE("(%s, %d)\n", debugstr_w(pszFileOrDirName), dwFlags);
if (dwFlags)
FIXME("Flags ignored!\n");
@@ -572,7 +573,10 @@
/* empty list */
if (!lstrlenA(szConvertedList))
+ {
+ HeapFree(GetProcessHeap(), 0, szConvertedList);
return NULL;
+ }
*dwNumFiles = 1;
@@ -599,7 +603,7 @@
}
/* determines whether szFile is in the NULL-separated szFileList */
-static BOOL file_in_list(LPSTR szFile, LPSTR szFileList)
+static BOOL file_in_list(LPCSTR szFile, LPCSTR szFileList)
{
DWORD dwLen = lstrlenA(szFile);
DWORD dwTestLen;
@@ -623,7 +627,7 @@
/* removes nodes from the linked list that aren't specified in szFileList
* returns the number of files that are in both the linked list and szFileList
*/
-static DWORD fill_file_list(EXTRACTdest *extractDest, LPCSTR szCabName, LPSTR
szFileList)
+static DWORD fill_file_list(EXTRACTdest *extractDest, LPCSTR szCabName, LPCSTR
szFileList)
{
DWORD dwNumFound = 0;
struct ExtractFileList *pNode;
@@ -698,7 +702,7 @@
DWORD dwFilesFound = 0;
LPSTR szConvertedList = NULL;
- TRACE("(%s, %s, %ld, %s, %p, %ld)\n", debugstr_a(CabName),
debugstr_a(ExpandDir),
+ TRACE("(%s, %s, %d, %s, %p, %d)\n", debugstr_a(CabName),
debugstr_a(ExpandDir),
Flags, debugstr_a(FileList), LReserved, Reserved);
if (!CabName || !ExpandDir)
@@ -742,6 +746,19 @@
extractDest.flags |= EXTRACT_EXTRACTFILES;
res = pExtract(&extractDest, CabName);
+
+ if (extractDest.filelist)
+ {
+ struct ExtractFileList* curr = extractDest.filelist;
+ struct ExtractFileList* next;
+
+ while (curr)
+ {
+ next = curr->next;
+ free_file_node(curr);
+ curr = next;
+ }
+ }
done:
FreeLibrary(hCabinet);
@@ -797,7 +814,7 @@
UNICODE_STRING filelist, dir, basename;
HRESULT hr;
- TRACE("(%p, %s, %s, %s, %ld)\n", hDlg, debugstr_a(pszFileList),
+ TRACE("(%p, %s, %s, %s, %d)\n", hDlg, debugstr_a(pszFileList),
debugstr_a(pszDir), debugstr_a(pszBaseName), dwFlags);
RtlCreateUnicodeStringFromAsciiz(&filelist, pszFileList);
@@ -839,7 +856,7 @@
HRESULT WINAPI FileSaveRestoreW(HWND hDlg, LPWSTR pszFileList, LPWSTR pszDir,
LPWSTR pszBaseName, DWORD dwFlags)
{
- FIXME("(%p, %s, %s, %s, %ld) stub\n", hDlg, debugstr_w(pszFileList),
+ FIXME("(%p, %s, %s, %s, %d) stub\n", hDlg, debugstr_w(pszFileList),
debugstr_w(pszDir), debugstr_w(pszBaseName), dwFlags);
return E_FAIL;
@@ -858,7 +875,7 @@
UNICODE_STRING backupdir, backupfile;
HRESULT hr;
- TRACE("(%p, %s, %s, %s, %s, %s, %ld)\n", hWnd, debugstr_a(pszTitle),
+ TRACE("(%p, %s, %s, %s, %s, %s, %d)\n", hWnd, debugstr_a(pszTitle),
debugstr_a(pszINF), debugstr_a(pszSection), debugstr_a(pszBackupDir),
debugstr_a(pszBaseBackupFile), dwFlags);
@@ -907,7 +924,7 @@
LPCWSTR pszSection, LPCWSTR pszBackupDir,
LPCWSTR pszBaseBackupFile, DWORD dwFlags)
{
- FIXME("(%p, %s, %s, %s, %s, %s, %ld): stub\n", hWnd, debugstr_w(pszTitle),
+ FIXME("(%p, %s, %s, %s, %s, %s, %d): stub\n", hWnd, debugstr_w(pszTitle),
debugstr_w(pszINF), debugstr_w(pszSection), debugstr_w(pszBackupDir),
debugstr_w(pszBaseBackupFile), dwFlags);
Modified: trunk/reactos/dll/win32/advpack/install.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advpack/install.…
==============================================================================
--- trunk/reactos/dll/win32/advpack/install.c (original)
+++ trunk/reactos/dll/win32/advpack/install.c Wed Mar 14 15:55:03 2007
@@ -214,14 +214,14 @@
return token;
}
-static BOOL is_full_path(LPWSTR path)
+static BOOL is_full_path(LPCWSTR path)
{
const int MIN_PATH_LEN = 3;
if (!path || lstrlenW(path) < MIN_PATH_LEN)
return FALSE;
- if (path[1] == ':' || (path[0] == '\\' && path[1] ==
'\\'))
+ if ((path[1] == ':' && path[2] == '\\') || (path[0] ==
'\\' && path[1] == '\\'))
return TRUE;
return FALSE;
@@ -229,7 +229,7 @@
/* retrieves the contents of a field, dynamically growing the buffer if necessary */
static WCHAR *get_field_string(INFCONTEXT *context, DWORD index, WCHAR *buffer,
- WCHAR *static_buffer, DWORD *size)
+ const WCHAR *static_buffer, DWORD *size)
{
DWORD required;
@@ -425,8 +425,8 @@
}
/* loads the INF file and performs checks on it */
-HRESULT install_init(LPCWSTR inf_filename, LPCWSTR install_sec,
- LPCWSTR working_dir, DWORD flags, ADVInfo *info)
+static HRESULT install_init(LPCWSTR inf_filename, LPCWSTR install_sec,
+ LPCWSTR working_dir, DWORD flags, ADVInfo *info)
{
DWORD len;
HRESULT hr;
@@ -500,7 +500,7 @@
}
/* release the install instance information */
-void install_release(ADVInfo *info)
+static void install_release(ADVInfo *info)
{
if (info->hinf && info->hinf != INVALID_HANDLE_VALUE)
SetupCloseInfFile(info->hinf);
@@ -833,7 +833,7 @@
LPWSTR cmdline_copy, cmdline_ptr;
LPWSTR flags, ptr;
CABINFOW cabinfo;
- HRESULT hr = S_OK;
+ HRESULT hr;
TRACE("(%p, %p, %s, %d)\n", hWnd, hInst, debugstr_w(cmdline), show);
@@ -853,22 +853,26 @@
if (flags)
cabinfo.dwFlags = atolW(flags);
+ if (!is_full_path(cabinfo.pszCab) && !is_full_path(cabinfo.pszInf))
+ {
+ HeapFree(GetProcessHeap(), 0, cmdline_copy);
+ return E_INVALIDARG;
+ }
+
/* get the source path from the cab filename */
if (cabinfo.pszCab && *cabinfo.pszCab)
{
if (!is_full_path(cabinfo.pszCab))
- goto done;
-
- lstrcpyW(cabinfo.szSrcPath, cabinfo.pszCab);
+ lstrcpyW(cabinfo.szSrcPath, cabinfo.pszInf);
+ else
+ lstrcpyW(cabinfo.szSrcPath, cabinfo.pszCab);
+
ptr = strrchrW(cabinfo.szSrcPath, '\\');
*(++ptr) = '\0';
}
hr = ExecuteCabW(hWnd, &cabinfo, NULL);
-
-done:
HeapFree(GetProcessHeap(), 0, cmdline_copy);
-
return SUCCEEDED(hr) ? ADV_SUCCESS : ADV_FAILURE;
}
@@ -919,7 +923,7 @@
UNICODE_STRING dir, title;
HRESULT hr;
- TRACE("(%p, %s, %s, %s, %s, %p, %ld, %p)\n",
+ TRACE("(%p, %s, %s, %s, %s, %p, %d, %p)\n",
hWnd, debugstr_a(szCmdName), debugstr_a(szInfSection),
debugstr_a(szDir), debugstr_a(lpszTitle),
phEXE, dwFlags, pvReserved);
@@ -976,7 +980,7 @@
ADVInfo info;
HRESULT hr;
- TRACE("(%p, %s, %s, %s, %s, %p, %ld, %p)\n",
+ TRACE("(%p, %s, %s, %s, %s, %p, %d, %p)\n",
hWnd, debugstr_w(szCmdName), debugstr_w(szInfSection),
debugstr_w(szDir), debugstr_w(lpszTitle),
phEXE, dwFlags, pvReserved);
Modified: trunk/reactos/dll/win32/advpack/reg.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advpack/reg.c?re…
==============================================================================
--- trunk/reactos/dll/win32/advpack/reg.c (original)
+++ trunk/reactos/dll/win32/advpack/reg.c Wed Mar 14 15:55:03 2007
@@ -98,7 +98,7 @@
return FALSE;
}
-static void strentry_atow(STRENTRYA *aentry, STRENTRYW *wentry)
+static void strentry_atow(const STRENTRYA *aentry, STRENTRYW *wentry)
{
DWORD name_len, val_len;
@@ -171,7 +171,7 @@
return hr;
}
-static HRESULT write_predefined_strings(HMODULE hm, LPWSTR ini_path)
+static HRESULT write_predefined_strings(HMODULE hm, LPCWSTR ini_path)
{
WCHAR mod_path[MAX_PATH + 2];
WCHAR sys_mod_path[MAX_PATH + 2];
@@ -324,7 +324,7 @@
UNICODE_STRING title, root, subkey, value;
HRESULT hr;
- TRACE("(%p, %s, %p, %s, %s, %s, %ld)\n", hWnd, debugstr_a(pszTitleString),
+ TRACE("(%p, %s, %p, %s, %s, %s, %d)\n", hWnd, debugstr_a(pszTitleString),
hkBackupKey, debugstr_a(pcszRootKey), debugstr_a(pcszSubKey),
debugstr_a(pcszValueName), dwFlags);
@@ -369,7 +369,7 @@
LPCWSTR pcszRootKey, LPCWSTR pcszSubKey,
LPCWSTR pcszValueName, DWORD dwFlags)
{
- FIXME("(%p, %s, %p, %s, %s, %s, %ld): stub\n", hWnd,
debugstr_w(pszTitleString),
+ FIXME("(%p, %s, %p, %s, %s, %s, %d): stub\n", hWnd,
debugstr_w(pszTitleString),
hkBackupKey, debugstr_w(pcszRootKey), debugstr_w(pcszSubKey),
debugstr_w(pcszValueName), dwFlags);
@@ -388,7 +388,7 @@
UNICODE_STRING title, inf, section;
HRESULT hr;
- TRACE("(%p, %s, %s, %s, %p, %p, %ld)\n", hWnd, debugstr_a(pszTitle),
+ TRACE("(%p, %s, %s, %s, %p, %p, %d)\n", hWnd, debugstr_a(pszTitle),
debugstr_a(pszINF), debugstr_a(pszSection),
hHKLMBackKey, hHKCUBackKey, dwFlags);
@@ -431,7 +431,7 @@
LPCWSTR pszSection, HKEY hHKLMBackKey,
HKEY hHKCUBackKey, DWORD dwFlags)
{
- FIXME("(%p, %s, %s, %s, %p, %p, %ld): stub\n", hWnd, debugstr_w(pszTitle),
+ FIXME("(%p, %s, %s, %s, %p, %p, %d): stub\n", hWnd, debugstr_w(pszTitle),
debugstr_w(pszINF), debugstr_w(pszSection),
hHKLMBackKey, hHKCUBackKey, dwFlags);
Modified: trunk/reactos/include/psdk/advpub.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/advpub.h?rev=…
==============================================================================
--- trunk/reactos/include/psdk/advpub.h (original)
+++ trunk/reactos/include/psdk/advpub.h Wed Mar 14 15:55:03 2007
@@ -223,8 +223,8 @@
HRESULT WINAPI OpenINFEngineW(LPCWSTR pszInfFilename, LPCWSTR pszInstallSection,
DWORD dwFlags, HINF *phInf, PVOID pvReserved);
#define OpenINFEngine WINELIB_NAME_AW(OpenINFEngine)
-HRESULT WINAPI RebootCheckOnInstallA(HWND hWnd, LPCSTR pszINF, LPSTR pszSec, DWORD
dwReserved);
-HRESULT WINAPI RebootCheckOnInstallW(HWND hWnd, LPCWSTR pszINF, LPWSTR pszSec, DWORD
dwReserved);
+HRESULT WINAPI RebootCheckOnInstallA(HWND hWnd, LPCSTR pszINF, LPCSTR pszSec, DWORD
dwReserved);
+HRESULT WINAPI RebootCheckOnInstallW(HWND hWnd, LPCWSTR pszINF, LPCWSTR pszSec, DWORD
dwReserved);
#define RebootCheckOnInstall WINELIB_NAME_AW(RebootCheckOnInstall)
HRESULT WINAPI RegInstallA(HMODULE hm, LPCSTR pszSection, const STRTABLEA* pstTable);
HRESULT WINAPI RegInstallW(HMODULE hm, LPCWSTR pszSection, const STRTABLEW* pstTable);