Windows上通过程序设置盘符对应的友好名称
一个小技巧,与常规SetVolumeLabel不同,是指设置资源管理器中盘符对应的友好名称,如下图红框所示:
includeshldisp。hCoInitialize(NULL);voidRenameDrive(BSTRstrNewName,BSTRstrDriveLetter){IShellDispatchpShellDispatchNULL;HRESULThrCoCreateInstance(CLSIDShell,NULL,CLSCTXINPROCSERVER,IIDIShellDispatch,(void)pShellDispatch);if(SUCCEEDED(hr)pShellDispatch){FolderpFolderNULL;VARIANTvt{};VariantInit(vt);vt。vtVTBSTR;vt。bstrValstrDriveLetter;hrpShellDispatchNameSpace(vt,pFolder);if(SUCCEEDED(hr)pFolder){Folder2pFolder2NULL;hrpFolderQueryInterface(IIDFolder2,(void)pFolder2);if(SUCCEEDED(hr)pFolder2){FolderItempFolderItemNULL;hrpFolder2getSelf(pFolderItem);if(SUCCEEDED(hr)pFolderItem){pFolderItemputName(strNewName);pFolderItemRelease();}pFolder2Release();}pFolderRelease();}pShellDispatchRelease();}}