C++20とWILでごみ箱のIShellItemインターフェイスを取得するサンプルコードです。実行するとごみ箱の表示名を出力します。
#include <iostream> #define STRICT #define NOMINMAX #include <Windows.h> #include <ShlObj.h> // Microsoft WIL 1.0.220201.1 #include "wil/com.h" int main() { std::wcout.imbue(std::locale("", std::locale::ctype)); auto coinit{ wil::CoInitializeEx(COINIT_APARTMENTTHREADED) }; wil::com_ptr<IShellItem> recycleBin; THROW_IF_FAILED(SHGetKnownFolderItem( FOLDERID_RecycleBinFolder, KF_FLAG_DEFAULT, nullptr, IID_PPV_ARGS(recycleBin.put()))); // TODO:ここでごみ箱のIShellItemを操作します。 wil::unique_cotaskmem_string pdisplayName; THROW_IF_FAILED(recycleBin->GetDisplayName( SIGDN_NORMALDISPLAY, pdisplayName.put())); std::wcout << pdisplayName.get() << std::endl; return 0; }