advpack: Forward ExecuteCabA to its Unicode counterpart.
This commit is contained in:
parent
fb5ec209cd
commit
017d1b0b56
|
@ -14,7 +14,7 @@
|
||||||
@ stdcall -private DllMain(long long ptr)
|
@ stdcall -private DllMain(long long ptr)
|
||||||
@ stdcall DoInfInstall(ptr)
|
@ stdcall DoInfInstall(ptr)
|
||||||
@ stdcall ExecuteCabA(ptr ptr ptr)
|
@ stdcall ExecuteCabA(ptr ptr ptr)
|
||||||
# stdcall ExecuteCabW(ptr ptr ptr)
|
@ stdcall ExecuteCabW(ptr ptr ptr)
|
||||||
@ stdcall ExecuteCab(ptr ptr ptr) ExecuteCabA
|
@ stdcall ExecuteCab(ptr ptr ptr) ExecuteCabA
|
||||||
@ stdcall ExtractFilesA(str str long ptr ptr long)
|
@ stdcall ExtractFilesA(str str long ptr ptr long)
|
||||||
# stdcall ExtractFilesW(wstr wstr long ptr ptr long)
|
# stdcall ExtractFilesW(wstr wstr long ptr ptr long)
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
#include "winver.h"
|
#include "winver.h"
|
||||||
#include "winternl.h"
|
#include "winternl.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "setupapi.h"
|
#include "setupapi.h"
|
||||||
#include "advpub.h"
|
#include "advpub.h"
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
@ -86,6 +87,51 @@ HRESULT WINAPI DoInfInstall(const SETUPCOMMAND_PARAMS *setup)
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* ExecuteCabA (ADVPACK.@)
|
* ExecuteCabA (ADVPACK.@)
|
||||||
|
*
|
||||||
|
* See ExecuteCabW.
|
||||||
|
*/
|
||||||
|
HRESULT WINAPI ExecuteCabA(HWND hwnd, CABINFOA* pCab, LPVOID pReserved)
|
||||||
|
{
|
||||||
|
UNICODE_STRING cab, inf, section;
|
||||||
|
CABINFOW cabinfo;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
TRACE("(%p, %p, %p)\n", hwnd, pCab, pReserved);
|
||||||
|
|
||||||
|
if (!pCab)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
if (pCab->pszCab)
|
||||||
|
{
|
||||||
|
RtlCreateUnicodeStringFromAsciiz(&cab, pCab->pszCab);
|
||||||
|
cabinfo.pszCab = cab.Buffer;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cabinfo.pszCab = NULL;
|
||||||
|
|
||||||
|
RtlCreateUnicodeStringFromAsciiz(&inf, pCab->pszInf);
|
||||||
|
RtlCreateUnicodeStringFromAsciiz(§ion, pCab->pszSection);
|
||||||
|
|
||||||
|
MultiByteToWideChar(CP_ACP, 0, pCab->szSrcPath, -1, cabinfo.szSrcPath,
|
||||||
|
sizeof(cabinfo.szSrcPath) / sizeof(WCHAR));
|
||||||
|
|
||||||
|
cabinfo.pszInf = inf.Buffer;
|
||||||
|
cabinfo.pszSection = section.Buffer;
|
||||||
|
cabinfo.dwFlags = pCab->dwFlags;
|
||||||
|
|
||||||
|
hr = ExecuteCabW(hwnd, &cabinfo, pReserved);
|
||||||
|
|
||||||
|
if (pCab->pszCab)
|
||||||
|
RtlFreeUnicodeString(&cab);
|
||||||
|
|
||||||
|
RtlFreeUnicodeString(&inf);
|
||||||
|
RtlFreeUnicodeString(§ion);
|
||||||
|
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* ExecuteCabW (ADVPACK.@)
|
||||||
*
|
*
|
||||||
* Installs the INF file extracted from a specified cabinet file.
|
* Installs the INF file extracted from a specified cabinet file.
|
||||||
*
|
*
|
||||||
|
@ -101,7 +147,7 @@ HRESULT WINAPI DoInfInstall(const SETUPCOMMAND_PARAMS *setup)
|
||||||
* BUGS
|
* BUGS
|
||||||
* Unimplemented
|
* Unimplemented
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI ExecuteCabA( HWND hwnd, CABINFOA* pCab, LPVOID pReserved )
|
HRESULT WINAPI ExecuteCabW(HWND hwnd, CABINFOW* pCab, LPVOID pReserved)
|
||||||
{
|
{
|
||||||
FIXME("(%p %p %p): stub\n", hwnd, pCab, pReserved);
|
FIXME("(%p %p %p): stub\n", hwnd, pCab, pReserved);
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
Loading…
Reference in New Issue