Authors: Aric Stewart <aric@codeweavers.com>, Huw D M Davies <hdavies@codeweavers.com>
Added stubs for CheckEscapes[AW] and ExtractAssociatedIconExW.

diff --git a/dlls/shell32/shell.c b/dlls/shell32/shell.c
index ef0c308..7dea61e 100644
--- a/dlls/shell32/shell.c
+++ b/dlls/shell32/shell.c
@@ -650,6 +650,12 @@
 	return ExtractAssociatedIcon16(hInst,lpIconPath,lpiIcon);
 }
 
+HICON WINAPI ExtractAssociatedIconExW(DWORD d1, DWORD d2, DWORD d3, DWORD d4)
+{
+  FIXME("(%lx %lx %lx %lx): stub\n", d1, d2, d3, d4);
+  return 0;
+}
+
 /*************************************************************************
  *				FindEnvironmentString	[SHELL.38]
  *
diff --git a/dlls/shell32/shell32.spec b/dlls/shell32/shell32.spec
index 736139b..4df33ee 100644
--- a/dlls/shell32/shell32.spec
+++ b/dlls/shell32/shell32.spec
@@ -324,8 +324,8 @@
 # version 4.0 (win95)
 # _WIN32_IE >= 0x0200
 #
-@ stub CheckEscapesA
-@ stub CheckEscapesW
+@ stdcall CheckEscapesA(str long long ptr ptr long) CheckEscapesA
+@ stdcall CheckEscapesW(wstr long long ptr ptr long) CheckEscapesW
 @ stdcall CommandLineToArgvW(wstr ptr) CommandLineToArgvW
 @ stdcall Control_FillCache_RunDLL(long long long long)Control_FillCache_RunDLL
 @ stub Control_FillCache_RunDLLA
@@ -340,7 +340,7 @@
 @ stdcall DuplicateIcon(long long) DuplicateIcon
 @ stdcall ExtractAssociatedIconA(long ptr long)ExtractAssociatedIconA 
 @ stub ExtractAssociatedIconExA 
-@ stub ExtractAssociatedIconExW 
+@ stdcall ExtractAssociatedIconExW(long long long long)ExtractAssociatedIconExW 
 @ stub ExtractAssociatedIconW 
 @ stdcall ExtractIconA(long str long)ExtractIconA 
 @ stdcall ExtractIconEx(ptr long ptr ptr long)ExtractIconExAW
diff --git a/dlls/shell32/shellstring.c b/dlls/shell32/shellstring.c
index 8ba159d..1fa9d20 100644
--- a/dlls/shell32/shellstring.c
+++ b/dlls/shell32/shellstring.c
@@ -193,3 +193,43 @@
 	  return OleStrToStrNW (lpOut, nOut, lpIn, nIn);
 	return OleStrToStrNA (lpOut, nOut, lpIn, nIn);
 }
+
+
+/*************************************************************************
+ * CheckEscapes [SHELL32]
+ */
+DWORD WINAPI CheckEscapesA(
+    LPSTR    string,         /* [in]    string to check ??*/
+           DWORD    b,              /* [???]   is 0 */
+           DWORD    c,              /* [???]   is 0 */
+           LPDWORD  d,              /* [???]   is address */
+           LPDWORD  e,              /* [???]   is address */
+           DWORD    handle )        /* [in]    looks like handle but not */
+{
+    FIXME("(%p<%s> %ld %ld %p<%ld> %p<%ld> 0x%08lx) stub\n",
+   string, debugstr_a(string),
+   b,
+   c,
+   d, (d) ? *d : 0xabbacddc,
+   e, (e) ? *e : 0xabbacddd,
+   handle);
+    return 0;
+}
+
+DWORD WINAPI CheckEscapesW(
+    LPWSTR   string,         /* [in]    string to check ??*/
+           DWORD    b,              /* [???]   is 0 */
+           DWORD    c,              /* [???]   is 0 */
+           LPDWORD  d,              /* [???]   is address */
+           LPDWORD  e,              /* [???]   is address */
+           DWORD    handle )        /* [in]    looks like handle but not */
+{
+    FIXME("(%p<%s> %ld %ld %p<%ld> %p<%ld> 0x%08lx) stub\n",
+   string, debugstr_w(string),
+   b,
+   c,
+   d, (d) ? *d : 0xabbacddc,
+   e, (e) ? *e : 0xabbacddd,
+   handle);
+    return 0;
+}