Release 950403

Sun Apr  2 18:31:12 1995  Alexandre Julliard  (julliard@sunsite.unc.edu)

	* [Configure] [if1632/Imakefile]
	Removed new build and short names options.

	* [if1632/*.c] [tools/build.c]
	Implemented compiled call-back functions for better performance;
	all the relay code is now done in assembly code generated by the
	build program.
	Relay code is no longer dependent on being loaded below 64K.

	* [loader/resource.c]
	Fixed memory leak in LoadString(). A fix will also be needed for
	other resources.

	* [memory/global.c]
	Implemented global heap arenas, so we can store informations about
	global blocks, like lock counts or owner handle.
	Implemented FarGetOwner() and FarSetOwner().
	Implemented global heap TOOLHELP functions.

	* [memory/selector.c]
	Bug fix: it was not possible to re-use a free selector.

Sun Apr 2 01:34:52 1995 Constantine Sapuntzakis  (csapuntz@mit.edu)

	*  [controls/listbox.c]
	Major work on listbox code
         - Many bugs fixed (still many bugs)
         - More messages supported
         - Code simplified

Fri Mar 31 03:27:16 EST 1995 William Magro (wmagro@tc.cornell.edu)

	* [controls/edit.c]
	Lots of bug fixes related to diappearing text, lost carets,
	highlighting, segmentation faults, occurance of random
	characters, insertion of characters over selection, misplaced
	caret location, display corruption, end of line behavior, etc.

	* [controls/widgets.c]
	EDIT class doesn't want to use CS_PARENTDC flag.

Thu Mar 30 20:58:25 1995   Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
        
	* [loader/selector.c]
	  FixupFunctionPrologs() should also handle multiple data modules.
	  (this bug only became visible because MakeProcInstance() was fixed
	  in 950319)
	
	* [misc/dosfs.c]
	  Simplified DOS_SimplifyPath.
	  Small fix to DOS_opendir to reuse an entry if an open directory
	  is opened again, to prevent "too many open directories" messages.

Thu Mar 30 12:05:05 1995 Martin von Loewis  <loewis@informatik.hu-berlin.de>

	* [if1632/compobj.spec][include/compobj.h][misc/compobj.c]
	CoDisconnectObject: new stub function

	* [include/msdos.h]
	fix DOSVERSION

	* [loader/ne_image.c]
	NE_FixupSegment: Be more generous on additive fixups

	* [if1632/user.spec][misc/network.c]
	Add more WNet* stubs

Wed Mar 29 11:47:22 1995   Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>

        * [controls/listbox.c]
	  DlgDirList(): send segptr instead of linear pointer 
	  in message to static control
	* [controls/menu.c]
	  Tried to implement ownerdrawn menuitems. Doesn't work.
	* [if1632/gdi.spec] [include/windows.h] [objects/font.c]
	  Provide a stub for GetRasterizerCaps()
	* [loader/selector.c]
	  Pass end address instead of length to LocalInit() in 
	  CreateSelectors()
	* [memory/local.c]
	  LocalInit(): If there's already a local heap in the segment, do
	  nothing and return TRUE
	* [objects/linedda.c]
	  Replaced buggy LineDDA() with a Bresenham algorithm. Should work
	  now.
	* [windows/cursor.c]
	  LoadCursor()/CreateCursor(): Cleaned up the mess. Needs some
	  more work still.

Tue Mar 21 17:54:43 1995   Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>

        * [if1632/relay.c] [if1632/callback.c] [include/dlls.h]
	  [if1632/winprocs.spec] [if1632/winprocs.c] [include/winprocs.h]
	  [controls/widgets.c] [misc/shell.c] [misc/commdlg.c]
	  [windows/nonclient.c] [misc/message.c]
	  Added a new builtin DLL that provides 16 bit entry points for all
	  the Def*Procs (DefDlgProc, ButtonProc etc.). OWL programs work
	  again.
	* [misc/shell.c]
	  RegOpenKey()/RegCreateKey() bugs fixed.
        * [loader/ne_image.c]
	  Skipping the initialization of a DLL when CS == 0 was broken.
diff --git a/misc/network.c b/misc/network.c
index b662d99..5c7ab4f 100644
--- a/misc/network.c
+++ b/misc/network.c
@@ -31,6 +31,124 @@
 typedef LPSTR 	LPNETRESOURCE;
 
 /**************************************************************************
+ *              WNetErrorText       [USER.499]
+ */
+int WNetErrorText(WORD nError,LPSTR lpszText,WORD cbText)
+{
+	printf("EMPTY STUB !!! WNetErrorText(%x,%p,%x)\n",
+		nError,lpszText,cbText);
+	return FALSE;
+}
+
+/**************************************************************************
+ *              WNetOpenJob       [USER.501]
+ */
+int WNetOpenJob(LPSTR szQueue,LPSTR szJobTitle,WORD nCopies,LPWORD pfh)
+{
+	printf("EMPTY STUB !!! WNetOpenJob('%s','%s',%x,%p)\n",
+		szQueue,szJobTitle,nCopies,pfh);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetCloseJob       [USER.502]
+ */
+int WNetCloseJob(WORD fh,LPWORD pidJob,LPSTR szQueue)
+{
+	printf("EMPTY STUB !!! WNetCloseJob(%x,%p,'%s')\n",
+		fh,pidJob,szQueue);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetAbortJob       [USER.503]
+ */
+int WNetAbortJob(LPSTR szQueue,WORD wJobId)
+{
+	printf("EMPTY STUB !!! WNetAbortJob('%s',%x)\n",
+		szQueue,wJobId);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetHoldJob       [USER.504]
+ */
+int WNetHoldJob(LPSTR szQueue,WORD wJobId)
+{
+	printf("EMPTY STUB !!! WNetHoldJob('%s',%x)\n",
+		szQueue,wJobId);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetReleaseJob       [USER.505]
+ */
+int WNetReleaseJob(LPSTR szQueue,WORD wJobId)
+{
+	printf("EMPTY STUB !!! WNetReleaseJob('%s',%x)\n",
+		szQueue,wJobId);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetCancelJob       [USER.506]
+ */
+int WNetCancelJob(LPSTR szQueue,WORD wJobId)
+{
+	printf("EMPTY STUB !!! WNetCancelJob('%s',%x)\n",
+		szQueue,wJobId);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetSetJobCopies       [USER.507]
+ */
+int WNetSetJobCopies(LPSTR szQueue,WORD wJobId,WORD nCopies)
+{
+	printf("EMPTY STUB !!! WNetSetJobCopies('%s',%x,%x)\n",
+		szQueue,wJobId,nCopies);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetWatchQueue       [USER.508]
+ */
+int WNetWatchQueue(HWND hWnd,LPSTR szLocal,LPSTR szUser,WORD nQueue)
+{
+	printf("EMPTY STUB !!! WNetWatchQueue(%x,'%s','%s',%x)\n",
+		hWnd,szLocal,szUser,nQueue);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetUnwatchQueue       [USER.509]
+ */
+int WNetUnwatchQueue(LPSTR szQueue)
+{
+	printf("EMPTY STUB !!! WNetUnwatchQueue('%s')\n", szQueue);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetLockQueueData       [USER.510]
+ */
+int WNetLockQueueData(LPSTR szQueue,LPSTR szUser,void *lplpQueueStruct)
+{
+	printf("EMPTY STUB !!! WNetLockQueueData('%s','%s',%p)\n",
+		szQueue,szUser,lplpQueueStruct);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetUnlockQueueData       [USER.511]
+ */
+int WNetUnlockQueueData(LPSTR szQueue)
+{
+	printf("EMPTY STUB !!! WNetUnlockQueueData('%s')\n",szQueue);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
  *				WNetGetConnection	[USER.512]
  */
 int WNetGetConnection(LPSTR lpLocalName, 
@@ -50,6 +168,25 @@
 }
 
 /**************************************************************************
+ *              WNetDeviceMode       [USER.514]
+ */
+int WNetDeviceMode(HWND hWndOwner)
+{
+	printf("EMPTY STUB !!! WNetDeviceMode(%x)\n",hWndOwner);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetBrowseDialog       [USER.515]
+ */
+int WNetBrowseDialog(HWND hParent,WORD nType,LPSTR szPath)
+{
+	printf("EMPTY STUB !!! WNetBrowseDialog(%x,%x,'%s')\n",
+		hParent,nType,szPath);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
  *				WNetGetUser			[USER.516]
  */
 UINT WNetGetUser(LPSTR lpLocalName, LPSTR lpUserName, DWORD *lpSize)
@@ -81,6 +218,126 @@
 }
 
 /**************************************************************************
+ *              WNetGetError       [USER.519]
+ */
+int WNetGetError(LPWORD nError)
+{
+	printf("EMPTY STUB !!! WNetGetError(%p)\n",nError);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetGetErrorText       [USER.520]
+ */
+int WNetGetErrorText(WORD nError, LPSTR lpBuffer, LPWORD nBufferSize)
+{
+	printf("EMPTY STUB !!! WNetGetErrorText(%x,%p,%p)\n",
+		nError,lpBuffer,nBufferSize);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetRestoreConnection       [USER.523]
+ */
+int WNetRestoreConnection(HWND hwndOwner,LPSTR lpszDevice)
+{
+	printf("EMPTY STUB !!! WNetRestoreConnection(%x,'%s')\n",
+		hwndOwner,lpszDevice);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetWriteJob       [USER.524]
+ */
+int WNetWriteJob(WORD hJob,void *lpData,LPWORD lpcbData)
+{
+	printf("EMPTY STUB !!! WNetWriteJob(%x,%p,%p)\n",
+		hJob,lpData,lpcbData);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WnetConnectDialog       [USER.525]
+ */
+UINT WNetConnectDialog(HWND hWndParent, WORD iType)
+{
+	printf("EMPTY STUB !!! WNetConnectDialog(%4X, %4X)\n", hWndParent, iType);
+	return WN_SUCCESS;
+}
+
+/**************************************************************************
+ *              WNetDisconnectDialog       [USER.526]
+ */
+int WNetDisconnectDialog(HWND hwndOwner, WORD iType)
+{
+	printf("EMPTY STUB !!! WNetDisconnectDialog(%x,%x)\n",
+		hwndOwner,iType);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WnetConnectionDialog     [USER.527]
+ */
+UINT WNetConnectionDialog(HWND hWndParent, WORD iType)
+{
+	printf("EMPTY STUB !!! WNetConnectionDialog(%4X, %4X)\n", 
+		hWndParent, iType);
+	return WN_SUCCESS;
+}
+
+/**************************************************************************
+ *              WNetViewQueueDialog       [USER.528]
+ */
+int WNetViewQueueDialog(HWND hwndOwner,LPSTR lpszQueue)
+{
+	printf("EMPTY STUB !!! WNetViewQueueDialog(%x,'%s')\n",
+		hwndOwner,lpszQueue);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetPropertyDialog       [USER.529]
+ */
+int WNetPropertyDialog(HWND hwndParent,WORD iButton,
+	WORD nPropSel,LPSTR lpszName,WORD nType)
+{
+	printf("EMPTY STUB !!! WNetPropertyDialog(%x,%x,%x,'%s',%x)\n",
+		hwndParent,iButton,nPropSel,lpszName,nType);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetGetDirectoryType       [USER.530]
+ */
+int WNetGetDirectoryType(LPSTR lpName,void *lpType)
+{
+	printf("EMPTY STUB !!! WNetGetDirectoryType('%s',%p)\n",
+		lpName,lpType);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetDirectoryNotify       [USER.531]
+ */
+int WNetDirectoryNotify(HWND hwndOwner,void *lpDir,WORD wOper)
+{
+	printf("EMPTY STUB !!! WNetDirectoryNotify(%x,%p,%x)\n",
+		hwndOwner,lpDir,wOper);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
+ *              WNetGetPropertyText       [USER.532]
+ */
+int WNetGetPropertyText(HWND hwndParent,WORD iButton,WORD nPropSel,
+	LPSTR lpszName,WORD nType)
+{
+	printf("EMPTY STUB !!! WNetGetPropertyText(%x,%x,%x,'%s',%x)\n",
+		hwndParent,iButton,nPropSel,lpszName,nType);
+	return WN_NET_ERROR;
+}
+
+/**************************************************************************
  *				WNetAddConnection2	[USER.???]
  */
 UINT WNetAddConnection2(LPSTR lpNetPath, LPSTR lpPassWord,