diff --git a/reactos/dll/shellext/qcklnch/CMakeLists.txt b/reactos/dll/shellext/qcklnch/CMakeLists.txt new file mode 100644 index 00000000000..0f02b6f61fa --- /dev/null +++ b/reactos/dll/shellext/qcklnch/CMakeLists.txt @@ -0,0 +1,38 @@ + +project(SHELL) + +set_cpp(WITH_RUNTIME) + +if(NOT MSVC) + # HACK: this should be enabled globally! + add_compile_flags_language("-std=c++11" "CXX") +endif() + +include_directories( + ${REACTOS_SOURCE_DIR}/sdk/lib/atl + ${REACTOS_SOURCE_DIR}) + +spec2def(qcklnch.dll qcklnch.spec) + +add_library(qcklnch SHARED + qcklnch.cpp + ${CMAKE_CURRENT_BINARY_DIR}/qcklnch.def) + +set_module_type(qcklnch win32dll UNICODE) +target_link_libraries(qcklnch uuid wine atlnew) + +add_importlibs(qcklnch + advapi32 + winmm + ole32 + oleaut32 + shlwapi + shell32 + comctl32 + msvcrt + gdi32 + user32 + kernel32 + ntdll) + +add_cd_file(TARGET qcklnch DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/shellext/qcklnch/precomp.h b/reactos/dll/shellext/qcklnch/precomp.h new file mode 100644 index 00000000000..50d6e2415ff --- /dev/null +++ b/reactos/dll/shellext/qcklnch/precomp.h @@ -0,0 +1,51 @@ +#pragma once + +#define WIN32_NO_STATUS +#include +#include + +#define COBJMACROS +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H +#define NTOS_MODE_USER + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +//#include "resource.h" + +#undef DbgPrint + +/*extern HINSTANCE g_hInstance; + +#define ID_ICON_VOLUME (WM_APP + 0x4CB) + +// {845B0FB2-66E0-416B-8F91-314E23F7C12D} +DEFINE_GUID(CLSID_NtObjectFolder, + 0x845b0fb2, 0x66e0, 0x416b, 0x8f, 0x91, 0x31, 0x4e, 0x23, 0xf7, 0xc1, 0x2d); + +//#include "ntobjfolder.h" +//#include "regfolder.h" +*/ diff --git a/reactos/dll/shellext/qcklnch/qcklnch.cpp b/reactos/dll/shellext/qcklnch/qcklnch.cpp new file mode 100644 index 00000000000..ce6637e3934 --- /dev/null +++ b/reactos/dll/shellext/qcklnch/qcklnch.cpp @@ -0,0 +1,67 @@ +/* + * PROJECT: ReactOS shell extensions + * LICENSE: GPL - See COPYING in the top level directory + * FILE: dll/shellext/qcklnch/qcklnch.cpp + * PURPOSE: Quick Launch Toolbar (Taskbar Shell Extension) + * PROGRAMMERS: Shriraj Sawant a.k.a SR13 + */ + +#include "precomp.h" + +#include + +WINE_DEFAULT_DEBUG_CHANNEL(ntobjshex); + +BEGIN_OBJECT_MAP(ObjectMap) + //OBJECT_ENTRY(CLSID_RegistryFolder, CRegistryFolder) +END_OBJECT_MAP() + +HINSTANCE g_hInstance; +CComModule g_Module; + +void *operator new (size_t, void *buf) +{ + return buf; +} + +STDAPI_(BOOL) +DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad) +{ + if (fdwReason == DLL_PROCESS_ATTACH) + { + g_hInstance = hinstDLL; + DisableThreadLibraryCalls(g_hInstance); + + g_Module.Init(ObjectMap, g_hInstance, NULL); + } + else if (fdwReason == DLL_PROCESS_DETACH) + { + g_hInstance = NULL; + g_Module.Term(); + } + return TRUE; +} + +STDAPI +DllRegisterServer(void) +{ + return g_Module.DllRegisterServer(FALSE); +} + +STDAPI +DllUnregisterServer(void) +{ + return g_Module.DllUnregisterServer(FALSE); +} + +STDAPI +DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) +{ + return g_Module.DllGetClassObject(rclsid, riid, ppv); +} + +STDAPI +DllCanUnloadNow(void) +{ + return g_Module.DllCanUnloadNow(); +} diff --git a/reactos/dll/shellext/qcklnch/qcklnch.spec b/reactos/dll/shellext/qcklnch/qcklnch.spec new file mode 100644 index 00000000000..069be116271 --- /dev/null +++ b/reactos/dll/shellext/qcklnch/qcklnch.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() \ No newline at end of file