// Classic Shell (c) 2009-2017, Ivo Beltchev
// Open-Shell (c) 2017-2018, The Open-Shell Team
// Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author

// ClassicCopyExt.cpp : Implementation of CClassicCopyExt

#include "stdafx.h"
#include "ClassicCopyExt.h"
#include "ResourceHelper.h"
#include "dllmain.h"


// CClassicCopyExt - this is a dummy drag and drop handler. Its purpose is to get Explorer to load the DLL when
// a file is being copied or moved.

void InitClassicCopyThread( void );

STDMETHODIMP CClassicCopyExt::Initialize( PCIDLIST_ABSOLUTE pidlFolder, LPDATAOBJECT pDataObj, HKEY hProgID )
{
	InitClassicCopyThread();
	return S_OK;
}

STDMETHODIMP CClassicCopyExt::QueryContextMenu( HMENU hmenu, UINT uMenuIndex, UINT uidFirstCmd, UINT uidLastCmd, UINT uFlags )
{
	return MAKE_HRESULT(SEVERITY_SUCCESS,FACILITY_NULL,0);
}

STDMETHODIMP CClassicCopyExt::GetCommandString( UINT_PTR idCmd, UINT uFlags, UINT* pwReserved, LPSTR pszName, UINT cchMax )
{
	return E_INVALIDARG;
}

STDMETHODIMP CClassicCopyExt::InvokeCommand( LPCMINVOKECOMMANDINFO pCmdInfo )
{
	return E_INVALIDARG;
}

HRESULT WINAPI CClassicCopyExt::UpdateRegistry( BOOL bRegister )
{
	if (GetWinVersion()>=WIN_VER_WIN8)
		return S_OK;
	return _AtlModule.UpdateRegistryFromResource(IDR_CLASSICCOPYEXT,bRegister);
}
