addPlace method
Add a known folder to the Quick Access
list.
On Windows 11, this may appear under the Application Links
node.
Implementation
void addPlace(WindowsKnownFolder folder, Place location) {
final publicMusicFolder = calloc<GUID>();
final ppkf = calloc<Pointer<COMObject>>();
final psi = calloc<Pointer>();
final riid = convertToIID(IID_IShellItem);
try {
final folderGUID = folder.guid;
final knownFolderManager = KnownFolderManager.createInstance();
publicMusicFolder.ref.setGUID(folderGUID);
var hr = knownFolderManager.getFolder(publicMusicFolder, ppkf);
if (FAILED(hr)) throw WindowsException(hr);
final knownFolder = IKnownFolder(ppkf.cast());
hr = knownFolder.getShellItem(0, riid, psi);
if (FAILED(hr)) throw WindowsException(hr);
final shellItem = IShellItem(psi.cast());
final place = CustomPlace(shellItem, location);
customPlaces.add(place);
} finally {
free(publicMusicFolder);
free(ppkf);
free(riid);
}
}