diff --git a/configure b/configure index a5b8dd05e1f..6dd4a36972e 100755 --- a/configure +++ b/configure @@ -14503,6 +14503,7 @@ wine_fn_config_lib dxerr9 wine_fn_config_dll dxgi enable_dxgi dxgi wine_fn_config_test dlls/dxgi/tests dxgi_test wine_fn_config_lib dxguid +wine_fn_config_dll explorerframe enable_explorerframe wine_fn_config_dll faultrep enable_faultrep wine_fn_config_dll fltlib enable_fltlib wine_fn_config_dll fusion enable_fusion diff --git a/configure.ac b/configure.ac index bacba418610..aac7a827f4b 100644 --- a/configure.ac +++ b/configure.ac @@ -2359,6 +2359,7 @@ WINE_CONFIG_LIB(dxerr9) WINE_CONFIG_DLL(dxgi,,[dxgi]) WINE_CONFIG_TEST(dlls/dxgi/tests) WINE_CONFIG_LIB(dxguid) +WINE_CONFIG_DLL(explorerframe) WINE_CONFIG_DLL(faultrep) WINE_CONFIG_DLL(fltlib) WINE_CONFIG_DLL(fusion) diff --git a/dlls/explorerframe/Makefile.in b/dlls/explorerframe/Makefile.in new file mode 100644 index 00000000000..3ef7e5b2486 --- /dev/null +++ b/dlls/explorerframe/Makefile.in @@ -0,0 +1,14 @@ +EXTRADEFS = -DCOM_NO_WINDOWS_H +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = explorerframe.dll + +C_SRCS = \ + explorerframe_main.c + +RC_SRCS = \ + version.rc + +@MAKE_DLL_RULES@ diff --git a/dlls/explorerframe/explorerframe.spec b/dlls/explorerframe/explorerframe.spec new file mode 100644 index 00000000000..dbd9c41a38f --- /dev/null +++ b/dlls/explorerframe/explorerframe.spec @@ -0,0 +1,7 @@ +# 110 stub EXPLORERFRAME_110 +# 111 stub EXPLORERFRAME_111 +# 134 stub EXPLORERFRAME_134 + +@ stdcall -private DllCanUnloadNow() +@ stub DllGetClassObject +@ stub DllGetVersion diff --git a/dlls/explorerframe/explorerframe_main.c b/dlls/explorerframe/explorerframe_main.c new file mode 100644 index 00000000000..4fa5cc627fb --- /dev/null +++ b/dlls/explorerframe/explorerframe_main.c @@ -0,0 +1,66 @@ +/* + * ExplorerFrame main functions + * + * Copyright 2010 David Hedberg + * + * 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 + +#define COBJMACROS +#define NONAMELESSUNION +#define NONAMELESSSTRUCT + +#include "windef.h" +#include "winbase.h" +#include "winreg.h" +#include "shlwapi.h" + +#include "wine/debug.h" + +#include "explorerframe_main.h" + +WINE_DEFAULT_DEBUG_CHANNEL(explorerframe); + +HINSTANCE explorerframe_hinstance; +LONG EFRAME_refCount = 0; + +/************************************************************************* + * DllMain (ExplorerFrame.@) + */ +BOOL WINAPI DllMain(HINSTANCE hinst, DWORD fdwReason, LPVOID fImpLoad) +{ + TRACE("%p, 0x%x, %p\n", hinst, fdwReason, fImpLoad); + switch (fdwReason) + { + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(hinst); + explorerframe_hinstance = hinst; + break; + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + +/************************************************************************* + * DllCanUnloadNow (ExplorerFrame.@) + */ +HRESULT WINAPI DllCanUnloadNow(void) +{ + TRACE("refCount is %d\n", EFRAME_refCount); + return EFRAME_refCount ? S_FALSE : S_OK; +} diff --git a/dlls/explorerframe/explorerframe_main.h b/dlls/explorerframe/explorerframe_main.h new file mode 100644 index 00000000000..45be66493b4 --- /dev/null +++ b/dlls/explorerframe/explorerframe_main.h @@ -0,0 +1,30 @@ +/* + * ExplorerFrame main include + * + * Copyright 2010 David Hedberg + * + * 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 + */ + +#ifndef __WINE_EXPLORERFRAME_H +#define __WINE_EXPLORERFRAME_H + +extern HINSTANCE explorerframe_hinstance; + +extern LONG EFRAME_refCount; +static inline void EFRAME_LockModule(void) { InterlockedIncrement( &EFRAME_refCount ); } +static inline void EFRAME_UnlockModule(void) { InterlockedDecrement( &EFRAME_refCount ); } + +#endif /* __WINE_EXPLORERFRAME_H */ diff --git a/dlls/explorerframe/version.rc b/dlls/explorerframe/version.rc new file mode 100644 index 00000000000..257b1fccdd3 --- /dev/null +++ b/dlls/explorerframe/version.rc @@ -0,0 +1,29 @@ +/* + * ExplorerFrame Version Resource + * + * Copyright 2010 David Hedberg + * + * 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 + */ + +#define WINE_OLESELFREGISTER +#define WINE_FILEDESCRIPTION_STR "Wine ExplorerFrame" +#define WINE_FILENAME_STR "explorerframe.dll" +#define WINE_FILEVERSION 6,1,7600,16385 +#define WINE_FILEVERSION_STR "6.1.7600.16385" +#define WINE_PRODUCTVERSION 6,1,7600,16385 +#define WINE_PRODUCTVERSION_STR "6.1.7600.16385" + +#include "wine/wine_common_ver.rc"