Authors: Francis Beaudet <francis@macadamian.com>, Sylvain St-Germain <sylvain@macadamian.com>, Thuy Nguyen <thuy@macadamian.com>
Lots of new stubs.
diff --git a/controls/edit.c b/controls/edit.c
index efc578a..d9ccbba 100644
--- a/controls/edit.c
+++ b/controls/edit.c
@@ -43,8 +43,6 @@
wrapped line, instead of in front of the next character */
#define EF_USE_SOFTBRK 0x0100 /* Enable soft breaks in text. */
-typedef BOOL32 *LPBOOL32;
-
typedef enum
{
END_0 = 0, /* line ends with terminating '\0' character */
diff --git a/dlls/comctl32/Makefile.in b/dlls/comctl32/Makefile.in
index 5f58694..5bd0b5a 100644
--- a/dlls/comctl32/Makefile.in
+++ b/dlls/comctl32/Makefile.in
@@ -20,6 +20,7 @@
nativefont.c \
pager.c \
progress.c \
+ propsheet.c \
rebar.c \
status.c \
tab.c \
diff --git a/dlls/comctl32/comctl32undoc.c b/dlls/comctl32/comctl32undoc.c
index 3e9fa58..b3f8be4 100644
--- a/dlls/comctl32/comctl32undoc.c
+++ b/dlls/comctl32/comctl32undoc.c
@@ -25,6 +25,15 @@
extern HANDLE32 COMCTL32_hHeap; /* handle to the private heap */
+/*
+ * We put some function prototypes here that don't seem to belong in
+ * any header file. When they find their place, we can remove them.
+ */
+extern LPWSTR __cdecl CRTDLL_wcschr(LPCWSTR, WCHAR);
+extern LPSTR WINAPI lstrrchr(LPCSTR, LPCSTR, WORD);
+extern LPWSTR WINAPI lstrrchrw(LPCWSTR, LPCWSTR, WORD);
+extern LPWSTR WINAPI strstrw(LPCWSTR, LPCWSTR);
+
/**************************************************************************
* DPA_Merge [COMCTL32.11]
@@ -1781,3 +1790,87 @@
return DSA_Destroy (hdsa);
}
+/**************************************************************************
+ * StrCSpnA [COMCTL32.356]
+ *
+ */
+INT32 WINAPI COMCTL32_StrCSpnA( LPCSTR lpStr, LPCSTR lpSet) {
+ return strcspn(lpStr, lpSet);
+}
+
+/**************************************************************************
+ * StrChrW [COMCTL32.358]
+ *
+ */
+LPWSTR WINAPI COMCTL32_StrChrW( LPCWSTR lpStart, WORD wMatch) {
+ return CRTDLL_wcschr(lpStart, wMatch);
+}
+
+/**************************************************************************
+ * StrCmpNA [COMCTL32.352]
+ *
+ */
+INT32 WINAPI COMCTL32_StrCmpNA( LPCSTR lpStr1, LPCSTR lpStr2, int nChar) {
+ return lstrncmp32A(lpStr1, lpStr2, nChar);
+}
+
+/**************************************************************************
+ * StrCmpNW [COMCTL32.360]
+ *
+ */
+INT32 WINAPI COMCTL32_StrCmpNW( LPCWSTR lpStr1, LPCWSTR lpStr2, int nChar) {
+ return lstrncmp32W(lpStr1, lpStr2, nChar);
+}
+
+/**************************************************************************
+ * StrRChrA [COMCTL32.351]
+ *
+ */
+LPSTR WINAPI COMCTL32_StrRChrA( LPCSTR lpStart, LPCSTR lpEnd, WORD wMatch) {
+ return lstrrchr(lpStart, lpEnd, wMatch);
+}
+
+/**************************************************************************
+ * StrRChrW [COMCTL32.359]
+ *
+ */
+LPWSTR WINAPI COMCTL32_StrRChrW( LPCWSTR lpStart, LPCWSTR lpEnd, WORD wMatch) {
+ return lstrrchrw(lpStart, lpEnd, wMatch);
+}
+
+/**************************************************************************
+ * StrStrA [COMCTL32.354]
+ *
+ */
+LPSTR WINAPI COMCTL32_StrStrA( LPCSTR lpFirst, LPCSTR lpSrch) {
+ return strstr(lpFirst, lpSrch);
+}
+
+/**************************************************************************
+ * StrStrW [COMCTL32.362]
+ *
+ */
+LPWSTR WINAPI COMCTL32_StrStrW( LPCWSTR lpFirst, LPCWSTR lpSrch) {
+ return strstrw(lpFirst, lpSrch);
+}
+
+/**************************************************************************
+ * StrSpnW [COMCTL32.364]
+ *
+ */
+INT32 WINAPI COMCTL32_StrSpnW( LPWSTR lpStr, LPWSTR lpSet) {
+ LPWSTR lpLoop = lpStr;
+
+ /* validate ptr */
+ if ((lpStr == 0) || (lpSet == 0)) return 0;
+
+/* while(*lpLoop) { if lpLoop++; } */
+
+ for(; (*lpLoop != 0); lpLoop++)
+ if( CRTDLL_wcschr(lpSet, *(WORD*)lpLoop))
+ return (INT32)(lpLoop-lpStr);
+
+ return (INT32)(lpLoop-lpStr);
+}
+
+
diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c
new file mode 100644
index 0000000..4bfd3af
--- /dev/null
+++ b/dlls/comctl32/propsheet.c
@@ -0,0 +1,65 @@
+/*
+ * Property Sheets
+ *
+ * Copyright 1998 Francis Beaudet
+ *
+ * TODO:
+ * - All the functions are simply stubs
+ *
+ */
+
+#include "windows.h"
+#include "commctrl.h"
+#include "win.h"
+#include "debug.h"
+
+/*****************************************************************
+ * PropertySheet32A (COMCTL32.84)
+ */
+INT32 WINAPI PropertySheet32A(LPCPROPSHEETHEADER32A propertySheetHeader)
+{
+ FIXME(commctrl, "(%p): stub\n", propertySheetHeader);
+
+ return -1;
+}
+
+/*****************************************************************
+ * PropertySheet32W (COMCTL32.85)
+ */
+INT32 WINAPI PropertySheet32W(LPCPROPSHEETHEADER32W propertySheetHeader)
+{
+ FIXME(commctrl, "(%p): stub\n", propertySheetHeader);
+
+ return -1;
+}
+
+/*****************************************************************
+ * CreatePropertySheetPage32A (COMCTL32.19)
+ */
+HPROPSHEETPAGE WINAPI CreatePropertySheetPage32A(LPCPROPSHEETPAGE32A lpPropSheetPage)
+{
+ FIXME(commctrl, "(%p): stub\n", lpPropSheetPage);
+
+ return 0;
+}
+
+/*****************************************************************
+ * CreatePropertySheetPage32W (COMCTL32.20)
+ */
+HPROPSHEETPAGE WINAPI CreatePropertySheetPage32W(LPCPROPSHEETPAGE32W lpPropSheetPage)
+{
+ FIXME(commctrl, "(%p): stub\n", lpPropSheetPage);
+
+ return 0;
+}
+
+/*****************************************************************
+ * DestroyPropertySheetPage32 (COMCTL32.24)
+ */
+BOOL32 WINAPI DestroyPropertySheetPage32(HPROPSHEETPAGE hPropPage)
+{
+ FIXME(commctrl, "(0x%x): stub\n", hPropPage);
+
+ return FALSE;
+}
+
diff --git a/dlls/shell32/shell32_main.c b/dlls/shell32/shell32_main.c
index 83439ff..ad42cdb 100644
--- a/dlls/shell32/shell32_main.c
+++ b/dlls/shell32/shell32_main.c
@@ -287,6 +287,16 @@
return retval;
}
+/*************************************************************************
+ * FindExecutable32W (SHELL32.219)
+ */
+HINSTANCE32 WINAPI FindExecutable32W(LPCWSTR lpFile, LPCWSTR lpDirectory,
+ LPWSTR lpResult)
+{
+ FIXME(shell, "(%p,%p,%p): stub\n", lpFile, lpDirectory, lpResult);
+ return 31; /* default - 'No association was found' */
+}
+
typedef struct
{ LPCSTR szApp;
LPCSTR szOtherStuff;
@@ -650,6 +660,29 @@
lpDirectory, iShowCmd );
}
+/*************************************************************************
+ * ShellExecute32W [SHELL32.294]
+ * from shellapi.h
+ * WINSHELLAPI HINSTANCE APIENTRY ShellExecuteW(HWND hwnd, LPCWSTR lpOperation,
+ * LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd);
+ */
+HINSTANCE32 WINAPI
+ShellExecute32W(
+ HWND32 hwnd,
+ LPCWSTR lpOperation,
+ LPCWSTR lpFile,
+ LPCWSTR lpParameters,
+ LPCWSTR lpDirectory,
+ INT32 nShowCmd) {
+
+ FIXME(shell,": stub\n");
+ return 0;
+}
+
+
+
+
+
/*************************************************************************
* AboutDlgProc32 (not an exported API function)
diff --git a/files/file.c b/files/file.c
index e4afe21..2b22167 100644
--- a/files/file.c
+++ b/files/file.c
@@ -3,6 +3,10 @@
*
* Copyright 1993 John Burton
* Copyright 1996 Alexandre Julliard
+ *
+ * TODO:
+ * Fix the CopyFileEx methods to implement the "extented" functionality.
+ * Right now, they simply call the CopyFile method.
*/
#include <assert.h>
@@ -2005,6 +2009,60 @@
}
+/**************************************************************************
+ * CopyFileEx32A (KERNEL32.858)
+ *
+ * This implementation ignores most of the extra parameters passed-in into
+ * the "ex" version of the method and calls the CopyFile method.
+ * It will have to be fixed eventually.
+ */
+BOOL32 WINAPI CopyFileEx32A(LPCSTR sourceFilename,
+ LPCSTR destFilename,
+ LPPROGRESS_ROUTINE progressRoutine,
+ LPVOID appData,
+ LPBOOL32 cancelFlagPointer,
+ DWORD copyFlags)
+{
+ BOOL32 failIfExists = FALSE;
+
+ /*
+ * Interpret the only flag that CopyFile can interpret.
+ */
+ if ( (copyFlags & COPY_FILE_FAIL_IF_EXISTS) != 0)
+ {
+ failIfExists = TRUE;
+ }
+
+ return CopyFile32A(sourceFilename, destFilename, failIfExists);
+}
+
+/**************************************************************************
+ * CopyFileEx32W (KERNEL32.859)
+ */
+BOOL32 WINAPI CopyFileEx32W(LPCWSTR sourceFilename,
+ LPCWSTR destFilename,
+ LPPROGRESS_ROUTINE progressRoutine,
+ LPVOID appData,
+ LPBOOL32 cancelFlagPointer,
+ DWORD copyFlags)
+{
+ LPSTR sourceA = HEAP_strdupWtoA( GetProcessHeap(), 0, sourceFilename );
+ LPSTR destA = HEAP_strdupWtoA( GetProcessHeap(), 0, destFilename );
+
+ BOOL32 ret = CopyFileEx32A(sourceA,
+ destA,
+ progressRoutine,
+ appData,
+ cancelFlagPointer,
+ copyFlags);
+
+ HeapFree( GetProcessHeap(), 0, sourceA );
+ HeapFree( GetProcessHeap(), 0, destA );
+
+ return ret;
+}
+
+
/***********************************************************************
* SetFileTime (KERNEL32.650)
*/
diff --git a/graphics/metafiledrv/init.c b/graphics/metafiledrv/init.c
index 3aee5e0..8684b0a 100644
--- a/graphics/metafiledrv/init.c
+++ b/graphics/metafiledrv/init.c
@@ -196,6 +196,23 @@
return CreateMetaFile16( filename );
}
+/**********************************************************************
+ * CreateMetaFile32W (GDI32.52)
+ */
+HDC32 WINAPI CreateMetaFile32W(LPCWSTR filename)
+{
+ LPSTR filenameA;
+ HDC32 hReturnDC;
+
+ filenameA = HEAP_strdupWtoA( GetProcessHeap(), 0, filename );
+
+ hReturnDC = CreateMetaFile32A(filenameA);
+
+ HeapFree( GetProcessHeap(), 0, filenameA );
+
+ return hReturnDC;
+}
+
static DC *METAFILE_CloseMetaFile( HDC32 hdc )
{
DC *dc;
@@ -310,8 +327,8 @@
**********************************************************************/
-/*
- need wide version as well
+/**********************************************************************
+ * CreateEnhMetaFile32A (GDI32.41)
*/
HDC32 WINAPI CreateEnhMetaFile32A(
HDC32 hdc, /* optional reference DC */
@@ -351,9 +368,45 @@
TRACE(metafile, "returning %04x\n", dc->hSelf);
return dc->hSelf;
#endif
+
+ FIXME(metafile,
+ "(0x%lx,%s,%p,%s): stub\n",
+ hdc,
+ filename,
+ rect,
+ description);
+
return 0;
}
+/**********************************************************************
+ * CreateEnhMetaFile32W (GDI32.42)
+ */
+HDC32 WINAPI CreateEnhMetaFile32W(
+ HDC32 hdc, /* optional reference DC */
+ LPCWSTR filename, /* optional filename for disk metafiles */
+ const RECT32* rect, /* optional bounding rectangle */
+ LPCWSTR description /* optional description */
+ )
+{
+ LPSTR filenameA;
+ LPSTR descriptionA;
+ HDC32 hReturnDC;
+
+ filenameA = HEAP_strdupWtoA( GetProcessHeap(), 0, filename );
+ descriptionA = HEAP_strdupWtoA( GetProcessHeap(), 0, description );
+
+ hReturnDC = CreateEnhMetaFile32A(hdc,
+ filenameA,
+ rect,
+ descriptionA);
+
+ HeapFree( GetProcessHeap(), 0, filenameA );
+ HeapFree( GetProcessHeap(), 0, descriptionA );
+
+ return hReturnDC;
+}
+
HENHMETAFILE32 WINAPI CloseEnhMetaFile32(
HDC32 hdc /* metafile DC */
)
diff --git a/graphics/painting.c b/graphics/painting.c
index 6992cf7..df9b38e 100644
--- a/graphics/painting.c
+++ b/graphics/painting.c
@@ -126,6 +126,43 @@
dc->funcs->pArc(dc,left,top,right,bottom,xstart,ystart,xend,yend);
}
+/***********************************************************************
+ * ArcTo32 (GDI32.8)
+ */
+BOOL32 WINAPI ArcTo32( HDC32 hdc,
+ INT32 left, INT32 top,
+ INT32 right, INT32 bottom,
+ INT32 xstart, INT32 ystart,
+ INT32 xend, INT32 yend )
+{
+ BOOL32 result;
+
+ /*
+ * According to the documentation, a line is drawn from the current
+ * position to the starting point of the arc.
+ */
+ LineTo32(hdc, xstart, ystart);
+
+ /*
+ * Then the arc is drawn.
+ */
+ result = Arc32(hdc,
+ left, top,
+ right, bottom,
+ xstart, ystart,
+ xend, yend);
+
+ /*
+ * If no error occured, the current position is moved to the ending
+ * point of the arc.
+ */
+ if (result)
+ {
+ MoveToEx32(hdc, xend, yend, NULL);
+ }
+
+ return result;
+}
/***********************************************************************
* Pie16 (GDI.26)
@@ -1144,3 +1181,32 @@
return ret;
}
+
+/*************************************************************************
+ * StartDoc32W [GDI32.348]
+ *
+ */
+INT32 WINAPI
+StartDoc32W(HDC32 hdc ,const DOCINFO32W* doc) {
+ FIXME(gdi,"stub\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return 0; /* failure*/
+}
+
+/******************************************************************************
+ * PolylineTo32 [GDI32.277]
+ */
+BOOL32 WINAPI PolylineTo32(HDC32 hdc, const POINT32 *lppt, DWORD cCount)
+{
+ FIXME(gdi, "(%d,%p,%ld): stub\n", hdc, lppt, cCount);
+ return 1;
+}
+
+/******************************************************************************
+ * AbortDoc32 [GDI32.0]
+ */
+INT32 WINAPI AbortDoc32(HDC32 hdc)
+{
+ FIXME(gdi, "(%d): stub\n", hdc);
+ return 1;
+}
diff --git a/if1632/ddeml.spec b/if1632/ddeml.spec
index 34aa4f9..39e8691 100644
--- a/if1632/ddeml.spec
+++ b/if1632/ddeml.spec
@@ -14,11 +14,11 @@
DdeClientTransaction16
12 pascal DdeAbandonTransaction(long word long) DdeAbandonTransaction
13 pascal DdePostAdvise(long word word) DdePostAdvise16
-14 pascal DdeCreateDataHandle(long ptr long long word word word) DdeCreateDataHandle
+14 pascal DdeCreateDataHandle(long ptr long long word word word) DdeCreateDataHandle16
15 pascal DdeAddData(word ptr long long) DdeAddData
16 pascal DdeGetData(word ptr long long) DdeGetData16
-17 pascal DdeAccessData(word ptr) DdeAccessData
-18 pascal DdeUnaccessData(word) DdeUnaccessData
+17 pascal DdeAccessData(word ptr) DdeAccessData16
+18 pascal DdeUnaccessData(word) DdeUnaccessData16
19 pascal16 DdeFreeDataHandle(long) DdeFreeDataHandle16
20 pascal16 DdeGetLastError(long) DdeGetLastError16
21 pascal DdeCreateStringHandle(long str s_word) DdeCreateStringHandle16
@@ -26,8 +26,8 @@
23 stub DdeQueryString #(long word ptr long word) DdeQueryString
24 pascal16 DdeKeepStringHandle(long long) DdeKeepStringHandle16
-26 pascal DdeEnableCallback(long word word) DdeEnableCallback
+26 pascal DdeEnableCallback(long word word) DdeEnableCallback16
27 pascal DdeNameService(long long long s_word) DdeNameService16
-36 pascal DdeCmpStringHandles(word word) DdeCmpStringHandles
+36 pascal DdeCmpStringHandles(word word) DdeCmpStringHandles16
37 pascal DdeReconnect(long) DdeReconnect
diff --git a/include/commctrl.h b/include/commctrl.h
index 1bbf6b6..fc6b1a8 100644
--- a/include/commctrl.h
+++ b/include/commctrl.h
@@ -2503,8 +2503,182 @@
/* type and functionality of last parameter is still unknown */
LRESULT WINAPI COMCTL32_SendNotifyEx (HWND32, HWND32, UINT32, LPNMHDR, DWORD);
+/*
+ * Property sheet support (callback procs)
+ */
+struct _PROPSHEETPAGE32A; /** need to forward declare those structs **/
+struct _PROPSHEETPAGE32W;
+
+typedef UINT32 (CALLBACK *LPFNPSPCALLBACK32A)(HWND32, UINT32, struct _PROPSHEETPAGE32A*);
+typedef UINT32 (CALLBACK *LPFNPSPCALLBACK32W)(HWND32, UINT32, struct _PROPSHEETPAGE32W*);
+typedef INT32 (CALLBACK *PFNPROPSHEETCALLBACK32)(HWND32, UINT32, LPARAM);
+
+/*
+ * Property sheet support (structures)
+ */
+typedef struct _PROPSHEETPAGE32A
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ HINSTANCE32 hInstance;
+ union
+ {
+ LPCSTR lpszTemplate;
+ LPCDLGTEMPLATE pResource;
+ }u;
+ union
+ {
+ HICON32 hIcon;
+ LPCSTR pszIcon;
+ }u1;
+ LPCSTR pszTitle;
+ DLGPROC32 pfnDlgProc;
+ LPARAM lParam;
+ LPFNPSPCALLBACK32A pfnCallback;
+ UINT32* pcRefParent;
+ LPCWSTR pszHeaderTitle;
+ LPCWSTR pszHeaderSubTitle;
+} PROPSHEETPAGE32A, *LPPROPSHEETPAGE32A;
+
+typedef const PROPSHEETPAGE32A *LPCPROPSHEETPAGE32A;
+
+typedef struct _PROPSHEETPAGE32W
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ HINSTANCE32 hInstance;
+ union
+ {
+ LPCWSTR lpszTemplate;
+ LPCDLGTEMPLATE pResource;
+ }u;
+ union
+ {
+ HICON32 hIcon;
+ LPCWSTR pszIcon;
+ }u2;
+ LPCWSTR pszTitle;
+ DLGPROC32 pfnDlgProc;
+ LPARAM lParam;
+ LPFNPSPCALLBACK32W pfnCallback;
+ UINT32* pcRefParent;
+ LPCWSTR pszHeaderTitle;
+ LPCWSTR pszHeaderSubTitle;
+} PROPSHEETPAGE32W, *LPPROPSHEETPAGE32W;
+
+typedef const PROPSHEETPAGE32W *LPCPROPSHEETPAGE32W;
+
+struct _PSP;
+typedef struct _PSP *HPROPSHEETPAGE;
+
+
+typedef struct _PROPSHEETHEADER32A
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ HWND32 hwndParent;
+ HINSTANCE32 hInstance;
+ union
+ {
+ HICON32 hIcon;
+ LPCSTR pszIcon;
+ }u;
+ LPCSTR pszCaption;
+ UINT32 nPages;
+ union
+ {
+ UINT32 nStartPage;
+ LPCSTR pStartPage;
+ }u2;
+ union
+ {
+ LPCPROPSHEETPAGE32A ppsp;
+ HPROPSHEETPAGE* phpage;
+ }u3;
+ PFNPROPSHEETCALLBACK32 pfnCallback;
+ union
+ {
+ HBITMAP32 hbmWatermark;
+ LPCSTR pszbmWatermark;
+ }u4;
+ HPALETTE32 hplWatermark;
+ union
+ {
+ HBITMAP32 hbmHeader;
+ LPCSTR pszbmHeader;
+ }u5;
+} PROPSHEETHEADER32A, *LPPROPSHEETHEADER32A;
+
+typedef const PROPSHEETHEADER32A *LPCPROPSHEETHEADER32A;
+
+typedef struct _PROPSHEETHEADER32W
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ HWND32 hwndParent;
+ HINSTANCE32 hInstance;
+ union
+ {
+ HICON32 hIcon;
+ LPCSTR pszIcon;
+ }u;
+ LPCWSTR pszCaption;
+ UINT32 nPages;
+ union
+ {
+ UINT32 nStartPage;
+ LPCWSTR pStartPage;
+ }u2;
+ union
+ {
+ LPCPROPSHEETPAGE32W ppsp;
+ HPROPSHEETPAGE* phpage;
+ }u3;
+ PFNPROPSHEETCALLBACK32 pfnCallback;
+ union
+ {
+ HBITMAP32 hbmWatermark;
+ LPCWSTR pszbmWatermark;
+ }u4;
+ HPALETTE32 hplWatermark;
+ union
+ {
+ HBITMAP32 hbmHeader;
+ LPCWSTR pszbmHeader;
+ }u5;
+} PROPSHEETHEADER32W, *LPPROPSHEETHEADER32W;
+
+typedef const PROPSHEETHEADER32W *LPCPROPSHEETHEADER32W;
+
+
+/*
+ * Property sheet support (methods)
+ */
+INT32 WINAPI PropertySheet32A(LPCPROPSHEETHEADER32A);
+INT32 WINAPI PropertySheet32W(LPCPROPSHEETHEADER32W);
+#define PropertySheet WINELIB_NAME(PropertySheet)
+HPROPSHEETPAGE WINAPI CreatePropertySheetPage32A(LPCPROPSHEETPAGE32A);
+HPROPSHEETPAGE WINAPI CreatePropertySheetPage32W(LPCPROPSHEETPAGE32W);
+#define CreatePropertySheetPage WINELIB_NAME_AW(CreatePropertySheetPage)
+BOOL32 WINAPI DestroyPropertySheetPage32(HPROPSHEETPAGE hPropPage);
+#define DestroyPropertySheetPage WINELIB_NAME(DestroyPropertySheetPage)
+
+/*
+ * Property sheet support (UNICODE-WineLib)
+ */
+DECL_WINELIB_TYPE_AW(PROPSHEETPAGE)
+DECL_WINELIB_TYPE_AW(LPPROPSHEETPAGE)
+DECL_WINELIB_TYPE_AW(LPCPROPSHEETPAGE)
+DECL_WINELIB_TYPE_AW(PROPSHEETHEADER)
+DECL_WINELIB_TYPE_AW(LPPROPSHEETHEADER)
+DECL_WINELIB_TYPE_AW(LPCPROPSHEETHEADER)
+DECL_WINELIB_TYPE_AW(LPFNPSPCALLBACK)
+DECL_WINELIB_TYPE(PFNPROPSHEETCALLBACK)
+
#ifdef __cplusplus
}
#endif
#endif /* __WINE_COMMCTRL_H */
+
+
diff --git a/include/ddeml.h b/include/ddeml.h
index 375448c..0f58384 100644
--- a/include/ddeml.h
+++ b/include/ddeml.h
@@ -57,6 +57,9 @@
HCONV WINAPI DdeQueryNextServer16(HCONVLIST, HCONV);
HCONV WINAPI DdeQueryNextServer32(HCONVLIST, HCONV);
#define DdeQueryNextServer WINELIB_NAME(DdeQueryNextServer)
+DWORD WINAPI DdeQueryString32A(DWORD, HSZ, LPSTR, DWORD, INT32);
+DWORD WINAPI DdeQueryString32W(DWORD, HSZ, LPWSTR, DWORD, INT32);
+#define DdeQueryString WINELIB_NAME(DdeQueryString)
BOOL16 WINAPI DdeDisconnectList16(HCONVLIST);
BOOL32 WINAPI DdeDisconnectList32(HCONVLIST);
#define DdeDisConnectList WINELIB_NAME(DdeDisconnectList)
@@ -67,7 +70,9 @@
BOOL32 WINAPI DdeDisconnect32(HCONV);
#define DdeDisconnect WINELIB_NAME(DdeDisconnect)
BOOL16 WINAPI DdeSetUserHandle(HCONV,DWORD,DWORD);
-HDDEDATA WINAPI DdeCreateHandleData(DWORD,LPBYTE,DWORD,DWORD,HSZ,UINT16,UINT16);
+HDDEDATA WINAPI DdeCreateDataHandle16(DWORD,LPBYTE,DWORD,DWORD,HSZ,UINT16,UINT16);
+HDDEDATA WINAPI DdeCreateDataHandle32(DWORD,LPBYTE,DWORD,DWORD,HSZ,UINT32,UINT32);
+#define DdeCreateDataHandle WINELIB_NAME(DdeCreateDataHandle)
HCONV WINAPI DdeReconnect(HCONV);
HSZ WINAPI DdeCreateStringHandle16(DWORD,LPCSTR,INT16);
HSZ WINAPI DdeCreateStringHandle32A(DWORD,LPCSTR,INT32);
@@ -93,10 +98,18 @@
#define DdePostAdvise WINELIB_NAME(DdePostAdvise)
HDDEDATA WINAPI DdeAddData(HDDEDATA,LPBYTE,DWORD,DWORD);
DWORD WINAPI DdeGetData(HDDEDATA,LPBYTE,DWORD,DWORD);
-LPBYTE WINAPI DdeAccessData(HDDEDATA,LPDWORD);
-BOOL16 WINAPI DdeUnaccessData(HDDEDATA);
-BOOL16 WINAPI DdeEnableCallback(DWORD,HCONV,UINT16);
-int WINAPI DdeCmpStringHandles(HSZ,HSZ);
+LPBYTE WINAPI DdeAccessData16(HDDEDATA,LPDWORD);
+LPBYTE WINAPI DdeAccessData32(HDDEDATA,LPDWORD);
+#define DdeAccessData WINELIB_NAME(DdeAccessData)
+BOOL16 WINAPI DdeUnaccessData16(HDDEDATA);
+BOOL32 WINAPI DdeUnaccessData32(HDDEDATA);
+#define DdeUnaccessData WINELIB_NAME(DdeUnaccessData)
+BOOL16 WINAPI DdeEnableCallback16(DWORD,HCONV,UINT16);
+BOOL32 WINAPI DdeEnableCallback32(DWORD,HCONV,UINT32);
+#define DdeEnableCallback WINELIB_NAME(DdeEnableCallback)
+int WINAPI DdeCmpStringHandles16(HSZ,HSZ);
+int WINAPI DdeCmpStringHandles32(HSZ,HSZ);
+#define DdeCmpStringHandles WINELIB_NAME(DdeCmpStringHandles)
HDDEDATA WINAPI DdeNameService16(DWORD,HSZ,HSZ,UINT16);
diff --git a/include/shlobj.h b/include/shlobj.h
index 459d3f7..ae5af71 100644
--- a/include/shlobj.h
+++ b/include/shlobj.h
@@ -543,10 +543,6 @@
typedef const FOLDERSETTINGS * LPCFOLDERSETTINGS;
-/* FIXME; the next two lines are propersheet related, move to prsht.h when created */
-struct _PSP;
-typedef struct _PSP FAR* HPROPSHEETPAGE;
-
typedef BOOL32 (CALLBACK FAR * LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM);
typedef BOOL32 (CALLBACK FAR * LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE,LPARAM);
diff --git a/include/windows.h b/include/windows.h
index 62537ee..30134ae 100644
--- a/include/windows.h
+++ b/include/windows.h
@@ -951,7 +951,6 @@
#define IDCLOSE 8
#define IDHELP 9
-
typedef struct
{
HWND16 hwnd;
@@ -2392,6 +2391,11 @@
#define SEM_NOALIGNMENTFAULTEXCEPT 0x0004
#define SEM_NOOPENFILEERRORBOX 0x8000
+/* CopyFileEx flags */
+#define COPY_FILE_FAIL_IF_EXISTS 0x00000001
+#define COPY_FILE_RESTARTABLE 0x00000002
+#define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004
+
/* GetTempFileName() Flags */
#define TF_FORCEDRIVE 0x80
@@ -6580,6 +6584,14 @@
}DLGITEMTEMPLATE, *LPDLGITEMTEMPLATE;
typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATE;
+/*
+ * This one seems to be a Win32 only definition. It also is defined with
+ * WINAPI instead of CALLBACK in the windows headers.
+ */
+typedef DWORD (WINAPI *LPPROGRESS_ROUTINE)(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER,
+ LARGE_INTEGER, DWORD, DWORD, HANDLE32,
+ HANDLE32, LPVOID);
+
#pragma pack(4)
/* Declarations for functions that exist only in Win16 */
@@ -6764,6 +6776,9 @@
BOOL32 WINAPI CopyFile32A(LPCSTR,LPCSTR,BOOL32);
BOOL32 WINAPI CopyFile32W(LPCWSTR,LPCWSTR,BOOL32);
#define CopyFile WINELIB_NAME_AW(CopyFile)
+BOOL32 WINAPI CopyFileEx32A(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL32, DWORD);
+BOOL32 WINAPI CopyFileEx32W(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL32, DWORD);
+#define CopyFileEx WINELIB_NAME_AW(CopyFileEx)
INT32 WINAPI CompareFileTime(LPFILETIME,LPFILETIME);
BOOL32 WINAPI ControlService(HANDLE32,DWORD,LPSERVICE_STATUS);
HANDLE32 WINAPI CreateEvent32A(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCSTR);
@@ -6986,6 +7001,9 @@
BOOL32 WINAPI IsProcessorFeaturePresent(DWORD);
BOOL32 WINAPI IsWindowUnicode(HWND32);
BOOL32 WINAPI IsValidLocale(DWORD,DWORD);
+HKL32 WINAPI LoadKeyboardLayout32A(LPCSTR,UINT32);
+HKL32 WINAPI LoadKeyboardLayout32W(LPCWSTR,UINT32);
+#define LoadKeyboardLayout WINELIB_NAME_AW(LoadKeyboardLayout)
BOOL32 WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
BOOL32 WINAPI LockFile(HFILE32,DWORD,DWORD,DWORD,DWORD);
BOOL32 WINAPI LookupPrivilegeValue32A(LPCSTR,LPCSTR,LPVOID);
diff --git a/include/wintypes.h b/include/wintypes.h
index f265c42..561f16d 100644
--- a/include/wintypes.h
+++ b/include/wintypes.h
@@ -138,6 +138,7 @@
typedef UINT32 *LPUINT32;
typedef HKEY *LPHKEY;
typedef FLOAT *LPFLOAT;
+typedef BOOL32 *LPBOOL32;
/* Special case: a segmented pointer is just a pointer in the user's code. */
diff --git a/memory/string.c b/memory/string.c
index e7c83cc..a0a89d7 100644
--- a/memory/string.c
+++ b/memory/string.c
@@ -52,6 +52,12 @@
#define OEM_TO_ANSI(ch) (STRING_Oem2Ansi[(unsigned char)(ch)])
#define ANSI_TO_OEM(ch) (STRING_Ansi2Oem[(unsigned char)(ch)])
+/* Internaly used by strchr family functions */
+static BOOL32 ChrCmpA( WORD word1, WORD word2);
+static BOOL32 ChrCmpW( WORD word1, WORD word2);
+
+extern LPWSTR __cdecl CRTDLL_wcschr(LPCWSTR str,WCHAR xchar);
+
/***********************************************************************
* hmemcpy (KERNEL.348)
@@ -663,3 +669,98 @@
MultiByteToWideChar(CP_ACP,0,pLocal,-1,pWide,dwChars);
return lstrlen32W(pWide);
}
+
+
+/***********************************************************************
+ * lstrrchr (Not a Windows API)
+ *
+ * This is the implementation meant to be invoked form within
+ * COMCTL32_StrRChrA and shell32(TODO)...
+ *
+ * Return a pointer to the last occurence of wMatch in lpStart
+ * not looking further than lpEnd...
+ */
+LPSTR WINAPI lstrrchr( LPCSTR lpStart, LPCSTR lpEnd, WORD wMatch )
+{
+ LPCSTR lpGotIt = NULL;
+
+ TRACE(string,"(%s, %s)\n", lpStart, lpEnd);
+
+ if (!lpEnd) lpEnd = lpStart + strlen(lpStart);
+
+ for(; lpStart < lpEnd; lpStart = CharNext32A(lpStart))
+ if (!ChrCmpA( GET_WORD(lpStart), wMatch))
+ lpGotIt = lpStart;
+
+ return ((LPSTR)lpGotIt);
+}
+
+/***********************************************************************
+ * lstrrchrw (Not a Windows API)
+ *
+ * This is the implementation meant to be invoked form within
+ * COMCTL32_StrRChrW and shell32(TODO)...
+ *
+ * Return a pointer to the last occurence of wMatch in lpStart
+ * not looking further than lpEnd...
+ */
+LPWSTR WINAPI lstrrchrw( LPCWSTR lpStart, LPCWSTR lpEnd, WORD wMatch )
+{
+ LPCWSTR lpGotIt = NULL;
+
+ TRACE(string,"(%p, %p, %c)\n", lpStart, lpEnd, wMatch);
+ if (!lpEnd) lpEnd = lpStart + lstrlen32W(lpStart);
+
+ for(; lpStart < lpEnd; lpStart = CharNext32W(lpStart))
+ if (!ChrCmpW( GET_WORD(lpStart), wMatch))
+ lpGotIt = lpStart;
+
+ return (LPWSTR)lpGotIt;
+}
+
+/***********************************************************************
+ * strstrw (Not a Windows API)
+ *
+ * This is the implementation meant to be invoked form within
+ * COMCTL32_StrStrW and shell32(TODO)...
+ *
+ */
+LPWSTR WINAPI strstrw( LPCWSTR lpFirst, LPCWSTR lpSrch) {
+ UINT32 uSrchLen = (UINT32)lstrlen32W(lpSrch);
+ WORD wMatchBeg = *(WORD*)lpSrch;
+
+ TRACE(string,"(%p, %p)\n", lpFirst, lpSrch);
+
+ for(;
+ ((lpFirst=CRTDLL_wcschr(lpFirst, wMatchBeg))!=0) &&
+ lstrncmp32W(lpFirst, lpSrch, uSrchLen);
+ lpFirst++) {
+ continue;
+ }
+ return (LPWSTR)lpFirst;
+}
+
+
+/***********************************************************************
+ * ChrCmpA
+ * This fuction returns FALSE if both words match, TRUE otherwise...
+ */
+static BOOL32 ChrCmpA( WORD word1, WORD word2) {
+ if (LOBYTE(word1) == LOBYTE(word2)) {
+ if (IsDBCSLeadByte32(LOBYTE(word1))) {
+ return (word1 != word2);
+ }
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/***********************************************************************
+ * ChrCmpW
+ * This fuction returns FALSE if both words match, TRUE otherwise...
+ */
+static BOOL32 ChrCmpW( WORD word1, WORD word2) {
+ return (word1 != word2);
+}
+
+
diff --git a/misc/ddeml.c b/misc/ddeml.c
index fdd4215..7f36086 100644
--- a/misc/ddeml.c
+++ b/misc/ddeml.c
@@ -145,6 +145,38 @@
return 0;
}
+/*****************************************************************
+ * DdeQueryString32A [USER32.113]
+ */
+DWORD WINAPI DdeQueryString32A(DWORD idInst, HSZ hsz, LPSTR psz, DWORD cchMax, INT32 iCodePage)
+{
+ FIXME(ddeml,
+ "(%ld, 0x%lx, %p, %ld, %d): stub\n",
+ idInst,
+ hsz,
+ psz,
+ cchMax,
+ iCodePage);
+
+ return 0;
+}
+
+/*****************************************************************
+ * DdeQueryString32W [USER32.114]
+ */
+DWORD WINAPI DdeQueryString32W(DWORD idInst, HSZ hsz, LPWSTR psz, DWORD cchMax, INT32 iCodePage)
+{
+ FIXME(ddeml,
+ "(%ld, 0x%lx, %p, %ld, %d): stub\n",
+ idInst,
+ hsz,
+ psz,
+ cchMax,
+ iCodePage);
+
+ return 0;
+}
+
/*****************************************************************
* DdeDisconnectList (DDEML.6)
@@ -211,14 +243,38 @@
}
/*****************************************************************
- * DdeCreateDataHandle (DDEML.14)
+ * DdeCreateDataHandle16 (DDEML.14)
*/
-HDDEDATA WINAPI DdeCreateDataHandle( DWORD idInst, LPBYTE pSrc, DWORD cb,
+HDDEDATA WINAPI DdeCreateDataHandle16( DWORD idInst, LPBYTE pSrc, DWORD cb,
DWORD cbOff, HSZ hszItem, UINT16 wFmt,
UINT16 afCmd )
{
- FIXME( ddeml, "(%ld,%p,%ld,%ld,%ld,%d,%d): stub\n",idInst,pSrc,cb,cbOff,
- hszItem, wFmt, afCmd );
+ return DdeCreateDataHandle32(idInst,
+ pSrc,
+ cb,
+ cbOff,
+ hszItem,
+ wFmt,
+ afCmd);
+}
+
+/*****************************************************************
+ * DdeCreateDataHandle32 (USER32.94)
+ */
+HDDEDATA WINAPI DdeCreateDataHandle32( DWORD idInst, LPBYTE pSrc, DWORD cb,
+ DWORD cbOff, HSZ hszItem, UINT32 wFmt,
+ UINT32 afCmd )
+{
+ FIXME( ddeml,
+ "(%ld,%p,%ld,%ld,0x%lx,%d,%d): stub\n",
+ idInst,
+ pSrc,
+ cb,
+ cbOff,
+ hszItem,
+ wFmt,
+ afCmd );
+
return 0;
}
@@ -448,29 +504,55 @@
/*****************************************************************
- * DdeAccessData (DDEML.17)
+ * DdeAccessData16 (DDEML.17)
*/
-LPBYTE WINAPI DdeAccessData( HDDEDATA hData, LPDWORD pcbDataSize )
+LPBYTE WINAPI DdeAccessData16( HDDEDATA hData, LPDWORD pcbDataSize )
{
- FIXME( ddeml, "empty stub\n" );
+ return DdeAccessData32(hData, pcbDataSize);
+}
+
+/*****************************************************************
+ * DdeAccessData32 (USER32.88)
+ */
+LPBYTE WINAPI DdeAccessData32( HDDEDATA hData, LPDWORD pcbDataSize )
+{
+ FIXME( ddeml, "(%ld,%p): stub\n", hData, pcbDataSize);
return 0;
}
/*****************************************************************
- * DdeUnaccessData (DDEML.18)
+ * DdeUnaccessData16 (DDEML.18)
*/
-BOOL16 WINAPI DdeUnaccessData( HDDEDATA hData )
+BOOL16 WINAPI DdeUnaccessData16( HDDEDATA hData )
{
- FIXME( ddeml, "empty stub\n" );
+ return DdeUnaccessData32(hData);
+}
+
+/*****************************************************************
+ * DdeUnaccessData32 (USER32.118)
+ */
+BOOL32 WINAPI DdeUnaccessData32( HDDEDATA hData )
+{
+ FIXME( ddeml, "(0x%lx): stub\n", hData);
+
return 0;
}
/*****************************************************************
- * DdeEnableCallback (DDEML.26)
+ * DdeEnableCallback16 (DDEML.26)
*/
-BOOL16 WINAPI DdeEnableCallback( DWORD idInst, HCONV hConv, UINT16 wCmd )
+BOOL16 WINAPI DdeEnableCallback16( DWORD idInst, HCONV hConv, UINT16 wCmd )
{
- FIXME( ddeml, "empty stub\n" );
+ return DdeEnableCallback32(idInst, hConv, wCmd);
+}
+
+/*****************************************************************
+ * DdeEnableCallback32 (USER32.99)
+ */
+BOOL32 WINAPI DdeEnableCallback32( DWORD idInst, HCONV hConv, UINT32 wCmd )
+{
+ FIXME( ddeml, "(%ld, 0x%lx, %d) stub\n", idInst, hConv, wCmd);
+
return 0;
}
@@ -531,11 +613,19 @@
/*****************************************************************
- * DdeCmpStringHandles (DDEML.36)
+ * DdeCmpStringHandles16 (DDEML.36)
*/
-int WINAPI DdeCmpStringHandles( HSZ hsz1, HSZ hsz2 )
+int WINAPI DdeCmpStringHandles16( HSZ hsz1, HSZ hsz2 )
{
- FIXME( ddeml, "empty stub\n" );
+ return DdeCmpStringHandles32(hsz1, hsz2);
+}
+
+/*****************************************************************
+ * DdeCmpStringHandles32 (USER32.91)
+ */
+int WINAPI DdeCmpStringHandles32( HSZ hsz1, HSZ hsz2 )
+{
+ FIXME( ddeml, "(0x%lx, 0x%lx): stub\n", hsz1, hsz2 );
return 0;
}
diff --git a/misc/network.c b/misc/network.c
index 85e3095..de63eaf 100644
--- a/misc/network.c
+++ b/misc/network.c
@@ -761,3 +761,64 @@
FIXME(mpr,"(0x%08lx),stub!\n",x);
return 0;
}
+
+/*****************************************************************
+ * WNetCancelConnection232A [MPR.53]
+ */
+DWORD WINAPI WNetCancelConnection232A(
+ LPCSTR lpName,
+ DWORD dwFlags,
+ BOOL32 fForce) {
+
+ FIXME(wnet,": stub\n");
+ return WN_SUCCESS;
+}
+
+/*****************************************************************
+ * WNetCancelConnection232W [MPR.54]
+ */
+DWORD WINAPI WNetCancelConnection232W(
+ LPCWSTR lpName,
+ DWORD dwFlags,
+ BOOL32 fForce) {
+
+ FIXME(wnet,": stub\n");
+ return WN_SUCCESS;
+}
+
+/*****************************************************************
+ * WNetCancelConnection32A [MPR.55]
+ */
+DWORD WINAPI WNetCancelConnection32A(
+ LPCSTR lpName,
+ DWORD dwFlags,
+ BOOL32 fForce) {
+
+ FIXME(wnet,": stub\n");
+ return WN_SUCCESS;
+}
+
+/*****************************************************************
+ * WNetCancelConnection32W [MPR.56]
+ */
+DWORD WINAPI WNetCancelConnection32W(
+ LPCWSTR lpName,
+ DWORD dwFlags,
+ BOOL32 fForce) {
+
+ FIXME(wnet,": stub\n");
+ return WN_SUCCESS;
+}
+
+/*****************************************************************
+ * WNetGetUser32W [MPR.87]
+ */
+DWORD WINAPI WNetGetUser32W(
+ LPCWSTR lpName,
+ LPWSTR lpUserName,
+ LPDWORD lpnLength) {
+
+ FIXME(wnet,": stub\n");
+ SetLastError(WN_NO_NETWORK);
+ return WN_NO_NETWORK;
+}
diff --git a/misc/printdrv.c b/misc/printdrv.c
index 1af6744..50bb32b 100644
--- a/misc/printdrv.c
+++ b/misc/printdrv.c
@@ -293,6 +293,18 @@
}
+/*****************************************************************************
+ * DeviceCapabilities32W
+ */
+INT32 WINAPI DeviceCapabilities32W(LPCWSTR pDevice, LPCWSTR pPort,
+ WORD fwCapability, LPWSTR pOutput,
+ const DEVMODE32W *pDevMode)
+{
+ FIXME(print,"(%p,%p,%d,%p,%p): stub\n",
+ pDevice, pPort, fwCapability, pOutput, pDevMode);
+ return -1;
+}
+
/******************************************************************
* DocumentProperties32A [WINSPOOL.155]
*
@@ -308,6 +320,20 @@
}
+/*****************************************************************************
+ * DocumentProperties32W
+ */
+LONG WINAPI DocumentProperties32W(HWND32 hWnd, HANDLE32 hPrinter,
+ LPWSTR pDeviceName,
+ LPDEVMODE32W pDevModeOutput,
+ LPDEVMODE32W pDevModeInput, DWORD fMode)
+{
+ FIXME(print,"(%d,%d,%s,%p,%p,%ld): stub\n",
+ hWnd,hPrinter,pDeviceName,pDevModeOutput,pDevModeInput,fMode);
+ return -1;
+}
+
+
/******************************************************************
* OpenPrinter32A [WINSPOOL.196]
*
@@ -414,3 +440,278 @@
return FALSE;
}
+/******************************************************************************
+ * SetPrinter32W [WINSPOOL.214]
+ */
+BOOL32 WINAPI
+SetPrinter32W(
+ HANDLE32 hPrinter,
+ DWORD Level,
+ LPBYTE pPrinter,
+ DWORD Command) {
+
+ FIXME(print,"():stub\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/******************************************************************************
+ * WritePrinter32 [WINSPOOL.223]
+ */
+BOOL32 WINAPI
+WritePrinter32(
+ HANDLE32 hPrinter,
+ LPVOID pBuf,
+ DWORD cbBuf,
+ LPDWORD pcWritten) {
+
+ FIXME(print,"():stub\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * AddForm32A [WINSPOOL.103]
+ */
+BOOL32 WINAPI AddForm32A(HANDLE32 hPrinter, DWORD Level, LPBYTE pForm)
+{
+ FIXME(print, "(%d,%ld,%p): stub\n", hPrinter, Level, pForm);
+ return 1;
+}
+
+/*****************************************************************************
+ * AddForm32W [WINSPOOL.104]
+ */
+BOOL32 WINAPI AddForm32W(HANDLE32 hPrinter, DWORD Level, LPBYTE pForm)
+{
+ FIXME(print, "(%d,%ld,%p): stub\n", hPrinter, Level, pForm);
+ return 1;
+}
+
+/*****************************************************************************
+ * AddJob32A [WINSPOOL.105]
+ */
+BOOL32 WINAPI AddJob32A(HANDLE32 hPrinter, DWORD Level, LPBYTE pData,
+ DWORD cbBuf, LPDWORD pcbNeeded)
+{
+ FIXME(print, "(%d,%ld,%p,%ld,%p): stub\n", hPrinter, Level, pData, cbBuf,
+ pcbNeeded);
+ return 1;
+}
+
+/*****************************************************************************
+ * AddJob32W [WINSPOOL.106]
+ */
+BOOL32 WINAPI AddJob32W(HANDLE32 hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf,
+ LPDWORD pcbNeeded)
+{
+ FIXME(print, "(%d,%ld,%p,%ld,%p): stub\n", hPrinter, Level, pData, cbBuf,
+ pcbNeeded);
+ return 1;
+}
+
+/*****************************************************************************
+ * AddPrinter32A [WINSPOOL.117]
+ */
+HANDLE32 WINAPI AddPrinter32A(LPSTR pName, DWORD Level, LPBYTE pPrinter)
+{
+ FIXME(print, "(%s,%ld,%p): stub\n", pName, Level, pPrinter);
+ return NULL;
+}
+
+/*****************************************************************************
+ * AddPrinter32W [WINSPOOL.122]
+ */
+HANDLE32 WINAPI AddPrinter32W(LPWSTR pName, DWORD Level, LPBYTE pPrinter)
+{
+ FIXME(print, "(%p,%ld,%p): stub\n", pName, Level, pPrinter);
+ return 0;
+}
+
+
+/*****************************************************************************
+ * ClosePrinter32 [WINSPOOL.126]
+ */
+BOOL32 WINAPI ClosePrinter32(HANDLE32 hPrinter)
+{
+ FIXME(print, "(%d): stub\n", hPrinter);
+ return 1;
+}
+
+/*****************************************************************************
+ * DeleteForm32A [WINSPOOL.133]
+ */
+BOOL32 WINAPI DeleteForm32A(HANDLE32 hPrinter, LPSTR pFormName)
+{
+ FIXME(print, "(%d,%s): stub\n", hPrinter, pFormName);
+ return 1;
+}
+
+/*****************************************************************************
+ * DeleteForm32W [WINSPOOL.134]
+ */
+BOOL32 WINAPI DeleteForm32W(HANDLE32 hPrinter, LPWSTR pFormName)
+{
+ FIXME(print, "(%d,%s): stub\n", hPrinter, pFormName);
+ return 1;
+}
+
+/*****************************************************************************
+ * DeletePrinter32 [WINSPOOL.143]
+ */
+BOOL32 DeletePrinter32(HANDLE32 hPrinter)
+{
+ FIXME(print, "(%d): stub\n", hPrinter);
+ return 1;
+}
+
+/*****************************************************************************
+ * SetPrinter32A [WINSPOOL.211]
+ */
+BOOL32 WINAPI SetPrinter32A(HANDLE32 hPrinter, DWORD Level, LPBYTE pPrinter,
+ DWORD Command)
+{
+ FIXME(print, "(%d,%ld,%p,%ld): stub\n",hPrinter,Level,pPrinter,Command);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * SetJob32A [WINSPOOL.209]
+ */
+BOOL32 WINAPI SetJob32A(HANDLE32 hPrinter, DWORD JobId, DWORD Level,
+ LPBYTE pJob, DWORD Command)
+{
+ FIXME(print, "(%d,%ld,%ld,%p,%ld): stub\n",hPrinter,JobId,Level,pJob,
+ Command);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * SetJob32W [WINSPOOL.210]
+ */
+BOOL32 WINAPI SetJob32W(HANDLE32 hPrinter, DWORD JobId, DWORD Level,
+ LPBYTE pJob, DWORD Command)
+{
+ FIXME(print, "(%d,%ld,%ld,%p,%ld): stub\n",hPrinter,JobId,Level,pJob,
+ Command);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * GetForm32A [WINSPOOL.181]
+ */
+BOOL32 WINAPI GetForm32A(HANDLE32 hPrinter, LPSTR pFormName, DWORD Level,
+ LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded)
+{
+ FIXME(print, "(%d,%s,%ld,%p,%ld,%p): stub\n",hPrinter,pFormName,
+ Level,pForm,cbBuf,pcbNeeded);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * GetForm32W [WINSPOOL.182]
+ */
+BOOL32 WINAPI GetForm32W(HANDLE32 hPrinter, LPWSTR pFormName, DWORD Level,
+ LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded)
+{
+ FIXME(print, "(%d,%s,%ld,%p,%ld,%p): stub\n",hPrinter,pFormName,
+ Level,pForm,cbBuf,pcbNeeded);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * SetForm32A [WINSPOOL.207]
+ */
+BOOL32 WINAPI SetForm32A(HANDLE32 hPrinter, LPSTR pFormName, DWORD Level,
+ LPBYTE pForm)
+{
+ FIXME(print, "(%d,%s,%ld,%p): stub\n",hPrinter,pFormName,Level,pForm);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * SetForm32W [WINSPOOL.208]
+ */
+BOOL32 WINAPI SetForm32W(HANDLE32 hPrinter, LPWSTR pFormName, DWORD Level,
+ LPBYTE pForm)
+{
+ FIXME(print, "(%d,%p,%ld,%p): stub\n",hPrinter,pFormName,Level,pForm);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * ReadPrinter32 [WINSPOOL.202]
+ */
+BOOL32 WINAPI ReadPrinter32(HANDLE32 hPrinter, LPVOID pBuf, DWORD cbBuf,
+ LPDWORD pNoBytesRead)
+{
+ FIXME(print, "(%d,%p,%ld,%p): stub\n",hPrinter,pBuf,cbBuf,pNoBytesRead);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * ResetPrinter32A [WINSPOOL.203]
+ */
+BOOL32 WINAPI ResetPrinter32A(HANDLE32 hPrinter, LPPRINTER_DEFAULTS32A pDefault)
+{
+ FIXME(print, "(%d, %p): stub\n", hPrinter, pDefault);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * ResetPrinter32W [WINSPOOL.204]
+ */
+BOOL32 WINAPI ResetPrinter32W(HANDLE32 hPrinter, LPPRINTER_DEFAULTS32W pDefault)
+{
+ FIXME(print, "(%d, %p): stub\n", hPrinter, pDefault);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * GetPrinter32A [WINSPOOL.187]
+ */
+BOOL32 WINAPI GetPrinter32A(HANDLE32 hPrinter, DWORD Level, LPBYTE pPrinter,
+ DWORD cbBuf, LPDWORD pcbNeeded)
+{
+ FIXME(print, "(%d,%ld,%p,%ld,%p): stub\n", hPrinter, Level, pPrinter,
+ cbBuf, pcbNeeded);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * GetPrinter32W [WINSPOOL.194]
+ */
+BOOL32 WINAPI GetPrinter32W(HANDLE32 hPrinter, DWORD Level, LPBYTE pPrinter,
+ DWORD cbBuf, LPDWORD pcbNeeded)
+{
+ FIXME(print, "(%d,%ld,%p,%ld,%p): stub\n", hPrinter, Level, pPrinter,
+ cbBuf, pcbNeeded);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * GetPrinterDriver32A [WINSPOOL.190]
+ */
+BOOL32 WINAPI GetPrinterDriver32A(HANDLE32 hPrinter, LPSTR pEnvironment,
+ DWORD Level, LPBYTE pDriverInfo,
+ DWORD cbBuf, LPDWORD pcbNeeded)
+{
+ FIXME(print, "(%d,%s,%ld,%p,%ld,%p): stub\n",hPrinter,pEnvironment,
+ Level,pDriverInfo,cbBuf, pcbNeeded);
+ return FALSE;
+}
+
+/*****************************************************************************
+ * GetPrinterDriver32W [WINSPOOL.193]
+ */
+BOOL32 WINAPI GetPrinterDriver32W(HANDLE32 hPrinter, LPWSTR pEnvironment,
+ DWORD Level, LPBYTE pDriverInfo,
+ DWORD cbBuf, LPDWORD pcbNeeded)
+{
+ FIXME(print, "(%d,%p,%ld,%p,%ld,%p): stub\n",hPrinter,pEnvironment,
+ Level,pDriverInfo,cbBuf, pcbNeeded);
+ return FALSE;
+}
+
+
+
diff --git a/misc/tapi32.c b/misc/tapi32.c
index 87e45fb..e5e223c 100644
--- a/misc/tapi32.c
+++ b/misc/tapi32.c
@@ -40,3 +40,37 @@
*lpdwAPIVersion = dwAPIHighVersion;
return 0;
}
+
+/*************************************************************************
+ * lineRedirect32 [TAPI32.53]
+ *
+ */
+LONG WINAPI lineRedirect32(
+ HANDLE32* hCall,
+ LPCSTR lpszDestAddress,
+ DWORD dwCountryCode) {
+
+ FIXME(comm, ": stub.\n");
+ return -1;
+/* return LINEERR_OPERATIONFAILED; */
+}
+
+/*************************************************************************
+ * tapiRequestMakeCall32 [TAPI32.113]
+ *
+ */
+LONG WINAPI tapiRequestMakeCall32(
+ LPCSTR lpszDestAddress,
+ LPCSTR lpszAppName,
+ LPCSTR lpszCalledParty,
+ LPCSTR lpszComment) {
+
+ FIXME(comm, ": stub.\n");
+ return -1;
+/* return TAPIERR_REQUESTQUEUEFULL; */
+}
+
+
+
+
+
diff --git a/objects/bitmap.c b/objects/bitmap.c
index d10c7c7..f069750 100644
--- a/objects/bitmap.c
+++ b/objects/bitmap.c
@@ -928,3 +928,22 @@
return MAKELONG( size.cx, size.cy );
}
+/***********************************************************************
+ * MaskBlt32 [GDI32.252]
+ */
+BOOL32 WINAPI MaskBlt32(HDC32 hdcDest,
+ INT32 nXDest, INT32 nYDest,
+ INT32 nWidth, INT32 nHeight,
+ HDC32 hdcSource,
+ INT32 nXSrc, INT32 nYSrc,
+ HBITMAP32 hbmMask,
+ INT32 xMask, INT32 yMask,
+ DWORD dwRop)
+{
+ FIXME(bitmap, "(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%ld): stub\n",
+ hdcDest,nXDest,nYDest,nWidth,nHeight,hdcSource,nXSrc,nYSrc,
+ hbmMask,xMask,yMask,dwRop);
+
+ return 1;
+}
+
diff --git a/objects/dc.c b/objects/dc.c
index b38663b..eb98918 100644
--- a/objects/dc.c
+++ b/objects/dc.c
@@ -1250,3 +1250,12 @@
return DCB_RESET | DCB_DISABLE; /* bounding rectangle always empty and disabled*/
}
+/***********************************************************************
+ * SetBoundsRect32 (GDI32.307)
+ */
+UINT32 WINAPI SetBoundsRect32(HDC32 hdc, const RECT32* rect, UINT32 flags)
+{
+ FIXME(dc, "(): stub\n");
+ return DCB_DISABLE; /* bounding rectangle always empty */
+}
+
diff --git a/objects/enhmetafile.c b/objects/enhmetafile.c
index c57b127..b405ca1 100644
--- a/objects/enhmetafile.c
+++ b/objects/enhmetafile.c
@@ -39,6 +39,16 @@
}
/*****************************************************************************
+ * GetEnhMetaFile32W (GDI32.180)
+ */
+HENHMETAFILE32 WINAPI GetEnhMetaFile32W(
+ LPCWSTR lpszMetaFile) /* filename of enhanced metafile */
+{
+ FIXME(metafile, "(%p): stub\n", lpszMetaFile);
+ return NULL;
+}
+
+/*****************************************************************************
* GetEnhMetaFileHeader (GDI32.178)
*
* If _buf_ is NULL, returns the size of buffer required.
diff --git a/objects/font.c b/objects/font.c
index 7c966f1..9e0d534 100644
--- a/objects/font.c
+++ b/objects/font.c
@@ -1020,7 +1020,17 @@
return rtn;
}
-
+/***********************************************************************
+ * GetOutlineTextMetrics32W [GDI32.208]
+ */
+UINT32 WINAPI GetOutlineTextMetrics32W(
+ HDC32 hdc, /* [in] Handle of device context */
+ UINT32 cbData, /* [in] Size of metric data array */
+ LPOUTLINETEXTMETRIC32W lpOTM) /* [out] Address of metric data array */
+{
+ FIXME(font, "(%d,%d,%p): stub\n", hdc, cbData, lpOTM);
+ return 0;
+}
/***********************************************************************
* GetCharWidth16 (GDI.350)
diff --git a/objects/metafile.c b/objects/metafile.c
index 0bdbe9c..bbd95c5 100644
--- a/objects/metafile.c
+++ b/objects/metafile.c
@@ -1068,6 +1068,17 @@
return MIN(nSize, h->mtSize);
}
+/******************************************************************
+ * GetWinMetaFileBits [GDI32.241]
+ */
+UINT32 WINAPI GetWinMetaFileBits(HENHMETAFILE32 hemf,
+ UINT32 cbBuffer, LPBYTE lpbBuffer,
+ INT32 fnMapMode, HDC32 hdcRef)
+{
+ FIXME(metafile, "(%d,%d,%p,%d,%d): stub\n",
+ hemf, cbBuffer, lpbBuffer, fnMapMode, hdcRef);
+ return 0;
+}
/******************************************************************
* MF_Meta_CreateRegion
diff --git a/relay32/comctl32.spec b/relay32/comctl32.spec
index bcf84c1..3a2f96e 100644
--- a/relay32/comctl32.spec
+++ b/relay32/comctl32.spec
@@ -24,12 +24,12 @@
16 stdcall CreateUpDownControl(long long long long long long long long long long long long) CreateUpDownControl
17 stdcall InitCommonControls() InitCommonControls
18 stub CreatePropertySheetPage
- 19 stub CreatePropertySheetPageA
- 20 stub CreatePropertySheetPageW
+ 19 stdcall CreatePropertySheetPageA(ptr) CreatePropertySheetPage32A
+ 20 stdcall CreatePropertySheetPageW(ptr) CreatePropertySheetPage32W
21 stdcall CreateStatusWindow(long str long long) CreateStatusWindow32AW
22 stdcall CreateStatusWindowW(long wstr long long) CreateStatusWindow32W
23 stdcall CreateToolbarEx(long long long long long long ptr long long long long long long) CreateToolbarEx
- 24 stub DestroyPropertySheetPage
+ 24 stdcall DestroyPropertySheetPage(long) DestroyPropertySheetPage32
25 stdcall DllGetVersion(ptr) COMCTL32_DllGetVersion
26 stub DllInstall
27 stdcall DrawStatusText(long ptr ptr long) DrawStatusText32AW
@@ -89,8 +89,8 @@
81 stdcall InitCommonControlsEx(ptr) InitCommonControlsEx
82 stub InitializeFlatSB
83 stub PropertySheet
- 84 stub PropertySheetA
- 85 stub PropertySheetW
+ 84 stdcall PropertySheetA(ptr) PropertySheet32A
+ 85 stdcall PropertySheetW(ptr) PropertySheet32W
86 stub UninitializeFlatSB
87 stub _TrackMouseEvent
@@ -138,20 +138,20 @@
342 stdcall SendNotifyEx(long long long ptr long) COMCTL32_SendNotifyEx
350 stdcall StrChrA(str str) COMCTL32_StrChrA
-351 stub StrRChrA
-352 stub StrCmpNA
+351 stdcall StrRChrA(str str long) COMCTL32_StrRChrA
+352 stdcall StrCmpNA(str str long) COMCTL32_StrCmpNA
353 stub StrCmpNIA
-354 stub StrStrA
+354 stdcall StrStrA(str str) COMCTL32_StrStrA
355 stdcall StrStrIA(str str) COMCTL32_StrStrIA
-356 stub StrCSpnA
+356 stdcall StrCSpnA(str str) COMCTL32_StrCSpnA
357 stdcall StrToIntA(str) COMCTL32_StrToIntA
-358 stub StrChrW
-359 stub StrRChrW
-360 stub StrCmpNW
+358 stdcall StrChrW(wstr long) COMCTL32_StrChrW
+359 stdcall StrRChrW(wstr wstr long) COMCTL32_StrRChrW
+360 stdcall StrCmpNW(wstr wstr long) COMCTL32_StrCmpNW
361 stub StrCmpNIW
-362 stub StrStrW
+362 stdcall StrStrW(wstr wstr) COMCTL32_StrStrW
363 stub StrStrIW
-364 stub StrSpnW
+364 stdcall StrSpnW(wstr wstr) COMCTL32_StrSpnW
365 stub StrToIntW
366 stub StrChrIA
367 stub StrChrIW
diff --git a/relay32/gdi32.spec b/relay32/gdi32.spec
index 6a9dc1e..d8e1d87 100644
--- a/relay32/gdi32.spec
+++ b/relay32/gdi32.spec
@@ -2,7 +2,7 @@
type win32
init MAIN_GdiInit
- 0 stub AbortDoc
+ 0 stdcall AbortDoc(long) AbortDoc32
1 stdcall AbortPath(long) AbortPath32
2 stdcall AddFontResourceA(str) AddFontResource32A
3 stub AddFontResourceTracking
@@ -10,7 +10,7 @@
5 stub AngleArc
6 stdcall AnimatePalette(long long long ptr) AnimatePalette32
7 stdcall Arc(long long long long long long long long long) Arc32
- 8 stub ArcTo
+ 8 stdcall ArcTo(long long long long long long long long long) ArcTo32
9 stdcall BeginPath(long) BeginPath32
10 stdcall BitBlt(long long long long long long long long long) BitBlt32
11 stub CancelDC
@@ -43,8 +43,8 @@
38 stdcall CreateDiscardableBitmap(long long long) CreateDiscardableBitmap32
39 stdcall CreateEllipticRgn(long long long long) CreateEllipticRgn32
40 stdcall CreateEllipticRgnIndirect(ptr) CreateEllipticRgnIndirect32
- 41 stdcall CreateEnhMetaFileA(long ptr ptr ptr) CreateEnhMetaFile32A
- 42 stub CreateEnhMetaFileW
+ 41 stdcall CreateEnhMetaFileA(long str ptr str) CreateEnhMetaFile32A
+ 42 stdcall CreateEnhMetaFileW(long wstr ptr wstr) CreateEnhMetaFile32W
43 stdcall CreateFontA(long long long long long long long long long long long long long str) CreateFont32A
44 stdcall CreateFontIndirectA(ptr) CreateFontIndirect32A
45 stdcall CreateFontIndirectW(ptr) CreateFontIndirect32W
@@ -54,7 +54,7 @@
49 stdcall CreateICA(str str str ptr) CreateIC32A
50 stdcall CreateICW(wstr wstr wstr ptr) CreateIC32W
51 stdcall CreateMetaFileA(str) CreateMetaFile32A
- 52 stub CreateMetaFileW
+ 52 stdcall CreateMetaFileW(wstr) CreateMetaFile32W
53 stdcall CreatePalette(ptr) CreatePalette32
54 stdcall CreatePatternBrush(long) CreatePatternBrush32
55 stdcall CreatePen(long long long) CreatePen32
@@ -182,7 +182,7 @@
177 stdcall GetEnhMetaFileDescriptionW(long long ptr) GetEnhMetaFileDescription32W
178 stdcall GetEnhMetaFileHeader(long long ptr) GetEnhMetaFileHeader
179 stdcall GetEnhMetaFilePaletteEntries (long long ptr) GetEnhMetaFilePaletteEntries
-180 stub GetEnhMetaFileW
+180 stdcall GetEnhMetaFileW(wstr) GetEnhMetaFile32W
181 stdcall GetFontData(long long long ptr long) GetFontData32
182 stdcall GetFontLanguageInfo(long) GetFontLanguageInfo32
183 stub GetFontResourceInfo
@@ -210,7 +210,7 @@
205 stdcall GetObjectType(long) GetObjectType
206 stdcall GetObjectW(long long ptr) GetObject32W
207 stdcall GetOutlineTextMetricsA(long long ptr) GetOutlineTextMetrics32A
-208 stub GetOutlineTextMetricsW
+208 stdcall GetOutlineTextMetricsW(long long ptr) GetOutlineTextMetrics32W
209 stdcall GetPaletteEntries(long long long ptr) GetPaletteEntries32
210 stdcall GetPath(long ptr ptr long) GetPath32
211 stdcall GetPixel(long long long) GetPixel32
@@ -243,7 +243,7 @@
238 stub GetTransform
239 stdcall GetViewportExtEx(long ptr) GetViewportExtEx32
240 stdcall GetViewportOrgEx(long ptr) GetViewportOrgEx32
-241 stub GetWinMetaFileBits
+241 stdcall GetWinMetaFileBits(long long ptr long long) GetWinMetaFileBits
242 stdcall GetWindowExtEx(long ptr) GetWindowExtEx32
243 stdcall GetWindowOrgEx(long ptr) GetWindowOrgEx32
244 stdcall GetWorldTransform(long ptr) GetWorldTransform
@@ -254,7 +254,7 @@
249 stdcall LineTo(long long long) LineTo32
250 stub LoadImageColorMatcherA
251 stub LoadImageColorMatcherW
-252 stub MaskBlt
+252 stdcall MaskBlt(long long long long long long long long long long long long) MaskBlt32
253 stdcall ModifyWorldTransform(long ptr long) ModifyWorldTransform
254 stdcall MoveToEx(long long long ptr) MoveToEx32
255 stdcall OffsetClipRgn(long long long) OffsetClipRgn32
@@ -279,7 +279,7 @@
274 stub PolyTextOutW
275 stdcall Polygon(long ptr long) Polygon32
276 stdcall Polyline(long ptr long) Polyline32
-277 stub PolylineTo
+277 stdcall PolylineTo(long ptr long) PolylineTo32
278 stdcall PtInRegion(long long long) PtInRegion32
279 stdcall PtVisible(long long long) PtVisible32
280 stdcall RealizePalette(long) RealizePalette32
@@ -309,7 +309,7 @@
304 stdcall SetBitmapDimensionEx(long long long ptr) SetBitmapDimensionEx32
305 stdcall SetBkColor(long long) SetBkColor32
306 stdcall SetBkMode(long long) SetBkMode32
-307 stub SetBoundsRect
+307 stdcall SetBoundsRect(long ptr long) SetBoundsRect32
308 stdcall SetBrushOrgEx(long long long ptr) SetBrushOrgEx
309 stub SetColorAdjustment
310 stub SetColorSpace
@@ -350,7 +350,7 @@
345 stdcall SetWindowOrgEx(long long long ptr) SetWindowOrgEx32
346 stdcall SetWorldTransform(long ptr) SetWorldTransform
347 stdcall StartDocA(long ptr) StartDoc32A
-348 stub StartDocW
+348 stdcall StartDocW(long ptr) StartDoc32W
349 stdcall StartPage(long) StartPage32
350 stdcall StretchBlt(long long long long long long long long long long long) StretchBlt32
351 stdcall StretchDIBits(long long long long long long long long long ptr ptr long long) StretchDIBits32
diff --git a/relay32/kernel32.spec b/relay32/kernel32.spec
index 015027d..bf27de1 100644
--- a/relay32/kernel32.spec
+++ b/relay32/kernel32.spec
@@ -585,6 +585,7 @@
567 register RaiseException() RaiseException
568 stdcall ReadConsoleA(long ptr long ptr ptr) ReadConsole32A
569 stdcall ReadConsoleInputA(long ptr long ptr) ReadConsoleInput32A
+570 stdcall ReadConsoleInputW(long ptr long ptr) ReadConsoleInput32W
570 stub ReadConsoleInputW
571 stub ReadConsoleOutputA
572 stub ReadConsoleOutputAttribute
@@ -698,7 +699,7 @@
680 stdcall SleepEx(long long) SleepEx
681 stdcall SuspendThread(long) SuspendThread
682 stdcall SystemTimeToFileTime(ptr ptr) SystemTimeToFileTime
-683 stub SystemTimeToTzSpecificLocalTime
+683 stdcall SystemTimeToTzSpecificLocalTime (ptr ptr ptr) SystemTimeToTzSpecificLocalTime32
684 stdcall TerminateProcess(long long) TerminateProcess
685 stdcall TerminateThread(long long) TerminateThread
686 stub Thread32First
@@ -722,8 +723,8 @@
704 stdcall UnlockFile(long long long long long) UnlockFile
705 stub UnlockFileEx
706 stdcall UnmapViewOfFile(ptr) UnmapViewOfFile
-707 stub UpdateResourceA
-708 stub UpdateResourceW
+707 stdcall UpdateResourceA(long str str long ptr long) UpdateResource32A
+708 stdcall UpdateResourceW(long wstr wstr long ptr long) UpdateResource32W
709 stdcall VerLanguageNameA(long str long) VerLanguageName32A
710 stdcall VerLanguageNameW(long wstr long) VerLanguageName32W
711 stdcall VirtualAlloc(ptr long long long) VirtualAlloc
@@ -874,8 +875,8 @@
# NT 4.0 additions
856 stub CancelIo
857 stub CancelWaitableTimer
-858 stub CopyFileExA
-859 stub CopyFileExW
+858 stdcall CopyFileExA (str str ptr ptr ptr long) CopyFileEx32A
+859 stdcall CopyFileExW (wstr wstr ptr ptr ptr long) CopyFileEx32W
860 stub CreateFiber
861 stub CreateWaitableTimerA
862 stub CreateWaitableTimerW
diff --git a/relay32/mpr.spec b/relay32/mpr.spec
index 067f991..09fa6f4 100644
--- a/relay32/mpr.spec
+++ b/relay32/mpr.spec
@@ -53,10 +53,10 @@
0050 stdcall WNetAddConnectionA(str str str) WNetAddConnection32A
0051 stdcall WNetAddConnectionW(wstr wstr wstr) WNetAddConnection32W
0052 stdcall WNetCachePassword(str long str long long) WNetCachePassword
-0053 stub WNetCancelConnection2A
-0054 stub WNetCancelConnection2W
-0055 stub WNetCancelConnectionA
-0056 stub WNetCancelConnectionW
+0053 stdcall WNetCancelConnection2A(str long long) WNetCancelConnection232A
+0054 stdcall WNetCancelConnection2W(wstr long long) WNetCancelConnection232W
+0055 stdcall WNetCancelConnectionA(str long) WNetCancelConnection32A
+0056 stdcall WNetCancelConnectionW(wstr long) WNetCancelConnection32W
0057 stub WNetCloseEnum
0058 stdcall WNetConnectionDialog1A(ptr) WNetConnectionDialog1_32A
0059 stdcall WNetConnectionDialog1W(ptr) WNetConnectionDialog1_32W
@@ -87,7 +87,7 @@
0084 stub WNetGetUniversalNameA
0085 stub WNetGetUniversalNameW
0086 stdcall WNetGetUserA(str ptr ptr) WNetGetUser32A
-0087 stub WNetGetUserW
+0087 stdcall WNetGetUserW(wstr wstr ptr) WNetGetUser32W
0088 stub WNetLogoffA
0089 stub WNetLogoffW
0090 stub WNetLogonA
diff --git a/relay32/shell32.spec b/relay32/shell32.spec
index 1c86019..8e0a113 100644
--- a/relay32/shell32.spec
+++ b/relay32/shell32.spec
@@ -224,7 +224,7 @@
216 stub ExtractVersionResource16W # exported by name
217 stub FindExeDlgProc # exported by name
218 stdcall FindExecutableA(ptr ptr ptr) FindExecutable32A # exported by name
- 219 stub FindExecutableW # exported by name
+ 219 stdcall FindExecutableW(wstr wstr wstr) FindExecutable32W # exported by name
220 stdcall FreeIconList(long) FreeIconList # exported by name
221 stub InternalExtractIconListA # exported by name
222 stub InternalExtractIconListW # exported by name
@@ -300,7 +300,7 @@
291 stdcall ShellExecuteEx (long) ShellExecuteEx32
292 stdcall ShellExecuteExA (long) ShellExecuteEx32A
293 stdcall ShellExecuteExW (long) ShellExecuteEx32W
- 294 stub ShellExecuteW
+ 294 stdcall ShellExecuteW (long wstr wstr wstr wstr long) ShellExecute32W
295 stub ShellHookProc # exported by name
296 stdcall Shell_NotifyIcon(long ptr) Shell_NotifyIcon
297 stdcall Shell_NotifyIconA(long ptr) Shell_NotifyIconA
diff --git a/relay32/tapi32.spec b/relay32/tapi32.spec
index 449df0c..3f45edd 100644
--- a/relay32/tapi32.spec
+++ b/relay32/tapi32.spec
@@ -53,7 +53,7 @@
50 stub linePark
51 stub linePickup
52 stub linePrepareAddToConference
- 53 stub lineRedirect
+ 53 stdcall lineRedirect(long ptr long) lineRedirect32
54 stub lineRegisterRequestRecipient
55 stub lineReleaseUserUserInfo
56 stub lineRemoveFromConference
@@ -113,5 +113,5 @@
110 stub phoneShutdown
111 stub tapiGetLocationInfo
112 stub tapiRequestDrop
-113 stub tapiRequestMakeCall
+113 stdcall tapiRequestMakeCall(str str str str) tapiRequestMakeCall32
114 stub tapiRequestMediaCall
diff --git a/relay32/user32.spec b/relay32/user32.spec
index 0109b93..08e282f 100644
--- a/relay32/user32.spec
+++ b/relay32/user32.spec
@@ -2,7 +2,7 @@
type win32
init MAIN_UserInit
- 1 stub ActivateKeyboardLayout
+ 1 stdcall ActivateKeyboardLayout(long long) ActivateKeyboardLayout32
2 stdcall AdjustWindowRect(ptr long long) AdjustWindowRect32
3 stdcall AdjustWindowRectEx(ptr long long long) AdjustWindowRectEx32
4 stdcall AnyPopup() AnyPopup32
@@ -89,18 +89,18 @@
85 stub CreateWindowStationA
86 stdcall CreateWindowStationW(wstr long long ptr) CreateWindowStation32W
87 stub DdeAbandonTransaction
- 88 stub DdeAccessData
+ 88 stdcall DdeAccessData(long ptr) DdeAccessData32
89 stub DdeAddData
90 stdcall DdeClientTransaction(ptr long long long long long long ptr) DdeClientTransaction32
- 91 stub DdeCmpStringHandles
+ 91 stdcall DdeCmpStringHandles(long long) DdeCmpStringHandles32
92 stdcall DdeConnect(long long long ptr) DdeConnect32
93 stdcall DdeConnectList(long long long long ptr) DdeConnectList32
- 94 stub DdeCreateDataHandle
+ 94 stdcall DdeCreateDataHandle(long ptr long long long long long) DdeCreateDataHandle32
95 stdcall DdeCreateStringHandleA(long str long) DdeCreateStringHandle32A
96 stdcall DdeCreateStringHandleW(long wstr long) DdeCreateStringHandle32W
97 stdcall DdeDisconnect(long) DdeDisconnect32
98 stdcall DdeDisconnectList(long) DdeDisconnectList32
- 99 stub DdeEnableCallback
+ 99 stdcall DdeEnableCallback(long long long) DdeEnableCallback32
100 stdcall DdeFreeDataHandle(long) DdeFreeDataHandle32
101 stdcall DdeFreeStringHandle(long long) DdeFreeStringHandle32
102 stdcall DdeGetData(long ptr long long) DdeGetData32
@@ -114,12 +114,12 @@
110 stdcall DdePostAdvise(long long long) DdePostAdvise32
111 stub DdeQueryConvInfo
112 stdcall DdeQueryNextServer(long long) DdeQueryNextServer32
-113 stub DdeQueryStringA
-114 stub DdeQueryStringW
+113 stdcall DdeQueryStringA(long long ptr long long) DdeQueryString32A
+114 stdcall DdeQueryStringW(long long ptr long long) DdeQueryString32W
115 stdcall DdeReconnect(long) DdeReconnect
116 stub DdeSetQualityOfService
117 stub DdeSetUserHandle
-118 stub DdeUnaccessData
+118 stdcall DdeUnaccessData(long) DdeUnaccessData32
119 stdcall DdeUninitialize(long) DdeUninitialize32
120 stdcall DefDlgProcA(long long long long) DefDlgProc32A
121 stdcall DefDlgProcW(long long long long) DefDlgProc32W
@@ -164,7 +164,7 @@
160 stdcall DrawIconEx(long long long long long long long long long) DrawIconEx32
161 stdcall DrawMenuBar(long) DrawMenuBar32
162 stdcall DrawStateA(long long ptr long long long long long long long) DrawState32A
-163 stub DrawStateW
+163 stdcall DrawStateW(long long ptr long long long long long long long) DrawState32W
164 stdcall DrawTextA(long str long ptr long) DrawText32A
165 stdcall DrawTextExA(long str long ptr long ptr) DrawTextEx32A
166 stdcall DrawTextExW(long wstr long ptr long ptr) DrawTextEx32W
@@ -368,8 +368,8 @@
364 stdcall LoadIconW(long wstr) LoadIcon32W
365 stdcall LoadImageA(long str long long long long) LoadImage32A
366 stdcall LoadImageW(long wstr long long long long) LoadImage32W
-367 stub LoadKeyboardLayoutA
-368 stub LoadKeyboardLayoutW
+367 stdcall LoadKeyboardLayoutA(str long) LoadKeyboardLayout32A
+368 stdcall LoadKeyboardLayoutW(wstr long) LoadKeyboardLayout32W
369 stdcall LoadLocalFonts() LoadLocalFonts
370 stdcall LoadMenuA(long str) LoadMenu32A
371 stdcall LoadMenuIndirectA(ptr) LoadMenuIndirect32A
@@ -462,7 +462,7 @@
458 stdcall SendMessageTimeoutW(long long long long ptr ptr) SendMessageTimeout32W
459 stdcall SendMessageW(long long long long) SendMessage32W
460 stdcall SendNotifyMessageA(long long long long) SendNotifyMessage32A
-461 stub SendNotifyMessageW
+461 stdcall SendNotifyMessageW(long long long long) SendNotifyMessage32W
462 stub ServerSetFunctionPointers
463 stdcall SetActiveWindow(long) SetActiveWindow32
464 stdcall SetCapture(long) SetCapture32
@@ -549,7 +549,7 @@
545 stdcall TileWindows(long long ptr long ptr) TileWindows
546 stdcall ToAscii(long long ptr ptr long) ToAscii32
547 stub ToAsciiEx
-548 stub ToUnicode
+548 stdcall ToUnicode(long long ptr wstr long long) ToUnicode32
549 stdcall TrackPopupMenu(long long long long long long ptr) TrackPopupMenu32
550 stdcall TrackPopupMenuEx(long long long long long ptr) TrackPopupMenuEx
551 stdcall TranslateAccelerator(long long ptr) TranslateAccelerator32
diff --git a/relay32/winspool.spec b/relay32/winspool.spec
index 7de4008..a99a998 100644
--- a/relay32/winspool.spec
+++ b/relay32/winspool.spec
@@ -3,10 +3,10 @@
101 stub ADVANCEDSETUPDIALOG
102 stub AbortPrinter
-103 stub AddFormA
-104 stub AddFormW
-105 stub AddJobA
-106 stub AddJobW
+103 stdcall AddFormA(long long ptr) AddForm32A
+104 stdcall AddFormW(long long ptr) AddForm32W
+105 stdcall AddJobA(long long ptr long ptr) AddJob32A
+106 stdcall AddJobW(long long ptr long ptr) AddJob32W
107 stdcall AddMonitorA(str long ptr) AddMonitor32A
108 stub AddMonitorW
109 stub AddPortA
@@ -17,24 +17,24 @@
114 stub AddPrintProcessorW
115 stub AddPrintProvidorA
116 stub AddPrintProvidorW
-117 stub AddPrinterA
+117 stdcall AddPrinterA(str long ptr) AddPrinter32A
118 stub AddPrinterConnectionA
119 stub AddPrinterConnectionW
120 stub AddPrinterDriverA
121 stub AddPrinterDriverW
-122 stub AddPrinterW
+122 stdcall AddPrinterW(wstr long ptr) AddPrinter32W
123 stub AdvancedDocumentPropertiesA
124 stub AdvancedDocumentPropertiesW
125 stub AdvancedSetupDialog
-126 stub ClosePrinter
+126 stdcall ClosePrinter(long) ClosePrinter32
127 stub ConfigurePortA
128 stub ConfigurePortW
129 stub ConnectToPrinterDlg
130 stub CreatePrinterIC
131 stub DEVICECAPABILITIES
132 stub DEVICEMODE
-133 stub DeleteFormA
-134 stub DeleteFormW
+133 stdcall DeleteFormA(long str) DeleteForm32A
+134 stdcall DeleteFormW(long wstr) DeleteForm32W
135 stdcall DeleteMonitorA(str str str) DeleteMonitor32A
136 stub DeleteMonitorW
137 stdcall DeletePortA(str long str) DeletePort32A
@@ -43,7 +43,7 @@
140 stub DeletePrintProcessorW
141 stub DeletePrintProvidorA
142 stub DeletePrintProvidorW
-143 stub DeletePrinter
+143 stdcall DeletePrinter(long) DeletePrinter32
144 stub DeletePrinterConnectionA
145 stub DeletePrinterConnectionW
146 stdcall DeletePrinterDriverA(str str str) DeletePrinterDriver32A
@@ -52,7 +52,7 @@
149 stub DevQueryPrint
150 stub DeviceCapabilities
151 stdcall DeviceCapabilitiesA(str str long ptr ptr) DeviceCapabilities32A
-152 stub DeviceCapabilitiesW
+152 stdcall DeviceCapabilitiesW(wstr wstr long wstr ptr) DeviceCapabilities32W
153 stub DeviceMode
154 stub DocumentEvent
155 stdcall DocumentPropertiesA(long long ptr ptr ptr long) DocumentProperties32A
@@ -81,20 +81,20 @@
178 stub FindFirstPrinterChangeNotification
179 stub FindNextPrinterChangeNotification
180 stub FreePrinterNotifyInfo
-181 stub GetFormA
-182 stub GetFormW
+181 stdcall GetFormA(long str long ptr long ptr) GetForm32A
+182 stdcall GetFormW(long wstr long ptr long ptr) GetForm32W
183 stub GetJobA
184 stub GetJobW
185 stub GetPrintProcessorDirectoryA
186 stub GetPrintProcessorDirectoryW
-187 stub GetPrinterA
+187 stdcall GetPrinterA(long long ptr long ptr) GetPrinter32A
188 stub GetPrinterDataA
189 stub GetPrinterDataW
-190 stub GetPrinterDriverA
+190 stdcall GetPrinterDriverA(long str long ptr long ptr) GetPrinterDriver32A
191 stub GetPrinterDriverDirectoryA
192 stub GetPrinterDriverDirectoryW
-193 stub GetPrinterDriverW
-194 stub GetPrinterW
+193 stdcall GetPrinterDriverW(long str long ptr long ptr) GetPrinterDriver32W
+194 stdcall GetPrinterW(long long ptr long ptr) GetPrinter32W
195 stub InitializeDll
196 stdcall OpenPrinterA(str ptr ptr) OpenPrinter32A
197 stdcall OpenPrinterW(wstr ptr ptr) OpenPrinter32W
@@ -102,19 +102,19 @@
199 stub PrinterMessageBoxA
200 stub PrinterMessageBoxW
201 stub PrinterProperties
-202 stub ReadPrinter
-203 stub ResetPrinterA
-204 stub ResetPrinterW
+202 stdcall ReadPrinter(long ptr long ptr) ReadPrinter32
+203 stdcall ResetPrinterA(long ptr) ResetPrinter32A
+204 stdcall ResetPrinterW(long ptr) ResetPrinter32W
205 stub ScheduleJob
206 stub SetAllocFailCount
-207 stub SetFormA
-208 stub SetFormW
-209 stub SetJobA
-210 stub SetJobW
-211 stub SetPrinterA
+207 stdcall SetFormA(long str long ptr) SetForm32A
+208 stdcall SetFormW(long wstr long ptr) SetForm32W
+209 stdcall SetJobA(long long long ptr long) SetJob32A
+210 stdcall SetJobW(long long long ptr long) SetJob32W
+211 stdcall SetPrinterA(long long ptr long) SetPrinter32A
212 stub SetPrinterDataA
213 stub SetPrinterDataW
-214 stub SetPrinterW
+214 stdcall SetPrinterW(long long ptr long) SetPrinter32W
215 stub SpoolerDevQueryPrintW
216 stub SpoolerInit
217 stub StartDocDlgA
@@ -123,4 +123,4 @@
220 stub StartDocPrinterW
221 stub StartPagePrinter
222 stub WaitForPrinterChange
-223 stub WritePrinter
+223 stdcall WritePrinter(long ptr long ptr) WritePrinter32
diff --git a/win32/console.c b/win32/console.c
index 089416c..5f0b9e7 100644
--- a/win32/console.c
+++ b/win32/console.c
@@ -1077,7 +1077,7 @@
/******************************************************************************
- * ReadConsoleInputA [KERNEL32.569] Reads data from a console
+ * ReadConsoleInput32A [KERNEL32.569] Reads data from a console
*
* PARAMS
* hConsoleInput [I] Handle to console input buffer
@@ -1180,6 +1180,17 @@
return ret;
}
+/***********************************************************************
+ * ReadConsoleInput32W (KERNEL32.570)
+ */
+BOOL32 WINAPI ReadConsoleInput32W(HANDLE32 hConsoleInput,
+ LPINPUT_RECORD lpBuffer,
+ DWORD nLength, LPDWORD lpNumberOfEventsRead)
+{
+ FIXME(console, "(%d,%p,%ld,%p): stub\n",hConsoleInput, lpBuffer, nLength,
+ lpNumberOfEventsRead);
+ return 0;
+}
/***********************************************************************
* FlushConsoleInputBuffer (KERNEL32.132)
diff --git a/win32/kernel32.c b/win32/kernel32.c
index b90a01a..5faf0d3 100644
--- a/win32/kernel32.c
+++ b/win32/kernel32.c
@@ -22,6 +22,7 @@
#include "debug.h"
#include "flatthunk.h"
#include "syslevel.h"
+#include "winerror.h"
/***********************************************************************
@@ -1104,3 +1105,38 @@
}
}
+/***********************************************************************
+ * UpdateResource32A (KERNEL32.707)
+ */
+BOOL32 WINAPI UpdateResource32A(
+ HANDLE32 hUpdate,
+ LPCSTR lpType,
+ LPCSTR lpName,
+ WORD wLanguage,
+ LPVOID lpData,
+ DWORD cbData) {
+
+ FIXME(win32, ": stub\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+/***********************************************************************
+ * UpdateResource32W (KERNEL32.708)
+ */
+BOOL32 WINAPI UpdateResource32W(
+ HANDLE32 hUpdate,
+ LPCWSTR lpType,
+ LPCWSTR lpName,
+ WORD wLanguage,
+ LPVOID lpData,
+ DWORD cbData) {
+
+ FIXME(win32, ": stub\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
+
+
+
+
diff --git a/win32/time.c b/win32/time.c
index fc82034..dbcca67 100644
--- a/win32/time.c
+++ b/win32/time.c
@@ -138,3 +138,16 @@
VOID WINAPI GetSystemTimeAsFileTime(LPFILETIME systemtimeAsfiletime) {
DOSFS_UnixTimeToFileTime(time(NULL),systemtimeAsfiletime,0);
}
+
+/***********************************************************************
+ * SystemTimeToTzSpecificLocalTime32 (KERNEL32.683)
+ */
+BOOL32 WINAPI SystemTimeToTzSpecificLocalTime32(
+ LPTIME_ZONE_INFORMATION lpTimeZoneInformation,
+ LPSYSTEMTIME lpUniversalTime,
+ LPSYSTEMTIME lpLocalTime) {
+
+ FIXME(win32, ":stub\n");
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return FALSE;
+}
diff --git a/windows/input.c b/windows/input.c
index e38e90e..f82585b 100644
--- a/windows/input.c
+++ b/windows/input.c
@@ -791,6 +791,17 @@
return layout;
}
+/**********************************************************************
+ * ActivateKeyboardLayout32 (USER32.1)
+ */
+HKL32 WINAPI ActivateKeyboardLayout32(HKL32 hLayout, UINT32 flags)
+{
+ FIXME(keyboard, "(%d, %d): stub\n", hLayout, flags);
+
+ return 0;
+}
+
+
/***********************************************************************
* GetKeyboardLayoutList (USER32.251)
* FIXME
@@ -820,3 +831,36 @@
return TRUE;
}
+
+/***********************************************************************
+ * ToUnicode32 (USER32.548)
+ */
+INT32 WINAPI ToUnicode32(
+ UINT32 wVirtKey,
+ UINT32 wScanCode,
+ PBYTE lpKeyState,
+ LPWSTR pwszBuff,
+ int cchBuff,
+ UINT32 wFlags) {
+
+ FIXME(keyboard,": stub\n");
+ return 0;
+}
+
+/***********************************************************************
+ * LoadKeyboardLayout32A (USER32.367)
+ */
+HKL32 WINAPI LoadKeyboardLayout32A(LPCSTR pwszKLID, UINT32 Flags)
+{
+ FIXME(keyboard, "%s, %d): stub\n", pwszKLID, Flags);
+ return 0;
+}
+
+/***********************************************************************
+ * LoadKeyboardLayout32W (USER32.368)
+ */
+HKL32 WINAPI LoadKeyboardLayout32W(LPCWSTR pwszKLID, UINT32 Flags)
+{
+ FIXME(keyboard, "%p, %d): stub\n", pwszKLID, Flags);
+ return 0;
+}
diff --git a/windows/message.c b/windows/message.c
index c7ad72d..db0e657 100644
--- a/windows/message.c
+++ b/windows/message.c
@@ -1981,6 +1981,17 @@
}
return ret;
}
+
+/***********************************************************************
+ * SendNotifyMessage32W (USER32.461)
+ */
+BOOL32 WINAPI SendNotifyMessage32W(HWND32 hWnd, UINT32 msg, WPARAM32 wParam,
+ LPARAM lParam)
+{
+ FIXME(msg, "(%04x,%08x,%08x,%08lx): stub\n", hWnd, msg, wParam, lParam);
+ return 0;
+}
+
/***********************************************************************
* SendMessageCallBack32A
* FIXME: It's like PostMessage. The callback gets called when the message