Declare Integer InternetCanonicalizeUrl In WinInet.DLL ; > String @ cUrlToDecode ; > , String @ cResultsBuffer ; > , Integer @ iBufferLength ; > , Integer iFlags > >Declare Integer GetLastError In Win32Api > >*- flags for InternetCanonicalizeUrl() and InternetCombineUrl() from WinInet.H > >#define ICU_NO_ENCODE 0x20000000 && Don't convert unsafe characters to escape sequence. >#define ICU_DECODE 0x10000000 && Convert %XX escape sequences to characters. >#define ICU_NO_META 0x08000000 && Don't convert .. etc. meta path sequences. >#define ICU_ENCODE_SPACES_ONLY 0x04000000 && Encode spaces only. >#define ICU_BROWSER_MODE 0x02000000 && Special encode/decode rules for browser. > >cUrlToDecode = "This%20is%20a%20test" > >iBufferLength = Len( cUrlToDecode ) >cResultsBuffer = Space( iBufferLength ) + Chr(0) >cUrlToDecode = cUrlToDecode + Chr(0) >iBufferLength = iBufferLength + 1 > >iResult = InternetCanonicalizeUrl( ; > @cUrlToDecode ; > , @cResultsBuffer ; > , @iBufferLength ; > , BitOR( ICU_DECODE , ICU_NO_ENCODE )) > >TRUE = -1 && 0 for FALSE. >If iResult == TRUE > Return Left( cResultsBuffer, iBufferLength ) >Endif >Return "ERROR: " + Transform( GetLastError())