Index: Makefile.in
===================================================================
RCS file: /home/wine/wine/dlls/ole32/Makefile.in,v
retrieving revision 1.30
diff -u -r1.30 Makefile.in
--- Makefile.in	15 May 2003 22:55:37 -0000	1.30
+++ Makefile.in	4 Jul 2003 20:13:00 -0000
@@ -31,8 +31,6 @@
 	marshal.c \
 	memlockbytes.c \
 	moniker.c \
-	ole16.c \
-	ole2.c \
 	ole2stubs.c \
 	ole2impl.c \
 	ole32_main.c \
@@ -42,12 +40,14 @@
 	rpc.c \
 	stg_bigblockfile.c \
 	stg_stream.c \
-	storage.c \
 	storage32.c
 
 C_SRCS16 = \
 	memlockbytes16.c \
-	ole2nls.c
+	ole16.c \
+	ole2_16.c \
+	ole2nls.c \
+	storage.c
 
 RC_SRCS = ole32res.rc version.rc
 
Index: compobj.c
===================================================================
RCS file: /home/wine/wine/dlls/ole32/compobj.c,v
retrieving revision 1.78
diff -u -r1.78 compobj.c
--- compobj.c	18 Jun 2003 03:30:40 -0000	1.78
+++ compobj.c	4 Jul 2003 20:13:35 -0000
@@ -703,6 +703,37 @@
 }
 
 /******************************************************************************
+ *		CLSIDFromProgID	[COMPOBJ.61]
+ * Converts a program id into the respective GUID. (By using a registry lookup)
+ * RETURNS
+ *	riid associated with the progid
+ */
+HRESULT WINAPI CLSIDFromProgID16(
+	LPCOLESTR16 progid,	/* [in] program id as found in registry */
+	LPCLSID riid		/* [out] associated CLSID */
+) {
+	char	*buf,buf2[80];
+	DWORD	buf2len;
+	HRESULT	err;
+	HKEY	xhkey;
+
+	buf = HeapAlloc(GetProcessHeap(),0,strlen(progid)+8);
+	sprintf(buf,"%s\\CLSID",progid);
+	if ((err=RegOpenKeyA(HKEY_CLASSES_ROOT,buf,&xhkey))) {
+		HeapFree(GetProcessHeap(),0,buf);
+                return CO_E_CLASSSTRING;
+	}
+	HeapFree(GetProcessHeap(),0,buf);
+	buf2len = sizeof(buf2);
+	if ((err=RegQueryValueA(xhkey,NULL,buf2,&buf2len))) {
+		RegCloseKey(xhkey);
+                return CO_E_CLASSSTRING;
+	}
+	RegCloseKey(xhkey);
+	return __CLSIDFromStringA(buf2,riid);
+}
+
+/******************************************************************************
  *		CLSIDFromProgID	[OLE32.2]
  * Converts a program id into the respective GUID. (By using a registry lookup)
  * RETURNS

Index: ole16.c
===================================================================
RCS file: /home/wine/wine/dlls/ole32/ole16.c,v
retrieving revision 1.4
diff -u -r1.4 ole16.c
--- ole16.c	12 Apr 2003 00:09:14 -0000	1.4
+++ ole16.c	4 Jul 2003 20:14:00 -0000
@@ -384,37 +384,6 @@
   return ret;
 }
 
-/******************************************************************************
- *		CLSIDFromProgID	[COMPOBJ.61]
- * Converts a program id into the respective GUID. (By using a registry lookup)
- * RETURNS
- *	riid associated with the progid
- */
-HRESULT WINAPI CLSIDFromProgID16(
-	LPCOLESTR16 progid,	/* [in] program id as found in registry */
-	LPCLSID riid		/* [out] associated CLSID */
-) {
-	char	*buf,buf2[80];
-	DWORD	buf2len;
-	HRESULT	err;
-	HKEY	xhkey;
-
-	buf = HeapAlloc(GetProcessHeap(),0,strlen(progid)+8);
-	sprintf(buf,"%s\\CLSID",progid);
-	if ((err=RegOpenKeyA(HKEY_CLASSES_ROOT,buf,&xhkey))) {
-		HeapFree(GetProcessHeap(),0,buf);
-                return CO_E_CLASSSTRING;
-	}
-	HeapFree(GetProcessHeap(),0,buf);
-	buf2len = sizeof(buf2);
-	if ((err=RegQueryValueA(xhkey,NULL,buf2,&buf2len))) {
-		RegCloseKey(xhkey);
-                return CO_E_CLASSSTRING;
-	}
-	RegCloseKey(xhkey);
-	return __CLSIDFromStringA(buf2,riid);
-}
-
 /***********************************************************************
  *           LookupETask (COMPOBJ.94)
  */

Index: ole2.c
===================================================================
RCS file: /home/wine/wine/dlls/ole32/ole2.c,v
retrieving revision 1.44
diff -u -r1.44 ole2.c
--- ole2.c	2 Jul 2003 04:37:26 -0000	1.44
+++ ole2.c	4 Jul 2003 20:14:18 -0000
@@ -319,17 +319,6 @@
 }
 
 /***********************************************************************
- *           RegisterDragDrop (OLE2.35)
- */
-HRESULT WINAPI RegisterDragDrop16(
-	HWND16 hwnd,
-	LPDROPTARGET pDropTarget
-) {
-	FIXME("(0x%04x,%p),stub!\n",hwnd,pDropTarget);
-	return S_OK;
-}
-
-/***********************************************************************
  *           RegisterDragDrop (OLE32.139)
  */
 HRESULT WINAPI RegisterDragDrop(
@@ -373,16 +362,6 @@
 }
 
 /***********************************************************************
- *           RevokeDragDrop (OLE2.36)
- */
-HRESULT WINAPI RevokeDragDrop16(
-	HWND16 hwnd
-) {
-	FIXME("(0x%04x),stub!\n",hwnd);
-	return S_OK;
-}
-
-/***********************************************************************
  *           RevokeDragDrop (OLE32.141)
  */
 HRESULT WINAPI RevokeDragDrop(
@@ -2212,50 +2191,6 @@
 	break;
     }
   }
-}
-
-/******************************************************************************
- * OleMetaFilePictFromIconAndLabel (OLE2.56)
- *
- * Returns a global memory handle to a metafile which contains the icon and
- * label given.
- * I guess the result of that should look somehow like desktop icons.
- * If no hIcon is given, we load the icon via lpszSourceFile and iIconIndex.
- * This code might be wrong at some places.
- */
-HGLOBAL16 WINAPI OleMetaFilePictFromIconAndLabel16(
-	HICON16 hIcon,
-	LPCOLESTR16 lpszLabel,
-	LPCOLESTR16 lpszSourceFile,
-	UINT16 iIconIndex
-) {
-    METAFILEPICT16 *mf;
-    HGLOBAL16 hmf;
-    HDC hdc;
-
-    FIXME("(%04x, '%s', '%s', %d): incorrect metrics, please try to correct them !\n\n\n", hIcon, lpszLabel, lpszSourceFile, iIconIndex);
-
-    if (!hIcon) {
-        if (lpszSourceFile) {
-	    HINSTANCE16 hInstance = LoadLibrary16(lpszSourceFile);
-
-	    /* load the icon at index from lpszSourceFile */
-	    hIcon = HICON_16(LoadIconA(HINSTANCE_32(hInstance), (LPCSTR)(DWORD)iIconIndex));
-	    FreeLibrary16(hInstance);
-	} else
-	    return 0;
-    }
-
-    hdc = CreateMetaFileA(NULL);
-    DrawIcon(hdc, 0, 0, HICON_32(hIcon)); /* FIXME */
-    TextOutA(hdc, 0, 0, lpszLabel, 1); /* FIXME */
-    hmf = GlobalAlloc16(0, sizeof(METAFILEPICT16));
-    mf = (METAFILEPICT16 *)GlobalLock16(hmf);
-    mf->mm = MM_ANISOTROPIC;
-    mf->xExt = 20; /* FIXME: bogus */
-    mf->yExt = 20; /* dito */
-    mf->hMF = CloseMetaFile16(HDC_16(hdc));
-    return hmf;
 }
 
 /******************************************************************************

--- /dev/null	Fri Jul  4 16:15:38 2003
+++ ole2_16.c	Fri Jul  4 16:08:52 2003
@@ -0,0 +1,120 @@
+
+/*
+ *	OLE2 library - 16 bit only interfaces
+ *
+ *	Copyright 1995	Martin von Loewis
+ *      Copyright 1999  Francis Beaudet
+ *      Copyright 1999  Noel Borthwick
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include "config.h"
+
+#include <assert.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define NONAMELESSUNION
+#define NONAMELESSSTRUCT
+#include "commctrl.h"
+#include "ole2.h"
+#include "ole2ver.h"
+#include "windef.h"
+#include "winbase.h"
+#include "winerror.h"
+#include "winuser.h"
+#include "winreg.h"
+#include "wownt32.h"
+
+#include "wine/winbase16.h"
+#include "wine/wingdi16.h"
+#include "wine/winuser16.h"
+#include "ole32_main.h"
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(ole);
+WINE_DECLARE_DEBUG_CHANNEL(accel);
+
+#define HICON_16(h32)		(LOWORD(h32))
+#define HICON_32(h16)		((HICON)(ULONG_PTR)(h16))
+#define HINSTANCE_32(h16)	((HINSTANCE)(ULONG_PTR)(h16))
+
+/***********************************************************************
+ *           RegisterDragDrop (OLE2.35)
+ */
+HRESULT WINAPI RegisterDragDrop16(
+	HWND16 hwnd,
+	LPDROPTARGET pDropTarget
+) {
+	FIXME("(0x%04x,%p),stub!\n",hwnd,pDropTarget);
+	return S_OK;
+}
+
+/***********************************************************************
+ *           RevokeDragDrop (OLE2.36)
+ */
+HRESULT WINAPI RevokeDragDrop16(
+	HWND16 hwnd
+) {
+	FIXME("(0x%04x),stub!\n",hwnd);
+	return S_OK;
+}
+
+/******************************************************************************
+ * OleMetaFilePictFromIconAndLabel (OLE2.56)
+ *
+ * Returns a global memory handle to a metafile which contains the icon and
+ * label given.
+ * I guess the result of that should look somehow like desktop icons.
+ * If no hIcon is given, we load the icon via lpszSourceFile and iIconIndex.
+ * This code might be wrong at some places.
+ */
+HGLOBAL16 WINAPI OleMetaFilePictFromIconAndLabel16(
+	HICON16 hIcon,
+	LPCOLESTR16 lpszLabel,
+	LPCOLESTR16 lpszSourceFile,
+	UINT16 iIconIndex
+) {
+    METAFILEPICT16 *mf;
+    HGLOBAL16 hmf;
+    HDC hdc;
+
+    FIXME("(%04x, '%s', '%s', %d): incorrect metrics, please try to correct them !\n\n\n", hIcon, lpszLabel, lpszSourceFile, iIconIndex);
+
+    if (!hIcon) {
+        if (lpszSourceFile) {
+	    HINSTANCE16 hInstance = LoadLibrary16(lpszSourceFile);
+
+	    /* load the icon at index from lpszSourceFile */
+	    hIcon = HICON_16(LoadIconA(HINSTANCE_32(hInstance), (LPCSTR)(DWORD)iIconIndex));
+	    FreeLibrary16(hInstance);
+	} else
+	    return 0;
+    }
+
+    hdc = CreateMetaFileA(NULL);
+    DrawIcon(hdc, 0, 0, HICON_32(hIcon)); /* FIXME */
+    TextOutA(hdc, 0, 0, lpszLabel, 1); /* FIXME */
+    hmf = GlobalAlloc16(0, sizeof(METAFILEPICT16));
+    mf = (METAFILEPICT16 *)GlobalLock16(hmf);
+    mf->mm = MM_ANISOTROPIC;
+    mf->xExt = 20; /* FIXME: bogus */
+    mf->yExt = 20; /* dito */
+    mf->hMF = CloseMetaFile16(HDC_16(hdc));
+    return hmf;
+}
