Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
60de11c0
Commit
60de11c0
authored
Feb 20, 2006
by
James Hawkins
Committed by
Alexandre Julliard
Feb 21, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
advpack: Branch off the advpack install functions into install.c.
parent
b88b4808
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
197 additions
and
163 deletions
+197
-163
Makefile.in
dlls/advpack/Makefile.in
+1
-0
advpack.c
dlls/advpack/advpack.c
+0
-163
install.c
dlls/advpack/install.c
+196
-0
No files found.
dlls/advpack/Makefile.in
View file @
60de11c0
...
...
@@ -10,6 +10,7 @@ EXTRALIBS = $(LIBUNICODE)
C_SRCS
=
\
advpack.c
\
files.c
\
install.c
\
reg.c
SUBDIRS
=
tests
...
...
dlls/advpack/advpack.c
View file @
60de11c0
...
...
@@ -141,146 +141,6 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
}
/***********************************************************************
* RunSetupCommand (ADVPACK.@)
*
* Executes an install section in an INF file or a program.
*
* PARAMS
* hWnd [I] Handle to parent window, NULL for quiet mode
* szCmdName [I] Inf or EXE filename to execute
* szInfSection [I] Inf section to install, NULL for DefaultInstall
* szDir [I] Path to extracted files
* szTitle [I] Title of all dialogs
* phEXE [O] Handle of EXE to wait for
* dwFlags [I] Flags; see include/advpub.h
* pvReserved [I] Reserved
*
* RETURNS
* S_OK Everything OK
* S_ASYNCHRONOUS OK, required to wait on phEXE
* ERROR_SUCCESS_REBOOT_REQUIRED Reboot required
* E_INVALIDARG Invalid argument given
* HRESULT_FROM_WIN32(ERROR_OLD_WIN_VERSION)
* Not supported on this Windows version
* E_UNEXPECTED Unexpected error
* HRESULT_FROM_WIN32(GetLastError()) Some other error
*
* BUGS
* Unimplemented
*/
HRESULT
WINAPI
RunSetupCommand
(
HWND
hWnd
,
LPCSTR
szCmdName
,
LPCSTR
szInfSection
,
LPCSTR
szDir
,
LPCSTR
lpszTitle
,
HANDLE
*
phEXE
,
DWORD
dwFlags
,
LPVOID
pvReserved
)
{
FIXME
(
"(%p, %s, %s, %s, %s, %p, 0x%08lx, %p): stub
\n
"
,
hWnd
,
debugstr_a
(
szCmdName
),
debugstr_a
(
szInfSection
),
debugstr_a
(
szDir
),
debugstr_a
(
lpszTitle
),
phEXE
,
dwFlags
,
pvReserved
);
return
E_UNEXPECTED
;
}
/***********************************************************************
* LaunchINFSection (ADVPACK.@)
*
* Installs an INF section without BACKUP/ROLLBACK capabilities.
*
* PARAMS
* hWnd [I] Handle to parent window, NULL for desktop.
* hInst [I] Instance of the process.
* cmdline [I] Contains parameters in the order INF,section,flags.
* show [I] Reboot behaviour:
* 'A' reboot always
* 'I' default, reboot if needed
* 'N' no reboot
*
* RETURNS
* Success: S_OK.
* Failure: S_FALSE
*
* BUGS
* Unimplemented.
*/
INT
WINAPI
LaunchINFSection
(
HWND
hWnd
,
HINSTANCE
hInst
,
LPSTR
cmdline
,
INT
show
)
{
FIXME
(
"(%p %p %s %d): stub
\n
"
,
hWnd
,
hInst
,
debugstr_a
(
cmdline
),
show
);
return
0
;
}
/***********************************************************************
* LaunchINFSectionEx (ADVPACK.@)
*
* Installs an INF section with BACKUP/ROLLBACK capabilities.
*
* PARAMS
* hWnd [I] Handle to parent window, NULL for desktop.
* hInst [I] Instance of the process.
* cmdline [I] Contains parameters in the order INF,section,CAB,flags.
* show [I] Reboot behaviour:
* 'A' reboot always
* 'I' default, reboot if needed
* 'N' no reboot
*
* RETURNS
* Success: S_OK.
* Failure: E_FAIL.
*
* BUGS
* Unimplemented.
*/
HRESULT
WINAPI
LaunchINFSectionEx
(
HWND
hWnd
,
HINSTANCE
hInst
,
LPSTR
cmdline
,
INT
show
)
{
FIXME
(
"(%p %p %s %d): stub
\n
"
,
hWnd
,
hInst
,
debugstr_a
(
cmdline
),
show
);
return
E_FAIL
;
}
/* this structure very closely resembles parameters of RunSetupCommand() */
typedef
struct
{
HWND
hwnd
;
LPCSTR
title
;
LPCSTR
inf_name
;
LPCSTR
dir
;
LPCSTR
section_name
;
}
SETUPCOMMAND_PARAMS
;
/***********************************************************************
* DoInfInstall (ADVPACK.@)
*
* Install an INF section.
*
* PARAMS
* setup [I] Structure containing install information.
*
* RETURNS
* S_OK Everything OK
* HRESULT_FROM_WIN32(GetLastError()) Some other error
*/
HRESULT
WINAPI
DoInfInstall
(
const
SETUPCOMMAND_PARAMS
*
setup
)
{
BOOL
ret
;
HINF
hinf
;
void
*
callback_context
;
TRACE
(
"%p %s %s %s %s
\n
"
,
setup
->
hwnd
,
debugstr_a
(
setup
->
title
),
debugstr_a
(
setup
->
inf_name
),
debugstr_a
(
setup
->
dir
),
debugstr_a
(
setup
->
section_name
));
hinf
=
SetupOpenInfFileA
(
setup
->
inf_name
,
NULL
,
INF_STYLE_WIN4
,
NULL
);
if
(
hinf
==
INVALID_HANDLE_VALUE
)
return
HRESULT_FROM_WIN32
(
GetLastError
());
callback_context
=
SetupInitDefaultQueueCallback
(
setup
->
hwnd
);
ret
=
SetupInstallFromInfSectionA
(
NULL
,
hinf
,
setup
->
section_name
,
SPINST_ALL
,
NULL
,
NULL
,
0
,
SetupDefaultQueueCallbackA
,
callback_context
,
NULL
,
NULL
);
SetupTermDefaultQueueCallback
(
callback_context
);
SetupCloseInfFile
(
hinf
);
return
ret
?
S_OK
:
HRESULT_FROM_WIN32
(
GetLastError
());
}
/***********************************************************************
* IsNTAdmin (ADVPACK.@)
*
* Checks if the user has admin privileges.
...
...
@@ -498,29 +358,6 @@ void WINAPI RegisterOCX( HWND hWnd, HINSTANCE hInst, LPCSTR cmdline, INT show )
}
/***********************************************************************
* ExecuteCab (ADVPACK.@)
*
* Installs the INF file extracted from a specified cabinet file.
*
* PARAMS
* hwnd [I] Handle to the window used for the display.
* pCab [I] Information about the cabinet file.
* pReserved [I] Reserved. Must be NULL.
*
* RETURNS
* Success: S_OK.
* Failure: E_FAIL.
*
* BUGS
* Unimplemented
*/
HRESULT
WINAPI
ExecuteCab
(
HWND
hwnd
,
PCABINFO
pCab
,
LPVOID
pReserved
)
{
FIXME
(
"(%p %p %p): stub
\n
"
,
hwnd
,
pCab
,
pReserved
);
return
E_FAIL
;
}
/***********************************************************************
* SetPerUserSecValues (ADVPACK.@)
*
* Prepares the per-user stub values under IsInstalled\{GUID} that
...
...
dlls/advpack/install.c
0 → 100644
View file @
60de11c0
/*
* Advpack install functions
*
* Copyright 2006 James Hawkins
*
* 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 <stdlib.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "winreg.h"
#include "winver.h"
#include "setupapi.h"
#include "advpub.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
advpack
);
/* this structure very closely resembles parameters of RunSetupCommand() */
typedef
struct
{
HWND
hwnd
;
LPCSTR
title
;
LPCSTR
inf_name
;
LPCSTR
dir
;
LPCSTR
section_name
;
}
SETUPCOMMAND_PARAMS
;
/***********************************************************************
* DoInfInstall (ADVPACK.@)
*
* Install an INF section.
*
* PARAMS
* setup [I] Structure containing install information.
*
* RETURNS
* S_OK Everything OK
* HRESULT_FROM_WIN32(GetLastError()) Some other error
*/
HRESULT
WINAPI
DoInfInstall
(
const
SETUPCOMMAND_PARAMS
*
setup
)
{
BOOL
ret
;
HINF
hinf
;
void
*
callback_context
;
TRACE
(
"%p %s %s %s %s
\n
"
,
setup
->
hwnd
,
debugstr_a
(
setup
->
title
),
debugstr_a
(
setup
->
inf_name
),
debugstr_a
(
setup
->
dir
),
debugstr_a
(
setup
->
section_name
));
hinf
=
SetupOpenInfFileA
(
setup
->
inf_name
,
NULL
,
INF_STYLE_WIN4
,
NULL
);
if
(
hinf
==
INVALID_HANDLE_VALUE
)
return
HRESULT_FROM_WIN32
(
GetLastError
());
callback_context
=
SetupInitDefaultQueueCallback
(
setup
->
hwnd
);
ret
=
SetupInstallFromInfSectionA
(
NULL
,
hinf
,
setup
->
section_name
,
SPINST_ALL
,
NULL
,
NULL
,
0
,
SetupDefaultQueueCallbackA
,
callback_context
,
NULL
,
NULL
);
SetupTermDefaultQueueCallback
(
callback_context
);
SetupCloseInfFile
(
hinf
);
return
ret
?
S_OK
:
HRESULT_FROM_WIN32
(
GetLastError
());
}
/***********************************************************************
* ExecuteCab (ADVPACK.@)
*
* Installs the INF file extracted from a specified cabinet file.
*
* PARAMS
* hwnd [I] Handle to the window used for the display.
* pCab [I] Information about the cabinet file.
* pReserved [I] Reserved. Must be NULL.
*
* RETURNS
* Success: S_OK.
* Failure: E_FAIL.
*
* BUGS
* Unimplemented
*/
HRESULT
WINAPI
ExecuteCab
(
HWND
hwnd
,
PCABINFO
pCab
,
LPVOID
pReserved
)
{
FIXME
(
"(%p %p %p): stub
\n
"
,
hwnd
,
pCab
,
pReserved
);
return
E_FAIL
;
}
/***********************************************************************
* LaunchINFSection (ADVPACK.@)
*
* Installs an INF section without BACKUP/ROLLBACK capabilities.
*
* PARAMS
* hWnd [I] Handle to parent window, NULL for desktop.
* hInst [I] Instance of the process.
* cmdline [I] Contains parameters in the order INF,section,flags.
* show [I] Reboot behaviour:
* 'A' reboot always
* 'I' default, reboot if needed
* 'N' no reboot
*
* RETURNS
* Success: S_OK.
* Failure: S_FALSE
*
* BUGS
* Unimplemented.
*/
INT
WINAPI
LaunchINFSection
(
HWND
hWnd
,
HINSTANCE
hInst
,
LPSTR
cmdline
,
INT
show
)
{
FIXME
(
"(%p %p %s %d): stub
\n
"
,
hWnd
,
hInst
,
debugstr_a
(
cmdline
),
show
);
return
0
;
}
/***********************************************************************
* LaunchINFSectionEx (ADVPACK.@)
*
* Installs an INF section with BACKUP/ROLLBACK capabilities.
*
* PARAMS
* hWnd [I] Handle to parent window, NULL for desktop.
* hInst [I] Instance of the process.
* cmdline [I] Contains parameters in the order INF,section,CAB,flags.
* show [I] Reboot behaviour:
* 'A' reboot always
* 'I' default, reboot if needed
* 'N' no reboot
*
* RETURNS
* Success: S_OK.
* Failure: E_FAIL.
*
* BUGS
* Unimplemented.
*/
HRESULT
WINAPI
LaunchINFSectionEx
(
HWND
hWnd
,
HINSTANCE
hInst
,
LPSTR
cmdline
,
INT
show
)
{
FIXME
(
"(%p %p %s %d): stub
\n
"
,
hWnd
,
hInst
,
debugstr_a
(
cmdline
),
show
);
return
E_FAIL
;
}
/***********************************************************************
* RunSetupCommand (ADVPACK.@)
*
* Executes an install section in an INF file or a program.
*
* PARAMS
* hWnd [I] Handle to parent window, NULL for quiet mode
* szCmdName [I] Inf or EXE filename to execute
* szInfSection [I] Inf section to install, NULL for DefaultInstall
* szDir [I] Path to extracted files
* szTitle [I] Title of all dialogs
* phEXE [O] Handle of EXE to wait for
* dwFlags [I] Flags; see include/advpub.h
* pvReserved [I] Reserved
*
* RETURNS
* S_OK Everything OK
* S_ASYNCHRONOUS OK, required to wait on phEXE
* ERROR_SUCCESS_REBOOT_REQUIRED Reboot required
* E_INVALIDARG Invalid argument given
* HRESULT_FROM_WIN32(ERROR_OLD_WIN_VERSION)
* Not supported on this Windows version
* E_UNEXPECTED Unexpected error
* HRESULT_FROM_WIN32(GetLastError()) Some other error
*
* BUGS
* Unimplemented
*/
HRESULT
WINAPI
RunSetupCommand
(
HWND
hWnd
,
LPCSTR
szCmdName
,
LPCSTR
szInfSection
,
LPCSTR
szDir
,
LPCSTR
lpszTitle
,
HANDLE
*
phEXE
,
DWORD
dwFlags
,
LPVOID
pvReserved
)
{
FIXME
(
"(%p, %s, %s, %s, %s, %p, 0x%08lx, %p): stub
\n
"
,
hWnd
,
debugstr_a
(
szCmdName
),
debugstr_a
(
szInfSection
),
debugstr_a
(
szDir
),
debugstr_a
(
lpszTitle
),
phEXE
,
dwFlags
,
pvReserved
);
return
E_UNEXPECTED
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment