diff --git a/Makefile.in b/Makefile.in index 002f42503e6..d504ac6f24a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -253,6 +253,7 @@ ALL_MAKEFILES = \ dlls/imm32/Makefile \ dlls/infosoft/Makefile \ dlls/infosoft/tests/Makefile \ + dlls/inkobj/Makefile \ dlls/inseng/Makefile \ dlls/iphlpapi/Makefile \ dlls/iphlpapi/tests/Makefile \ @@ -617,6 +618,7 @@ dlls/imagehlp/Makefile: dlls/imagehlp/Makefile.in dlls/Makedll.rules dlls/imm32/Makefile: dlls/imm32/Makefile.in dlls/Makedll.rules dlls/infosoft/Makefile: dlls/infosoft/Makefile.in dlls/Makedll.rules dlls/infosoft/tests/Makefile: dlls/infosoft/tests/Makefile.in dlls/Maketest.rules +dlls/inkobj/Makefile: dlls/inkobj/Makefile.in dlls/Makedll.rules dlls/inseng/Makefile: dlls/inseng/Makefile.in dlls/Makedll.rules dlls/iphlpapi/Makefile: dlls/iphlpapi/Makefile.in dlls/Makedll.rules dlls/iphlpapi/tests/Makefile: dlls/iphlpapi/tests/Makefile.in dlls/Maketest.rules diff --git a/configure b/configure index fdcdbd56727..b9ea64f4500 100755 --- a/configure +++ b/configure @@ -20456,6 +20456,8 @@ ac_config_files="$ac_config_files dlls/infosoft/Makefile" ac_config_files="$ac_config_files dlls/infosoft/tests/Makefile" +ac_config_files="$ac_config_files dlls/inkobj/Makefile" + ac_config_files="$ac_config_files dlls/inseng/Makefile" ac_config_files="$ac_config_files dlls/iphlpapi/Makefile" @@ -21625,6 +21627,7 @@ do "dlls/imm32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/imm32/Makefile" ;; "dlls/infosoft/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/infosoft/Makefile" ;; "dlls/infosoft/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/infosoft/tests/Makefile" ;; + "dlls/inkobj/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/inkobj/Makefile" ;; "dlls/inseng/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/inseng/Makefile" ;; "dlls/iphlpapi/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/iphlpapi/Makefile" ;; "dlls/iphlpapi/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/iphlpapi/tests/Makefile" ;; diff --git a/configure.ac b/configure.ac index e6088ec4463..ba5b4dae1ec 100644 --- a/configure.ac +++ b/configure.ac @@ -1654,6 +1654,7 @@ AC_CONFIG_FILES([dlls/imagehlp/Makefile]) AC_CONFIG_FILES([dlls/imm32/Makefile]) AC_CONFIG_FILES([dlls/infosoft/Makefile]) AC_CONFIG_FILES([dlls/infosoft/tests/Makefile]) +AC_CONFIG_FILES([dlls/inkobj/Makefile]) AC_CONFIG_FILES([dlls/inseng/Makefile]) AC_CONFIG_FILES([dlls/iphlpapi/Makefile]) AC_CONFIG_FILES([dlls/iphlpapi/tests/Makefile]) diff --git a/dlls/Makefile.in b/dlls/Makefile.in index a1bbfdc391d..2fdc360cdf7 100644 --- a/dlls/Makefile.in +++ b/dlls/Makefile.in @@ -88,6 +88,7 @@ BASEDIRS = \ imagehlp \ imm32 \ infosoft \ + inkobj \ inseng \ iphlpapi \ itss \ diff --git a/dlls/inkobj/Makefile.in b/dlls/inkobj/Makefile.in new file mode 100644 index 00000000000..932da81b614 --- /dev/null +++ b/dlls/inkobj/Makefile.in @@ -0,0 +1,13 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = inkobj.dll +IMPORTS = kernel32 + +C_SRCS = \ + inkobj.c + +@MAKE_DLL_RULES@ + +@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/inkobj/inkobj.c b/dlls/inkobj/inkobj.c new file mode 100644 index 00000000000..517b6a7a6ce --- /dev/null +++ b/dlls/inkobj/inkobj.c @@ -0,0 +1,83 @@ +/* Copyright (C) 2007 C John Klehm + * + * 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 + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(inkobj); + +static LONG INKOBJ_refCount; +static HINSTANCE INKOBJ_hInstance; + +/***************************************************** + * DllMain (INKOBJ.init) + */ +BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, LPVOID reserved) +{ + TRACE("(%p, %d, %p)\n", hinst, reason, reserved); + + switch(reason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + break; + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls( hinst ); + INKOBJ_hInstance = hinst; + break; + } + return TRUE; +} + +/***************************************************** + * DllCanUnloadNow (INKOBJ.@) + */ +HRESULT WINAPI DllCanUnloadNow(void) +{ + return (INKOBJ_refCount != 0)? S_FALSE : S_OK; +} + +/***************************************************** + * DllGetClassObject [INKOBJ.@] + */ +HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) +{ + FIXME("Not implemented. Requested class was:%s\n", debugstr_guid(rclsid)); + return CLASS_E_CLASSNOTAVAILABLE; +} + +/***************************************************** + * DllRegisterServer (INKOBJ.@) + */ +HRESULT WINAPI DllRegisterServer(void) +{ + FIXME("Not implemented.\n"); + return E_UNEXPECTED; /* unable to register */ +} + +/***************************************************** + * DllUnregisterServer (INKOBJ.@) + */ +HRESULT WINAPI DllUnregisterServer(void) +{ + FIXME("Not implemented.\n"); + return E_UNEXPECTED; /* unable to register */ +} diff --git a/dlls/inkobj/inkobj.spec b/dlls/inkobj/inkobj.spec new file mode 100644 index 00000000000..b16365d0c9f --- /dev/null +++ b/dlls/inkobj/inkobj.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer()