Esempio n. 1
0
        private static string PinvokePath(Guid guid, KnownFolderFlag flags)
        {
            SHGetKnownFolderPath(guid, (uint)flags, IntPtr.Zero, out var pPath);  // public documents

            string path = Marshal.PtrToStringUni(pPath);

            Marshal.FreeCoTaskMem(pPath);
            return(path);
        }
    private static string pinvokePath(KnownFolderFlag flags)
    {
        IntPtr pPath;

        SHGetKnownFolderPath(CommonDocumentsGuid, (uint)flags, IntPtr.Zero, out pPath);     // public documents
        string path = System.Runtime.InteropServices.Marshal.PtrToStringUni(pPath);

        System.Runtime.InteropServices.Marshal.FreeCoTaskMem(pPath);
        return(path);
    }
 public static void EnumerateKnownFolders()
 {
     KnownFolderFlag[] flags = new KnownFolderFlag[] {
         KnownFolderFlag.None,
         KnownFolderFlag.ALIAS_ONLY | KnownFolderFlag.DONT_VERFIY,
         KnownFolderFlag.DEFAULT_PATH | KnownFolderFlag.NOT_PARENT_RELATIVE,
     };
     foreach (var flag in flags)
     {
         Console.WriteLine(string.Format("{0}; P/Invoke==>{1}", flag, pinvokePath(flag)));
     }
     Console.ReadLine();
 }
Esempio n. 4
0
        public static void EnumerateKnownFolders()
        {
            KnownFolderFlag[] flags = new KnownFolderFlag[] {
                KnownFolderFlag.KF_FLAG_DEFAULT,
                KnownFolderFlag.KF_FLAG_ALIAS_ONLY | KnownFolderFlag.KF_FLAG_DONT_VERIFY,
                KnownFolderFlag.KF_FLAG_DEFAULT_PATH | KnownFolderFlag.KF_FLAG_NOT_PARENT_RELATIVE,
            };


            foreach (var flag in flags)
            {
                Console.WriteLine(string.Format("{0}; P/Invoke==>{1}\n", flag, pinvokePath(CommonDocumentsGuid, flag)));
            }
            Console.ReadLine();
        }
Esempio n. 5
0
        public static void EnumerateKnownFolders()
        {
            KnownFolderFlag[] flags = new KnownFolderFlag[]
            {
                KnownFolderFlag.None,
                KnownFolderFlag.ALIAS_ONLY | KnownFolderFlag.DONT_VERFIY,
                KnownFolderFlag.DEFAULT_PATH | KnownFolderFlag.NOT_PARENT_RELATIVE,
            };


            foreach (var flag in flags)
            {
                Console.WriteLine($@"{flag}; P/Invoke==>{PinvokePath(CommonDocumentsGuid, flag)}");
            }

            Console.ReadLine();
        }
Esempio n. 6
0
        public static string GetKnownFolderPath(Guid guid, KnownFolderFlag flags)
        {
            uint result = SHGetKnownFolderPath(guid, (uint)flags, IntPtr.Zero, out IntPtr pPath);

            try
            {
                if (result == S_OK)
                {
                    string path = Marshal.PtrToStringUni(pPath);
                    return(path);
                }
                else
                {
                    return(null);
                }
            }
            finally
            {
                Marshal.FreeCoTaskMem(pPath);
            }
        }