How to make your application a dropfile target
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
The obvious solution would be to create a class to encapsulate the above mentioned logic. So I wrote a class
CDropFileTarget that does just that.
How to use it
CDropFileTarget to the inheritance chain.
class CMainDlg : public CDialogImpl<CMainDlg>,
CHAIN_MSG_MAP statement to the message map of your class.
OnInitDialog() function register your class as a dropfile target.
LRESULT OnInitDialog(UINT, WPARAM, LPARAM, BOOL&)
4. Add the following public function to process the dropped file.
void ProcessFile(LPCTSTR lpszPath)
// Add your logic