Release 940510

May 9, 94 martin2@trgcorp.solucorp.qc.ca (Martin Ayotte)

	* [controls/scroll.c]
	Make thumbtrack button disappear if scroll box ratio < 3:1.
	Make arrow buttons rectangular if scroll box ratio < 2:1.
	Add code for SBS_TOPALIGN, SBS_BOTTOMALIGN, 
				SBS_LEFTALIGN & SBS_RIGHTALIGN.
	Bug fix in NC_CreateScrollBars(), no more bigbutt in calendar.exe... :-)

	* [loader/library.c] [loader/task.c] [misc/exec.c]
	Continue playing around trying to get a second task running.

	* [windows/mdi.c]
	Change OBM_CLOSE for OBM_OLD_CLOSE, a smaller dot button when maximized.

	* [everywhere]
	Adding previous works of the Apr 25, 94.

Tue May 10 18:09:14 1994 Erik Bos (erik@trashcan.hacktic.nl)

	* [if1632/mmsystem.spec] [misc/mmsystem.c] [include/mmsystem.h]
	Added Martin's mmsystem.dll stubs.

	* [misc/sound.c]
	Added remaining stubs for sound.dll.

	* [if1632/shell.spec] [misc/shell.c]
	Fixed prototypes (I found them in BC 4) and added ShellAbout()
	and AboutDlgProc().
diff --git a/misc/shell.c b/misc/shell.c
index f60d9ff..bb86353 100644
--- a/misc/shell.c
+++ b/misc/shell.c
@@ -8,64 +8,202 @@
 #include <unistd.h>
 #include "windows.h"
 
+typedef DWORD HKEY;
+typedef FAR LONG *LPWORD;
+DECLARE_HANDLE(HDROP);
+
+extern HINSTANCE hSysRes;
 
 /*************************************************************************
- *				RegOpenKey			[SHELL.1]
+ *				RegOpenKey		[SHELL.1]
  */
-int RegOpenKey(void) 
+LONG RegOpenKey(HKEY k, LPCSTR s, HKEY FAR *p)
 {
-	printf("RegOpenKey : Empty Stub !!!\n");
+	fprintf(stderr, "RegOpenKey : Empty Stub !!!\n");
 }
 
+
 /*************************************************************************
  *				RegCreateKey		[SHELL.2]
  */
-int RegCreateKey(void) 
+LONG RegCreateKey(HKEY k, LPCSTR s, HKEY FAR *p)
 {
-	printf("RegCreateKey : Empty Stub !!!\n");
+	fprintf(stderr, "RegCreateKey : Empty Stub !!!\n");
 }
 
+
 /*************************************************************************
- *				RegCloseKey			[SHELL.3]
+ *				RegCloseKey		[SHELL.3]
  */
-int RegCloseKey(void) 
+LONG RegCloseKey(HKEY k)
 {
-	printf("RegCloseKey : Empty Stub !!!\n");
+	fprintf(stderr, "RegCloseKey : Empty Stub !!!\n");
 }
 
+
 /*************************************************************************
  *				RegDeleteKey		[SHELL.4]
  */
-int RegDeleteKey(void) 
+LONG RegDeleteKey(HKEY k, LPCSTR s)
 {
-	printf("RegDeleteKey : Empty Stub !!!\n");
+	fprintf(stderr, "RegDeleteKey : Empty Stub !!!\n");
+}
+
+
+/*************************************************************************
+ *				RegSetValue		[SHELL.5]
+ */
+LONG RegSetValue(HKEY k, LPCSTR s1, DWORD dw, LPCSTR s2, DWORD dw2)
+{
+	fprintf(stderr, "RegSetValue : Empty Stub !!!\n");
+}
+
+
+/*************************************************************************
+ *				RegQueryValue		[SHELL.6]
+ */
+LONG RegQueryValue(HKEY k, LPCSTR s, LPSTR s2, LONG FAR *p)
+{
+	fprintf(stderr, "RegQueryValue : Empty Stub !!!\n");
+}
+
+
+/*************************************************************************
+ *				RegEnumKey		[SHELL.7]
+ */
+LONG RegEnumKey(HKEY k, DWORD dw, LPSTR s, DWORD dw2)
+{
+	fprintf(stderr, "RegEnumKey : Empty Stub !!!\n");
+}
+
+/*************************************************************************
+ *				DragAcceptFiles		[SHELL.9]
+ */
+void DragAcceptFiles(HWND hWnd, BOOL b)
+{
+	fprintf(stderr, "DragAcceptFiles : Empty Stub !!!\n");
+}
+
+
+/*************************************************************************
+ *				DragQueryFile		[SHELL.11]
+ */
+void DragQueryFile(HDROP h, UINT u, LPSTR u2, UINT u3)
+{
+	fprintf(stderr, "DragQueryFile : Empty Stub !!!\n");
+
+}
+
+
+/*************************************************************************
+ *				DragFinish		[SHELL.12]
+ */
+void DragFinish(HDROP h)
+{
+	fprintf(stderr, "DragFinish : Empty Stub !!!\n");
+
+}
+
+
+/*************************************************************************
+ *				DragQueryPoint		[SHELL.13]
+ */
+BOOL DragQueryPoint(HDROP h, POINT FAR *p)
+{
+	fprintf(stderr, "DragQueryPoinyt : Empty Stub !!!\n");
+
 }
 
 
 /*************************************************************************
  *				ShellExecute		[SHELL.20]
  */
-int ShellExecute(LPSTR ptr)
+HINSTANCE ShellExecute(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, int iShowCmd)
 {
-	printf("ShellExecute : Empty Stub !!!\n");
+	fprintf(stderr, "ShellExecute : Empty Stub !!!\n");
 }
 
 
 /*************************************************************************
+ *				FindExecutable		[SHELL.21]
+ */
+HINSTANCE FindExecutable(LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult)
+{
+	fprintf(stderr, "FindExecutable : Empty Stub !!!\n");
+
+}
+
+char AppName[256], AppMisc[256];
+
+/*************************************************************************
+ *				AboutDlgProc		[SHELL.33]
+ */
+INT AboutDlgProc(HWND hWnd, WORD msg, WORD wParam, LONG lParam)
+{
+	char temp[256];
+
+	switch(msg) {
+        case WM_INITDIALOG:
+		sprintf(temp, "About %s", AppName);
+/*		SetDlgItemText(hWnd, 0, temp);*/
+		SetDlgItemText(hWnd, 100, AppMisc);
+		break;
+
+        case WM_COMMAND:
+		switch (wParam) {
+		case IDOK:
+			EndDialog(hWnd, TRUE);
+			return TRUE;
+		}
+	}
+	return FALSE;
+}
+
+/*************************************************************************
+ *				ShellAbout		[SHELL.22]
+ */
+INT ShellAbout(HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON hIcon)
+{
+	fprintf(stderr, "ShellAbout ! (%s, %s)\n", szApp, szOtherStuff);
+
+	strcpy(AppName, szApp);
+	strcpy(AppMisc, szOtherStuff);
+
+	return DialogBox(hSysRes, "SHELL_ABOUT_MSGBOX", hWnd, (FARPROC)AboutDlgProc);
+}
+
+
+/*************************************************************************
+ *				ExtractIcon		[SHELL.34]
+ */
+HICON ExtractIcon(HINSTANCE hInst, LPCSTR lpszExeFileName, UINT nIconIndex)
+{
+	fprintf(stderr, "ExtractIcon : Empty Stub !!!\n");
+
+}
+
+
+/*************************************************************************
+ *				ExtractAssociatedIcon	[SHELL.36]
+ */
+HICON ExtractAssociatedIcon(HINSTANCE hInst,LPSTR lpIconPath, LPWORD lpiIcon)
+{
+	fprintf(stderr, "ExtractAssociatedIcon : Empty Stub !!!\n");
+}
+
+/*************************************************************************
  *				RegisterShellHook	[SHELL.102]
  */
 int RegisterShellHook(void *ptr) 
 {
-	printf("RegisterShellHook : Empty Stub !!!\n");
+	fprintf(stderr, "RegisterShellHook : Empty Stub !!!\n");
 }
 
+
 /*************************************************************************
  *				ShellHookProc		[SHELL.103]
  */
 int ShellHookProc(void) 
 {
-	printf("ShellHookProc : Empty Stub !!!\n");
+	fprintf(stderr, "ShellHookProc : Empty Stub !!!\n");
 }
-
-
-