Detlef Riekenberg : rundll.exe16: Add program as 16bit wrapper for rundll32 .exe.
Alexandre Julliard
julliard at winehq.org
Mon Jul 19 11:05:42 CDT 2010
Module: wine
Branch: master
Commit: df898ea47a8a1833a842037f6d9935fcd33d7898
URL: http://source.winehq.org/git/wine.git/?a=commit;h=df898ea47a8a1833a842037f6d9935fcd33d7898
Author: Detlef Riekenberg <wine.dev at web.de>
Date: Sun Jul 18 19:15:57 2010 +0200
rundll.exe16: Add program as 16bit wrapper for rundll32.exe.
---
configure | 1 +
configure.ac | 1 +
programs/rundll.exe16/Makefile.in | 11 ++++++++
programs/rundll.exe16/rundll.c | 48 +++++++++++++++++++++++++++++++++++++
tools/wine.inf.in | 1 +
5 files changed, 62 insertions(+), 0 deletions(-)
diff --git a/configure b/configure
index a57e048..864f60e 100755
--- a/configure
+++ b/configure
@@ -14786,6 +14786,7 @@ wine_fn_config_program reg enable_reg install
wine_fn_config_program regedit enable_regedit installbin
wine_fn_config_program regsvr32 enable_regsvr32 installbin
wine_fn_config_program rpcss enable_rpcss install
+wine_fn_config_program rundll.exe16 enable_win16 install
wine_fn_config_program rundll32 enable_rundll32 install
wine_fn_config_program sc enable_sc install
wine_fn_config_program secedit enable_secedit install
diff --git a/configure.ac b/configure.ac
index 61f376e..3416773 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2723,6 +2723,7 @@ WINE_CONFIG_PROGRAM(reg,install)
WINE_CONFIG_PROGRAM(regedit,installbin)
WINE_CONFIG_PROGRAM(regsvr32,installbin)
WINE_CONFIG_PROGRAM(rpcss,install)
+WINE_CONFIG_PROGRAM(rundll.exe16,install,enable_win16)
WINE_CONFIG_PROGRAM(rundll32,install)
WINE_CONFIG_PROGRAM(sc,install)
WINE_CONFIG_PROGRAM(secedit,install)
diff --git a/programs/rundll.exe16/Makefile.in b/programs/rundll.exe16/Makefile.in
new file mode 100644
index 0000000..9e5df3e
--- /dev/null
+++ b/programs/rundll.exe16/Makefile.in
@@ -0,0 +1,11 @@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR = @srcdir@
+VPATH = @srcdir@
+MODULE = rundll.exe16
+APPMODE = -mwindows -Wb,--subsystem,win16
+IMPORTS = kernel32 kernel
+
+C_SRCS = rundll.c
+
+ at MAKE_PROG_RULES@
diff --git a/programs/rundll.exe16/rundll.c b/programs/rundll.exe16/rundll.c
new file mode 100644
index 0000000..f7788f2
--- /dev/null
+++ b/programs/rundll.exe16/rundll.c
@@ -0,0 +1,48 @@
+/*
+ * 16-bit rundll implementation
+ *
+ * Copyright 2009 Alexandre Julliard
+ * Copyright 2010 Detlef Riekenberg
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#include "wine/winbase16.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(rundll);
+
+/**************************************************************************
+ * RUNDLL entry point
+ */
+WORD WINAPI WinMain16( HINSTANCE16 inst, HINSTANCE16 prev, LPSTR cmdline, WORD show )
+{
+ int len = GetSystemDirectoryA( NULL, 0 ) + sizeof("\\rundll32.exe ") + strlen(cmdline);
+ char *buffer = HeapAlloc( GetProcessHeap(), 0, len );
+
+ GetSystemDirectoryA( buffer, len );
+ strcat( buffer, "\\rundll32.exe " );
+ strcat( buffer, cmdline );
+
+ WINE_TRACE( "starting %s\n", wine_dbgstr_a(buffer) );
+
+ WinExec16( buffer, show );
+
+ HeapFree( GetProcessHeap(), 0, buffer );
+ ExitThread( 0 );
+}
diff --git a/tools/wine.inf.in b/tools/wine.inf.in
index 63a78d2..8612f22 100644
--- a/tools/wine.inf.in
+++ b/tools/wine.inf.in
@@ -2541,6 +2541,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G"
; 32bit-only fake dlls
[FakeDllsWin32]
+10,,rundll.exe,rundll.exe16
10,,twain.dll,twain.dll16
10,,twain_32.dll
10,,winhelp.exe,winhelp.exe16
More information about the wine-cvs
mailing list