// This is not a small operation so it should be a method. public KnownFolderDefinition GetDefinition() { InternalKnownFolderDefinition internalDefinition; KnownFolderDefinition definition = new KnownFolderDefinition(); _knownFolder.GetFolderDefinition(out internalDefinition); try { definition.Category = internalDefinition.Category; definition.Name = Marshal.PtrToStringUni( internalDefinition.pszName); definition.Description = Marshal.PtrToStringUni( internalDefinition.pszDescription); definition.ParentID = internalDefinition.ParentID; definition.ParsingName = Marshal.PtrToStringUni( internalDefinition.pszParsingName); definition.Tooltip = Marshal.PtrToStringUni( internalDefinition.pszTooltip); definition.LocalizedName = Marshal.PtrToStringUni(internalDefinition.pszLocalizedName); definition.Icon = Marshal.PtrToStringUni( internalDefinition.pszIcon); definition.Security = Marshal.PtrToStringUni( internalDefinition.pszSecurity); definition.Attributes = internalDefinition.dwAttributes; definition.DefinitionFlags = internalDefinition.DefinitionFlags; definition.FolderTypeID = internalDefinition.FolderTypeID; } finally { Marshal.FreeCoTaskMem(internalDefinition.pszName); Marshal.FreeCoTaskMem(internalDefinition.pszDescription); Marshal.FreeCoTaskMem(internalDefinition.pszRelativePath); Marshal.FreeCoTaskMem(internalDefinition.pszParsingName); Marshal.FreeCoTaskMem(internalDefinition.pszTooltip); Marshal.FreeCoTaskMem(internalDefinition.pszLocalizedName); Marshal.FreeCoTaskMem(internalDefinition.pszIcon); Marshal.FreeCoTaskMem(internalDefinition.pszSecurity); } return(definition); }
// This is not a small operation so it should be a method. public KnownFolderDefinition GetDefinition() { InternalKnownFolderDefinition internalDefinition; KnownFolderDefinition definition = new KnownFolderDefinition(); _knownFolder.GetFolderDefinition(out internalDefinition); try { definition.Category = internalDefinition.Category; definition.Name = Marshal.PtrToStringUni( internalDefinition.pszName); definition.Description = Marshal.PtrToStringUni( internalDefinition.pszDescription); definition.ParentID = internalDefinition.ParentID; definition.ParsingName = Marshal.PtrToStringUni( internalDefinition.pszParsingName); definition.Tooltip = Marshal.PtrToStringUni( internalDefinition.pszTooltip); definition.LocalizedName = Marshal.PtrToStringUni(internalDefinition.pszLocalizedName); definition.Icon = Marshal.PtrToStringUni( internalDefinition.pszIcon); definition.Security = Marshal.PtrToStringUni( internalDefinition.pszSecurity); definition.Attributes = internalDefinition.dwAttributes; definition.DefinitionFlags = internalDefinition.DefinitionFlags; definition.FolderTypeID = internalDefinition.FolderTypeID; } finally { Marshal.FreeCoTaskMem(internalDefinition.pszName); Marshal.FreeCoTaskMem(internalDefinition.pszDescription); Marshal.FreeCoTaskMem(internalDefinition.pszRelativePath); Marshal.FreeCoTaskMem(internalDefinition.pszParsingName); Marshal.FreeCoTaskMem(internalDefinition.pszTooltip); Marshal.FreeCoTaskMem(internalDefinition.pszLocalizedName); Marshal.FreeCoTaskMem(internalDefinition.pszIcon); Marshal.FreeCoTaskMem(internalDefinition.pszSecurity); } return definition; }