Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than shlwapi, prefix the name with the module name and a period.
<DllImport("Shlwapi.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
Private Shared Function AssocQueryString(ByVal flags As UInteger, ByVal str As UInteger, ByVal pszAssoc As String, ByVal pszExtra As String, ByVal pszOut As Text.StringBuilder, ByRef pcchOut As UInteger) As UInteger
The result is based on the process owner. If your program is running elevated on a user session, the result will be valid for the administrator, not for the user.
static string AssocQueryString(AssocStr association, string extension)
uint length = 0;
uint ret = AssocQueryString(AssocF.None, association, extension, null, null, ref length);
if (ret != 1) // expected S_FALSE
throw new InvalidOperationException("Could not determine associated string, unable to get the required buffer length. Error code: " + ret);
var sb = new StringBuilder((int)length); // (length-1) will probably work too as null termination is added
ret = AssocQueryString(AssocF.None, association, extension, null, sb, ref length);
if (ret != 0) // expected S_OK
throw new InvalidOperationException("Could not determine associated string. Error code: " + ret);
Please edit this page!
Do you have...
helpful tips or sample code to share for using this API in managed code?
corrections to the existing content?
variations of the signature you want to share?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).