mirror of
https://github.com/reactos/reactos.git
synced 2025-05-10 20:27:45 +00:00
Keep minimal amount of differences with Wine code
Remove useless files svn path=/trunk/; revision=22091
This commit is contained in:
parent
0dd1e9a2af
commit
2a99309f16
43 changed files with 168 additions and 1671 deletions
|
@ -15,10 +15,10 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_BULGARIAN, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
/*
|
||||
/* Hey, Emacs, open this file with -*- coding: cp1250 -*-
|
||||
*
|
||||
* Czech resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
|
@ -16,10 +17,12 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_CZECH, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
|
||||
|
||||
/* Czech strings in CP1250 */
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -1,4 +1,24 @@
|
|||
LANGUAGE LANG_DANISH, SUBLANG_NEUTRAL
|
||||
/*
|
||||
* Danish resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2005 Thomas Larsen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ESPERANTO, SUBLANG_DEFAULT
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_FINNISH, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Hungaruan resources for SETUPAPI
|
||||
* Hungarian resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
* Copyright 2005 Robert Horvath (talley at cubeclub.hu) - Hungarian translation
|
||||
|
@ -16,10 +16,10 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_HUNGARIAN, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
EXTRADEFS = -D_SETUPAPI_
|
||||
TOPSRCDIR = @top_srcdir@
|
||||
TOPOBJDIR = ../..
|
||||
SRCDIR = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
MODULE = setupapi.dll
|
||||
IMPORTLIB = libsetupapi.$(IMPLIBEXT)
|
||||
IMPORTS = user32 version advapi32 rpcrt4 kernel32 ntdll
|
||||
DELAYIMPORTS = shell32
|
||||
EXTRALIBS = $(LIBUNICODE)
|
||||
|
||||
C_SRCS = \
|
||||
pnp_c.c \
|
||||
cfgmgr.c \
|
||||
devinst.c \
|
||||
dirid.c \
|
||||
diskspace.c \
|
||||
install.c \
|
||||
misc.c \
|
||||
parser.c \
|
||||
queue.c \
|
||||
setupcab.c \
|
||||
stringtable.c \
|
||||
stubs.c \
|
||||
rpc.c
|
||||
|
||||
C_SRCS16 = \
|
||||
devinst16.c \
|
||||
infparse.c \
|
||||
setupx_main.c \
|
||||
virtcopy.c
|
||||
|
||||
SPEC_SRCS16 = setupx.spec
|
||||
|
||||
RC_SRCS= setupapi.rc
|
||||
|
||||
@MAKE_DLL_RULES@
|
||||
|
||||
### Dependencies:
|
|
@ -15,10 +15,10 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_POLISH, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_RUSSIAN, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
|
|
@ -1,134 +0,0 @@
|
|||
/*
|
||||
* SetupAPI device installer
|
||||
*
|
||||
* Copyright 2000 Andreas Mohr for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "setupx16.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
/***********************************************************************
|
||||
* DiGetClassDevs (SETUPX.304)
|
||||
* Return a list of installed system devices.
|
||||
* Uses HKLM\\ENUM to list devices.
|
||||
*/
|
||||
RETERR16 WINAPI DiGetClassDevs16(LPLPDEVICE_INFO16 lplpdi,
|
||||
LPCSTR lpszClassName, HWND16 hwndParent, INT16 iFlags)
|
||||
{
|
||||
LPDEVICE_INFO16 lpdi;
|
||||
|
||||
FIXME("(%p, '%s', %04x, %04x), semi-stub.\n",
|
||||
lplpdi, lpszClassName, hwndParent, iFlags);
|
||||
lpdi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DEVICE_INFO16));
|
||||
lpdi->cbSize = sizeof(DEVICE_INFO16);
|
||||
*lplpdi = (LPDEVICE_INFO16)MapLS(lpdi);
|
||||
return OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiBuildCompatDrvList (SETUPX.300)
|
||||
*/
|
||||
RETERR16 WINAPI DiBuildCompatDrvList16(LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%p): stub\n", lpdi);
|
||||
lpdi->lpCompatDrvList = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiBuildClassDrvList (SETUPX.301)
|
||||
*/
|
||||
RETERR16 WINAPI DiBuildClassDrvList16(LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%p): stub\n", lpdi);
|
||||
lpdi->lpCompatDrvList = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiCallClassInstaller (SETUPX.308)
|
||||
*/
|
||||
RETERR16 WINAPI DiCallClassInstaller16(DI_FUNCTION16 diFctn, LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%x, %p): stub\n", diFctn, lpdi);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiCreateDevRegKey (SETUPX.318)
|
||||
*/
|
||||
RETERR16 WINAPI DiCreateDevRegKey16(LPDEVICE_INFO16 lpdi,
|
||||
VOID* p2, WORD w3,
|
||||
LPCSTR s4, WORD w5)
|
||||
{
|
||||
FIXME("(%p, %p, %x, %s, %x): stub\n", lpdi, p2, w3, debugstr_a(s4), w5);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiDeleteDevRegKey (SETUPX.344)
|
||||
*/
|
||||
RETERR16 WINAPI DiDeleteDevRegKey16(LPDEVICE_INFO16 lpdi, INT16 iFlags)
|
||||
{
|
||||
FIXME("(%p, %x): stub\n", lpdi, iFlags);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiCreateDeviceInfo (SETUPX.303)
|
||||
*/
|
||||
RETERR16 WINAPI DiCreateDeviceInfo16(LPLPDEVICE_INFO16 lplpdi,
|
||||
LPCSTR lpszDescription, DWORD dnDevnode,
|
||||
HKEY16 hkey, LPCSTR lpszRegsubkey,
|
||||
LPCSTR lpszClassName, HWND16 hwndParent)
|
||||
{
|
||||
LPDEVICE_INFO16 lpdi;
|
||||
FIXME("(%p %s %08lx %x %s %s %x): stub\n", lplpdi,
|
||||
debugstr_a(lpszDescription), dnDevnode, hkey,
|
||||
debugstr_a(lpszRegsubkey), debugstr_a(lpszClassName), hwndParent);
|
||||
lpdi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DEVICE_INFO16));
|
||||
lpdi->cbSize = sizeof(DEVICE_INFO16);
|
||||
strcpy(lpdi->szClassName, lpszClassName);
|
||||
lpdi->hwndParent = hwndParent;
|
||||
*lplpdi = (LPDEVICE_INFO16)MapLS(lpdi);
|
||||
return OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiDestroyDeviceInfoList (SETUPX.305)
|
||||
*/
|
||||
RETERR16 WINAPI DiDestroyDeviceInfoList16(LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%p): stub\n", lpdi);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiOpenDevRegKey (SETUPX.319)
|
||||
*/
|
||||
RETERR16 WINAPI DiOpenDevRegKey16(LPDEVICE_INFO16 lpdi,
|
||||
LPHKEY16 lphk,INT16 iFlags)
|
||||
{
|
||||
FIXME("(%p %p %d): stub\n", lpdi, lphk, iFlags);
|
||||
return FALSE;
|
||||
}
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*
|
||||
* FIXME:
|
||||
* - return values ???
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
@ -453,6 +453,9 @@ static BOOL do_register_dll( const struct register_dll_info *info, const WCHAR *
|
|||
HMODULE module;
|
||||
HRESULT res;
|
||||
SP_REGISTER_CONTROL_STATUSW status;
|
||||
#ifdef __WINESRC__
|
||||
IMAGE_NT_HEADERS *nt;
|
||||
#endif
|
||||
|
||||
status.cbSize = sizeof(status);
|
||||
status.FileName = path;
|
||||
|
@ -482,6 +485,47 @@ static BOOL do_register_dll( const struct register_dll_info *info, const WCHAR *
|
|||
goto done;
|
||||
}
|
||||
|
||||
#ifdef __WINESRC__
|
||||
if ((nt = RtlImageNtHeader( module )) && !(nt->FileHeader.Characteristics & IMAGE_FILE_DLL))
|
||||
{
|
||||
/* file is an executable, not a dll */
|
||||
STARTUPINFOW startup;
|
||||
PROCESS_INFORMATION info;
|
||||
WCHAR *cmd_line;
|
||||
BOOL res;
|
||||
static const WCHAR format[] = {'"','%','s','"',' ','%','s',0};
|
||||
static const WCHAR default_args[] = {'/','R','e','g','S','e','r','v','e','r',0};
|
||||
|
||||
FreeLibrary( module );
|
||||
module = NULL;
|
||||
if (!args) args = default_args;
|
||||
cmd_line = HeapAlloc( GetProcessHeap(), 0, (strlenW(path) + strlenW(args) + 4) * sizeof(WCHAR) );
|
||||
sprintfW( cmd_line, format, path, args );
|
||||
memset( &startup, 0, sizeof(startup) );
|
||||
startup.cb = sizeof(startup);
|
||||
TRACE( "executing %s\n", debugstr_w(cmd_line) );
|
||||
res = CreateProcessW( NULL, cmd_line, NULL, NULL, FALSE, 0, NULL, NULL, &startup, &info );
|
||||
HeapFree( GetProcessHeap(), 0, cmd_line );
|
||||
if (!res)
|
||||
{
|
||||
status.FailureCode = SPREG_LOADLIBRARY;
|
||||
status.Win32Error = GetLastError();
|
||||
goto done;
|
||||
}
|
||||
CloseHandle( info.hThread );
|
||||
|
||||
if (WaitForSingleObject( info.hProcess, timeout*1000 ) == WAIT_TIMEOUT)
|
||||
{
|
||||
/* timed out, kill the process */
|
||||
TerminateProcess( info.hProcess, 1 );
|
||||
status.FailureCode = SPREG_TIMEOUT;
|
||||
status.Win32Error = ERROR_TIMEOUT;
|
||||
}
|
||||
CloseHandle( info.hProcess );
|
||||
goto done;
|
||||
}
|
||||
#endif // __WINESRC__
|
||||
|
||||
if (flags & FLG_REGSVR_DLLREGISTER)
|
||||
{
|
||||
const char *entry_point = info->unregister ? "DllUnregisterServer" : "DllRegisterServer";
|
||||
|
@ -589,6 +633,50 @@ static BOOL register_dlls_callback( HINF hinf, PCWSTR field, void *arg )
|
|||
return ret;
|
||||
}
|
||||
|
||||
#ifdef __WINESRC__
|
||||
/***********************************************************************
|
||||
* fake_dlls_callback
|
||||
*
|
||||
* Called once for each WineFakeDlls entry in a given section.
|
||||
*/
|
||||
static BOOL fake_dlls_callback( HINF hinf, PCWSTR field, void *arg )
|
||||
{
|
||||
INFCONTEXT context;
|
||||
BOOL ret = TRUE;
|
||||
BOOL ok = SetupFindFirstLineW( hinf, field, NULL, &context );
|
||||
|
||||
for (; ok; ok = SetupFindNextLine( &context, &context ))
|
||||
{
|
||||
WCHAR *path, *p;
|
||||
WCHAR buffer[MAX_INF_STRING_LENGTH];
|
||||
|
||||
/* get directory */
|
||||
if (!(path = PARSER_get_dest_dir( &context ))) continue;
|
||||
|
||||
/* get dll name */
|
||||
if (!SetupGetStringFieldW( &context, 3, buffer, sizeof(buffer)/sizeof(WCHAR), NULL ))
|
||||
goto done;
|
||||
if (!(p = HeapReAlloc( GetProcessHeap(), 0, path,
|
||||
(strlenW(path) + strlenW(buffer) + 2) * sizeof(WCHAR) ))) goto done;
|
||||
path = p;
|
||||
p += strlenW(p);
|
||||
if (p == path || p[-1] != '\\') *p++ = '\\';
|
||||
strcpyW( p, buffer );
|
||||
|
||||
/* get source dll */
|
||||
if (SetupGetStringFieldW( &context, 4, buffer, sizeof(buffer)/sizeof(WCHAR), NULL ))
|
||||
p = buffer; /* otherwise use target base name as default source */
|
||||
|
||||
create_fake_dll( path, p ); /* ignore errors */
|
||||
|
||||
done:
|
||||
HeapFree( GetProcessHeap(), 0, path );
|
||||
if (!ret) break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#endif // __WINESRC__
|
||||
|
||||
/***********************************************************************
|
||||
* update_ini_callback
|
||||
*
|
||||
|
@ -920,6 +1008,11 @@ BOOL WINAPI SetupInstallFromInfSectionW( HWND owner, HINF hinf, PCWSTR section,
|
|||
|
||||
if (!iterate_section_fields( hinf, section, RegisterDlls, register_dlls_callback, &info ))
|
||||
return FALSE;
|
||||
|
||||
#ifdef __WINESRC__
|
||||
if (!iterate_section_fields( hinf, section, WineFakeDlls, fake_dlls_callback, NULL ))
|
||||
return FALSE;
|
||||
#endif // __WINESRC__
|
||||
}
|
||||
if (flags & SPINST_UNREGSVR)
|
||||
{
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef __RPC_PRIVATE_H
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef __SETUPAPI_PRIVATE_H
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*
|
||||
*
|
||||
* Many useful traces are commented in code, uncomment them if you have
|
||||
|
|
|
@ -1,269 +0,0 @@
|
|||
#1 stub WEP
|
||||
2 pascal -ret16 IpOpen(str ptr) IpOpen16
|
||||
3 stub IpOpenAppend #(str word)
|
||||
4 pascal -ret16 IpClose(word) IpClose16
|
||||
5 stub IpGetLongField #(word ptr word ptr)
|
||||
6 stub IpGetStringField #(word ptr word ptr word ptr)
|
||||
7 stub IpFindFirstLine #(word str str ptr)
|
||||
8 stub IpGetLineCount #(word str ptr)
|
||||
9 stub IpGetFieldCount #(word ptr ptr)
|
||||
10 stub IpGetIntField #(word ptr word ptr)
|
||||
11 stub IpFindNextLine #(word ptr)
|
||||
12 stub IpGetFileName #(word ptr word)
|
||||
13 pascal -ret16 VcpQueueCopy(str str str str word word ptr word long) VcpQueueCopy16
|
||||
14 stub NOAUTORUNWNDPROC
|
||||
15 stub __DEBUGMSG
|
||||
16 stub __ASSERTMSG
|
||||
17 pascal -ret16 VcpQueueDelete(str str word long) VcpQueueDelete16
|
||||
18 stub TpOpenFile #(str ptr word)
|
||||
19 stub TpCloseFile #(word)
|
||||
20 stub TpOpenSection #(word ptr str word)
|
||||
21 stub TpCloseSection #(word)
|
||||
22 stub TpCommitSection #(word word str word)
|
||||
23 stub TpGetLine #(word str str word word ptr)
|
||||
24 stub TpGetNextLine #(word str str ptr)
|
||||
25 stub TpInsertLine #(word str str word word word)
|
||||
26 stub TpReplaceLine #(word str str word word word)
|
||||
27 stub TpDeleteLine #(word word word word)
|
||||
28 stub TpMoveLine #(word word word word word word)
|
||||
29 stub TpGetLineContents #(word ptr word ptr word word word)
|
||||
30 stub TpGetPrivateProfileString #(str str str ptr word str)
|
||||
31 stub TpWritePrivateProfileString #(str str str str)
|
||||
32 stub TpGetProfileString #(str str str ptr word)
|
||||
33 pascal -ret16 CtlSetLdd(ptr) CtlSetLdd16
|
||||
34 pascal -ret16 CtlGetLdd(ptr) CtlGetLdd16
|
||||
35 pascal -ret16 CtlFindLdd(ptr) CtlFindLdd16
|
||||
36 pascal -ret16 CtlAddLdd(ptr) CtlAddLdd16
|
||||
37 pascal -ret16 CtlDelLdd(word) CtlDelLdd16
|
||||
38 pascal -ret16 CtlGetLddPath(word ptr) CtlGetLddPath16
|
||||
39 stub SURegCloseKey #(word)
|
||||
40 stub SURegCreateKey #(word)
|
||||
41 stub SURegDeleteKey #(word str)
|
||||
42 stub SURegDeleteValue #(word str)
|
||||
43 stub SURegEnumKey #(word long ptr long)
|
||||
44 stub SURegEnumValue #(word long str ptr ptr ptr ptr ptr)
|
||||
45 stub SURegFlush #()
|
||||
46 stub SURegInit #()
|
||||
47 pascal SURegOpenKey(word str ptr) SURegOpenKey
|
||||
48 stub SURegQueryValue
|
||||
49 stub SURegQueryValue16 #(word str ptr ptr)
|
||||
50 pascal SURegQueryValueEx(long str ptr ptr ptr ptr) SURegQueryValueEx
|
||||
51 stub SURegSetValue
|
||||
52 stub SURegSetValue16 #(word str long ptr long)
|
||||
53 stub SURegSetValueEx #(word str long long ptr long)
|
||||
54 stub SURegSaveKey #(word str ptr)
|
||||
55 stub SURegLoadKey #(word str str)
|
||||
56 stub SURegUnLoadKey #(word str)
|
||||
60 stub DiskInfoFromLdid #(word ptr)
|
||||
61 pascal suErrorToIds(word word) suErrorToIds16
|
||||
62 pascal -ret16 TPWriteProfileString(str str str) TPWriteProfileString16
|
||||
63 stub SURPLSETUP
|
||||
# does SUSTORELDIDPATH set the path of an LDID in the registry ?
|
||||
64 stub SUSTORELDIDPATH
|
||||
65 stub WILDCARDSTRCMPI
|
||||
101 pascal -ret16 GenInstall(word str word) GenInstall16
|
||||
102 stub GenWinInitRename #(str str word)
|
||||
103 pascal GenFormStrWithoutPlaceHolders(str str word) GenFormStrWithoutPlaceHolders16
|
||||
104 stub SETUPX
|
||||
105 stub CfgSetupMerge #(word)
|
||||
106 stub INITDEPENDANTLDIDS
|
||||
107 stub CFGOBJFINDKEYCMD
|
||||
108 stub GenSURegSetValueEx
|
||||
109 stub GENINSTALLWITHQUEUE
|
||||
110 stub GenInstallEx #(word str word word ptr long)
|
||||
111 stub GenCopyLogConfig2Reg #(word word str)
|
||||
112 stub SUGetSetSetupFlags #(ptr word)
|
||||
114 stub CFGPARSELINE # returns array
|
||||
115 stub CFGSETAUTOPROCESS
|
||||
116 stub CFGOBJTOSTR
|
||||
117 stub CFGLNTOOBJ
|
||||
118 stub MATCHCMDEXT
|
||||
119 stub IpFindNextMatchLine #(word str ptr)
|
||||
120 stub P_SETDEFAULTOPTION
|
||||
121 stub CFGCLEANBOOT
|
||||
122 stub CFGMATCHCMDEXT
|
||||
123 stub CFGWASFILEUPDATED
|
||||
124 stub AUTOMATCHCMDEXT
|
||||
125 stub P_VALIDATEOC
|
||||
126 stub GENMAPROOTREGSTR2KEY
|
||||
127 stub P_CDROMOC
|
||||
128 stub P_MEDIAOC
|
||||
129 stub CFGCLEAN1STBOOT
|
||||
130 stub suFormatMessage
|
||||
131 stub suvFormatMessage #(word str str word ptr)
|
||||
132 stub suFormatMessageBox
|
||||
#133 stub suHelp # W98SE conflict !!
|
||||
135 stub suHelp #(word word)
|
||||
#135 stub P_WEBTVOC # W98SE conflict !!
|
||||
136 stub P_WBEMOC
|
||||
137 stub P_THEMESOC
|
||||
138 stub P_IMAGINGOC
|
||||
139 stub P_SCHEMESOC
|
||||
140 stub suVerConflict #(word ptr word ptr)
|
||||
141 stub suVerConflictInit #(word)
|
||||
142 stub suVerConflictTerm #(ptr)
|
||||
# Emergency Boot Disk
|
||||
143 stub suCreateEBD #(word ptr long)
|
||||
144 stub suCopyToEBD
|
||||
145 stub sxIsMSDOS7Running #()
|
||||
150 stub DS_INIT
|
||||
151 stub DS_DESTROY
|
||||
152 stub DS_SSYNCDRIVES
|
||||
153 stub DS_GETDRIVEDATA
|
||||
154 stub DS_ADDSECTION
|
||||
155 stub DS_ENABLESECTION
|
||||
156 stub DS_DISABLESECTION
|
||||
157 stub DS_SETSWAPSIZE
|
||||
158 stub DS_SETREQUIREDPAD
|
||||
159 stub DS_SETAVAILABLEPAD
|
||||
160 stub SXUPDATEDS
|
||||
170 stub SUSETMEM
|
||||
171 stub WriteDMFBootData #(word ptr word)
|
||||
200 pascal VcpOpen(segptr ptr) VcpOpen16
|
||||
201 pascal VcpClose(word str) VcpClose16
|
||||
202 pascal -ret16 vcpDefCallbackProc(ptr word word long long) vcpDefCallbackProc16
|
||||
203 stub vcpEnumFiles #(ptr long)
|
||||
204 pascal -ret16 VcpQueueRename(str str str str word word long) VcpQueueRename16
|
||||
205 pascal -ret16 vsmGetStringName(word ptr word) vsmGetStringName16
|
||||
206 pascal -ret16 vsmStringDelete(word) vsmStringDelete16
|
||||
207 pascal -ret16 vsmStringAdd(str) vsmStringAdd16
|
||||
208 pascal vsmGetStringRawName(word) vsmGetStringRawName16
|
||||
209 stub IpSaveRestorePosition #(word word)
|
||||
210 pascal -ret16 IpGetProfileString(word str str ptr word) IpGetProfileString16
|
||||
211 stub IpOpenEx #(str ptr word)
|
||||
212 stub IpOpenAppendEx #(str word word)
|
||||
213 pascal -ret16 vcpUICallbackProc(ptr word word long long) vcpUICallbackProc16
|
||||
214 stub VcpAddMRUPath #(str)
|
||||
300 pascal -ret16 DiBuildCompatDrvList (ptr) DiBuildCompatDrvList16
|
||||
301 pascal -ret16 DiBuildClassDrvList (ptr) DiBuildClassDrvList16
|
||||
302 stub DiDestroyDriverNodeList #(ptr)
|
||||
303 pascal -ret16 DiCreateDeviceInfo (ptr str long long str str word) DiCreateDeviceInfo16
|
||||
304 pascal -ret16 DiGetClassDevs(ptr str word word) DiGetClassDevs16
|
||||
305 pascal -ret16 DiDestroyDeviceInfoList (ptr) DiDestroyDeviceInfoList16
|
||||
306 stub DiRemoveDevice #(ptr)
|
||||
308 pascal -ret16 DiCallClassInstaller (word ptr) DiCallClassInstaller16
|
||||
309 stub DiCreateDriverNode #(ptr word word word str str str str str str long)
|
||||
310 stub DiDrawMiniIcon
|
||||
311 stub DiGetClassBitmapIndex #(str ptr)
|
||||
312 stub DiSelectDevice #(ptr)
|
||||
313 stub DiInstallDevice #(ptr)
|
||||
314 stub DiLoadClassIcon #(str ptr ptr)
|
||||
315 stub DiAskForOEMDisk #(ptr)
|
||||
316 stub Display_SetMode #(ptr word word word)
|
||||
317 stub Display_ClassInstaller #(word ptr)
|
||||
318 pascal -ret16 DiCreateDevRegKey (ptr ptr word str word) DiCreateDevRegKey16
|
||||
319 pascal -ret16 DiOpenDevRegKey (ptr ptr word) DiOpenDevRegKey16
|
||||
320 stub DiInstallDrvSection #(str str str str long)
|
||||
321 stub DiInstallClass #(str long)
|
||||
322 stub DiOpenClassRegKey #(ptr str)
|
||||
323 stub Display_SetFontSize #(str)
|
||||
324 stub Display_OpenFontSizeKey #(ptr)
|
||||
325 stub DiBuildClassDrvListFromOldInf #(ptr str ptr long)
|
||||
326 stub DiIsThereNeedToCopy #(word long)
|
||||
333 stub DiChangeState #(ptr long long long)
|
||||
334 stub WALKSUBTREE
|
||||
340 stub GetFctn #(word str str ptr ptr)
|
||||
341 stub DiBuildClassInfoList #(ptr)
|
||||
342 stub DiDestroyClassInfoList #(ptr)
|
||||
343 stub DiGetDeviceClassInfo #(ptr ptr)
|
||||
344 pascal -ret16 DiDeleteDevRegKey (ptr word) DiDeleteDevRegKey16
|
||||
350 stub DiSelectOEMDrv #(word ptr)
|
||||
351 stub DiGetINFClass #(str word str long)
|
||||
353 stub DIPICKBESTDRIVER
|
||||
355 stub COPYINFFILE
|
||||
360 stub GenInfLCToDevNode #(word str word word long)
|
||||
361 stub GETDOSMESSAGE
|
||||
362 stub Mouse_ClassInstaller #(word ptr)
|
||||
363 stub sxCompareDosAppVer #(str str)
|
||||
364 stub MONITOR_CLASSINSTALLER
|
||||
365 stub FCEGETRESDESOFFSET
|
||||
366 stub FCEGETALLOCVALUE
|
||||
367 stub FCEADDRESDES
|
||||
368 stub FCEDELETERESDES
|
||||
369 stub FCEINIT
|
||||
370 stub FCEGETRESDES
|
||||
371 stub FCEGETFIRSTVALUE
|
||||
372 stub FCEGETOTHERVALUE
|
||||
373 stub FCEGETVALIDATEVALUE
|
||||
374 stub FCEWRITETHISFORCEDCONFIGNOW
|
||||
375 stub SUCreatePropertySheetPage #(ptr)
|
||||
376 stub SUDestroyPropertySheetPage #(word)
|
||||
377 stub SUPropertySheet #(ptr)
|
||||
380 stub DiReadRegLogConf #(ptr str ptr ptr)
|
||||
381 stub DiReadRegConf #(ptr ptr ptr long)
|
||||
390 stub DiBuildPotentialDuplicatesList #(ptr ptr long ptr ptr)
|
||||
395 stub InitSubstrData #(ptr str)
|
||||
396 stub GetFirstSubstr #(ptr)
|
||||
397 stub GetNextSubstr #(ptr)
|
||||
398 stub INITSUBSTRDATAEX
|
||||
400 stub bIsFileInVMM32 #(str)
|
||||
401 stub DiInstallDriverFiles #(ptr)
|
||||
405 stub DiBuildClassInfoListEx #(ptr long)
|
||||
406 stub DiGetClassDevsEx #(ptr str str word word)
|
||||
407 stub DiCopyRegSubKeyValue #(word str str str)
|
||||
408 stub IPGETDRIVERDATE
|
||||
409 stub IPGETDRIVERVERSION
|
||||
410 stub IpGetVersionString #(str str ptr word str)
|
||||
411 pascal VcpExplain(ptr long) VcpExplain16
|
||||
412 stub DiBuildDriverIndex #(word)
|
||||
413 stub DiAddSingleInfToDrvIdx #(str word word)
|
||||
414 stub FCEGETFLAGS
|
||||
450 stub UiMakeDlgNonBold #(word)
|
||||
451 stub UiDeleteNonBoldFont #(word)
|
||||
500 stub SUEBDPAGE
|
||||
501 stub SUOCPAGE
|
||||
502 stub SXLISTSUBPROC
|
||||
503 stub SXFILLLB
|
||||
504 stub SXOCPAGEDLG
|
||||
506 stub SXOCBATCHSETTINGS
|
||||
507 stub SXOCFIXNEEDS
|
||||
508 pascal -ret16 CtlSetLddPath(word str) CtlSetLddPath16
|
||||
509 stub SXCALLOCPROC
|
||||
510 stub BUILDINFOCS
|
||||
511 stub BUILDREGOCS
|
||||
512 stub DELETEOCS
|
||||
520 stub DiBuildClassDrvInfoList #(ptr)
|
||||
521 stub DiBuildCompatDrvInfoList #(ptr)
|
||||
522 stub DiDestroyDrvInfoList #(ptr)
|
||||
523 stub DiConvertDriverInfoToDriverNode #(ptr ptr)
|
||||
524 stub DISELECTBESTCOMPATDRV
|
||||
525 stub FirstBootMoveToDOSSTART #(str word)
|
||||
526 stub DOSOptEnableCurCfg #(str)
|
||||
527 pascal -ret16 InstallHinfSection(word word str word) InstallHinfSection16
|
||||
528 stub SXMAKEUNCPATH
|
||||
529 stub SXISSBSSERVERFILE
|
||||
530 stub SXFINDBATCHFILES
|
||||
531 stub ISPANEUROPEAN
|
||||
532 stub UPGRADENIGGLINGS
|
||||
533 stub DISPLAY_ISSECONDDISPLAY
|
||||
534 stub ISWINDOWSFILE
|
||||
540 stub VERIFYSELECTEDDRIVER
|
||||
575 stub SXCALLMIGRATIONDLLS
|
||||
576 stub SXCALLMIGRATIONDLLS_RUNDLL
|
||||
600 stub PidConstruct #(str str str word)
|
||||
601 stub PidValidate #(str str)
|
||||
602 stub GETJAPANESEKEYBOARDTYPE
|
||||
610 stub CRC32COMPUTE
|
||||
621 stub SXSAVEINFO
|
||||
622 stub SXADDPAGEEX
|
||||
623 stub OPKREMOVEINSTALLEDNETDEVICE
|
||||
640 stub DOFIRSTRUNSCREENS
|
||||
700 stub SXSHOWREBOOTDLG
|
||||
701 stub SXSHOWREBOOTDLG_RUNDLL
|
||||
750 stub UIPOSITIONDIALOG
|
||||
775 stub ASPICLEAN
|
||||
800 stub EXTRACTCABFILE
|
||||
825 stub PIDGEN3
|
||||
826 stub GETSETUPINFO
|
||||
827 stub SETSETUPINFO
|
||||
828 stub GETKEYBOARDOPTIONS
|
||||
829 stub GETLOCALEOPTIONS
|
||||
830 stub SETINTLOPTIONS
|
||||
831 stub GETPRODUCTTYPE
|
||||
832 stub ISOPKMODE
|
||||
833 stub AUDITONETIMEINSTALL
|
||||
834 stub DISKDUP
|
||||
835 stub OPKPREINSTALL
|
||||
836 stub ISAUDITMODE
|
||||
837 stub ISAUDITAUTO
|
||||
838 stub GETVALIDEULA
|
|
@ -1,563 +0,0 @@
|
|||
/*
|
||||
* Copyright 2000 Andreas Mohr for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __SETUPX16_H
|
||||
#define __SETUPX16_H
|
||||
|
||||
#include "wine/windef16.h"
|
||||
|
||||
typedef UINT16 DI_FUNCTION16;
|
||||
typedef UINT16 HINF16;
|
||||
typedef UINT16 LOGDISKID16;
|
||||
typedef UINT16 VHSTR;
|
||||
|
||||
#define LINE_LEN 256
|
||||
|
||||
/* error codes stuff */
|
||||
|
||||
typedef UINT16 RETERR16;
|
||||
#define OK 0
|
||||
#define IP_ERROR (UINT16)100
|
||||
#define TP_ERROR (UINT16)200
|
||||
#define VCP_ERROR (UINT16)300
|
||||
#define GEN_ERROR (UINT16)400
|
||||
#define DI_ERROR (UINT16)500
|
||||
|
||||
enum {
|
||||
ERR_IP_INVALID_FILENAME = IP_ERROR+1,
|
||||
ERR_IP_ALLOC_ERR,
|
||||
ERR_IP_INVALID_SECT_NAME,
|
||||
ERR_IP_OUT_OF_HANDLES,
|
||||
ERR_IP_INF_NOT_FOUND,
|
||||
ERR_IP_INVALID_INFFILE,
|
||||
ERR_IP_INVALID_HINF,
|
||||
ERR_IP_INVALID_FIELD,
|
||||
ERR_IP_SECT_NOT_FOUND,
|
||||
ERR_IP_END_OF_SECTION,
|
||||
ERR_IP_PROFILE_NOT_FOUND,
|
||||
ERR_IP_LINE_NOT_FOUND,
|
||||
ERR_IP_FILEREAD,
|
||||
ERR_IP_TOOMANYINFFILES,
|
||||
ERR_IP_INVALID_SAVERESTORE,
|
||||
ERR_IP_INVALID_INFTYPE
|
||||
};
|
||||
|
||||
/****** virtual copy operations ******/
|
||||
|
||||
typedef DWORD LPEXPANDVTBL;
|
||||
|
||||
typedef struct {
|
||||
DWORD dwSoFar;
|
||||
DWORD dwTotal;
|
||||
} VCPPROGRESS, *LPVCPPROGRESS;
|
||||
|
||||
typedef struct {
|
||||
WORD cbSize;
|
||||
LOGDISKID16 ldid;
|
||||
VHSTR vhstrRoot;
|
||||
VHSTR vhstrVolumeLabel;
|
||||
VHSTR vhstrDiskName;
|
||||
WORD wVolumeTime;
|
||||
WORD wVolumeDate;
|
||||
DWORD dwSerialNumber;
|
||||
WORD fl;
|
||||
LPARAM lparamRef;
|
||||
|
||||
VCPPROGRESS prgFileRead;
|
||||
VCPPROGRESS prgByteRead;
|
||||
|
||||
VCPPROGRESS prgFileWrite;
|
||||
VCPPROGRESS prgByteWrite;
|
||||
} VCPDISKINFO, *LPVCPDISKINFO;
|
||||
|
||||
typedef struct {
|
||||
LOGDISKID16 ldid;
|
||||
VHSTR vhstrDir;
|
||||
VHSTR vhstrFileName;
|
||||
} VCPFILESPEC, *LPVCPFILESPEC;
|
||||
|
||||
typedef struct {
|
||||
UINT16 uiMDate;
|
||||
UINT16 uiMTime;
|
||||
UINT16 uiADate;
|
||||
UINT16 uiATime;
|
||||
UINT16 uiAttr;
|
||||
DWORD llenIn;
|
||||
DWORD llenOut;
|
||||
} VCPFATTR, *LPVCPFATTR;
|
||||
|
||||
typedef struct {
|
||||
UINT16 uDate;
|
||||
UINT16 uTime;
|
||||
DWORD dwSize;
|
||||
} VCPFILESTAT, *LPVCPFILESTAT;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
HFILE16 hFileSrc;
|
||||
HFILE16 hFileDst;
|
||||
VCPFATTR fAttr;
|
||||
WORD dosError;
|
||||
VHSTR vhstrFileName;
|
||||
WPARAM vcpm;
|
||||
} VIRTNODEEX, *LPVIRTNODEEX;
|
||||
|
||||
typedef struct {
|
||||
WORD cbSize;
|
||||
VCPFILESPEC vfsSrc;
|
||||
VCPFILESPEC vfsDst;
|
||||
WORD fl;
|
||||
LPARAM lParam;
|
||||
LPEXPANDVTBL lpExpandVtbl;
|
||||
LPVIRTNODEEX lpvnex;
|
||||
VHSTR vhstrDstFinalName;
|
||||
VCPFILESTAT vFileStat;
|
||||
} VIRTNODE, *LPVIRTNODE;
|
||||
|
||||
typedef struct {
|
||||
WORD cbSize;
|
||||
VCPPROGRESS prgDiskRead;
|
||||
VCPPROGRESS prgFileRead;
|
||||
VCPPROGRESS prgByteRead;
|
||||
|
||||
VCPPROGRESS prgDiskWrite;
|
||||
VCPPROGRESS prgFileWrite;
|
||||
VCPPROGRESS prgByteWrite;
|
||||
|
||||
LPVCPDISKINFO lpvdiIn;
|
||||
LPVCPDISKINFO lpvdiOut;
|
||||
LPVIRTNODE lpvn;
|
||||
} VCPSTATUS, *LPVCPSTATUS;
|
||||
|
||||
#define CNFL_BACKUP 0x0001
|
||||
#define CNFL_DELETEONFAILURE 0x0002
|
||||
#define CNFL_RENAMEONSUCCESS 0x0004
|
||||
#define CNFL_CONTINUATION 0x0008
|
||||
#define CNFL_SKIPPED 0x0010
|
||||
#define CNFL_IGNOREERRORS 0x0020
|
||||
#define CNFL_RETRYFILE 0x0040
|
||||
#define CNFL_COPIED 0x0080
|
||||
#define VNFL_UNIQUE 0x0000
|
||||
#define VNFL_MULTIPLEOK 0x0100
|
||||
#define VNFL_DESTROYOLD 0x0200
|
||||
#define VNFL_COPY 0x0000
|
||||
#define VNFL_DELETE 0x0800
|
||||
#define VNFL_RENAME 0x1000
|
||||
#define VNFL_NODE_TYPE (VNFL_RENAME|VNFL_DELETE|VNFL_COPY)
|
||||
#define VNFL_CREATED 0x2000
|
||||
#define VNFL_REJECTED 0x4000
|
||||
#define VNFL_DEVICEINSTALLER 0x8000
|
||||
|
||||
enum {
|
||||
ERR_VCP_IOFAIL = VCP_ERROR+1,
|
||||
ERR_VCP_STRINGTOOLONG,
|
||||
ERR_VCP_NOMEM,
|
||||
ERR_VCP_QUEUEFULL,
|
||||
ERR_VCP_NOVHSTR,
|
||||
ERR_VCP_OVERFLOW,
|
||||
ERR_VCP_BADARG,
|
||||
ERR_VCP_UNINIT,
|
||||
ERR_VCP_NOTFOUND,
|
||||
ERR_VCP_BUSY,
|
||||
ERR_VCP_INTERRUPTED,
|
||||
ERR_VCP_BADDEST,
|
||||
ERR_VCP_SKIPPED,
|
||||
ERR_VCP_IO,
|
||||
ERR_VCP_LOCKED,
|
||||
ERR_VCP_WRONGDISK,
|
||||
ERR_VCP_CHANGEMODE,
|
||||
ERR_VCP_LDDINVALID,
|
||||
ERR_VCP_LDDFIND,
|
||||
ERR_VCP_LDDUNINIT,
|
||||
ERR_VCP_LDDPATH_INVALID,
|
||||
ERR_VCP_NOEXPANSION,
|
||||
ERR_VCP_NOTOPEN,
|
||||
ERR_VCP_NO_DIGITAL_SIGNATURE_CATALOG,
|
||||
ERR_VCP_NO_DIGITAL_SIGNATURE_FILE
|
||||
};
|
||||
|
||||
#define VCPN_OK 0
|
||||
#define VCPN_PROCEED 0
|
||||
#define VCPN_ABORT -1
|
||||
#define VCPN_RETRY -2
|
||||
#define VCPN_IGNORE -3
|
||||
#define VCPN_SKIP -4
|
||||
#define VCPN_FORCE -5
|
||||
#define VCPN_DEFER -6
|
||||
#define VCPN_FAIL -7
|
||||
#define VCPN_RETRYFILE -8
|
||||
|
||||
#define VCPFL_ABANDON 0x00
|
||||
#define VCPFL_BACKUP 0x01
|
||||
#define VCPFL_COPY 0x02
|
||||
#define VCPFL_BACKUPANDCOPY (VCPFL_BACKUP|VCPFL_COPY)
|
||||
#define VCPFL_INSPECIFIEDORDER 0x04
|
||||
#define VCPFL_DELETE 0x08
|
||||
#define VCPFL_RENAME 0x10
|
||||
#define VCPFL_ALL (VCPFL_COPY|VCPFL_DELETE|VCPFL_RENAME)
|
||||
|
||||
#define CFNL_BACKUP 0x0001
|
||||
#define CFNL_DELETEONFAILURE 0x0002
|
||||
#define CFNL_RENAMEONSUCCESS 0x0004
|
||||
#define CFNL_CONTINUATION 0x0008
|
||||
#define CFNL_SKIPPED 0x0010
|
||||
#define CFNL_IGNOREERRORS 0x0020
|
||||
#define CFNL_RETRYFILE 0x0040
|
||||
#define CFNL_COPIED 0x0080
|
||||
#define VFNL_MULTIPLEOK 0x0100
|
||||
#define VFNL_DESTROYOLD 0x0200
|
||||
#define VFNL_NOW 0x0400
|
||||
#define VFNL_COPY 0x0000
|
||||
#define VFNL_DELETE 0x0800
|
||||
#define VFNL_RENAME 0x1000
|
||||
#define VFNL_CREATED 0x2000
|
||||
#define VFNL_REJECTED 0x4000
|
||||
#define VCPM_DISKCLASS 0x01
|
||||
#define VCPM_DISKFIRST 0x0100
|
||||
#define VCPM_DISKLAST 0x01ff
|
||||
|
||||
enum {
|
||||
VCPM_DISKCREATEINFO = VCPM_DISKFIRST,
|
||||
VCPM_DISKGETINFO,
|
||||
VCPM_DISKDESTROYINFO,
|
||||
VCPM_DISKPREPINFO,
|
||||
VCPM_DISKENSURE,
|
||||
VCPM_DISKPROMPT,
|
||||
VCPM_DISKFORMATBEGIN,
|
||||
VCPM_DISKFORMATTING,
|
||||
VCPM_DISKFORMATEND
|
||||
};
|
||||
|
||||
#define VCPM_FILEINCLASS 0x02
|
||||
#define VCPM_FILEOUTCLASS 0x03
|
||||
#define VCPM_FILEFIRSTIN 0x0200
|
||||
#define VCPM_FILEFIRSTOUT 0x0300
|
||||
#define VCPM_FILELAST 0x03ff
|
||||
|
||||
enum {
|
||||
VCPM_FILEOPENIN = VCPM_FILEFIRSTIN,
|
||||
VCPM_FILEGETFATTR,
|
||||
VCPM_FILECLOSEIN,
|
||||
VCPM_FILECOPY,
|
||||
VCPM_FILENEEDED,
|
||||
|
||||
VCPM_FILEOPENOUT = VCPM_FILEFIRSTOUT,
|
||||
VCPM_FILESETFATTR,
|
||||
VCPM_FILECLOSEOUT,
|
||||
VCPM_FILEFINALIZE,
|
||||
VCPM_FILEDELETE,
|
||||
VCPM_FILERENAME
|
||||
};
|
||||
|
||||
#define VCPM_NODECLASS 0x04
|
||||
#define VCPM_NODEFIRST 0x0400
|
||||
#define VCPM_NODELAST 0x04ff
|
||||
|
||||
enum {
|
||||
VCPM_NODECREATE = VCPM_NODEFIRST,
|
||||
VCPM_NODEACCEPT,
|
||||
VCPM_NODEREJECT,
|
||||
VCPM_NODEDESTROY,
|
||||
VCPM_NODECHANGEDESTDIR,
|
||||
VCPM_NODECOMPARE
|
||||
};
|
||||
|
||||
#define VCPM_TALLYCLASS 0x05
|
||||
#define VCPM_TALLYFIRST 0x0500
|
||||
#define VCPM_TALLYLAST 0x05ff
|
||||
|
||||
enum {
|
||||
VCPM_TALLYSTART = VCPM_TALLYFIRST,
|
||||
VCPM_TALLYEND,
|
||||
VCPM_TALLYFILE,
|
||||
VCPM_TALLYDISK
|
||||
};
|
||||
|
||||
#define VCPM_VERCLASS 0x06
|
||||
#define VCPM_VERFIRST 0x0600
|
||||
#define VCPM_VERLAST 0x06ff
|
||||
|
||||
enum {
|
||||
VCPM_VERCHECK = VCPM_VERFIRST,
|
||||
VCPM_VERCHECKDONE,
|
||||
VCPM_VERRESOLVECONFLICT
|
||||
};
|
||||
|
||||
#define VCPM_VSTATCLASS 0x07
|
||||
#define VCPM_VSTATFIRST 0x0700
|
||||
#define VCPM_VSTATLAST 0x07ff
|
||||
|
||||
enum {
|
||||
VCPM_VSTATSTART = VCPM_VSTATFIRST,
|
||||
VCPM_VSTATEND,
|
||||
VCPM_VSTATREAD,
|
||||
VCPM_VSTATWRITE,
|
||||
VCPM_VSTATNEWDISK,
|
||||
VCPM_VSTATCLOSESTART,
|
||||
VCPM_VSTATCLOSEEND,
|
||||
VCPM_VSTATBACKUPSTART,
|
||||
VCPM_VSTATBACKUPEND,
|
||||
VCPM_VSTATRENAMESTART,
|
||||
VCPM_VSTATRENAMEEND,
|
||||
VCPM_VSTATCOPYSTART,
|
||||
VCPM_VSTATCOPYEND,
|
||||
VCPM_VSTATDELETESTART,
|
||||
VCPM_VSTATDELETEEND,
|
||||
VCPM_VSTATPATHCHECKSTART,
|
||||
VCPM_VSTATPATHCHECKEND,
|
||||
VCPM_VSTATCERTIFYSTART,
|
||||
VCPM_VSTATCERTIFYEND,
|
||||
VCPM_VSTATUSERABORT,
|
||||
VCPM_VSTATYIELD
|
||||
};
|
||||
|
||||
#define VCPM_PATHCLASS 0x08
|
||||
#define VCPM_PATHFIRST 0x0800
|
||||
#define VCPM_PATHLAST 0x08ff
|
||||
|
||||
enum {
|
||||
VCPM_BUILDPATH = VCPM_PATHFIRST,
|
||||
VCPM_UNIQUEPATH,
|
||||
VCPM_CHECKPATH
|
||||
};
|
||||
|
||||
#define VCPM_PATCHCLASS 0x09
|
||||
#define VCPM_PATCHFIRST 0x0900
|
||||
#define VCPM_PATCHLAST 0x09ff
|
||||
|
||||
enum {
|
||||
VCPM_FILEPATCHBEFORECPY = VCPM_PATCHFIRST,
|
||||
VCPM_FILEPATCHAFTERCPY,
|
||||
VCPM_FILEPATCHINFOPEN,
|
||||
VCPM_FILEPATCHINFCLOSE
|
||||
};
|
||||
|
||||
#define VCPM_CERTCLASS 0x0a
|
||||
#define VCPM_CERTFIRST 0x0a00
|
||||
#define VCPM_CERTLAST 0x0aff
|
||||
|
||||
enum {
|
||||
VCPM_FILECERTIFY = VCPM_CERTFIRST,
|
||||
VCPM_FILECERTIFYWARN
|
||||
};
|
||||
|
||||
typedef LRESULT (CALLBACK *VIFPROC)(LPVOID lpvObj, UINT16 uMsg, WPARAM wParam, LPARAM lParam, LPARAM lparamRef);
|
||||
|
||||
typedef int (CALLBACK *VCPENUMPROC)(LPVIRTNODE lpvn, LPARAM lparamRef);
|
||||
|
||||
RETERR16 WINAPI VcpOpen16(VIFPROC vifproc, LPARAM lparamMsgRef);
|
||||
|
||||
/* VcpQueueCopy flags */
|
||||
#define VNLP_SYSCRITICAL 0x0001
|
||||
#define VNLP_SETUPCRITICAL 0x0002
|
||||
#define VNLP_NOVERCHECK 0x0004
|
||||
#define VNLP_FORCETEMP 0x0008
|
||||
#define VNLP_IFEXISTS 0x0010
|
||||
#define VNLP_KEEPNEWER 0x0020
|
||||
#define VNLP_PATCHIFEXIST 0x0040
|
||||
#define VNLP_NOPATCH 0x0080
|
||||
#define VNLP_CATALOGCERT 0x0100
|
||||
#define VNLP_NEEDCERTIFY 0x0200
|
||||
#define VNLP_COPYIFEXISTS 0x0400
|
||||
|
||||
RETERR16 WINAPI VcpQueueCopy16(
|
||||
LPCSTR lpszSrcFileName, LPCSTR lpszDstFileName,
|
||||
LPCSTR lpszSrcDir, LPCSTR lpszDstDir,
|
||||
LOGDISKID16 ldidSrc, LOGDISKID16 ldidDst,
|
||||
LPEXPANDVTBL lpExpandVtbl,
|
||||
WORD fl, LPARAM lParam
|
||||
);
|
||||
RETERR16 VcpFlush16(WORD fl, LPCSTR lpszBackupDest);
|
||||
RETERR16 WINAPI VcpClose16(WORD fl, LPCSTR lpszBackupDest);
|
||||
|
||||
/* VcpExplain flags */
|
||||
enum {
|
||||
VCPEX_SRC_DISK,
|
||||
VCPEX_SRC_CABINET,
|
||||
VCPEX_SRC_LOCN,
|
||||
VCPEX_DST_LOCN,
|
||||
VCPEX_SRC_FILE,
|
||||
VCPEX_DST_FILE,
|
||||
VCPEX_DST_FILE_FINAL,
|
||||
VCPEX_DOS_ERROR,
|
||||
VCPEX_MESSAGE,
|
||||
VCPEX_DOS_SOLUTION,
|
||||
VCPEX_SRC_FULL,
|
||||
VCPEX_DST_FULL,
|
||||
VCPEX_DST_FULL_FINAL
|
||||
};
|
||||
|
||||
LPCSTR WINAPI VcpExplain16(LPVIRTNODE lpVn, DWORD dwWhat);
|
||||
|
||||
/****** logical disk management ******/
|
||||
|
||||
typedef struct _LOGDISKDESC_S { /* ldd */
|
||||
WORD cbSize; /* struct size */
|
||||
LOGDISKID16 ldid; /* logical disk ID */
|
||||
LPSTR pszPath; /* path this descriptor points to */
|
||||
LPSTR pszVolLabel; /* volume label of the disk related to it */
|
||||
LPSTR pszDiskName; /* name of this disk */
|
||||
WORD wVolTime; /* modification time of volume label */
|
||||
WORD wVolDate; /* modification date */
|
||||
DWORD dwSerNum; /* serial number of disk */
|
||||
WORD wFlags;
|
||||
} LOGDISKDESC_S, *LPLOGDISKDESC;
|
||||
|
||||
/** logical disk identifiers (LDID) **/
|
||||
|
||||
/* predefined LDIDs */
|
||||
#define LDID_PREDEF_START 0x0001
|
||||
#define LDID_PREDEF_END 0x7fff
|
||||
|
||||
/* registry-assigned LDIDs */
|
||||
#define LDID_VAR_START 0x7000
|
||||
#define LDID_VAR_END 0x7fff
|
||||
|
||||
/* dynamically assigned LDIDs */
|
||||
#define LDID_ASSIGN_START 0x8000
|
||||
#define LDID_ASSIGN_END 0xbfff
|
||||
|
||||
#define LDID_NULL 0
|
||||
#define LDID_ABSOLUTE ((UINT)-1)
|
||||
#define LDID_SRCPATH 1 /* setup source path */
|
||||
#define LDID_SETUPTEMP 2 /* setup temp dir */
|
||||
#define LDID_UNINSTALL 3 /* uninstall dir */
|
||||
#define LDID_BACKUP 4 /* backup dir */
|
||||
#define LDID_SETUPSCRATCH 5 /* setup scratch dir */
|
||||
#define LDID_WIN 10 /* win dir */
|
||||
#define LDID_SYS 11 /* win system dir */
|
||||
#define LDID_IOS 12 /* win Iosubsys dir */
|
||||
#define LDID_CMD 13 /* win command dir */
|
||||
#define LDID_CPL 14 /* win control panel dir */
|
||||
#define LDID_PRINT 15 /* win printer dir */
|
||||
#define LDID_MAIL 16 /* win mail dir */
|
||||
#define LDID_INF 17 /* win inf dir */
|
||||
#define LDID_HELP 18 /* win help dir */
|
||||
#define LDID_WINADMIN 19 /* admin dir */
|
||||
#define LDID_FONTS 20 /* win fonts dir */
|
||||
#define LDID_VIEWERS 21 /* win viewers dir */
|
||||
#define LDID_VMM32 22 /* win VMM32 dir */
|
||||
#define LDID_COLOR 23 /* win color mngment dir */
|
||||
#define LDID_APPS 24 /* win apps dir */
|
||||
#define LDID_SHARED 25 /* win shared dir */
|
||||
#define LDID_WINBOOT 26 /* guaranteed win boot drive */
|
||||
#define LDID_MACHINE 27 /* machine specific files */
|
||||
#define LDID_HOST_WINBOOT 28
|
||||
#define LDID_BOOT 30 /* boot drive root dir */
|
||||
#define LDID_BOOT_HOST 31 /* boot drive host root dir */
|
||||
#define LDID_OLD_WINBOOT 32 /* root subdir */
|
||||
#define LDID_OLD_WIN 33 /* old windows dir */
|
||||
|
||||
/* flags for GenInstall() */
|
||||
#define GENINSTALL_DO_FILES 1
|
||||
#define GENINSTALL_DO_INI 2
|
||||
#define GENINSTALL_DO_REG 4
|
||||
#define GENINSTALL_DO_INI2REG 8
|
||||
#define GENINSTALL_DO_CFGAUTO 16
|
||||
#define GENINSTALL_DO_LOGCONFIG 32
|
||||
#define GENINSTALL_DO_REGSRCPATH 64
|
||||
#define GENINSTALL_DO_PERUSER 128
|
||||
|
||||
#define GEINISTALL_DO_INIREG 14
|
||||
#define GENINSTALL_DO_ALL 255
|
||||
|
||||
/*
|
||||
* flags for InstallHinfSection()
|
||||
* 128 can be added, too. This means that the .inf file is provided by you
|
||||
* instead of being a 32 bit file (i.e. Windows .inf file).
|
||||
* In this case all files you install must be in the same dir
|
||||
* as your .inf file on the install disk.
|
||||
*/
|
||||
#define HOW_NEVER_REBOOT 0
|
||||
#define HOW_ALWAYS_SILENT_REBOOT 1
|
||||
#define HOW_ALWAYS_PROMPT_REBOOT 2
|
||||
#define HOW_SILENT_REBOOT 3
|
||||
#define HOW_PROMPT_REBOOT 4
|
||||
|
||||
/****** device installation stuff ******/
|
||||
|
||||
#define MAX_CLASS_NAME_LEN 32
|
||||
#define MAX_DEVNODE_ID_LEN 256
|
||||
#define MAX_GUID_STR 50
|
||||
|
||||
typedef struct _DEVICE_INFO
|
||||
{
|
||||
UINT16 cbSize;
|
||||
struct _DEVICE_INFO *lpNextDi;
|
||||
char szDescription[LINE_LEN];
|
||||
DWORD dnDevnode;
|
||||
HKEY hRegKey;
|
||||
char szRegSubkey[MAX_DEVNODE_ID_LEN];
|
||||
char szClassName[MAX_CLASS_NAME_LEN];
|
||||
DWORD Flags;
|
||||
HWND16 hwndParent;
|
||||
/*LPDRIVER_NODE*/ LPVOID lpCompatDrvList;
|
||||
/*LPDRIVER_NODE*/ LPVOID lpClassDrvList;
|
||||
/*LPDRIVER_NODE*/ LPVOID lpSelectedDriver;
|
||||
ATOM atDriverPath;
|
||||
ATOM atTempInfFile;
|
||||
HINSTANCE16 hinstClassInstaller;
|
||||
HINSTANCE16 hinstClassPropProvidor;
|
||||
HINSTANCE16 hinstDevicePropProvidor;
|
||||
HINSTANCE16 hinstBasicPropProvidor;
|
||||
FARPROC16 fpClassInstaller;
|
||||
FARPROC16 fpClassEnumPropPages;
|
||||
FARPROC16 fpDeviceEnumPropPages;
|
||||
FARPROC16 fpEnumBasicProperties;
|
||||
DWORD dwSetupReserved;
|
||||
DWORD dwClassInstallReserved;
|
||||
/*GENCALLBACKPROC*/ LPVOID gicpGenInstallCallBack;
|
||||
|
||||
LPARAM gicplParam;
|
||||
UINT16 InfType;
|
||||
|
||||
HINSTANCE16 hinstPrivateProblemHandler;
|
||||
FARPROC16 fpPrivateProblemHandler;
|
||||
LPARAM lpClassInstallParams;
|
||||
struct _DEVICE_INFO *lpdiChildList;
|
||||
DWORD dwFlagsEx;
|
||||
/*LPDRIVER_INFO*/ LPVOID lpCompatDrvInfoList;
|
||||
/*LPDRIVER_INFO*/ LPVOID lpClassDrvInfoList;
|
||||
char szClassGUID[MAX_GUID_STR];
|
||||
} DEVICE_INFO16, *LPDEVICE_INFO16, **LPLPDEVICE_INFO16;
|
||||
|
||||
|
||||
extern void WINAPI GenFormStrWithoutPlaceHolders16(LPSTR,LPCSTR,HINF16);
|
||||
extern RETERR16 WINAPI IpOpen16(LPCSTR,HINF16 *);
|
||||
extern RETERR16 WINAPI IpClose16(HINF16);
|
||||
extern RETERR16 WINAPI CtlSetLdd16(LPLOGDISKDESC);
|
||||
extern RETERR16 WINAPI CtlGetLdd16(LPLOGDISKDESC);
|
||||
extern RETERR16 WINAPI CtlFindLdd16(LPLOGDISKDESC);
|
||||
extern RETERR16 WINAPI CtlAddLdd16(LPLOGDISKDESC);
|
||||
extern RETERR16 WINAPI CtlDelLdd16(LOGDISKID16);
|
||||
extern RETERR16 WINAPI CtlGetLddPath16(LOGDISKID16 ldid, LPSTR szPath);
|
||||
extern RETERR16 WINAPI GenInstall16(HINF16,LPCSTR,WORD);
|
||||
|
||||
typedef struct tagLDD_LIST {
|
||||
LPLOGDISKDESC pldd;
|
||||
struct tagLDD_LIST *next;
|
||||
} LDD_LIST;
|
||||
|
||||
#define INIT_LDD(ldd, LDID) \
|
||||
do { \
|
||||
memset(&(ldd), 0, sizeof(LOGDISKDESC_S)); \
|
||||
(ldd).cbSize = sizeof(LOGDISKDESC_S); \
|
||||
ldd.ldid = LDID; \
|
||||
} while(0)
|
||||
|
||||
#endif /* __SETUPX16_H */
|
|
@ -1,615 +0,0 @@
|
|||
/*
|
||||
* SETUPX library
|
||||
*
|
||||
* Copyright 1998,2000 Andreas Mohr
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* FIXME: Rather non-functional functions for now.
|
||||
*
|
||||
* See:
|
||||
* http://www.geocities.com/SiliconValley/Network/5317/drivers.html
|
||||
* http://willemer.de/informatik/windows/inf_info.htm (German)
|
||||
* http://www.microsoft.com/ddk/ddkdocs/win98ddk/devinst_12uw.htm
|
||||
* DDK: setupx.h
|
||||
* http://mmatrix.tripod.com/customsystemfolder/infsysntaxfull.html
|
||||
* http://www.rdrop.com/~cary/html/inf_faq.html
|
||||
* http://support.microsoft.com/support/kb/articles/q194/6/40.asp
|
||||
*
|
||||
* Stuff tested with:
|
||||
* - rs405deu.exe (German Acroread 4.05 setup)
|
||||
* - ie5setup.exe
|
||||
* - Netmeeting
|
||||
*
|
||||
* FIXME:
|
||||
* - string handling is... weird ;) (buflen etc.)
|
||||
* - memory leaks ?
|
||||
* - separate that mess (but probably only when it's done completely)
|
||||
*
|
||||
* SETUPX consists of several parts with the following acronyms/prefixes:
|
||||
* Di device installer (devinst.c ?)
|
||||
* Gen generic installer (geninst.c ?)
|
||||
* Ip .INF parsing (infparse.c)
|
||||
* LDD logical device descriptor (ldd.c ?)
|
||||
* LDID logical device ID
|
||||
* SU setup (setup.c ?)
|
||||
* Tp text processing (textproc.c ?)
|
||||
* Vcp virtual copy module (vcp.c ?)
|
||||
* ...
|
||||
*
|
||||
* The SETUPX DLL is NOT thread-safe. That's why many installers urge you to
|
||||
* "close all open applications".
|
||||
* All in all the design of it seems to be a bit weak.
|
||||
* Not sure whether my implementation of it is better, though ;-)
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winreg.h"
|
||||
#include "winerror.h"
|
||||
#include "wine/winuser16.h"
|
||||
#include "wownt32.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "setupapi.h"
|
||||
#include "setupx16.h"
|
||||
#include "setupapi_private.h"
|
||||
#include "winerror.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
#define HINSTANCE_32(h16) ((HINSTANCE)(ULONG_PTR)(h16))
|
||||
|
||||
/***********************************************************************
|
||||
* SURegOpenKey (SETUPX.47)
|
||||
*/
|
||||
DWORD WINAPI SURegOpenKey( HKEY hkey, LPCSTR lpszSubKey, PHKEY retkey )
|
||||
{
|
||||
FIXME("(%p,%s,%p), semi-stub.\n",hkey,debugstr_a(lpszSubKey),retkey);
|
||||
return RegOpenKeyA( hkey, lpszSubKey, retkey );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SURegQueryValueEx (SETUPX.50)
|
||||
*/
|
||||
DWORD WINAPI SURegQueryValueEx( HKEY hkey, LPSTR lpszValueName,
|
||||
LPDWORD lpdwReserved, LPDWORD lpdwType,
|
||||
LPBYTE lpbData, LPDWORD lpcbData )
|
||||
{
|
||||
FIXME("(%p,%s,%p,%p,%p,%ld), semi-stub.\n",hkey,debugstr_a(lpszValueName),
|
||||
lpdwReserved,lpdwType,lpbData,lpcbData?*lpcbData:0);
|
||||
return RegQueryValueExA( hkey, lpszValueName, lpdwReserved, lpdwType,
|
||||
lpbData, lpcbData );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* InstallHinfSection (SETUPX.527)
|
||||
*
|
||||
* hwnd = parent window
|
||||
* hinst = instance of SETUPX.DLL
|
||||
* lpszCmdLine = e.g. "DefaultInstall 132 C:\MYINSTALL\MYDEV.INF"
|
||||
* Here "DefaultInstall" is the .inf file section to be installed (optional).
|
||||
* The 132 value is made of the HOW_xxx flags and sometimes 128 (-> setupx16.h).
|
||||
*
|
||||
* nCmdShow = nCmdShow of CreateProcess
|
||||
*/
|
||||
RETERR16 WINAPI InstallHinfSection16( HWND16 hwnd, HINSTANCE16 hinst, LPCSTR lpszCmdLine, INT16 nCmdShow)
|
||||
{
|
||||
InstallHinfSectionA( HWND_32(hwnd), HINSTANCE_32(hinst), lpszCmdLine, nCmdShow );
|
||||
return OK;
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
LPCSTR RegValName;
|
||||
LPCSTR StdString; /* fallback string; sub dir of windows directory */
|
||||
} LDID_DATA;
|
||||
|
||||
static const LDID_DATA LDID_Data[34] =
|
||||
{
|
||||
{ /* 0 (LDID_NULL) -- not defined */
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
{ /* 1 (LDID_SRCPATH) = source of installation. hmm, what to do here ? */
|
||||
"SourcePath", /* hmm, does SETUPX have to care about updating it ?? */
|
||||
NULL
|
||||
},
|
||||
{ /* 2 (LDID_SETUPTEMP) = setup temp dir */
|
||||
"SetupTempDir",
|
||||
NULL
|
||||
},
|
||||
{ /* 3 (LDID_UNINSTALL) = uninstall backup dir */
|
||||
"UninstallDir",
|
||||
NULL
|
||||
},
|
||||
{ /* 4 (LDID_BACKUP) = backup dir */
|
||||
"BackupDir",
|
||||
NULL
|
||||
},
|
||||
{ /* 5 (LDID_SETUPSCRATCH) = setup scratch dir */
|
||||
"SetupScratchDir",
|
||||
NULL
|
||||
},
|
||||
{ /* 6 -- not defined */
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
{ /* 7 -- not defined */
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
{ /* 8 -- not defined */
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
{ /* 9 -- not defined */
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
{ /* 10 (LDID_WIN) = windows dir */
|
||||
"WinDir",
|
||||
""
|
||||
},
|
||||
{ /* 11 (LDID_SYS) = system dir */
|
||||
"SysDir",
|
||||
NULL /* call GetSystemDirectory() instead */
|
||||
},
|
||||
{ /* 12 (LDID_IOS) = IOSubSys dir */
|
||||
NULL, /* FIXME: registry string ? */
|
||||
"SYSTEM\\IOSUBSYS"
|
||||
},
|
||||
{ /* 13 (LDID_CMD) = COMMAND dir */
|
||||
NULL, /* FIXME: registry string ? */
|
||||
"COMMAND"
|
||||
},
|
||||
{ /* 14 (LDID_CPL) = control panel dir */
|
||||
NULL,
|
||||
""
|
||||
},
|
||||
{ /* 15 (LDID_PRINT) = windows printer dir */
|
||||
NULL,
|
||||
"SYSTEM" /* correct ?? */
|
||||
},
|
||||
{ /* 16 (LDID_MAIL) = destination mail dir */
|
||||
NULL,
|
||||
""
|
||||
},
|
||||
{ /* 17 (LDID_INF) = INF dir */
|
||||
"SetupScratchDir", /* correct ? */
|
||||
"INF"
|
||||
},
|
||||
{ /* 18 (LDID_HELP) = HELP dir */
|
||||
NULL, /* ??? */
|
||||
"HELP"
|
||||
},
|
||||
{ /* 19 (LDID_WINADMIN) = Admin dir */
|
||||
"WinAdminDir",
|
||||
""
|
||||
},
|
||||
{ /* 20 (LDID_FONTS) = Fonts dir */
|
||||
NULL, /* ??? */
|
||||
"FONTS"
|
||||
},
|
||||
{ /* 21 (LDID_VIEWERS) = Viewers */
|
||||
NULL, /* ??? */
|
||||
"SYSTEM\\VIEWERS"
|
||||
},
|
||||
{ /* 22 (LDID_VMM32) = VMM32 dir */
|
||||
NULL, /* ??? */
|
||||
"SYSTEM\\VMM32"
|
||||
},
|
||||
{ /* 23 (LDID_COLOR) = ICM dir */
|
||||
"ICMPath",
|
||||
"SYSTEM\\COLOR"
|
||||
},
|
||||
{ /* 24 (LDID_APPS) = root of boot drive ? */
|
||||
"AppsDir",
|
||||
"C:\\"
|
||||
},
|
||||
{ /* 25 (LDID_SHARED) = shared dir */
|
||||
"SharedDir",
|
||||
""
|
||||
},
|
||||
{ /* 26 (LDID_WINBOOT) = Windows boot dir */
|
||||
"WinBootDir",
|
||||
""
|
||||
},
|
||||
{ /* 27 (LDID_MACHINE) = machine specific files */
|
||||
"MachineDir",
|
||||
NULL
|
||||
},
|
||||
{ /* 28 (LDID_HOST_WINBOOT) = Host Windows boot dir */
|
||||
"HostWinBootDir",
|
||||
NULL
|
||||
},
|
||||
{ /* 29 -- not defined */
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
{ /* 30 (LDID_BOOT) = Root of boot drive */
|
||||
"BootDir",
|
||||
NULL
|
||||
},
|
||||
{ /* 31 (LDID_BOOT_HOST) = Root of boot drive host */
|
||||
"BootHost",
|
||||
NULL
|
||||
},
|
||||
{ /* 32 (LDID_OLD_WINBOOT) = subdir of root */
|
||||
"OldWinBootDir",
|
||||
NULL
|
||||
},
|
||||
{ /* 33 (LDID_OLD_WIN) = old win dir */
|
||||
"OldWinDir",
|
||||
NULL
|
||||
}
|
||||
/* the rest (34-38) isn't too interesting, so I'll forget about it */
|
||||
};
|
||||
|
||||
/*
|
||||
* LDD == Logical Device Descriptor
|
||||
* LDID == Logical Device ID
|
||||
*
|
||||
* The whole LDD/LDID business might go into a separate file named
|
||||
* ldd.c.
|
||||
* At the moment I don't know what the hell these functions are really doing.
|
||||
* That's why I added reporting stubs.
|
||||
* The only thing I do know is that I need them for the LDD/LDID infrastructure.
|
||||
* That's why I implemented them in a way that's suitable for my purpose.
|
||||
*/
|
||||
static LDD_LIST *pFirstLDD = NULL;
|
||||
|
||||
static BOOL std_LDDs_done = FALSE;
|
||||
|
||||
void SETUPX_CreateStandardLDDs(void)
|
||||
{
|
||||
HKEY hKey = 0;
|
||||
WORD n;
|
||||
DWORD type, len;
|
||||
LOGDISKDESC_S ldd;
|
||||
char buffer[MAX_PATH];
|
||||
|
||||
/* has to be here, otherwise loop */
|
||||
std_LDDs_done = TRUE;
|
||||
|
||||
RegOpenKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup", &hKey);
|
||||
|
||||
for (n=0; n < sizeof(LDID_Data)/sizeof(LDID_DATA); n++)
|
||||
{
|
||||
buffer[0] = '\0';
|
||||
|
||||
len = MAX_PATH;
|
||||
if ( (hKey) && (LDID_Data[n].RegValName)
|
||||
&& (RegQueryValueExA(hKey, LDID_Data[n].RegValName,
|
||||
NULL, &type, (LPBYTE)buffer, &len) == ERROR_SUCCESS)
|
||||
&& (type == REG_SZ) )
|
||||
{
|
||||
TRACE("found value '%s' for LDID %d\n", buffer, n);
|
||||
}
|
||||
else
|
||||
switch(n)
|
||||
{
|
||||
case LDID_SRCPATH:
|
||||
FIXME("LDID_SRCPATH: what exactly do we have to do here ?\n");
|
||||
strcpy(buffer, "X:\\FIXME");
|
||||
break;
|
||||
case LDID_SYS:
|
||||
GetSystemDirectoryA(buffer, MAX_PATH);
|
||||
break;
|
||||
case LDID_APPS:
|
||||
case LDID_MACHINE:
|
||||
case LDID_HOST_WINBOOT:
|
||||
case LDID_BOOT:
|
||||
case LDID_BOOT_HOST:
|
||||
strcpy(buffer, "C:\\");
|
||||
break;
|
||||
default:
|
||||
if (LDID_Data[n].StdString)
|
||||
{
|
||||
DWORD len = GetWindowsDirectoryA(buffer, MAX_PATH);
|
||||
LPSTR p;
|
||||
p = buffer + len;
|
||||
*p++ = '\\';
|
||||
strcpy(p, LDID_Data[n].StdString);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (buffer[0])
|
||||
{
|
||||
INIT_LDD(ldd, n);
|
||||
ldd.pszPath = buffer;
|
||||
TRACE("LDID %d -> '%s'\n", ldd.ldid, ldd.pszPath);
|
||||
CtlSetLdd16(&ldd);
|
||||
}
|
||||
}
|
||||
if (hKey) RegCloseKey(hKey);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CtlDelLdd (SETUPX.37)
|
||||
*
|
||||
* RETURN
|
||||
* ERR_VCP_LDDINVALID if ldid < LDID_ASSIGN_START.
|
||||
*/
|
||||
RETERR16 SETUPX_DelLdd(LOGDISKID16 ldid)
|
||||
{
|
||||
LDD_LIST *pCurr, *pPrev = NULL;
|
||||
|
||||
TRACE("(%d)\n", ldid);
|
||||
|
||||
if (!std_LDDs_done)
|
||||
SETUPX_CreateStandardLDDs();
|
||||
|
||||
if (ldid < LDID_ASSIGN_START)
|
||||
return ERR_VCP_LDDINVALID;
|
||||
|
||||
pCurr = pFirstLDD;
|
||||
/* search until we find the appropriate LDD or hit the end */
|
||||
while ((pCurr != NULL) && (ldid > pCurr->pldd->ldid))
|
||||
{
|
||||
pPrev = pCurr;
|
||||
pCurr = pCurr->next;
|
||||
}
|
||||
if ( (pCurr == NULL) /* hit end of list */
|
||||
|| (ldid != pCurr->pldd->ldid) )
|
||||
return ERR_VCP_LDDFIND; /* correct ? */
|
||||
|
||||
/* ok, found our victim: eliminate it */
|
||||
|
||||
if (pPrev)
|
||||
pPrev->next = pCurr->next;
|
||||
|
||||
if (pCurr == pFirstLDD)
|
||||
pFirstLDD = NULL;
|
||||
HeapFree(GetProcessHeap(), 0, pCurr);
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CtlDelLdd (SETUPX.37)
|
||||
*/
|
||||
RETERR16 WINAPI CtlDelLdd16(LOGDISKID16 ldid)
|
||||
{
|
||||
FIXME("(%d); - please report this!\n", ldid);
|
||||
return SETUPX_DelLdd(ldid);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CtlFindLdd (SETUPX.35)
|
||||
*
|
||||
* doesn't check pldd ptr validity: crash (W98SE)
|
||||
*
|
||||
* RETURN
|
||||
* ERR_VCP_LDDINVALID if pldd->cbSize != structsize
|
||||
* 1 in all other cases ??
|
||||
*
|
||||
*/
|
||||
RETERR16 WINAPI CtlFindLdd16(LPLOGDISKDESC pldd)
|
||||
{
|
||||
LDD_LIST *pCurr, *pPrev = NULL;
|
||||
|
||||
TRACE("(%p)\n", pldd);
|
||||
|
||||
if (!std_LDDs_done)
|
||||
SETUPX_CreateStandardLDDs();
|
||||
|
||||
if (pldd->cbSize != sizeof(LOGDISKDESC_S))
|
||||
return ERR_VCP_LDDINVALID;
|
||||
|
||||
pCurr = pFirstLDD;
|
||||
/* search until we find the appropriate LDD or hit the end */
|
||||
while ((pCurr != NULL) && (pldd->ldid > pCurr->pldd->ldid))
|
||||
{
|
||||
pPrev = pCurr;
|
||||
pCurr = pCurr->next;
|
||||
}
|
||||
if ( (pCurr == NULL) /* hit end of list */
|
||||
|| (pldd->ldid != pCurr->pldd->ldid) )
|
||||
return ERR_VCP_LDDFIND; /* correct ? */
|
||||
|
||||
memcpy(pldd, pCurr->pldd, pldd->cbSize);
|
||||
/* hmm, we probably ought to strcpy() the string ptrs here */
|
||||
|
||||
return 1; /* what is this ?? */
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CtlSetLdd (SETUPX.33)
|
||||
*
|
||||
* Set an LDD entry.
|
||||
*
|
||||
* RETURN
|
||||
* ERR_VCP_LDDINVALID if pldd.cbSize != sizeof(LOGDISKDESC_S)
|
||||
*
|
||||
*/
|
||||
RETERR16 WINAPI CtlSetLdd16(LPLOGDISKDESC pldd)
|
||||
{
|
||||
LDD_LIST *pCurr, *pPrev = NULL;
|
||||
LPLOGDISKDESC pCurrLDD;
|
||||
HANDLE heap;
|
||||
BOOL is_new = FALSE;
|
||||
|
||||
TRACE("(%p)\n", pldd);
|
||||
|
||||
if (!std_LDDs_done)
|
||||
SETUPX_CreateStandardLDDs();
|
||||
|
||||
if (pldd->cbSize != sizeof(LOGDISKDESC_S))
|
||||
return ERR_VCP_LDDINVALID;
|
||||
|
||||
heap = GetProcessHeap();
|
||||
pCurr = pFirstLDD;
|
||||
/* search until we find the appropriate LDD or hit the end */
|
||||
while ((pCurr != NULL) && (pldd->ldid > pCurr->pldd->ldid))
|
||||
{
|
||||
pPrev = pCurr;
|
||||
pCurr = pCurr->next;
|
||||
}
|
||||
if (!pCurr || pldd->ldid != pCurr->pldd->ldid)
|
||||
{
|
||||
is_new = TRUE;
|
||||
pCurr = HeapAlloc(heap, 0, sizeof(LDD_LIST));
|
||||
pCurr->pldd = HeapAlloc(heap, 0, sizeof(LOGDISKDESC_S));
|
||||
pCurr->next = NULL;
|
||||
pCurrLDD = pCurr->pldd;
|
||||
}
|
||||
else
|
||||
{
|
||||
pCurrLDD = pCurr->pldd;
|
||||
HeapFree(heap, 0, pCurrLDD->pszPath);
|
||||
HeapFree(heap, 0, pCurrLDD->pszVolLabel);
|
||||
HeapFree(heap, 0, pCurrLDD->pszDiskName);
|
||||
}
|
||||
|
||||
memcpy(pCurrLDD, pldd, sizeof(LOGDISKDESC_S));
|
||||
|
||||
if (pldd->pszPath)
|
||||
{
|
||||
pCurrLDD->pszPath = HeapAlloc( heap, 0, strlen(pldd->pszPath)+1 );
|
||||
strcpy( pCurrLDD->pszPath, pldd->pszPath );
|
||||
}
|
||||
if (pldd->pszVolLabel)
|
||||
{
|
||||
pCurrLDD->pszVolLabel = HeapAlloc( heap, 0, strlen(pldd->pszVolLabel)+1 );
|
||||
strcpy( pCurrLDD->pszVolLabel, pldd->pszVolLabel );
|
||||
}
|
||||
if (pldd->pszDiskName)
|
||||
{
|
||||
pCurrLDD->pszDiskName = HeapAlloc( heap, 0, strlen(pldd->pszDiskName)+1 );
|
||||
strcpy( pCurrLDD->pszDiskName, pldd->pszDiskName );
|
||||
}
|
||||
|
||||
if (is_new) /* link into list */
|
||||
{
|
||||
if (pPrev)
|
||||
{
|
||||
pCurr->next = pPrev->next;
|
||||
pPrev->next = pCurr;
|
||||
}
|
||||
if (!pFirstLDD)
|
||||
pFirstLDD = pCurr;
|
||||
}
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CtlAddLdd (SETUPX.36)
|
||||
*
|
||||
* doesn't check pldd ptr validity: crash (W98SE)
|
||||
*
|
||||
*/
|
||||
static LOGDISKID16 ldid_to_add = LDID_ASSIGN_START;
|
||||
RETERR16 WINAPI CtlAddLdd16(LPLOGDISKDESC pldd)
|
||||
{
|
||||
pldd->ldid = ldid_to_add++;
|
||||
return CtlSetLdd16(pldd);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CtlGetLdd (SETUPX.34)
|
||||
*
|
||||
* doesn't check pldd ptr validity: crash (W98SE)
|
||||
* What the !@#$%&*( is the difference between CtlFindLdd() and CtlGetLdd() ??
|
||||
*
|
||||
* RETURN
|
||||
* ERR_VCP_LDDINVALID if pldd->cbSize != structsize
|
||||
*
|
||||
*/
|
||||
static RETERR16 SETUPX_GetLdd(LPLOGDISKDESC pldd)
|
||||
{
|
||||
LDD_LIST *pCurr, *pPrev = NULL;
|
||||
|
||||
if (!std_LDDs_done)
|
||||
SETUPX_CreateStandardLDDs();
|
||||
|
||||
if (pldd->cbSize != sizeof(LOGDISKDESC_S))
|
||||
return ERR_VCP_LDDINVALID;
|
||||
|
||||
pCurr = pFirstLDD;
|
||||
/* search until we find the appropriate LDD or hit the end */
|
||||
while ((pCurr != NULL) && (pldd->ldid > pCurr->pldd->ldid))
|
||||
{
|
||||
pPrev = pCurr;
|
||||
pCurr = pCurr->next;
|
||||
}
|
||||
if (pCurr == NULL) /* hit end of list */
|
||||
return ERR_VCP_LDDFIND; /* correct ? */
|
||||
|
||||
memcpy(pldd, pCurr->pldd, pldd->cbSize);
|
||||
/* hmm, we probably ought to strcpy() the string ptrs here */
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
|
||||
RETERR16 WINAPI CtlGetLdd16(LPLOGDISKDESC pldd)
|
||||
{
|
||||
FIXME("(%p); - please report this!\n", pldd);
|
||||
return SETUPX_GetLdd(pldd);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CtlGetLddPath (SETUPX.38)
|
||||
*
|
||||
* Gets the path of an LDD.
|
||||
* No crash if szPath == NULL.
|
||||
* szPath has to be at least MAX_PATH_LEN bytes long.
|
||||
* RETURN
|
||||
* ERR_VCP_LDDUNINIT if LDD for LDID not found.
|
||||
*/
|
||||
RETERR16 WINAPI CtlGetLddPath16(LOGDISKID16 ldid, LPSTR szPath)
|
||||
{
|
||||
TRACE("(%d, %p);\n", ldid, szPath);
|
||||
|
||||
if (szPath)
|
||||
{
|
||||
LOGDISKDESC_S ldd;
|
||||
INIT_LDD(ldd, ldid);
|
||||
if (CtlFindLdd16(&ldd) == ERR_VCP_LDDFIND)
|
||||
return ERR_VCP_LDDUNINIT;
|
||||
SETUPX_GetLdd(&ldd);
|
||||
strcpy(szPath, ldd.pszPath);
|
||||
TRACE("ret '%s' for LDID %d\n", szPath, ldid);
|
||||
}
|
||||
return OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CtlSetLddPath (SETUPX.508)
|
||||
*
|
||||
* Sets the path of an LDD.
|
||||
* Creates LDD for LDID if not existing yet.
|
||||
*/
|
||||
RETERR16 WINAPI CtlSetLddPath16(LOGDISKID16 ldid, LPSTR szPath)
|
||||
{
|
||||
LOGDISKDESC_S ldd;
|
||||
TRACE("(%d, '%s');\n", ldid, szPath);
|
||||
|
||||
SetupSetDirectoryIdA( 0, ldid, szPath );
|
||||
INIT_LDD(ldd, ldid);
|
||||
ldd.pszPath = szPath;
|
||||
return CtlSetLdd16(&ldd);
|
||||
}
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "setupapi_private.h"
|
||||
|
@ -58,6 +58,7 @@ BOOL WINAPI SetupCopyOEMInfW(PCWSTR sourceinffile, PCWSTR sourcemedialoc,
|
|||
DWORD destnamesize, PDWORD required,
|
||||
PWSTR *destinfnamecomponent)
|
||||
{
|
||||
FIXME("%s %s 0x%lx 0x%lx\n", debugstr_w(sourceinffile), debugstr_w(sourcemedialoc), mediatype, copystyle);
|
||||
FIXME("stub: source %s location %s ...\n", debugstr_w(sourceinffile),
|
||||
debugstr_w(sourcemedialoc));
|
||||
//return FALSE;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*
|
||||
* FIXME: we now rely on builtin setupapi.dll for dialog resources.
|
||||
* This is bad ! We ought to have 16bit resource handling working.
|
||||
|
|
Loading…
Reference in a new issue