diff --git a/reactos/dll/win32/shimgvw/CMakeLists.txt b/reactos/dll/win32/shimgvw/CMakeLists.txt index be17accfd3c..8895a0b654d 100644 --- a/reactos/dll/win32/shimgvw/CMakeLists.txt +++ b/reactos/dll/win32/shimgvw/CMakeLists.txt @@ -3,6 +3,7 @@ spec2def(shimgvw.dll shimgvw.spec) list(APPEND SOURCE shimgvw.c + comsup.c shimgvw.rc ${CMAKE_CURRENT_BINARY_DIR}/shimgvw_stubs.c ${CMAKE_CURRENT_BINARY_DIR}/shimgvw.def) diff --git a/reactos/dll/win32/shimgvw/comsup.c b/reactos/dll/win32/shimgvw/comsup.c new file mode 100644 index 00000000000..473d634cb15 --- /dev/null +++ b/reactos/dll/win32/shimgvw/comsup.c @@ -0,0 +1,58 @@ +#define INITGUID + +#include +#include + +LONG LockCount; +LONG ObjectCount; + + +VOID +DllInitServer(VOID) +{ + ObjectCount = 0; + LockCount = 0; +} + + +STDAPI +DllRegisterServer(VOID) +{ + /* Always return S_OK, since there is currently nothing that can go wrong */ + return S_OK; +} + + +STDAPI +DllUnregisterServer(VOID) +{ + /* Always return S_OK, since there is currently nothing that can go wrong */ + return S_OK; +} + + +STDAPI +DllCanUnloadNow(VOID) +{ + if ((ObjectCount != 0) || (LockCount != 0)) + { + return S_FALSE; + } + else + { + return S_OK; + } +} + + +STDAPI +DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) +{ + HRESULT hr; + + /* There are no classes to export, so always return CLASS_E_CLASSNOTAVAILABLE*/ + *ppv = NULL; + hr = CLASS_E_CLASSNOTAVAILABLE; + + return hr; +} diff --git a/reactos/dll/win32/shimgvw/comsup.h b/reactos/dll/win32/shimgvw/comsup.h new file mode 100644 index 00000000000..9ac6d856c5c --- /dev/null +++ b/reactos/dll/win32/shimgvw/comsup.h @@ -0,0 +1,4 @@ +extern LONG LockCount; +extern LONG ObjectCount; + +VOID DllInitServer(VOID); \ No newline at end of file diff --git a/reactos/dll/win32/shimgvw/shimgvw.spec b/reactos/dll/win32/shimgvw/shimgvw.spec index 427eaa4ca7c..fd06419ee2c 100644 --- a/reactos/dll/win32/shimgvw/shimgvw.spec +++ b/reactos/dll/win32/shimgvw/shimgvw.spec @@ -7,8 +7,8 @@ @ stdcall ImageView_PrintToW(ptr ptr wstr long) @ stdcall imageview_fullscreenW(ptr ptr wstr long) ImageView_FullscreenW @ stub ConvertDIBSECTIONToThumbnail -@ stub -private DllCanUnloadNow -@ stub -private DllGetClassObject +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) @ stub -private DllInstall -@ stub -private DllRegisterServer -@ stub -private DllUnregisterServer +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer()