// Copyright (C) 2011 Fog Creek Software
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#include "TlsPtr.h"
class CTortoiseHgKeyboard :
public CComObjectRootEx<CComMultiThreadModel>,
public CComCoClass<CTortoiseHgKeyboard, &CLSID_TortoiseHgKeyboard>,
public IObjectWithSiteImpl<CTortoiseHgKeyboard>
{
private:
static CTlsPtr<CTortoiseHgKeyboard> g_pObject;
HHOOK m_hHook;
public:
CTortoiseHgKeyboard();
BEGIN_COM_MAP(CTortoiseHgKeyboard)
COM_INTERFACE_ENTRY(IObjectWithSite)
END_COM_MAP()
DECLARE_REGISTRY_RESOURCEID(IDR_KEYBOARD)
// IObjectWithSite
STDMETHOD(SetSite)(IUnknown* pUnkSite);
private:
bool GetActiveShellView(IShellView** ppSV);
bool GetSelectedFiles(CAtlList<CString>& listFiles);
bool GetFolder(CString& strFolder);
HWND GetExplorerWindow();
static LRESULT CALLBACK HookProc(int code, WPARAM wParam, LPARAM lParam);
};
|
Loading...