private static string loadName(IShellFolder2 iShellFolder, IntPtr ptr, ShellAPI.SHGNO uFlags) { if (iShellFolder == null) { return(null); } IntPtr ptrStr = Marshal.AllocCoTaskMem(ShellAPI.MAX_PATH * 2 + 4); Marshal.WriteInt32(ptrStr, 0, 0); StringBuilder buf = new StringBuilder(ShellAPI.MAX_PATH); try { if (iShellFolder.GetDisplayNameOf(ptr, uFlags, ptrStr) == ShellAPI.S_OK) { ShellAPI.StrRetToBuf(ptrStr, ptr, buf, ShellAPI.MAX_PATH); } } finally { if (ptrStr != IntPtr.Zero) { Marshal.FreeCoTaskMem(ptrStr); } ptrStr = IntPtr.Zero; } return(buf.ToString()); }
public int SetNameOf(IntPtr hwnd, IntPtr pidl, string pszName, ShellAPI.SHGNO uFlags, out IntPtr ppidlOut) { checkDisposed(); return(_iShellFolder2.SetNameOf(hwnd, pidl, pszName, uFlags, out ppidlOut)); }
public int GetDisplayNameOf(IntPtr pidl, ShellAPI.SHGNO uFlags, IntPtr lpName) { checkDisposed(); return(_iShellFolder2.GetDisplayNameOf(pidl, uFlags, lpName)); }
private static string loadName(IShellFolder2 iShellFolder, PIDL relPidl, ShellAPI.SHGNO uFlags) { return(loadName(iShellFolder, relPidl.Ptr, uFlags)); }
private static string loadName(IShellFolder2 iShellFolder, ShellAPI.SHGNO uFlags) { return(loadName(iShellFolder, new PIDL(IntPtr.Zero, false), uFlags)); }