Пример #1
0
        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());
        }
Пример #2
0
 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));
 }
Пример #3
0
 public int GetDisplayNameOf(IntPtr pidl, ShellAPI.SHGNO uFlags, IntPtr lpName)
 {
     checkDisposed();
     return(_iShellFolder2.GetDisplayNameOf(pidl, uFlags, lpName));
 }
Пример #4
0
 private static string loadName(IShellFolder2 iShellFolder, PIDL relPidl, ShellAPI.SHGNO uFlags)
 {
     return(loadName(iShellFolder, relPidl.Ptr, uFlags));
 }
Пример #5
0
 private static string loadName(IShellFolder2 iShellFolder, ShellAPI.SHGNO uFlags)
 {
     return(loadName(iShellFolder, new PIDL(IntPtr.Zero, false), uFlags));
 }