OSDN Git Service

cd42fe02214d9d6f4096e3179d83944caa9cecea
[seraphyscrtools/SeraphyScriptTools.git] / Shell.h
1 // Shell.h : CShell \82Ì\90é\8c¾
2
3 #ifndef __SHELL_H_
4 #define __SHELL_H_
5
6 #include "resource.h"       // \83\81\83C\83\93 \83V\83\93\83{\83\8b
7
8 /////////////////////////////////////////////////////////////////////////////
9 // CShell
10 class ATL_NO_VTABLE CShell : 
11         public CComObjectRootEx<CComSingleThreadModel>,
12         public CComCoClass<CShell, &CLSID_SeraphyScriptTools_Shell>,
13         public ISupportErrorInfo,
14         public IDispatchImpl<ISeraphyScriptTools_Shell, &IID_ISeraphyScriptTools_Shell, &LIBID_SERAPHYSCRIPTTOOLSLib>
15 {
16 public:
17         CShell()
18         {
19                 m_bConfirm = true;
20                 m_bSilent  = false;
21                 //
22                 m_pMainWindow = NULL;
23                 m_pMalloc  = NULL;
24                 SHGetMalloc(&m_pMalloc);
25         }
26         void FinalRelease()
27         {
28                 if(m_pMalloc){
29                         m_pMalloc->Release();
30                         m_pMalloc = NULL;
31                 }
32         }
33
34         HWND GetMainWindow()
35         {
36                 HWND hWnd = NULL;//m_hStaticMainWindow;
37                 if(m_pMainWindow){
38                         m_pMainWindow->get_HWND((long*)&hWnd);
39                 }
40                 return hWnd;
41         }
42
43 DECLARE_REGISTRY_RESOURCEID(IDR_SHELL)
44
45 DECLARE_PROTECT_FINAL_CONSTRUCT()
46
47 BEGIN_COM_MAP(CShell)
48         COM_INTERFACE_ENTRY(ISeraphyScriptTools_Shell)
49         COM_INTERFACE_ENTRY(IDispatch)
50         COM_INTERFACE_ENTRY(ISupportErrorInfo)
51 END_COM_MAP()
52
53 // ISupportsErrorInfo
54         STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
55
56 // ISeraphyScriptTools_Shell
57 public:
58         STDMETHOD(IsExist)(/*[in]*/VARIANT name,/*[out,retval]*/VARIANT* pVal);
59         STDMETHOD(SetMainWindow)(/*[in]*/VARIANT varUnk);
60         STDMETHOD(RecentDocs)(/*[in,optional]*/VARIANT text);
61         STDMETHOD(EmptyRecycleBin)(/*[in,optional]*/VARIANT dir);
62         BOOL m_bSilent;
63         BOOL m_bConfirm;
64         HRESULT FileOperationCore(UINT wFunc,FILEOP_FLAGS flag,VARIANT* from,VARIANT* to,VARIANT* pResult);
65         LPSTR CreateDNStringFromVariant(VARIANT& from);
66         STDMETHOD(get_Silent)(/*[out, retval]*/ BOOL *pVal);
67         STDMETHOD(put_Silent)(/*[in]*/ BOOL newVal);
68         STDMETHOD(get_Confirm)(/*[out, retval]*/ BOOL *pVal);
69         STDMETHOD(put_Confirm)(/*[in]*/ BOOL newVal);
70         STDMETHOD(Delete)(/*[in]*/VARIANT from,/*[out,retval]*/VARIANT* pVal);
71         STDMETHOD(Move)(/*[in]*/VARIANT from,/*[in]*/VARIANT to,/*[out,retval]*/VARIANT* pVal);
72         STDMETHOD(CopyRenameOnCollision)(/*[in]*/VARIANT from,/*[in]*/VARIANT to,/*[out,retval]*/VARIANT* pVal);
73         STDMETHOD(Copy)(/*[in]*/VARIANT from,/*[in]*/VARIANT to,/*[out,retval]*/VARIANT* pVal);
74         STDMETHOD(ParseName)(/*[in,optional]*/VARIANT text,/*[out,retval]*/VARIANT* pVal);
75         STDMETHOD(GetDLLVersion)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT min,/*[out,retval]*/VARIANT* pVal);
76         STDMETHOD(get_WindowsVersion)(/*[out, retval]*/ long *pVal);
77         STDMETHOD(get_IsWindowNT)(/*[out, retval]*/ BOOL *pVal);
78         STDMETHOD(GetSpecialFolderLocations)(/*[in]*/IUnknown* punkVal);
79         STDMETHOD(ShellExecute)(/*[in]*/VARIANT path,/*[in,optional]*/VARIANT param,/*[in,optional]*/VARIANT initdir,/*[in,optional]*/VARIANT mode, /*[out,retval]*/VARIANT* punkVal);
80 protected:
81         IMalloc* m_pMalloc;
82         IOverlappedWindow* m_pMainWindow;
83 };
84
85 // Shell.h : CShellExecObj \82Ì\90é\8c¾
86
87
88 /////////////////////////////////////////////////////////////////////////////
89 // CShellExecObj
90 class ATL_NO_VTABLE CShellExecObj : 
91         public CComObjectRootEx<CComSingleThreadModel>,
92 //      public CComCoClass<CShellExecObj, &CLSID_ShellExecObj>,
93         public IDispatchImpl<IShellExecObj, &IID_IShellExecObj, &LIBID_SERAPHYSCRIPTTOOLSLib>
94 {
95 public:
96         CShellExecObj()
97         {
98                 m_hProcess = NULL;
99         }
100         void FinalRelease()
101         {
102                 if(m_hProcess){
103                         CloseHandle(m_hProcess);
104                         m_hProcess = NULL;
105                 }
106         }
107 DECLARE_REGISTRY_RESOURCEID(IDR_SHELLEXECOBJ)
108
109 DECLARE_PROTECT_FINAL_CONSTRUCT()
110
111 BEGIN_COM_MAP(CShellExecObj)
112         COM_INTERFACE_ENTRY(IShellExecObj)
113         COM_INTERFACE_ENTRY(IDispatch)
114 END_COM_MAP()
115
116 // IShellExecObj
117 public:
118         STDMETHOD(get_ExitCode)(/*[out, retval]*/ long *pVal);
119         STDMETHOD(Wait)(/*[in,optional]*/VARIANT tim,/*[out,retval]*/VARIANT* pVal);
120         HANDLE m_hProcess;
121 };
122
123 // shell.h : CParseName \82Ì\90é\8c¾
124
125
126 /////////////////////////////////////////////////////////////////////////////
127 // CParseName
128 class ATL_NO_VTABLE CParseName : 
129         public CComObjectRootEx<CComSingleThreadModel>,
130         public CComCoClass<CParseName, &CLSID_ParseName>,
131         public ISupportErrorInfo,
132         public IDispatchImpl<ISeraphyScriptTool_ParseName, &IID_ISeraphyScriptTool_ParseName, &LIBID_SERAPHYSCRIPTTOOLSLib>
133 {
134 public:
135         CParseName()
136         {
137         }
138
139 DECLARE_REGISTRY_RESOURCEID(IDR_PARSENAME)
140
141 DECLARE_PROTECT_FINAL_CONSTRUCT()
142
143 BEGIN_COM_MAP(CParseName)
144         COM_INTERFACE_ENTRY(ISeraphyScriptTool_ParseName)
145         COM_INTERFACE_ENTRY(IDispatch)
146         COM_INTERFACE_ENTRY(ISupportErrorInfo)
147 END_COM_MAP()
148
149 // ISupportsErrorInfo
150         STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
151
152 // ISeraphyScriptTool_ParseName
153 public:
154         STDMETHOD(get_Directory)(/*[out, retval]*/ BSTR *pVal);
155         STDMETHOD(get_Drive)(/*[out, retval]*/ BSTR *pVal);
156         STDMETHOD(put_Drive)(/*[in]*/ BSTR newVal);
157         STDMETHOD(get_Name)(/*[out, retval]*/ BSTR *pVal);
158         STDMETHOD(put_Name)(/*[in]*/ BSTR newVal);
159         STDMETHOD(get_Extention)(/*[out, retval]*/ BSTR *pVal);
160         STDMETHOD(put_Extention)(/*[in]*/ BSTR newVal);
161         STDMETHOD(get_FileName)(/*[out, retval]*/ BSTR *pVal);
162         STDMETHOD(put_FileName)(/*[in]*/ BSTR newVal);
163         STDMETHOD(get_PathName)(/*[out, retval]*/ BSTR *pVal);
164         STDMETHOD(put_PathName)(/*[in]*/ BSTR newVal);
165         _bstr_t m_bstr_path;
166 };
167
168 #endif //__SHELL_H_