WEB开发网
开发学院软件开发VC VC.NET扩展Windows磁盘清理工具的功能 阅读

VC.NET扩展Windows磁盘清理工具的功能

 2007-04-09 21:34:07 来源:WEB开发网   
核心提示: 图1 清理工具的主界面实现方法我们开发一个新的清理工具插件,扫描并清理*.TMP文件,VC.NET扩展Windows磁盘清理工具的功能(3),COM的编程有多种方法,我们选择了ATL库,检查错误返回值是不可少的,为了不同版本Windows兼容,关于ATL库的运用,我们在Visual Stu

图1 清理工具的主界面

实现方法

我们开发一个新的清理工具插件,扫描并清理*.TMP文件。COM的编程有多种方法,我们选择了ATL库。关于ATL库的运用。

我们在Visual Studio .Net 2003中生成新的ATL的DLL Server项目,并使用Add Class加入新的ATL Simple Object控件类CCleanSimpleHandler。在定义中,我们让CCleanSimpleHandler从IEmptyVolumeCache2继承。并且,我们添加了下列变量:

// 储存扫描出文件的大小
DWORDLONG m_dwlFileSize;
// 储存根目录
WCHAR m_strRootDir[MAX_PATH];
// 储存扫描出文件列表
std::vector<WCHAR *> m_lstFilesToDel;

然后,我们一一实现IEmptyVolumeCache及IEmptyVolumeCache2接口的函数。在下面的代码列表中,没有包括严格的检查错误返回值。这是为了简短代码的长度,提高可读性。在实际应用中,检查错误返回值是不可少的。为了不同版本Windows兼容,我们在InitializeEx中调用Initialize。

HRESULT CCleanSimpleHandler::InitializeEx (HKEY hKey, LPCWSTR pcwszVolume, LPCWSTR pcwszKeyName, LPWSTR *ppwszDisplayName, LPWSTR *ppwszDescription, LPWSTR *ppwszBtnText, DWORD *pdwFlags)
{
 HRESULT hr = Initialize (hKey, pcwszVolume, ppwszDisplayName, ppwszDescription, pdwFlags);
 *ppwszBtnText = (LPWSTR) CoTaskMemAlloc (64 * sizeof (WCHAR));
 StrCpyW(*ppwszBtnText, L"View files");
 return hr;
}
HRESULT CCleanSimpleHandler::Initialize (HKEY hKey, LPCWSTR pcwszVolume, LPWSTR *ppwszDisplayName, LPWSTR *ppwszDescription, DWORD *pdwFlags)
{
 StrCpyW(m_strRootDir, pcwszVolume);
 *ppwszDisplayName = (LPWSTR) CoTaskMemAlloc(256 * sizeof (WCHAR));
 StrCpyW(*ppwszDisplayName, L"*.TMP files");
 *ppwszDescription = (LPWSTR) CoTaskMemAlloc (256 * sizeof (WCHAR));
 StrCpyW(*ppwszDescription, L"Temporary files - *.TMP");
 *pdwFlags = EVCF_HASSETTINGS | EVCF_ENABLEBYDEFAULT;
 m_dwlFileSize = 0;
 return S_OK;
}

上一页  1 2 3 4  下一页

Tags:VC NET 扩展

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接