Questions about using native vs implementing our own
Eric Pouech
eric.pouech at wanadoo.fr
Wed Apr 11 11:32:29 CDT 2007
Tom Spear a écrit :
> Hi again all, before I go and file another needless bug, I thought I
> would ask for opinions.
>
> I decided to try to run Process Explorer today with wine. When I
> first ran it, I got a dialog about missing a function. So I looked
> back thru the traces and it was because we were missing acledit.dll..
> So I imported that from my windows xp install, and got the dialog
> again. Turned out I was also missing netui0.dll, netui1.dll, and
> netui2.dll and those in turn needed netrap.dll and samlib.dll.
>
> Once I got all of those imported from XP, Process Explorer now runs
> beautifully.
>
> I looked at the version information, and here is the description of
> each dll
>
> acledit is an access control list editor
> netui0 is NT LM UI Common Code - GUI Classes
> netui1 is NT LM UI Common Code - Networking classes
> netui2 is NT LM UI Common Code - GUI Classes
> netrap is Net Remote Admin Protocol DLL
> and samlib is SAM Library DLL
>
> I assume SAM is the Security Accounts Manager service, so that last
> dll would go for that and most likely would never be implemented with
> wine. But, how about the others? Is doing one of these something
> possibly feasible for a SoC project? I'm sure that there are other
> projects that use these dll's as well, but I dont know of them..
>
> My biggest question is when is it appropriate for us to build our own
> DLL's vs just saying to use native?
>
> I would personally like to at least see the NTLM stuff get built since
> I know one of the developers is working on NTLM right now
>
> Also, should I file a bug for Process Explorer needing native dll's,
> or should I maybe file a bug to build our own versions of these dll's,
> OR should I just leave it alone altogether?
>
> I am creating an AppDB page for the program now. Does anyone object
> to me putting notes about which native dll's are needed on that page?
>
>
don't remember why I didn't send it earlier :-/
it seems it might be useful
A+
--
Eric Pouech
"The problem with designing something completely foolproof is to underestimate the ingenuity of a complete idiot." (Douglas Adams)
-------------- next part --------------
[AclEdit]: stubbed out acledit DLL (new in XP)
From: Eric Pouech <eric.pouech at wanadoo.fr>
- needed by Sysinternals' process explorer
---
Makefile.in | 2 ++
configure | 3 +++
configure.ac | 1 +
dlls/Makefile.in | 5 ++++
dlls/acledit/Makefile.in | 14 ++++++++++++
dlls/acledit/acledit.spec | 8 +++++++
dlls/acledit/main.c | 52 +++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 85 insertions(+), 0 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 7fa8ef0..541ff0d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -157,6 +157,7 @@ ALL_MAKEFILES = \
dlls/Maketest.rules \
programs/Makeprog.rules \
dlls/Makefile \
+ dlls/acledit/Makefile \
dlls/activeds/Makefile \
dlls/advapi32/Makefile \
dlls/advapi32/tests/Makefile \
@@ -498,6 +499,7 @@ dlls/Maketest.rules: dlls/Maketest.rules
programs/Makeprog.rules: programs/Makeprog.rules.in Make.rules
Makefile: Makefile.in Make.rules
dlls/Makefile: dlls/Makefile.in Make.rules
+dlls/acledit/Makefile: dlls/acledit/Makefile.in dlls/Makedll.rules
dlls/activeds/Makefile: dlls/activeds/Makefile.in dlls/Makedll.rules
dlls/advapi32/Makefile: dlls/advapi32/Makefile.in dlls/Makedll.rules
dlls/advapi32/tests/Makefile: dlls/advapi32/tests/Makefile.in dlls/Maketest.rules
diff --git a/configure b/configure
index e240093..4fd1069 100755
--- a/configure
+++ b/configure
@@ -20202,6 +20202,8 @@ ac_config_files="$ac_config_files Makefi
ac_config_files="$ac_config_files dlls/Makefile"
+ac_config_files="$ac_config_files dlls/acledit/Makefile"
+
ac_config_files="$ac_config_files dlls/activeds/Makefile"
ac_config_files="$ac_config_files dlls/advapi32/Makefile"
@@ -21421,6 +21423,7 @@ do
"programs/Makeprog.rules") CONFIG_FILES="$CONFIG_FILES programs/Makeprog.rules" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"dlls/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/Makefile" ;;
+ "dlls/acledit/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/acledit/Makefile" ;;
"dlls/activeds/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/activeds/Makefile" ;;
"dlls/advapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/advapi32/Makefile" ;;
"dlls/advapi32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/advapi32/tests/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 6d9e2cf..beea1df 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1491,6 +1491,7 @@ AC_CONFIG_FILES([dlls/Maketest.rules])
AC_CONFIG_FILES([programs/Makeprog.rules])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([dlls/Makefile])
+AC_CONFIG_FILES([dlls/acledit/Makefile])
AC_CONFIG_FILES([dlls/activeds/Makefile])
AC_CONFIG_FILES([dlls/advapi32/Makefile])
AC_CONFIG_FILES([dlls/advapi32/tests/Makefile])
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index a0dcea0..0571524 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -16,6 +16,7 @@ EXTRADIRS = @GLU32FILES@ @OPENGLFILES@ @
# Subdir list
BASEDIRS = \
+ acledit \
activeds \
advapi32 \
advpack \
@@ -455,6 +456,7 @@ IMPORT_LIBS = \
strmiids/libstrmiids.a \
uuid/libuuid.a \
winecrt0/libwinecrt0.a \
+ acledit/libacledit.$(IMPLIBEXT) \
activeds/libactiveds.$(IMPLIBEXT) \
advapi32/libadvapi32.$(IMPLIBEXT) \
advpack/libadvpack.$(IMPLIBEXT) \
@@ -580,6 +582,9 @@ implib: $(IMPORT_LIBS)
.PHONY: implib
+acledit/libacledit.$(IMPLIBEXT): acledit/acledit.spec $(WINEBUILD)
+ @cd acledit && $(MAKE) libacledit.$(IMPLIBEXT)
+
activeds/libactiveds.$(IMPLIBEXT): activeds/activeds.spec $(WINEBUILD)
@cd activeds && $(MAKE) libactiveds.$(IMPLIBEXT)
diff --git a/dlls/acledit/Makefile.in b/dlls/acledit/Makefile.in
new file mode 100644
index 0000000..83565b7
--- /dev/null
+++ b/dlls/acledit/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR = @srcdir@
+VPATH = @srcdir@
+MODULE = acledit.dll
+IMPORTLIB = libacledit.$(IMPLIBEXT)
+IMPORTS = kernel32
+
+C_SRCS = \
+ main.c
+
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@ # everything below this line is overwritten by make depend
diff --git a/dlls/acledit/acledit.spec b/dlls/acledit/acledit.spec
new file mode 100644
index 0000000..9448623
--- /dev/null
+++ b/dlls/acledit/acledit.spec
@@ -0,0 +1,8 @@
+#4 stdcall DllMain
+1 stub EditAuditInfo
+2 stub EditOwnerInfo
+3 stub EditPermissionInfo
+5 stub FMExtensionProcW
+6 stub SedDiscretionaryAclEditor
+7 stub SedSystemAclEditor
+8 stub SedTakeOwnership
diff --git a/dlls/acledit/main.c b/dlls/acledit/main.c
new file mode 100644
index 0000000..b73a8e3
--- /dev/null
+++ b/dlls/acledit/main.c
@@ -0,0 +1,52 @@
+/*
+ * Implementation of the AclEdit Interface
+ *
+ * Copyright 2006 Eric Pouech
+ *
+ * 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 "windef.h"
+#include "winbase.h"
+#include "winuser.h"
+#include "winreg.h"
+#include "winver.h"
+#include "winnls.h"
+
+#include "wine/unicode.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(acledit);
+
+/*****************************************************
+ * DllMain
+ */
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+ TRACE("(%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved);
+
+ switch (fdwReason)
+ {
+ case DLL_WINE_PREATTACH:
+ return FALSE; /* prefer native version */
+ case DLL_PROCESS_ATTACH:
+ DisableThreadLibraryCalls( hinstDLL );
+ break;
+ }
+ return TRUE;
+}
+
More information about the wine-devel
mailing list