Click here to Skip to main content
Click here to Skip to main content

Shell Extension with Keyboard Hook

By , 31 Aug 2008
 
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 use 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)

About the Author

joaquinjares
Software Developer (Senior) Independent
Argentina Argentina
Member
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.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130516.1 | Last Updated 31 Aug 2008
Article Copyright 2008 by joaquinjares
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid