一个小技巧,与常规SetVolumeLabel不同,是指设置资源管理器中盘符对应的友好名称,如下图红框所示:
#include
//CoInitialize(NULL);
void RenameDrive(BSTR strNewName, BSTR strDriveLetter)
{
IShellDispatch* pShellDispatch = NULL;
HRESULT hr = CoCreateInstance(CLSID_Shell,
NULL,
CLSCTX_INPROC_SERVER,
IID_IShellDispatch,
(void**)&pShellDispatch);
if (SUCCEEDED(hr) && pShellDispatch)
{
Folder* pFolder = NULL;
VARIANT vt = {};
VariantInit(&vt);
vt.vt = VT_BSTR;
vt.bstrVal = strDriveLetter;
hr = pShellDispatch->NameSpace(vt, &pFolder);
if (SUCCEEDED(hr) && pFolder)
{
Folder2* pFolder2 = NULL;
hr = pFolder->QueryInterface(IID_Folder2, (void**)&pFolder2);
if (SUCCEEDED(hr) && pFolder2)
{
FolderItem* pFolderItem = NULL;
hr = pFolder2->get_Self(&pFolderItem);
if (SUCCEEDED(hr) && pFolderItem)
{
pFolderItem->put_Name(strNewName);
pFolderItem->Release();
}
pFolder2->Release();
}
pFolder->Release();
}
pShellDispatch->Release();
}
}
页面更新:2024-03-02
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号