+ HRESULT hr = SetData(&Format, &medium, TRUE);
+ if (!FAILED_UNEXPECTEDLY(hr) && bAddAdditionalFormats)
+ {
+ Format.cfFormat = CF_HDROP;
+ medium.hGlobal = RenderHDROP((LPITEMIDLIST)pMyPidl, (LPITEMIDLIST*)apidlx, cidlx);
+ hr = SetData(&Format, &medium, TRUE);
+ if (FAILED_UNEXPECTEDLY(hr))
+ return hr;
+
+ Format.cfFormat = RegisterClipboardFormatA(CFSTR_FILENAMEA);
+ medium.hGlobal = RenderFILENAMEA((LPITEMIDLIST)pMyPidl, (LPITEMIDLIST*)apidlx, cidlx);
+ hr = SetData(&Format, &medium, TRUE);
+ if (FAILED_UNEXPECTEDLY(hr))
+ return hr;
+
+ Format.cfFormat = RegisterClipboardFormatW(CFSTR_FILENAMEW);
+ medium.hGlobal = RenderFILENAMEW((LPITEMIDLIST)pMyPidl, (LPITEMIDLIST*)apidlx, cidlx);
+ hr = SetData(&Format, &medium, TRUE);
+ if (FAILED_UNEXPECTEDLY(hr))
+ return hr;
+ }