[ZIPFLDR] Allow the shell extension to extract passworded zip files
[reactos.git] / dll / shellext / zipfldr / CFolderViewCB.cpp
1 /*
2 * PROJECT: ReactOS Zip Shell Extension
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: IShellFolderViewCB implementation
5 * COPYRIGHT: Copyright 2017 David Quintana (gigaherz@gmail.com)
6 * Copyright 2017 Mark Jansen (mark.jansen@reactos.org)
7 */
8
9 #include "precomp.h"
10
11 class CFolderViewCB :
12 public CComObjectRootEx<CComMultiThreadModelNoCS>,
13 public IShellFolderViewCB
14 {
15 public:
16
17 virtual ~CFolderViewCB()
18 {
19 }
20
21 // *** IShellFolderViewCB methods ***
22 STDMETHODIMP MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
23 {
24 /* TODO: Handle SFVM_GET_WEBVIEW_CONTENT to add tasks */
25 switch (uMsg)
26 {
27 case SFVM_DEFVIEWMODE:
28 {
29 FOLDERVIEWMODE* pViewMode = (FOLDERVIEWMODE*)lParam;
30 *pViewMode = FVM_DETAILS;
31 return S_OK;
32 }
33 case SFVM_COLUMNCLICK:
34 return S_FALSE;
35 case SFVM_BACKGROUNDENUM:
36 return S_OK;
37 }
38
39 return E_NOTIMPL;
40 }
41
42 public:
43 DECLARE_NOT_AGGREGATABLE(CFolderViewCB)
44 DECLARE_PROTECT_FINAL_CONSTRUCT()
45
46 BEGIN_COM_MAP(CFolderViewCB)
47 COM_INTERFACE_ENTRY_IID(IID_IShellFolderViewCB, IShellFolderViewCB)
48 END_COM_MAP()
49 };
50
51 HRESULT _CFolderViewCB_CreateInstance(REFIID riid, LPVOID * ppvOut)
52 {
53 return ShellObjectCreator<CFolderViewCB>(riid, ppvOut);
54 }