Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

Shell Extension with Keyboard Hook

, 31 Aug 2008 CPOL
Shell Extension with Keyboard Hook
ATLSmartMove.zip
ATLSmartMove - Copy
ATLSmartMove.suo
ATLSmartMove
ATLSmartMove.aps
ATLSmartMove.def
ATLSmartMove.rgs
ATLSmartMove.vcproj.joj-PC.joj.user
ATLSmartMove.vcproj.vspscc
ATLSmartMoveps.def
ATLSmartMovePS.vcproj.joj-PC.joj.user
ATLSmartMovePS.vcproj.vspscc
Debug
ATLSmartMove.dll
Release
ATLSmartMove.dll
ShellExtension.rgs
// ATLSmartMove.cpp : Implementation of DLL Exports.


#include "stdafx.h"
#include "resource.h"
#include "ATLSmartMove_i.h"
#include "dllmain.h"

// Used to determine whether the DLL can be unloaded by OLE
STDAPI DllCanUnloadNow(void)
{
    return S_FALSE; //_AtlModule.DllCanUnloadNow();
}


// Returns a class factory to create an object of the requested type
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
    return _AtlModule.DllGetClassObject(rclsid, riid, ppv);
}


// DllRegisterServer - Adds entries to the system registry
STDAPI DllRegisterServer(void)
{
    // registers object, typelib and all interfaces in typelib
    HRESULT hr = _AtlModule.DllRegisterServer();
	return hr;
}


// DllUnregisterServer - Removes entries from the system registry
STDAPI DllUnregisterServer(void)
{
	HRESULT hr = _AtlModule.DllUnregisterServer();
	return hr;
}

// DllInstall - Adds/Removes entries to the system registry per user
//              per machine.	
STDAPI DllInstall(BOOL bInstall, LPCWSTR pszCmdLine)
{
    HRESULT hr = E_FAIL;
    static const wchar_t szUserSwitch[] = _T("user");

    if (pszCmdLine != NULL)
    {
    	if (_wcsnicmp(pszCmdLine, szUserSwitch, _countof(szUserSwitch)) == 0)
    	{
    		AtlSetPerUserRegistration(true);
    	}
    }

    if (bInstall)
    {	
    	hr = DllRegisterServer();
    	if (FAILED(hr))
    	{	
    		DllUnregisterServer();
    	}
    }
    else
    {
    	hr = DllUnregisterServer();
    }

    return hr;
}


By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

joaquinjares
Software Developer (Senior) Independent
Argentina Argentina
I have been working as a developer for 15 years now, starting with gwbasic, moving to C and VB and then to VB.Net and later C#. I've used many languages, as languages is what I really like.

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.1411023.1 | Last Updated 31 Aug 2008
Article Copyright 2008 by joaquinjares
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid