[DllImport("shlwapi.dll", BestFitMapping = false, CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = false, ThrowOnUnmappableChar = true)]
public static extern int SHLoadIndirectString(string pszSource, StringBuilder pszOutBuf, int cchOutBuf, IntPtr ppvReserved);
Public Declare Auto Function SHLoadIndirectString Lib "shlwapi.dll" (ByVal pszSource As String, ByVal pszOutBuf As String, ByVal cchOutBuf As UInteger, ByVal ppvReserved As IntPtr) As UInteger
None.
Do you know one? Please contribute it!
None.
Call Environment.ExpandEnvironmentVariables(path) first if you have a string that contains environment variables.
string resourcePath = "
\System32\shell32.dll,-4123";
resourcePath = Environment.ExpandEnvironmentVariables(resourcePath);
StringBuilder outBuff = new StringBuilder();
int result = SHLoadIndirectString(resourcePath, outBuff, -1, IntPtr.Zero);
//SHLoadIndirectString returns S_OK (0) if successful
if(result == 0)
Console.WriteLine(outBuff.ToString());
string sWin8ManifestString = "
{C:\Program Files\WindowsApps\Microsoft.Video_6.2.8158.0_x86__8wekyb3d8bbwe\resources.pri?ms-resource://Microsoft.Video/resources/manifestVideoDisplayName}";
StringBuilder outBuff = new StringBuilder(1024);
int result = SHLoadIndirectString(sWin8ManifestString, outBuff, outBuff.Capacity, IntPtr.Zero);