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
ad381592
Commit
ad381592
authored
Nov 13, 2001
by
Guy L. Albertelli
Committed by
Alexandre Julliard
Nov 13, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Implement ordinals 7, 8, 9, 13, 14, 19, 36.
- Implement SHRegWriteUSValue{A|W}, UrlGetPart{A|W}, UrlIs...{A|W}
parent
fa7a8c63
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
409 additions
and
34 deletions
+409
-34
ordinal.c
dlls/shlwapi/ordinal.c
+229
-6
reg.c
dlls/shlwapi/reg.c
+70
-10
shlwapi.spec
dlls/shlwapi/shlwapi.spec
+18
-18
url.c
dlls/shlwapi/url.c
+0
-0
shlwapi.h
include/shlwapi.h
+92
-0
No files found.
dlls/shlwapi/ordinal.c
View file @
ad381592
...
...
@@ -195,10 +195,205 @@ DWORD WINAPI SHLWAPI_2 (LPCWSTR x, UNKNOWN_SHLWAPI_2 *y)
}
/*************************************************************************
* @ [SHLWAPI.7]
* (Used by IE4 during startup)
* appears to return HWND (used as input to 8 below)
*/
HRESULT
WINAPI
SHLWAPI_7
(
LPVOID
w
,
LPVOID
x
,
LPVOID
y
)
/* appears to be result of GetCurrentProcessId() */
{
FIXME
(
"(%p %p %p) stub
\n
"
,
w
,
x
,
y
);
return
0
;
#if 0
/* pseudo code extracted from relay trace */
fhnd = CreateFileMappingA(-1, 0, 4, 0, 0x58, 0);
addr = MapViewOfFile(fhnd, 6, 0, 0, 0);
UnmapViewOfFile(addr);
GetCurrentProcessId();
GetCurrentProcessId();
sph = GetCurrentProcess();
GetCurrentProcessId();
dph = GetCurrentProcess();
DuplicateHandle(sph, fhnd, dph, &hoho, 0x000f001f, 0, 2);
GetCurrentProcessId();
GetCurrentProcessId();
CloseHandle(fhnd);
return hoho;
#endif
}
/*************************************************************************
* @ [SHLWAPI.8]
* (Used by IE4 during startup)
* appears to return MapViewOfFile+4 (used as input to 9 below)
*/
LONG
WINAPI
SHLWAPI_8
(
LPVOID
w
,
/* possibly HANDLE */
LPVOID
x
)
/* appears to be result of GetCurrentProcessId() */
{
FIXME
(
"(%p %p) stub
\n
"
,
w
,
x
);
return
0
;
#if 0
/* pseudo code extracted from relay trace */
GetCurrentProcessId();
GetCurrentProcessId();
sph = GetCurrentProcess();
GetCurrentProcessId();
dph = GetCurrentProcess();
DuplicateHandle(sph, w, dph, &hoho, 0x000f001f, 0, 2);
GetCurrentProcessId();
GetCurrentProcessId();
addr = MapViewOfFile(hoho, 6, 0, 0, 0);
CloseHandle(hoho);
return (LONG)addr + 4;
#endif
}
/*************************************************************************
* @ [SHLWAPI.9]
* (Used by IE4 during startup)
*/
HRESULT
WINAPI
SHLWAPI_9
(
LPVOID
w
)
{
FIXME
(
"(%p) stub
\n
"
,
w
);
return
0
;
#if 0
/* pseudo code extracted from relay trace */
return UnmapViewOfFile((LPVOID)((LONG)w-4));
#endif
}
/*************************************************************************
* @ [SHLWAPI.13]
* (Used by IE4 during startup)
*/
HRESULT
WINAPI
SHLWAPI_13
(
LPVOID
w
,
LPVOID
x
)
{
FIXME
(
"(%p %p)stub
\n
"
,
w
,
x
);
return
1
;
#if 0
/* pseudo code extracted from relay trace */
RegOpenKeyA(HKLM, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Aceepted Documents", &newkey);
ret = 0;
i = 0;
size = 0;
while(!ret) {
ret = RegEnumValueA(newkey, i, a1, a2, 0, a3, 0, 0);
size += ???;
i++;
}
b1 = LocalAlloc(0x40, size);
ret = 0;
i = 0;
while(!ret) {
ret = RegEnumValueA(newkey, i, a1, a2, 0, a3, a4, a5);
RegisterClipBoardFormatA(a4);
i++;
}
hwnd1 = GetModuleHandleA("URLMON.DLL");
proc = GetProcAddress(hwnd1, "CreateFormatEnumerator");
HeapAlloc(??, 0, 0x14);
HeapAlloc(??, 0, 0x50);
LocalAlloc(0x40, 0x78);
/* FIXME: bad string below */
lstrlenW(L"{D0FCA420-D3F5-11CF-B211-00AA004AE837}");
StrCpyW(a6, L"{D0FCA420-D3F5-11CF-B211-00AA004AE837}");
GetTickCount();
IsBadReadPtr(c1 = 0x403fd210,4);
InterlockedIncrement(c1+4);
LocalFree(b1);
RegCloseKey(newkey);
IsBadReadPtr(c1 = 0x403fd210,4);
InterlockedIncrement(c1+4);
HeapAlloc(40350000,00000000,00000014) retval=403fd0a8;
HeapAlloc(40350000,00000000,00000050) retval=403feb44;
hwnd1 = GetModuleHandleA("URLMON.DLL");
proc = GetProcAddress(hwnd1, "RegisterFormatEnumerator");
/* 0x1a40c88c is in URLMON.DLL just before above proc
* content is L"_EnumFORMATETC_"
* label is d1
*/
IsBadReadPtr(d1 = 0x1a40c88c,00000002);
lstrlenW(d1);
lstrlenW(d1);
HeapAlloc(40350000,00000000,0000001e) retval=403fed44;
IsBadReadPtr(d2 = 0x403fd0a8,00000004);
InterlockedIncrement(d2+4);
IsBadReadPtr(d2 = 0x403fd0a8,00000004);
InterlockedDecrement(d2+4);
IsBadReadPtr(c1,00000004);
InterlockedDecrement(c1+4);
IsBadReadPtr(c1,00000004);
InterlockedDecrement(c1+4);
#endif
}
/*************************************************************************
* SHLWAPI_14 [SHLWAPI.14]
*
* Function:
* Retrieves IE "AcceptLanguage" value from registry. ASCII mode.
*
*/
HRESULT
WINAPI
SHLWAPI_14
(
LPSTR
langbuf
,
LPDWORD
buflen
)
{
CHAR
*
mystr
;
DWORD
mystrlen
,
mytype
;
HKEY
mykey
;
LCID
mylcid
;
mystrlen
=
(
*
buflen
>
6
)
?
*
buflen
:
6
;
mystr
=
(
CHAR
*
)
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
mystrlen
);
RegOpenKeyA
(
HKEY_CURRENT_USER
,
"Software
\\
Microsoft
\\
Internet Explorer
\\
International"
,
&
mykey
);
if
(
RegQueryValueExA
(
mykey
,
"AcceptLanguage"
,
0
,
&
mytype
,
mystr
,
&
mystrlen
))
{
/* Did not find value */
mylcid
=
GetUserDefaultLCID
();
/* somehow the mylcid translates into "en-us"
* this is similar to "LOCALE_SABBREVLANGNAME"
* which could be gotten via GetLocaleInfo.
* The only problem is LOCALE_SABBREVLANGUAGE" is
* a 3 char string (first 2 are country code and third is
* letter for "sublanguage", which does not come close to
* "en-us"
*/
lstrcpyA
(
mystr
,
"en-us"
);
mystrlen
=
lstrlenA
(
mystr
);
}
else
{
/* handle returned string */
FIXME
(
"missing code
\n
"
);
}
if
(
mystrlen
>
*
buflen
)
lstrcpynA
(
langbuf
,
mystr
,
*
buflen
);
else
{
lstrcpyA
(
langbuf
,
mystr
);
*
buflen
=
lstrlenA
(
langbuf
);
}
RegCloseKey
(
mykey
);
HeapFree
(
GetProcessHeap
(),
0
,
mystr
);
TRACE
(
"language is %s
\n
"
,
debugstr_a
(
langbuf
));
return
0
;
}
/*************************************************************************
* SHLWAPI_15 [SHLWAPI.15]
*
* Function:
* Retrieves IE "AcceptLanguage" value from registry
* Retrieves IE "AcceptLanguage" value from registry
. UNICODE mode.
*
*/
HRESULT
WINAPI
SHLWAPI_15
(
...
...
@@ -210,7 +405,7 @@ HRESULT WINAPI SHLWAPI_15 (
HKEY
mykey
;
LCID
mylcid
;
mystrlen
=
*
buflen
;
mystrlen
=
(
*
buflen
>
6
)
?
*
buflen
:
6
;
mystr
=
(
CHAR
*
)
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
mystrlen
);
RegOpenKeyA
(
HKEY_CURRENT_USER
,
...
...
@@ -218,6 +413,7 @@ HRESULT WINAPI SHLWAPI_15 (
&
mykey
);
if
(
RegQueryValueExA
(
mykey
,
"AcceptLanguage"
,
0
,
&
mytype
,
mystr
,
&
mystrlen
))
{
/* Did not find value */
mylcid
=
GetUserDefaultLCID
();
/* somehow the mylcid translates into "en-us"
* this is similar to "LOCALE_SABBREVLANGNAME"
...
...
@@ -227,7 +423,7 @@ HRESULT WINAPI SHLWAPI_15 (
* letter for "sublanguage", which does not come close to
* "en-us"
*/
lstrcpy
nA
(
mystr
,
"en-us"
,
mystrlen
);
lstrcpy
A
(
mystr
,
"en-us"
);
mystrlen
=
lstrlenA
(
mystr
);
}
else
{
...
...
@@ -262,7 +458,7 @@ HRESULT WINAPI SHLWAPI_16 (
* space size 0x14
* return is 0 (unless out of memory???)
*
* related to _21 and _22 below
* related to _
19, _
21 and _22 below
* only seen invoked by SHDOCVW
*/
LONG
WINAPI
SHLWAPI_18
(
...
...
@@ -275,6 +471,22 @@ LONG WINAPI SHLWAPI_18 (
}
/*************************************************************************
* @ [SHLWAPI.19]
*
* w is address of allocated memory from _21
* return is 0 (unless out of memory???)
*
* related to _18, _21 and _22 below
* only seen invoked by SHDOCVW
*/
LONG
WINAPI
SHLWAPI_19
(
LPVOID
w
)
{
FIXME
(
"(%p) stub
\n
"
,
w
);
return
0
;
}
/*************************************************************************
* @ [SHLWAPI.21]
*
* w points to space allocated via .18 above
...
...
@@ -283,7 +495,7 @@ LONG WINAPI SHLWAPI_18 (
* x values seen 0xa0000005
* returns 1
*
* relates to _18 and _22 above and below
* relates to _18
, _19
and _22 above and below
* only seen invoked by SHDOCVW
*/
LONG
WINAPI
SHLWAPI_21
(
...
...
@@ -299,7 +511,7 @@ LONG WINAPI SHLWAPI_21 (
*
* return is 'w' value seen in x is 0xa0000005
*
* relates to _18 and _21 above
* relates to _18
, _19
and _21 above
* only seen invoked by SHDOCVW
*/
LPVOID
WINAPI
SHLWAPI_22
(
...
...
@@ -466,6 +678,17 @@ BOOL WINAPI SHLWAPI_35(LPVOID p1, DWORD dw2, LPVOID p3)
}
/*************************************************************************
* SHLWAPI_36 [SHLWAPI.36]
*
*/
BOOL
WINAPI
SHLWAPI_36
(
HMENU
h1
,
UINT
ui2
,
UINT
h3
,
LPCWSTR
p4
)
{
TRACE
(
"(0x%08x, 0x%08x, 0x%08x, %s): stub
\n
"
,
h1
,
ui2
,
h3
,
debugstr_w
(
p4
));
return
AppendMenuW
(
h1
,
ui2
,
h3
,
p4
);
}
/*************************************************************************
* @ [SHLWAPI.40]
*
* Get pointer to next Unicode character.
...
...
dlls/shlwapi/reg.c
View file @
ad381592
...
...
@@ -563,13 +563,32 @@ DWORD WINAPI SHRegQueryInfoUSKeyW(
*/
LONG
WINAPI
SHRegEnumUSKeyA
(
HUSKEY
hUSKey
,
/* [in] */
DWORD
dwIndex
,
LPSTR
pszName
,
LPDWORD
pcchValueNameLen
,
DWORD
dwIndex
,
/* [in] */
LPSTR
pszName
,
/* [out] */
LPDWORD
pcchValueNameLen
,
/* [in/out] */
SHREGENUM_FLAGS
enumRegFlags
)
/* [in] */
{
FIXME
(
"%s stub
\n
"
,
debugstr_a
(
pszName
));
return
ERROR_NO_MORE_ITEMS
;
HKEY
dokey
;
TRACE
(
"(0x%lx,%ld,%p,%p(%ld),%d)
\n
"
,
(
LONG
)
hUSKey
,
dwIndex
,
pszName
,
pcchValueNameLen
,
*
pcchValueNameLen
,
enumRegFlags
);
if
(((
enumRegFlags
==
SHREGENUM_HKCU
)
||
(
enumRegFlags
==
SHREGENUM_DEFAULT
))
&&
(
dokey
=
REG_GetHKEYFromHUSKEY
(
hUSKey
,
REG_HKCU
)))
{
return
RegEnumKeyExA
(
dokey
,
dwIndex
,
pszName
,
pcchValueNameLen
,
0
,
0
,
0
,
0
);
}
if
(((
enumRegFlags
==
SHREGENUM_HKLM
)
||
(
enumRegFlags
==
SHREGENUM_DEFAULT
))
&&
(
dokey
=
REG_GetHKEYFromHUSKEY
(
hUSKey
,
REG_HKLM
)))
{
return
RegEnumKeyExA
(
dokey
,
dwIndex
,
pszName
,
pcchValueNameLen
,
0
,
0
,
0
,
0
);
}
FIXME
(
"no support for SHREGNUM_BOTH
\n
"
);
return
ERROR_INVALID_FUNCTION
;
}
/*************************************************************************
...
...
@@ -577,13 +596,54 @@ LONG WINAPI SHRegEnumUSKeyA(
*/
LONG
WINAPI
SHRegEnumUSKeyW
(
HUSKEY
hUSKey
,
/* [in] */
DWORD
dwIndex
,
LPWSTR
pszName
,
LPDWORD
pcchValueNameLen
,
DWORD
dwIndex
,
/* [in] */
LPWSTR
pszName
,
/* [out] */
LPDWORD
pcchValueNameLen
,
/* [in/out] */
SHREGENUM_FLAGS
enumRegFlags
)
/* [in] */
{
FIXME
(
"%s stub
\n
"
,
debugstr_w
(
pszName
));
return
ERROR_NO_MORE_ITEMS
;
HKEY
dokey
;
TRACE
(
"(0x%lx,%ld,%p,%p(%ld),%d)
\n
"
,
(
LONG
)
hUSKey
,
dwIndex
,
pszName
,
pcchValueNameLen
,
*
pcchValueNameLen
,
enumRegFlags
);
if
(((
enumRegFlags
==
SHREGENUM_HKCU
)
||
(
enumRegFlags
==
SHREGENUM_DEFAULT
))
&&
(
dokey
=
REG_GetHKEYFromHUSKEY
(
hUSKey
,
REG_HKCU
)))
{
return
RegEnumKeyExW
(
dokey
,
dwIndex
,
pszName
,
pcchValueNameLen
,
0
,
0
,
0
,
0
);
}
if
(((
enumRegFlags
==
SHREGENUM_HKLM
)
||
(
enumRegFlags
==
SHREGENUM_DEFAULT
))
&&
(
dokey
=
REG_GetHKEYFromHUSKEY
(
hUSKey
,
REG_HKLM
)))
{
return
RegEnumKeyExW
(
dokey
,
dwIndex
,
pszName
,
pcchValueNameLen
,
0
,
0
,
0
,
0
);
}
FIXME
(
"no support for SHREGNUM_BOTH
\n
"
);
return
ERROR_INVALID_FUNCTION
;
}
/*************************************************************************
* SHRegWriteUSValueA [SHLWAPI.@]
*/
LONG
WINAPI
SHRegWriteUSValueA
(
HUSKEY
hUSKey
,
LPCSTR
pszValue
,
DWORD
dwType
,
LPVOID
pvData
,
DWORD
cbData
,
DWORD
dwFlags
)
{
FIXME
(
"(0x%lx,%s,%ld,%p,%ld,%ld): stub
\n
"
,
(
LONG
)
hUSKey
,
debugstr_a
(
pszValue
),
dwType
,
pvData
,
cbData
,
dwFlags
);
return
ERROR_SUCCESS
;
}
/*************************************************************************
* SHRegWriteUSValueW [SHLWAPI.@]
*/
LONG
WINAPI
SHRegWriteUSValueW
(
HUSKEY
hUSKey
,
LPCWSTR
pszValue
,
DWORD
dwType
,
LPVOID
pvData
,
DWORD
cbData
,
DWORD
dwFlags
)
{
FIXME
(
"(0x%lx,%s,%ld,%p,%ld,%ld): stub
\n
"
,
(
LONG
)
hUSKey
,
debugstr_w
(
pszValue
),
dwType
,
pvData
,
cbData
,
dwFlags
);
return
ERROR_SUCCESS
;
}
/*************************************************************************
...
...
dlls/shlwapi/shlwapi.spec
View file @
ad381592
...
...
@@ -10,25 +10,25 @@ import ntdll.dll
debug_channels (shell)
1 stdcall @(
p
tr ptr) SHLWAPI_1
1 stdcall @(
s
tr ptr) SHLWAPI_1
2 stdcall @(wstr ptr) SHLWAPI_2
3 stub @
4 stub @
5 stub @
6 stub @
7 st
ub @
8 st
ub @
9 st
ub @
7 st
dcall @(long long long) SHLWAPI_7
8 st
dcall @(long long) SHLWAPI_8
9 st
dcall @(long) SHLWAPI_9
10 stub @
11 stub @
12 stub @
13 st
ub @
14 st
ub @
13 st
dcall @(ptr ptr) SHLWAPI_13
14 st
dcall @(ptr ptr) SHLWAPI_14
15 stdcall @(ptr ptr) SHLWAPI_15
16 stdcall @(long long long long) SHLWAPI_16
17 stub @
18 stdcall @(ptr ptr) SHLWAPI_18
19 st
ub @
19 st
dcall @(ptr) SHLWAPI_19
20 stub @
21 stdcall @(ptr long) SHLWAPI_21
22 stdcall @(ptr long) SHLWAPI_22
...
...
@@ -45,7 +45,7 @@ debug_channels (shell)
33 stdcall @(long) SHLWAPI_33
34 stdcall @(long) SHLWAPI_34
35 stdcall @(ptr long ptr) SHLWAPI_35
36 st
ub @
36 st
dcall @(long long long wstr) SHLWAPI_36
37 forward @ user32.CallWindowProcW
38 forward @ user32.CharLowerW
39 forward @ user32.CharLowerBuffW
...
...
@@ -608,8 +608,8 @@ debug_channels (shell)
@ stdcall SHRegQueryUSValueW ( long wstr ptr ptr ptr long ptr long ) SHRegQueryUSValueW
@ stub SHRegSetUSValueA
@ stub SHRegSetUSValueW
@ st
ub
SHRegWriteUSValueA
@ st
ub
SHRegWriteUSValueW
@ st
dcall SHRegWriteUSValueA (long str long ptr long long)
SHRegWriteUSValueA
@ st
dcall SHRegWriteUSValueW (long str long ptr long long)
SHRegWriteUSValueW
@ stdcall SHSetValueA (long str str long ptr long) SHSetValueA
@ stdcall SHSetValueW (long wstr wstr long ptr long) SHSetValueW
@ stdcall StrCSpnA (str str) StrCSpnA
...
...
@@ -675,16 +675,16 @@ debug_channels (shell)
@ stdcall UrlEscapeW(wstr ptr ptr long)UrlEscapeW
@ stdcall UrlGetLocationA(str) UrlGetLocationA
@ stdcall UrlGetLocationW(wstr) UrlGetLocationW
@ st
ub
UrlGetPartA
@ st
ub
UrlGetPartW
@ st
dcall UrlGetPartA(str ptr ptr long long)
UrlGetPartA
@ st
dcall UrlGetPartW(wstr ptr ptr long long)
UrlGetPartW
@ stdcall UrlHashA(str ptr long) UrlHashA
@ stub UrlHashW
@ st
ub
UrlIsA
@ st
ub
UrlIsNoHistoryA
@ st
ub
UrlIsNoHistoryW
@ st
ub
UrlIsOpaqueA
@ st
ub
UrlIsOpaqueW
@ st
ub
UrlIsW
@ st
dcall UrlIsA(str long)
UrlIsA
@ st
dcall UrlIsNoHistoryA(str)
UrlIsNoHistoryA
@ st
dcall UrlIsNoHistoryW(wstr)
UrlIsNoHistoryW
@ st
dcall UrlIsOpaqueA(str)
UrlIsOpaqueA
@ st
dcall UrlIsOpaqueW(wstr)
UrlIsOpaqueW
@ st
dcall UrlIsW(wstr long)
UrlIsW
@ stdcall UrlUnescapeA(str ptr ptr long) UrlUnescapeA
@ stdcall UrlUnescapeW(wstr ptr ptr long) UrlUnescapeW
@ varargs wnsprintfA(ptr long str) wnsprintfA
...
...
dlls/shlwapi/url.c
View file @
ad381592
This diff is collapsed.
Click to expand it.
include/shlwapi.h
View file @
ad381592
...
...
@@ -15,6 +15,30 @@ extern "C" {
#define GCT_WILD 0x0004
#define GCT_SEPARATOR 0x0008
/* These are used by UrlGetPart routine */
typedef
enum
{
URL_PART_NONE
=
0
,
URL_PART_SCHEME
=
1
,
URL_PART_HOSTNAME
,
URL_PART_USERNAME
,
URL_PART_PASSWORD
,
URL_PART_PORT
,
URL_PART_QUERY
,
}
URL_PART
;
#define URL_PARTFLAG_KEEPSCHEME 0x00000001
/* These are used by the UrlIs... routines */
typedef
enum
{
URLIS_URL
,
URLIS_OPAQUE
,
URLIS_NOHISTORY
,
URLIS_FILEURL
,
URLIS_APPLIABLE
,
URLIS_DIRECTORY
,
URLIS_HASQUERY
,
}
URLIS
;
#define URL_WININET_COMPATIBILITY 0x80000000
#define URL_PLUGGABLE_PROTOCOL 0x40000000
#define URL_ESCAPE_UNSAFE 0x20000000
...
...
@@ -186,6 +210,8 @@ LPSTR WINAPI StrChrIA(LPCSTR lpStart, WORD wMatch);
LPWSTR
WINAPI
StrChrIW
(
LPCWSTR
lpStart
,
WCHAR
wMatch
);
#define StrChrI WINELIB_NAME_AW(StrChrI)
INT
WINAPI
StrCmpIW
(
LPCWSTR
lpStr1
,
LPCWSTR
lpStr2
);
INT
WINAPI
StrCmpNA
(
LPCSTR
lpStr1
,
LPCSTR
lpStr2
,
INT
nChar
);
INT
WINAPI
StrCmpNW
(
LPCWSTR
lpStr1
,
LPCWSTR
lpStr2
,
INT
nChar
);
#define StrCmpN WINELIB_NAME_AW(StrCmpN)
...
...
@@ -194,6 +220,12 @@ INT WINAPI StrCmpNIA(LPCSTR lpStr1, LPCSTR lpStr2, INT nChar);
INT
WINAPI
StrCmpNIW
(
LPCWSTR
lpStr1
,
LPCWSTR
lpStr2
,
INT
nChar
);
#define StrCmpNI WINELIB_NAME_AW(StrCmpNI)
INT
WINAPI
StrCmpW
(
LPCWSTR
lpStr1
,
LPCWSTR
lpStr2
);
LPWSTR
WINAPI
StrCpyW
(
LPWSTR
lpStr1
,
LPCWSTR
lpStr2
);
LPWSTR
WINAPI
StrCpyNW
(
LPWSTR
lpStr1
,
LPCWSTR
lpStr2
,
int
n
);
LPSTR
WINAPI
StrDupA
(
LPCSTR
lpSrc
);
LPWSTR
WINAPI
StrDupW
(
LPCWSTR
lpSrc
);
#define StrDup WINELIB_NAME_AW(StrDup)
...
...
@@ -202,6 +234,38 @@ LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf );
LPWSTR
WINAPI
StrFormatByteSizeW
(
DWORD
dw
,
LPWSTR
pszBuf
,
UINT
cchBuf
);
#define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
LPSTR
WINAPI
StrNCatA
(
LPSTR
front
,
LPCSTR
back
,
INT
cchMax
);
LPWSTR
WINAPI
StrNCatW
(
LPWSTR
front
,
LPCWSTR
back
,
INT
cchMax
);
#define StrNCat WINELIB_NAME_AW(StrNCat)
LPSTR
WINAPI
StrRChrA
(
LPCSTR
lpStart
,
LPCSTR
lpEnd
,
WORD
wMatch
);
LPWSTR
WINAPI
StrRChrW
(
LPCWSTR
lpStart
,
LPCWSTR
lpEnd
,
WCHAR
wMatch
);
#define StrRChr WINELIB_NAME_AW(StrRChr)
LPSTR
WINAPI
StrRChrIA
(
LPCSTR
lpStart
,
LPCSTR
lpEnd
,
WORD
wMatch
);
LPWSTR
WINAPI
StrRChrIW
(
LPCWSTR
lpStart
,
LPCWSTR
lpEnd
,
WCHAR
wMatch
);
#define StrRChrI WINELIB_NAME_AW(StrRChrI)
LPSTR
WINAPI
StrStrA
(
LPCSTR
lpFirst
,
LPCSTR
lpSrch
);
LPWSTR
WINAPI
StrStrW
(
LPCWSTR
lpFirst
,
LPCWSTR
lpSrch
);
#define StrStr WINELIB_NAME_AW(StrStr)
LPSTR
WINAPI
StrStrIA
(
LPCSTR
lpFirst
,
LPCSTR
lpSrch
);
LPWSTR
WINAPI
StrStrIW
(
LPCWSTR
lpFirst
,
LPCWSTR
lpSrch
);
#define StrStrI WINELIB_NAME_AW(StrStrI)
int
WINAPI
StrToIntA
(
LPCSTR
lpSrc
);
int
WINAPI
StrToIntW
(
LPCWSTR
lpSrc
);
#define StrToInt WINELIB_NAME_AW(StrToInt)
int
WINAPI
StrToIntExA
(
LPCSTR
lpSrc
,
DWORD
dwFlags
,
LPINT
piRet
);
int
WINAPI
StrToIntExW
(
LPCWSTR
lpSrc
,
DWORD
dwFlags
,
LPINT
piRet
);
#define StrToIntEx WINELIB_NAME_AW(StrToIntEx)
BOOL
WINAPI
StrTrimA
(
LPSTR
pszSrc
,
LPCSTR
pszTrimChars
);
BOOL
WINAPI
StrTrimW
(
LPWSTR
pszSrc
,
LPCWSTR
pszTrimChars
);
#define StrTrim WINELIB_NAME_AW(StrTrim)
INT
WINAPI
wvnsprintfA
(
LPSTR
lpOut
,
INT
cchLimitIn
,
LPCSTR
lpFmt
,
va_list
arglist
);
INT
WINAPI
wvnsprintfW
(
LPWSTR
lpOut
,
INT
cchLimitIn
,
LPCWSTR
lpFmt
,
va_list
arglist
);
#define wvnsprintf WINELIB_NAME_AW(wvnsprintf)
...
...
@@ -273,6 +337,11 @@ typedef enum {
SHREGENUM_BOTH
=
0x11
,
/* do both HKCU and HKLM without dups */
}
SHREGENUM_FLAGS
;
#define SHREGSET_HKCU 0x00000001
/* Write to HKCU if empty */
#define SHREGSET_FORCE_HKCU 0x00000002
/* Write to HKCU */
#define SHREGSET_HKLM 0x00000004
/* Write to HKLM if empty */
#define SHREGSET_FORCE_HKLM 0x00000008
/* Write to HKLM */
#define SHREGSET_DEFAULT (SHREGSET_FORCE_HKCU | SHREGSET_HKLM)
/* Shell User Key Registry interfaces */
...
...
@@ -332,6 +401,11 @@ LONG WINAPI SHRegEnumUSKeyW(HUSKEY hUSKey, DWORD dwIndex, LPWSTR pszName,
SHREGENUM_FLAGS
enumRegFlags
);
#define SHRegEnumUSKey WINELIB_NAME_AW(SHRegEnumUSKey)
LONG
WINAPI
SHRegWriteUSValueA
(
HUSKEY
hUSKey
,
LPCSTR
pszValue
,
DWORD
dwType
,
LPVOID
pvData
,
DWORD
cbData
,
DWORD
dwFlags
);
LONG
WINAPI
SHRegWriteUSValueW
(
HUSKEY
hUSKey
,
LPCWSTR
pszValue
,
DWORD
dwType
,
LPVOID
pvData
,
DWORD
cbData
,
DWORD
dwFlags
);
#define SHRegWriteUSValue WINELIB_NAME_AW(SHRegWriteUSValue)
/* Shell URL interfaces */
...
...
@@ -359,12 +433,30 @@ LPCSTR WINAPI UrlGetLocationA(LPCSTR pszUrl);
LPCWSTR
WINAPI
UrlGetLocationW
(
LPCWSTR
pszUrl
);
#define UrlGetLocation WINELIB_NAME_AW(UrlGetLocation)
HRESULT
WINAPI
UrlGetPartA
(
LPCSTR
pszIn
,
LPSTR
pszOut
,
LPDWORD
pcchOut
,
DWORD
dwPart
,
DWORD
dwFlags
);
HRESULT
WINAPI
UrlGetPartW
(
LPCWSTR
pszIn
,
LPWSTR
pszOut
,
LPDWORD
pcchOut
,
DWORD
dwPart
,
DWORD
dwFlags
);
#define UrlGetPart WINELIB_NAME_AW(UrlGetPart)
BOOL
WINAPI
HashData
(
const
unsigned
char
*
lpSrc
,
INT
nSrcLen
,
unsigned
char
*
lpDest
,
INT
nDestLen
);
HRESULT
WINAPI
UrlHashA
(
LPCSTR
pszUrl
,
unsigned
char
*
lpDest
,
INT
nDestlen
);
HRESULT
WINAPI
UrlHashW
(
LPCWSTR
pszUrl
,
unsigned
char
*
lpDest
,
INT
nDestlen
);
#define UrlHash WINELIB_NAME_AW(UrlHash)
BOOL
WINAPI
UrlIsA
(
LPCSTR
pszUrl
,
URLIS
UrlIs
);
BOOL
WINAPI
UrlIsW
(
LPCWSTR
pszUrl
,
URLIS
UrlIs
);
#define UrlIs WINELIB_NAME_AW(UrlIs)
BOOL
WINAPI
UrlIsNoHistoryA
(
LPCSTR
pszUrl
);
BOOL
WINAPI
UrlIsNoHistoryW
(
LPCWSTR
pszUrl
);
#define UrlIsNoHistory WINELIB_NAME_AW(UrlIsNoHistory)
BOOL
WINAPI
UrlIsOpaqueA
(
LPCSTR
pszUrl
);
BOOL
WINAPI
UrlIsOpaqueW
(
LPCWSTR
pszUrl
);
#define UrlIsOpaque WINELIB_NAME_AW(UrlIsOpaque)
HRESULT
WINAPI
UrlUnescapeA
(
LPCSTR
pszUrl
,
LPSTR
pszUnescaped
,
LPDWORD
pcchUnescaped
,
DWORD
dwFlags
);
HRESULT
WINAPI
UrlUnescapeW
(
LPCWSTR
pszUrl
,
LPWSTR
pszUnescaped
,
...
...
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