![]() |
Platforms, Frameworks & Libraries »
WTL »
Shell Programming
Intermediate
License: The Code Project Open License (CPOL)
How to make your application a dropfile target in WTLBy Igor VigdorchikA derived from class to create a dropfile target application using WTL |
VC6, Windows, WTL, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
By dropfile target I mean the application that can process file names dropped into it.
To modify your application to become a dropfile target all you have to do is to create your window
with the extended window style WS_EX_ACCEPTFILES and handle WM_DROPFILES message.
Another way is to create a window and then call the following API function:
DragAcceptFiles(HWND hWnd, BOOL bAccept)that turns the
WS_EX_ACCEPTFILES style on or off based on the value of the
bAccept parameter.The obvious solution would be to create a class to encapsulate the above mentioned logic. So I present
a class CDropFileTarget that does just that.
It's very easy to use CDropFileTarget class. Just follow the following steps:
CDropFileTarget to the inheritance chain:
class CMainDlg : public CDialogImpl<CMainDlg>, public CUpdateUI<CMainDlg>, public CMessageFilter, public CIdleHandler, public CDropFileTarget<CMainDlg>
CHAIN_MSG_MAP statement to the message map of your class:
BEGIN_MSG_MAP(CMainDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout)
COMMAND_ID_HANDLER(IDOK, OnOK)
COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
CHAIN_MSG_MAP(CDropFileTarget<CMainDlg>)
END_MSG_MAP()
OnInitDialog() function register your class as a dropfile target
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { ... RegisterDropTarget(); ... }
void ProcessFile(LPCTSTR lpszPath) { // Add your logic }
This class is very simple and may not meet all your requirements, but if you only need to allow your window to accept dropped files and process them then this class is for you.
THIS SOFTWARE AND THE ACCOMPANYING FILES ARE DISTRIBUTED "AS IS" AND WITHOUT ANY WARRANTIES WHETHER EXPRESSED OR IMPLIED. NO RESPONSIBILITIES FOR POSSIBLE DAMAGES CAN BE TAKEN. THE USER MUST ASSUME THE ENTIRE RISK OF USING THIS SOFTWARE.
| You must Sign In to use this message board. | |||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 9 Sep 2004 Editor: Nishant Sivakumar |
Copyright 2004 by Igor Vigdorchik Everything else Copyright © CodeProject, 1999-2009 Web17 | Advertise on the Code Project |