Exemplo n.º 1
0
        private static void RegisterFolder()
        {
            Console.WriteLine("===============ADD================");
            KnownFoldersSafeNativeMethods.NativeFolderDefinition d = new KnownFoldersSafeNativeMethods.NativeFolderDefinition();
            d.category          = FolderCategory.Common;
            d.localizedName     = Marshal.StringToBSTR(EXT_NAME);
            d.definitionOptions = DefinitionOptions.LocalRedirectOnly;
            d.name          = Marshal.StringToBSTR(EXT_NAME);
            d.description   = Marshal.StringToBSTR("我的扩展描述");
            d.localizedName = Marshal.StringToBSTR("MyExtension");
            //var parent = KnownFolderHelper.FromKnownFolderId(new Guid("20D04FE0-3AEA-1069-A2D8-08002B30309D"));
            d.parentId     = _computerGuid;
            d.folderTypeId = FolderTypes.Documents;
            d.relativePath = Marshal.StringToBSTR("MyExtension");
            d.parsingName  = Marshal.StringToBSTR("::{" + _guid + "}");
            d.attributes   = 1;

            m.RegisterFolder(_guid, ref d);

            Console.WriteLine("Extension added: {0}", EXT_NAME);
            Console.WriteLine();
            Console.WriteLine();
        }
 public virtual extern void RegisterFolder(
     [In, MarshalAs(UnmanagedType.LPStruct)] Guid knownFolderGuid,
     [In] ref KnownFoldersSafeNativeMethods.NativeFolderDefinition knownFolderDefinition);