Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
DropHandler.h
Package: adfview_src.zip [view]
Upload User: hy_wanghao
Upload Date: 2007-01-08
Package Size: 279k
Code Size: 3k
Category:
Shell api
Development Platform:
Visual C++
- #if !defined(AFX_DROPHANDLER_H__20010326_81A7_8573_71AC_0080AD509054__INCLUDED_)
- #define AFX_DROPHANDLER_H__20010326_81A7_8573_71AC_0080AD509054__INCLUDED_
- #pragma once
- #include "DropTargetImpl.h"
- /////////////////////////////////////////////////////////////////////////////
- // CDropHandler
- // We need a DropHandler Shell Extension to handle drops on the root
- // folder (or the ADF file itself) in Windows2000.
- //
- // A DropHandler Shell extension is a COM object, which supports
- // IDropTarget and IPersistFile. We reuse the implmentation
- // of the IDropTarget from the internal drag'n'drop stuff.
- class ATL_NO_VTABLE CDropHandler :
- public CComObjectRootEx<CComSingleThreadModel>,
- public CComCoClass<CDropHandler, &CLSID_DropHandler>,
- public IPersistFile,
- public IDropTargetImpl
- {
- public:
- DECLARE_PROTECT_FINAL_CONSTRUCT()
- BEGIN_COM_MAP(CDropHandler)
- COM_INTERFACE_ENTRY_IID(IID_IDropTarget,IDropTarget)
- COM_INTERFACE_ENTRY_IID(IID_IPersistFile,IPersistFile)
- END_COM_MAP()
- // CDropHandler
- public:
- static HRESULT WINAPI UpdateRegistry(BOOL bRegister)
- {
- CComBSTR bstrCLSID(CLSID_DropHandler);
- CComBSTR bstrDescription;
- CComBSTR bstrProject;
- bstrDescription.LoadString(IDS_DESCRIPTION);
- bstrProject.LoadString(IDS_PROJNAME);
- _ATL_REGMAP_ENTRY rm[] = {
- { OLESTR("CLSID"), bstrCLSID },
- { OLESTR("PROJECTNAME"), bstrProject },
- { OLESTR("DESCRIPTION"), bstrDescription },
- { NULL,NULL } };
- return _Module.UpdateRegistryFromResource(IDR_DROPHANDLER, bRegister, rm);
- }
- HRESULT FinalConstruct()
- {
- HRESULT Hr;
- CComObject<CFolder> *pFolder;
- HR( CComObject<CFolder>::CreateInstance(&pFolder) );
- // Initialize the IDropTarget code.
- // The _Init() call will do AddRef() and Release() on the CFolder.
- // The CFolder object will be initialized in the IPersistFile::Load() method
- // called by the Shell later.
- return _Init(pFolder, NULL);
- }
- // IPersist
- STDMETHOD(GetClassID)(CLSID *pCLSID)
- {
- VALIDATE_POINTER(pCLSID);
- *pCLSID = CLSID_DropHandler;
- return S_OK;
- }
- // IPersistFile
- STDMETHOD(IsDirty)(void)
- {
- ATLTRACENOTIMPL(_T("CDropHandler::IsDirty"));
- }
- STDMETHOD(Load)(LPCOLESTR pwstrFileName, DWORD /*dwMode*/)
- {
- ATLASSERT(m_pFolder);
- CPidl pidl;
- pidl.Attach( ShellGetFileNamePidl(const_cast<LPOLESTR>(pwstrFileName)) );
- return m_pFolder->Initialize(pidl);
- }
- STDMETHOD(Save)(LPCOLESTR, BOOL)
- {
- ATLTRACENOTIMPL(_T("CDropHandler::Save"));
- }
- STDMETHOD(SaveCompleted)(LPCOLESTR)
- {
- ATLTRACENOTIMPL(_T("CDropHandler::SaveCompleted"));
- }
- STDMETHOD(GetCurFile)(LPOLESTR *)
- {
- ATLTRACENOTIMPL(_T("CDropHandler::GetCurFile"));
- }
- };
- #endif // !defined(AFX_DROPHANDLER_H__20010326_81A7_8573_71AC_0080AD509054__INCLUDED_)