Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
69bdc10a
Commit
69bdc10a
authored
Feb 02, 2005
by
Eric Kohl
Committed by
Alexandre Julliard
Feb 02, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Implement DoesUserHavePrivilege, EnablePrivilege, IsUserAdmin,
MultiByteToUnicode and UnicodeToMultiByte. - Sort prototypes in setupapi.h and a few function in spec.
parent
10ff5e1e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
385 additions
and
88 deletions
+385
-88
misc.c
dlls/setupapi/misc.c
+291
-5
setupapi.spec
dlls/setupapi/setupapi.spec
+7
-7
setupapi.h
include/setupapi.h
+87
-76
No files found.
dlls/setupapi/misc.c
View file @
69bdc10a
...
...
@@ -28,6 +28,9 @@
#include "setupapi.h"
#include "wine/unicode.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
setupapi
);
/**************************************************************************
...
...
@@ -41,9 +44,9 @@
* RETURNS
* None
*/
VOID
WINAPI
MyFree
(
LPVOID
lpMem
)
{
TRACE
(
"%p
\n
"
,
lpMem
);
HeapFree
(
GetProcessHeap
(),
0
,
lpMem
);
}
...
...
@@ -60,9 +63,9 @@ VOID WINAPI MyFree(LPVOID lpMem)
* Success: pointer to allocated memory block
* Failure: NULL
*/
LPVOID
WINAPI
MyMalloc
(
DWORD
dwSize
)
{
TRACE
(
"%lu
\n
"
,
dwSize
);
return
HeapAlloc
(
GetProcessHeap
(),
0
,
dwSize
);
}
...
...
@@ -85,9 +88,10 @@ LPVOID WINAPI MyMalloc(DWORD dwSize)
* If lpSrc is a NULL-pointer, then MyRealloc allocates a memory
* block like MyMalloc.
*/
LPVOID
WINAPI
MyRealloc
(
LPVOID
lpSrc
,
DWORD
dwSize
)
{
TRACE
(
"%p %lu
\n
"
,
lpSrc
,
dwSize
);
if
(
lpSrc
==
NULL
)
return
HeapAlloc
(
GetProcessHeap
(),
0
,
dwSize
);
...
...
@@ -110,11 +114,12 @@ LPVOID WINAPI MyRealloc(LPVOID lpSrc, DWORD dwSize)
* NOTES
* Call MyFree() to release the duplicated string.
*/
LPWSTR
WINAPI
DuplicateString
(
LPCWSTR
lpSrc
)
{
LPWSTR
lpDst
;
TRACE
(
"%s
\n
"
,
debugstr_w
(
lpSrc
));
lpDst
=
MyMalloc
((
lstrlenW
(
lpSrc
)
+
1
)
*
sizeof
(
WCHAR
));
if
(
lpDst
==
NULL
)
return
NULL
;
...
...
@@ -145,7 +150,6 @@ LPWSTR WINAPI DuplicateString(LPCWSTR lpSrc)
* NOTES
* Use MyFree to release the lpData buffer.
*/
LONG
WINAPI
QueryRegistryValue
(
HKEY
hKey
,
LPCWSTR
lpValueName
,
LPBYTE
*
lpData
,
...
...
@@ -154,6 +158,9 @@ LONG WINAPI QueryRegistryValue(HKEY hKey,
{
LONG
lError
;
TRACE
(
"%p %s %p %p %p
\n
"
,
hKey
,
debugstr_w
(
lpValueName
),
lpData
,
lpType
,
lpcbData
);
/* Get required buffer size */
*
lpcbData
=
0
;
lError
=
RegQueryValueExW
(
hKey
,
lpValueName
,
0
,
lpType
,
NULL
,
lpcbData
);
...
...
@@ -172,3 +179,282 @@ LONG WINAPI QueryRegistryValue(HKEY hKey,
return
lError
;
}
/**************************************************************************
* IsUserAdmin [SETUPAPI.@]
*
* Checks whether the current user is a member of the Administrators group.
*
* PARAMS
* None
*
* RETURNS
* Success: TRUE
* Failure: FALSE
*/
BOOL
WINAPI
IsUserAdmin
(
VOID
)
{
SID_IDENTIFIER_AUTHORITY
Authority
=
{
SECURITY_NT_AUTHORITY
};
HANDLE
hToken
;
DWORD
dwSize
;
PTOKEN_GROUPS
lpGroups
;
PSID
lpSid
;
DWORD
i
;
BOOL
bResult
=
FALSE
;
TRACE
(
"
\n
"
);
if
(
!
OpenProcessToken
(
GetCurrentProcess
(),
TOKEN_QUERY
,
&
hToken
))
{
return
FALSE
;
}
if
(
!
GetTokenInformation
(
hToken
,
TokenGroups
,
NULL
,
0
,
&
dwSize
))
{
if
(
GetLastError
()
!=
ERROR_INSUFFICIENT_BUFFER
)
{
CloseHandle
(
hToken
);
return
FALSE
;
}
}
lpGroups
=
MyMalloc
(
dwSize
);
if
(
lpGroups
==
NULL
)
{
CloseHandle
(
hToken
);
return
FALSE
;
}
if
(
!
GetTokenInformation
(
hToken
,
TokenGroups
,
lpGroups
,
dwSize
,
&
dwSize
))
{
MyFree
(
lpGroups
);
CloseHandle
(
hToken
);
return
FALSE
;
}
CloseHandle
(
hToken
);
if
(
!
AllocateAndInitializeSid
(
&
Authority
,
2
,
SECURITY_BUILTIN_DOMAIN_RID
,
DOMAIN_ALIAS_RID_ADMINS
,
0
,
0
,
0
,
0
,
0
,
0
,
&
lpSid
))
{
MyFree
(
lpGroups
);
return
FALSE
;
}
for
(
i
=
0
;
i
<
lpGroups
->
GroupCount
;
i
++
)
{
if
(
EqualSid
(
lpSid
,
&
lpGroups
->
Groups
[
i
].
Sid
))
{
bResult
=
TRUE
;
break
;
}
}
FreeSid
(
lpSid
);
MyFree
(
lpGroups
);
return
bResult
;
}
/**************************************************************************
* MultiByteToUnicode [SETUPAPI.@]
*
* Converts a multi-byte string to a Unicode string.
*
* PARAMS
* lpMultiByteStr [I] Multi-byte string to be converted
* uCodePage [I] Code page
*
* RETURNS
* Success: pointer to the converted Unicode string
* Failure: NULL
*
* NOTE
* Use MyFree to release the returned Unicode string.
*/
LPWSTR
WINAPI
MultiByteToUnicode
(
LPCSTR
lpMultiByteStr
,
UINT
uCodePage
)
{
LPWSTR
lpUnicodeStr
;
int
nLength
;
TRACE
(
"%s %d
\n
"
,
debugstr_a
(
lpMultiByteStr
),
uCodePage
);
nLength
=
MultiByteToWideChar
(
uCodePage
,
0
,
lpMultiByteStr
,
-
1
,
NULL
,
0
);
if
(
nLength
==
0
)
return
NULL
;
lpUnicodeStr
=
MyMalloc
(
nLength
*
sizeof
(
WCHAR
));
if
(
lpUnicodeStr
==
NULL
)
return
NULL
;
if
(
!
MultiByteToWideChar
(
uCodePage
,
0
,
lpMultiByteStr
,
nLength
,
lpUnicodeStr
,
nLength
))
{
MyFree
(
lpUnicodeStr
);
return
NULL
;
}
return
lpUnicodeStr
;
}
/**************************************************************************
* UnicodeToMultiByte [SETUPAPI.@]
*
* Converts a Unicode string to a multi-byte string.
*
* PARAMS
* lpUnicodeStr [I] Unicode string to be converted
* uCodePage [I] Code page
*
* RETURNS
* Success: pointer to the converted multi-byte string
* Failure: NULL
*
* NOTE
* Use MyFree to release the returned multi-byte string.
*/
LPSTR
WINAPI
UnicodeToMultiByte
(
LPCWSTR
lpUnicodeStr
,
UINT
uCodePage
)
{
LPSTR
lpMultiByteStr
;
int
nLength
;
TRACE
(
"%s %d
\n
"
,
debugstr_w
(
lpUnicodeStr
),
uCodePage
);
nLength
=
WideCharToMultiByte
(
uCodePage
,
0
,
lpUnicodeStr
,
-
1
,
NULL
,
0
,
NULL
,
NULL
);
if
(
nLength
==
0
)
return
NULL
;
lpMultiByteStr
=
MyMalloc
(
nLength
);
if
(
lpMultiByteStr
==
NULL
)
return
NULL
;
if
(
!
WideCharToMultiByte
(
uCodePage
,
0
,
lpUnicodeStr
,
-
1
,
lpMultiByteStr
,
nLength
,
NULL
,
NULL
))
{
MyFree
(
lpMultiByteStr
);
return
NULL
;
}
return
lpMultiByteStr
;
}
/**************************************************************************
* DoesUserHavePrivilege [SETUPAPI.@]
*
* Check whether the current user has got a given privilege.
*
* PARAMS
* lpPrivilegeName [I] Name of the privilege to be checked
*
* RETURNS
* Success: TRUE
* Failure: FALSE
*/
BOOL
WINAPI
DoesUserHavePrivilege
(
LPCWSTR
lpPrivilegeName
)
{
HANDLE
hToken
;
DWORD
dwSize
;
PTOKEN_PRIVILEGES
lpPrivileges
;
LUID
PrivilegeLuid
;
DWORD
i
;
BOOL
bResult
=
FALSE
;
TRACE
(
"%s
\n
"
,
debugstr_w
(
lpPrivilegeName
));
if
(
!
OpenProcessToken
(
GetCurrentProcess
(),
TOKEN_QUERY
,
&
hToken
))
return
FALSE
;
if
(
!
GetTokenInformation
(
hToken
,
TokenPrivileges
,
NULL
,
0
,
&
dwSize
))
{
if
(
GetLastError
()
!=
ERROR_INSUFFICIENT_BUFFER
)
{
CloseHandle
(
hToken
);
return
FALSE
;
}
}
lpPrivileges
=
MyMalloc
(
dwSize
);
if
(
lpPrivileges
==
NULL
)
{
CloseHandle
(
hToken
);
return
FALSE
;
}
if
(
!
GetTokenInformation
(
hToken
,
TokenPrivileges
,
lpPrivileges
,
dwSize
,
&
dwSize
))
{
MyFree
(
lpPrivileges
);
CloseHandle
(
hToken
);
return
FALSE
;
}
CloseHandle
(
hToken
);
if
(
!
LookupPrivilegeValueW
(
NULL
,
lpPrivilegeName
,
&
PrivilegeLuid
))
{
MyFree
(
lpPrivileges
);
return
FALSE
;
}
for
(
i
=
0
;
i
<
lpPrivileges
->
PrivilegeCount
;
i
++
)
{
if
(
lpPrivileges
->
Privileges
[
i
].
Luid
.
HighPart
==
PrivilegeLuid
.
HighPart
&&
lpPrivileges
->
Privileges
[
i
].
Luid
.
LowPart
==
PrivilegeLuid
.
LowPart
)
{
bResult
=
TRUE
;
}
}
MyFree
(
lpPrivileges
);
return
bResult
;
}
/**************************************************************************
* EnablePrivilege [SETUPAPI.@]
*
* Enables or disables one of the current users privileges.
*
* PARAMS
* lpPrivilegeName [I] Name of the privilege to be changed
* bEnable [I] TRUE: Enables the privilege
* FALSE: Disables the privilege
*
* RETURNS
* Success: TRUE
* Failure: FALSE
*/
BOOL
WINAPI
EnablePrivilege
(
LPCWSTR
lpPrivilegeName
,
BOOL
bEnable
)
{
TOKEN_PRIVILEGES
Privileges
;
HANDLE
hToken
;
BOOL
bResult
;
TRACE
(
"%s %s
\n
"
,
debugstr_w
(
lpPrivilegeName
),
bEnable
?
"TRUE"
:
"FALSE"
);
if
(
!
OpenProcessToken
(
GetCurrentProcess
(),
TOKEN_QUERY
,
&
hToken
))
return
FALSE
;
Privileges
.
PrivilegeCount
=
1
;
Privileges
.
Privileges
[
0
].
Attributes
=
(
bEnable
)
?
SE_PRIVILEGE_ENABLED
:
0
;
if
(
!
LookupPrivilegeValueW
(
NULL
,
lpPrivilegeName
,
&
Privileges
.
Privileges
[
0
].
Luid
))
{
CloseHandle
(
hToken
);
return
FALSE
;
}
bResult
=
AdjustTokenPrivileges
(
hToken
,
FALSE
,
&
Privileges
,
0
,
NULL
,
NULL
);
CloseHandle
(
hToken
);
return
bResult
;
}
dlls/setupapi/setupapi.spec
View file @
69bdc10a
...
...
@@ -97,8 +97,6 @@
@ stub CM_Get_Device_Interface_List_SizeW
@ stub CM_Get_Device_Interface_List_Size_ExA
@ stub CM_Get_Device_Interface_List_Size_ExW
@ stub CM_Request_Device_EjectA
@ stub CM_Request_Device_EjectW
@ stub CM_Get_First_Log_Conf
@ stub CM_Get_First_Log_Conf_Ex
@ stub CM_Get_Global_State
...
...
@@ -164,6 +162,8 @@
@ stub CM_Remove_SubTree_Ex
@ stub CM_Remove_Unmarked_Children
@ stub CM_Remove_Unmarked_Children_Ex
@ stub CM_Request_Device_EjectA
@ stub CM_Request_Device_EjectW
@ stub CM_Request_Eject_PC
@ stub CM_Reset_Children_Marks
@ stub CM_Reset_Children_Marks_Ex
...
...
@@ -197,9 +197,9 @@
@ stub DelayedMove
@ stub DelimStringToMultiSz
@ stub DestroyTextFileReadBuffer
@ st
ub DoesUserHavePrivilege
@ st
dcall DoesUserHavePrivilege(wstr)
@ stdcall DuplicateString(wstr)
@ st
ub EnablePrivilege
@ st
dcall EnablePrivilege(wstr long)
@ stub ExtensionPropSheetPageProc
@ stub FileExists
@ stub FreeStringArray
...
...
@@ -214,10 +214,10 @@
@ stdcall InstallHinfSectionW(long long wstr long)
@ stub InstallStop
@ stub InstallStopEx
@ st
ub IsUserAdmin
@ st
dcall IsUserAdmin()
@ stub LookUpStringInTable
@ stub MemoryInitialize
@ st
ub MultiByteToUnicode
@ st
dcall MultiByteToUnicode(str long)
@ stub MultiSzFromSearchControl
@ stdcall MyFree(ptr)
@ stub MyGetFileTitle
...
...
@@ -527,7 +527,7 @@
@ stub StringTableStringFromId
@ stub StringTableTrim
@ stub TakeOwnershipOfFile
@ st
ub UnicodeToMultiByte
@ st
dcall UnicodeToMultiByte(wstr long)
@ stub UnmapAndCloseFile
@ stub VerifyCatalogFile
@ stub VerifyFile
...
...
include/setupapi.h
View file @
69bdc10a
...
...
@@ -664,90 +664,28 @@ DECL_WINELIB_SETUPAPI_TYPE_AW(PFILEPATHS)
#define SPDRP_INSTALL_STATE 0x00000022
#define SPDRP_MAXIMUM_PROPERTY 0x00000023
void
WINAPI
InstallHinfSectionA
(
HWND
hwnd
,
HINSTANCE
handle
,
LPCSTR
cmdline
,
INT
show
);
void
WINAPI
InstallHinfSectionW
(
HWND
hwnd
,
HINSTANCE
handle
,
LPCWSTR
cmdline
,
INT
show
);
LONG
WINAPI
AddTagToGroupOrderList
(
PCWSTR
lpGroupName
,
DWORD
dwUnknown2
,
DWORD
dwUnknown3
);
BOOL
WINAPI
DoesUserHavePrivilege
(
PCWSTR
lpPrivilegeName
);
PWSTR
WINAPI
DuplicateString
(
PCWSTR
lpSrc
);
BOOL
WINAPI
EnablePrivilege
(
PCWSTR
lpPrivilegeName
,
BOOL
bEnable
);
void
WINAPI
InstallHinfSectionA
(
HWND
hwnd
,
HINSTANCE
handle
,
PCSTR
cmdline
,
INT
show
);
void
WINAPI
InstallHinfSectionW
(
HWND
hwnd
,
HINSTANCE
handle
,
PCWSTR
cmdline
,
INT
show
);
#define InstallHinfSection WINELIB_NAME_AW(InstallHinfSection)
HINF
WINAPI
SetupOpenInfFileA
(
PCSTR
name
,
PCSTR
pszclass
,
DWORD
style
,
UINT
*
error
);
HINF
WINAPI
SetupOpenInfFileW
(
PCWSTR
name
,
PCWSTR
pszclass
,
DWORD
style
,
UINT
*
error
);
#define SetupOpenInfFile WINELIB_NAME_AW(SetupOpenInfFile)
BOOL
WINAPI
SetupOpenAppendInfFileA
(
PCSTR
,
HINF
,
UINT
*
);
BOOL
WINAPI
SetupOpenAppendInfFileW
(
PCWSTR
,
HINF
,
UINT
*
);
#define SetupOpenAppendInfFile WINELIB_NAME_AW(SetupOpenAppendInfFile)
HINF
WINAPI
SetupOpenMasterInf
(
VOID
);
void
WINAPI
SetupCloseInfFile
(
HINF
hinf
);
BOOL
WINAPI
SetupGetLineByIndexA
(
HINF
,
PCSTR
,
DWORD
,
INFCONTEXT
*
);
BOOL
WINAPI
SetupGetLineByIndexW
(
HINF
,
PCWSTR
,
DWORD
,
INFCONTEXT
*
);
#define SetupGetLineByIndex WINELIB_NAME_AW(SetupGetLineByIndex)
LONG
WINAPI
SetupGetLineCountA
(
HINF
hinf
,
PCSTR
section
);
LONG
WINAPI
SetupGetLineCountW
(
HINF
hinf
,
PCWSTR
section
);
#define SetupGetLineCount WINELIB_NAME_AW(SetupGetLineCount)
BOOL
WINAPI
SetupFindFirstLineA
(
HINF
hinf
,
PCSTR
section
,
PCSTR
key
,
INFCONTEXT
*
context
);
BOOL
WINAPI
SetupFindFirstLineW
(
HINF
hinf
,
PCWSTR
section
,
PCWSTR
key
,
INFCONTEXT
*
context
);
#define SetupFindFirstLine WINELIB_NAME_AW(SetupFindFirstLine)
BOOL
WINAPI
SetupFindNextLine
(
PINFCONTEXT
context_in
,
PINFCONTEXT
context_out
);
BOOL
WINAPI
SetupFindNextMatchLineA
(
PINFCONTEXT
context_in
,
PCSTR
key
,
PINFCONTEXT
context_out
);
BOOL
WINAPI
SetupFindNextMatchLineW
(
PINFCONTEXT
context_in
,
PCWSTR
key
,
PINFCONTEXT
context_out
);
#define SetupFindNextMatchLine WINELIB_NAME_AW(SetupFindNextMatchLine)
BOOL
WINAPI
SetupGetLineTextA
(
PINFCONTEXT
context
,
HINF
hinf
,
PCSTR
section_name
,
PCSTR
key_name
,
PSTR
buffer
,
DWORD
size
,
PDWORD
required
);
BOOL
WINAPI
SetupGetLineTextW
(
PINFCONTEXT
context
,
HINF
hinf
,
PCWSTR
section_name
,
PCWSTR
key_name
,
PWSTR
buffer
,
DWORD
size
,
PDWORD
required
);
#define SetupGetLineText WINELIB_NAME_AW(SetupGetLineText)
DWORD
WINAPI
SetupGetFieldCount
(
PINFCONTEXT
context
);
BOOL
WINAPI
SetupGetIntField
(
PINFCONTEXT
context
,
DWORD
index
,
PINT
result
);
BOOL
WINAPI
SetupGetStringFieldA
(
PINFCONTEXT
context
,
DWORD
index
,
PSTR
buffer
,
DWORD
size
,
PDWORD
required
);
BOOL
WINAPI
SetupGetStringFieldW
(
PINFCONTEXT
context
,
DWORD
index
,
PWSTR
buffer
,
DWORD
size
,
PDWORD
required
);
#define SetupGetStringField WINELIB_NAME_AW(SetupGetStringField)
BOOL
WINAPI
SetupGetBinaryField
(
PINFCONTEXT
context
,
DWORD
index
,
BYTE
*
buffer
,
DWORD
size
,
LPDWORD
required
);
BOOL
WINAPI
SetupGetMultiSzFieldA
(
PINFCONTEXT
context
,
DWORD
index
,
PSTR
buffer
,
DWORD
size
,
LPDWORD
required
);
BOOL
WINAPI
SetupGetMultiSzFieldW
(
PINFCONTEXT
context
,
DWORD
index
,
PWSTR
buffer
,
DWORD
size
,
LPDWORD
required
);
#define SetupGetMultiSzField WINELIB_NAME_AW(SetupGetMultiSzField)
BOOL
WINAPI
SetupSetDirectoryIdA
(
HINF
,
DWORD
,
PCSTR
);
BOOL
WINAPI
SetupSetDirectoryIdW
(
HINF
,
DWORD
,
PCWSTR
);
#define SetupSetDirectoryId WINELIB_NAME_AW(SetupSetDirectoryId)
HSPFILEQ
WINAPI
SetupOpenFileQueue
(
void
);
BOOL
WINAPI
IsUserAdmin
(
VOID
);
PWSTR
WINAPI
MultiByteToUnicode
(
PCSTR
lpMultiByteStr
,
UINT
uCodePage
);
VOID
WINAPI
MyFree
(
PVOID
lpMem
);
PVOID
WINAPI
MyMalloc
(
DWORD
dwSize
);
PVOID
WINAPI
MyRealloc
(
PVOID
lpSrc
,
DWORD
dwSize
);
LONG
WINAPI
QueryRegistryValue
(
HKEY
,
PCWSTR
,
PBYTE
*
,
PDWORD
,
PDWORD
);
BOOL
WINAPI
SetupCloseFileQueue
(
HSPFILEQ
);
BOOL
WINAPI
SetupSetFileQueueAlternatePlatformA
(
HSPFILEQ
,
PSP_ALTPLATFORM_INFO
,
PCSTR
);
BOOL
WINAPI
SetupSetFileQueueAlternatePlatformW
(
HSPFILEQ
,
PSP_ALTPLATFORM_INFO
,
PCWSTR
);
#define SetupSetFileQueueAlternatePlatform WINELIB_NAME_AW(SetupSetFileQueueAlternatePlatform)
BOOL
WINAPI
SetupQueueCopyA
(
HSPFILEQ
,
PCSTR
,
PCSTR
,
PCSTR
,
PCSTR
,
PCSTR
,
PCSTR
,
PCSTR
,
DWORD
);
BOOL
WINAPI
SetupQueueCopyW
(
HSPFILEQ
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
DWORD
);
#define SetupQueueCopy WINELIB_NAME_AW(SetupQueueCopy)
BOOL
WINAPI
SetupQueueCopyIndirectA
(
PSP_FILE_COPY_PARAMS_A
);
BOOL
WINAPI
SetupQueueCopyIndirectW
(
PSP_FILE_COPY_PARAMS_W
);
#define SetupQueueCopyIndirect WINELIB_NAME_AW(SetupQueueCopyIndirect)
BOOL
WINAPI
SetupQueueDefaultCopyA
(
HSPFILEQ
,
HINF
,
PCSTR
,
PCSTR
,
PCSTR
,
DWORD
);
BOOL
WINAPI
SetupQueueDefaultCopyW
(
HSPFILEQ
,
HINF
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
DWORD
);
#define SetupQueueDefaultCopy WINELIB_NAME_AW(SetupQueueDefaultCopy)
BOOL
WINAPI
SetupQueueDeleteA
(
HSPFILEQ
,
PCSTR
,
PCSTR
);
BOOL
WINAPI
SetupQueueDeleteW
(
HSPFILEQ
,
PCWSTR
,
PCWSTR
);
#define SetupQueueDelete WINELIB_NAME_AW(SetupQueueDelete)
BOOL
WINAPI
SetupQueueRenameA
(
HSPFILEQ
,
PCSTR
,
PCSTR
,
PCSTR
,
PCSTR
);
BOOL
WINAPI
SetupQueueRenameW
(
HSPFILEQ
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
PCWSTR
);
#define SetupQueueRename WINELIB_NAME_AW(SetupQueueRename)
void
WINAPI
SetupCloseInfFile
(
HINF
hinf
);
BOOL
WINAPI
SetupCommitFileQueueA
(
HWND
,
HSPFILEQ
,
PSP_FILE_CALLBACK_A
,
PVOID
);
BOOL
WINAPI
SetupCommitFileQueueW
(
HWND
,
HSPFILEQ
,
PSP_FILE_CALLBACK_W
,
PVOID
);
#define SetupCommitFileQueue WINELIB_NAME_AW(SetupCommitFileQueue)
BOOL
WINAPI
SetupScanFileQueueA
(
HSPFILEQ
,
DWORD
,
HWND
,
PSP_FILE_CALLBACK_A
,
PVOID
,
PDWORD
);
BOOL
WINAPI
SetupScanFileQueueW
(
HSPFILEQ
,
DWORD
,
HWND
,
PSP_FILE_CALLBACK_W
,
PVOID
,
PDWORD
);
#define SetupScanFileQueue WINELIB_NAME_AW(SetupScanFileQueue)
BOOL
WINAPI
SetupGetFileQueueCount
(
HSPFILEQ
,
UINT
,
PUINT
);
BOOL
WINAPI
SetupGetFileQueueFlags
(
HSPFILEQ
,
PDWORD
);
BOOL
WINAPI
SetupSetFileQueueFlags
(
HSPFILEQ
,
DWORD
,
DWORD
);
BOOL
WINAPI
SetupQueueCopySectionA
(
HSPFILEQ
,
PCSTR
,
HINF
,
HINF
,
PCSTR
,
DWORD
);
BOOL
WINAPI
SetupQueueCopySectionW
(
HSPFILEQ
,
PCWSTR
,
HINF
,
HINF
,
PCWSTR
,
DWORD
);
#define SetupQueueCopySection WINELIB_NAME_AW(SetupQueueCopySection)
BOOL
WINAPI
SetupQueueDeleteSectionA
(
HSPFILEQ
,
HINF
,
HINF
,
PCSTR
);
BOOL
WINAPI
SetupQueueDeleteSectionW
(
HSPFILEQ
,
HINF
,
HINF
,
PCWSTR
);
#define SetupQueueDeleteSection WINELIB_NAME_AW(SetupQueueDeleteSection)
BOOL
WINAPI
SetupQueueRenameSectionA
(
HSPFILEQ
,
HINF
,
HINF
,
PCSTR
);
BOOL
WINAPI
SetupQueueRenameSectionW
(
HSPFILEQ
,
HINF
,
HINF
,
PCWSTR
);
#define SetupQueueRenameSection WINELIB_NAME_AW(SetupQueueRenameSection)
PVOID
WINAPI
SetupInitDefaultQueueCallback
(
HWND
);
PVOID
WINAPI
SetupInitDefaultQueueCallbackEx
(
HWND
,
HWND
,
UINT
,
DWORD
,
PVOID
);
void
WINAPI
SetupTermDefaultQueueCallback
(
PVOID
);
UINT
WINAPI
SetupDefaultQueueCallbackA
(
PVOID
,
UINT
,
UINT_PTR
,
UINT_PTR
);
UINT
WINAPI
SetupDefaultQueueCallbackW
(
PVOID
,
UINT
,
UINT_PTR
,
UINT_PTR
);
#define SetupDefaultQueueCallback WINELIB_NAME_AW(SetupDefaultQueueCallback)
BOOL
WINAPI
SetupDiBuildClassInfoList
(
DWORD
,
LPGUID
,
DWORD
,
PDWORD
);
BOOL
WINAPI
SetupDiBuildClassInfoListExA
(
DWORD
,
LPGUID
,
DWORD
,
PDWORD
,
PCSTR
,
PVOID
);
BOOL
WINAPI
SetupDiBuildClassInfoListExW
(
DWORD
,
LPGUID
,
DWORD
,
PDWORD
,
PCWSTR
,
PVOID
);
...
...
@@ -795,6 +733,35 @@ HKEY WINAPI SetupDiOpenClassRegKey(const GUID*, REGSAM);
HKEY
WINAPI
SetupDiOpenClassRegKeyExA
(
const
GUID
*
,
REGSAM
,
DWORD
,
PCSTR
,
PVOID
);
HKEY
WINAPI
SetupDiOpenClassRegKeyExW
(
const
GUID
*
,
REGSAM
,
DWORD
,
PCWSTR
,
PVOID
);
#define SetupDiOpenClassRegKeyEx WINELIB_NAME_AW(SetupDiOpenClassRegKeyEx)
BOOL
WINAPI
SetupFindFirstLineA
(
HINF
hinf
,
PCSTR
section
,
PCSTR
key
,
INFCONTEXT
*
context
);
BOOL
WINAPI
SetupFindFirstLineW
(
HINF
hinf
,
PCWSTR
section
,
PCWSTR
key
,
INFCONTEXT
*
context
);
#define SetupFindFirstLine WINELIB_NAME_AW(SetupFindFirstLine)
BOOL
WINAPI
SetupFindNextLine
(
PINFCONTEXT
context_in
,
PINFCONTEXT
context_out
);
BOOL
WINAPI
SetupFindNextMatchLineA
(
PINFCONTEXT
context_in
,
PCSTR
key
,
PINFCONTEXT
context_out
);
BOOL
WINAPI
SetupFindNextMatchLineW
(
PINFCONTEXT
context_in
,
PCWSTR
key
,
PINFCONTEXT
context_out
);
#define SetupFindNextMatchLine WINELIB_NAME_AW(SetupFindNextMatchLine)
BOOL
WINAPI
SetupGetBinaryField
(
PINFCONTEXT
context
,
DWORD
index
,
BYTE
*
buffer
,
DWORD
size
,
LPDWORD
required
);
DWORD
WINAPI
SetupGetFieldCount
(
PINFCONTEXT
context
);
BOOL
WINAPI
SetupGetFileQueueCount
(
HSPFILEQ
,
UINT
,
PUINT
);
BOOL
WINAPI
SetupGetFileQueueFlags
(
HSPFILEQ
,
PDWORD
);
BOOL
WINAPI
SetupGetIntField
(
PINFCONTEXT
context
,
DWORD
index
,
PINT
result
);
BOOL
WINAPI
SetupGetLineByIndexA
(
HINF
,
PCSTR
,
DWORD
,
INFCONTEXT
*
);
BOOL
WINAPI
SetupGetLineByIndexW
(
HINF
,
PCWSTR
,
DWORD
,
INFCONTEXT
*
);
#define SetupGetLineByIndex WINELIB_NAME_AW(SetupGetLineByIndex)
LONG
WINAPI
SetupGetLineCountA
(
HINF
hinf
,
PCSTR
section
);
LONG
WINAPI
SetupGetLineCountW
(
HINF
hinf
,
PCWSTR
section
);
#define SetupGetLineCount WINELIB_NAME_AW(SetupGetLineCount)
BOOL
WINAPI
SetupGetLineTextA
(
PINFCONTEXT
context
,
HINF
hinf
,
PCSTR
section_name
,
PCSTR
key_name
,
PSTR
buffer
,
DWORD
size
,
PDWORD
required
);
BOOL
WINAPI
SetupGetLineTextW
(
PINFCONTEXT
context
,
HINF
hinf
,
PCWSTR
section_name
,
PCWSTR
key_name
,
PWSTR
buffer
,
DWORD
size
,
PDWORD
required
);
#define SetupGetLineText WINELIB_NAME_AW(SetupGetLineText)
BOOL
WINAPI
SetupGetMultiSzFieldA
(
PINFCONTEXT
context
,
DWORD
index
,
PSTR
buffer
,
DWORD
size
,
LPDWORD
required
);
BOOL
WINAPI
SetupGetMultiSzFieldW
(
PINFCONTEXT
context
,
DWORD
index
,
PWSTR
buffer
,
DWORD
size
,
LPDWORD
required
);
#define SetupGetMultiSzField WINELIB_NAME_AW(SetupGetMultiSzField)
BOOL
WINAPI
SetupGetStringFieldA
(
PINFCONTEXT
context
,
DWORD
index
,
PSTR
buffer
,
DWORD
size
,
PDWORD
required
);
BOOL
WINAPI
SetupGetStringFieldW
(
PINFCONTEXT
context
,
DWORD
index
,
PWSTR
buffer
,
DWORD
size
,
PDWORD
required
);
#define SetupGetStringField WINELIB_NAME_AW(SetupGetStringField)
PVOID
WINAPI
SetupInitDefaultQueueCallback
(
HWND
);
PVOID
WINAPI
SetupInitDefaultQueueCallbackEx
(
HWND
,
HWND
,
UINT
,
DWORD
,
PVOID
);
BOOL
WINAPI
SetupInstallFilesFromInfSectionA
(
HINF
,
HINF
,
HSPFILEQ
,
PCSTR
,
PCSTR
,
UINT
);
BOOL
WINAPI
SetupInstallFilesFromInfSectionW
(
HINF
,
HINF
,
HSPFILEQ
,
PCWSTR
,
PCWSTR
,
UINT
);
#define SetupInstallFilesFromInfSection WINELIB_NAME_AW(SetupInstallFilesFromInfSection)
...
...
@@ -806,6 +773,50 @@ BOOL WINAPI SetupInstallFromInfSectionW(HWND,HINF,PCWSTR,UINT,HKEY,PCWSTR,UI
BOOL
WINAPI
SetupIterateCabinetA
(
PCSTR
,
DWORD
,
PSP_FILE_CALLBACK_A
,
PVOID
);
BOOL
WINAPI
SetupIterateCabinetW
(
PCWSTR
,
DWORD
,
PSP_FILE_CALLBACK_W
,
PVOID
);
#define SetupIterateCabinet WINELIB_NAME_AW(SetupIterateCabinet)
BOOL
WINAPI
SetupOpenAppendInfFileA
(
PCSTR
,
HINF
,
UINT
*
);
BOOL
WINAPI
SetupOpenAppendInfFileW
(
PCWSTR
,
HINF
,
UINT
*
);
#define SetupOpenAppendInfFile WINELIB_NAME_AW(SetupOpenAppendInfFile)
HSPFILEQ
WINAPI
SetupOpenFileQueue
(
void
);
HINF
WINAPI
SetupOpenInfFileA
(
PCSTR
name
,
PCSTR
pszclass
,
DWORD
style
,
UINT
*
error
);
HINF
WINAPI
SetupOpenInfFileW
(
PCWSTR
name
,
PCWSTR
pszclass
,
DWORD
style
,
UINT
*
error
);
#define SetupOpenInfFile WINELIB_NAME_AW(SetupOpenInfFile)
HINF
WINAPI
SetupOpenMasterInf
(
VOID
);
BOOL
WINAPI
SetupQueueCopyA
(
HSPFILEQ
,
PCSTR
,
PCSTR
,
PCSTR
,
PCSTR
,
PCSTR
,
PCSTR
,
PCSTR
,
DWORD
);
BOOL
WINAPI
SetupQueueCopyW
(
HSPFILEQ
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
DWORD
);
#define SetupQueueCopy WINELIB_NAME_AW(SetupQueueCopy)
BOOL
WINAPI
SetupQueueCopyIndirectA
(
PSP_FILE_COPY_PARAMS_A
);
BOOL
WINAPI
SetupQueueCopyIndirectW
(
PSP_FILE_COPY_PARAMS_W
);
#define SetupQueueCopyIndirect WINELIB_NAME_AW(SetupQueueCopyIndirect)
BOOL
WINAPI
SetupQueueCopySectionA
(
HSPFILEQ
,
PCSTR
,
HINF
,
HINF
,
PCSTR
,
DWORD
);
BOOL
WINAPI
SetupQueueCopySectionW
(
HSPFILEQ
,
PCWSTR
,
HINF
,
HINF
,
PCWSTR
,
DWORD
);
#define SetupQueueCopySection WINELIB_NAME_AW(SetupQueueCopySection)
BOOL
WINAPI
SetupQueueDefaultCopyA
(
HSPFILEQ
,
HINF
,
PCSTR
,
PCSTR
,
PCSTR
,
DWORD
);
BOOL
WINAPI
SetupQueueDefaultCopyW
(
HSPFILEQ
,
HINF
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
DWORD
);
#define SetupQueueDefaultCopy WINELIB_NAME_AW(SetupQueueDefaultCopy)
BOOL
WINAPI
SetupQueueDeleteA
(
HSPFILEQ
,
PCSTR
,
PCSTR
);
BOOL
WINAPI
SetupQueueDeleteW
(
HSPFILEQ
,
PCWSTR
,
PCWSTR
);
#define SetupQueueDelete WINELIB_NAME_AW(SetupQueueDelete)
BOOL
WINAPI
SetupQueueDeleteSectionA
(
HSPFILEQ
,
HINF
,
HINF
,
PCSTR
);
BOOL
WINAPI
SetupQueueDeleteSectionW
(
HSPFILEQ
,
HINF
,
HINF
,
PCWSTR
);
#define SetupQueueDeleteSection WINELIB_NAME_AW(SetupQueueDeleteSection)
BOOL
WINAPI
SetupQueueRenameA
(
HSPFILEQ
,
PCSTR
,
PCSTR
,
PCSTR
,
PCSTR
);
BOOL
WINAPI
SetupQueueRenameW
(
HSPFILEQ
,
PCWSTR
,
PCWSTR
,
PCWSTR
,
PCWSTR
);
#define SetupQueueRename WINELIB_NAME_AW(SetupQueueRename)
BOOL
WINAPI
SetupQueueRenameSectionA
(
HSPFILEQ
,
HINF
,
HINF
,
PCSTR
);
BOOL
WINAPI
SetupQueueRenameSectionW
(
HSPFILEQ
,
HINF
,
HINF
,
PCWSTR
);
#define SetupQueueRenameSection WINELIB_NAME_AW(SetupQueueRenameSection)
BOOL
WINAPI
SetupScanFileQueueA
(
HSPFILEQ
,
DWORD
,
HWND
,
PSP_FILE_CALLBACK_A
,
PVOID
,
PDWORD
);
BOOL
WINAPI
SetupScanFileQueueW
(
HSPFILEQ
,
DWORD
,
HWND
,
PSP_FILE_CALLBACK_W
,
PVOID
,
PDWORD
);
#define SetupScanFileQueue WINELIB_NAME_AW(SetupScanFileQueue)
BOOL
WINAPI
SetupSetDirectoryIdA
(
HINF
,
DWORD
,
PCSTR
);
BOOL
WINAPI
SetupSetDirectoryIdW
(
HINF
,
DWORD
,
PCWSTR
);
#define SetupSetDirectoryId WINELIB_NAME_AW(SetupSetDirectoryId)
BOOL
WINAPI
SetupSetFileQueueAlternatePlatformA
(
HSPFILEQ
,
PSP_ALTPLATFORM_INFO
,
PCSTR
);
BOOL
WINAPI
SetupSetFileQueueAlternatePlatformW
(
HSPFILEQ
,
PSP_ALTPLATFORM_INFO
,
PCWSTR
);
#define SetupSetFileQueueAlternatePlatform WINELIB_NAME_AW(SetupSetFileQueueAlternatePlatform)
BOOL
WINAPI
SetupSetFileQueueFlags
(
HSPFILEQ
,
DWORD
,
DWORD
);
void
WINAPI
SetupTermDefaultQueueCallback
(
PVOID
);
PSTR
WINAPI
UnicodeToMultiByte
(
PCWSTR
lpUnicodeStr
,
UINT
uCodePage
);
#undef DECL_WINELIB_SETUPAPI_TYPE_AW
...
...
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