From 523d1c72b1b52f4258202c33339cb678ae685837 Mon Sep 17 00:00:00 2001 From: dahall Date: Tue, 21 Sep 2021 11:13:53 -0600 Subject: [PATCH] Added param attributes to StrRetToXX methods. --- PInvoke/ShlwApi/ShlwApi.StrXX.cs | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/PInvoke/ShlwApi/ShlwApi.StrXX.cs b/PInvoke/ShlwApi/ShlwApi.StrXX.cs index 7172b18f..ece9448a 100644 --- a/PInvoke/ShlwApi/ShlwApi.StrXX.cs +++ b/PInvoke/ShlwApi/ShlwApi.StrXX.cs @@ -1272,10 +1272,8 @@ namespace Vanara.PInvoke public static extern StrPtrAuto StrRChrI(string pszStart, string pszEnd, char wMatch); /// - /// /// Accepts a STRRET structure returned by IShellFolder::GetDisplayNameOf that contains or points to a string, and returns that /// string as a BSTR. - /// /// /// /// Type: STRRET* @@ -1296,16 +1294,14 @@ namespace Vanara.PInvoke /// If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. /// /// - /// - /// If the uType member of the STRRET structure pointed to by pstr is set to STRRET_WSTR, the pOleStr member of that structure - /// is freed on return. - /// + /// If the uType member of the STRRET structure pointed to by pstr is set to STRRET_WSTR, the pOleStr member of that + /// structure is freed on return. /// - // https://docs.microsoft.com/en-us/windows/desktop/api/shlwapi/nf-shlwapi-strrettobstr LWSTDAPI StrRetToBSTR( STRRET *pstr, - // PCUITEMID_CHILD pidl, BSTR *pbstr ); + // https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrettobstr + // LWSTDAPI StrRetToBSTR( STRRET *pstr, PCUITEMID_CHILD pidl, BSTR *pbstr ); [DllImport(Lib.Shlwapi, SetLastError = false, ExactSpelling = true)] - [PInvokeData("shlwapi.h", MSDNShortId = "2a5a9a2b-74df-4521-a5b2-8fc91c3559eb")] - public static extern HRESULT StrRetToBSTR(IntPtr pstr, IntPtr pidl, [MarshalAs(UnmanagedType.BStr)] out string pbstr); + [PInvokeData("shlwapi.h", MSDNShortId = "NF:shlwapi.StrRetToBSTR")] + public static extern HRESULT StrRetToBSTR([In] IntPtr pstr, [In, Optional] IntPtr pidl, [MarshalAs(UnmanagedType.BStr)] out string pbstr); /// /// Converts an STRRET structure returned by IShellFolder::GetDisplayNameOf to a string, and places the result in a buffer. @@ -1343,7 +1339,7 @@ namespace Vanara.PInvoke // PCUITEMID_CHILD pidl, LPSTR pszBuf, UINT cchBuf ); [DllImport(Lib.Shlwapi, SetLastError = false, CharSet = CharSet.Auto)] [PInvokeData("shlwapi.h", MSDNShortId = "89dab3ee-e9f8-499a-97ec-6fe732315891")] - public static extern HRESULT StrRetToBuf(IntPtr pstr, IntPtr pidl, StringBuilder pszBuf, uint cchBuf); + public static extern HRESULT StrRetToBuf([In] IntPtr pstr, [In] IntPtr pidl, StringBuilder pszBuf, uint cchBuf); /// /// @@ -1374,7 +1370,8 @@ namespace Vanara.PInvoke // PCUITEMID_CHILD pidl, LPSTR *ppsz ); [DllImport(Lib.Shlwapi, SetLastError = false, CharSet = CharSet.Auto)] [PInvokeData("shlwapi.h", MSDNShortId = "03b0dffb-8ef7-41da-9773-81ed55275802")] - public static extern HRESULT StrRetToStr(IntPtr pstr, IntPtr pidl, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CoTaskMemStringMarshaler))] out string ppsz); + public static extern HRESULT StrRetToStr([In] IntPtr pstr, [In, Optional] IntPtr pidl, + [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CoTaskMemStringMarshaler))] out string ppsz); /// /// Searches for the last occurrence of a specified substring within a string. The comparison is not case-sensitive.