WEB开发网
开发学院操作系统Windows 7 Windows 7 新特性 Shell Library 编程接口介绍 阅读

Windows 7 新特性 Shell Library 编程接口介绍

 2009-09-04 00:00:00 来源:WEB开发网   
核心提示:下文所用到的示例代码来源于微软一站式开发技术框架解决方案,你可以通过http://cfx.codeplex.com/Release/ProjectReleases.aspx下载到Windows 7 Shell Library相关的sample,Windows 7 新特性 Shell Library 编程接口介绍,其中包

下文所用到的示例代码来源于  微软一站式开发技术框架解决方案

。你可以通过  http://cfx.codeplex.com/Release/ProjectReleases.aspx下载到Windows 7 Shell Library相关的sample。其中包含C++、C#、VB.NET对Shell Library操作的示例代码:CppWin7ShellLibrary, C#Win7ShellLibrary, VBWin7ShellLibrary。

为了帮助用户更加有效地对硬盘上的文件进行管理,Windows 7中引入了新的文件管理方式:库(Library)。库自然演化自以往操作系统中My Documents 文件夹这个概念。有了库,我们就可以将多个相关的文件夹组织到同一个库下,从而更快更便捷地管理和搜索数据。

Windows 7 新特性 Shell Library 编程接口介绍

创建Windows Shell Library

Windows 7提供了SHCreateLibrary API用来创建一个Shell Library:

C++ CreateShellLibrary

/**//*!
* Create a new shell library under the user's Libraries folder. If a library
* with the same name already exists, the new one overrides the existing one.
*
* \param pwszLibraryName
* The name of the shell library to be created.
*/
BOOL CreateShellLibrary(LPWSTR pwszLibraryName)
{
    /**//////////////////////////////////////////////////////////////////////////
    // Create the shell library COM object.
    //

    IShellLibrary* pShellLib = NULL;
    HRESULT hr = SHCreateLibrary(IID_PPV_ARGS(&pShellLib));
    if (FAILED(hr))
    {
        _tprintf(_T("SHCreateLibrary failed to create the shell library ") \
            _T("COM object w/err 0x%08lx\n"), hr);
        return FALSE;
    }


    /**/////////////////////////////////////////////////////////////////////////
    // Save the new library under the user's Libraries folder.
    //

    IShellItem* pSavedTo = NULL;
    hr = pShellLib->SaveInKnownFolder(FOLDERID_UsersLibraries,
        pwszLibraryName, LSF_OVERRIDEEXISTING, &pSavedTo);
    if (FAILED(hr))
    {
        _tprintf(_T("IShellLibrary::SaveInKnownFolder failed to save the ") \
            _T("library w/err 0x%08lx\n"), hr);
        return FALSE;
    }


    /**//////////////////////////////////////////////////////////////////////////
    // Clean up.
    //

    if (pShellLib != NULL)
        pShellLib->Release();

    if (pSavedTo != NULL)
        pSavedTo->Release();

    return TRUE;
}
 

/**//////////////////////////////////////////////////////////////////////
// Create a shell library.
//

using (ShellLibrary library = new ShellLibrary(libraryName, true))
{
}

1 2 3 4 5  下一页

Tags:Windows 特性 Shell

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