UrlCanonicalizeW-Funktion (shlwapi.h)
Konvertiert eine URL-Zeichenfolge in kanonische Form.
Syntax
LWSTDAPI UrlCanonicalizeW(
[in] PCWSTR pszUrl,
[out] PWSTR pszCanonicalized,
[in, out] DWORD *pcchCanonicalized,
DWORD dwFlags
);
Parameter
[in] pszUrl
Typ: PCTSTR-
Ein Zeiger auf eine mit Null beendete Zeichenfolge mit maximaler Länge INTERNET_MAX_URL_LENGTH, die eine URL-Zeichenfolge enthält. Wenn die Zeichenfolge nicht auf eine Datei verweist, muss sie ein gültiges Schema wie "http://" enthalten.
[out] pszCanonicalized
Typ: PTSTR-
Ein Zeiger auf einen Puffer, der, wenn diese Funktion erfolgreich zurückgegeben wird, die konvertierte URL als null-beendete Zeichenfolge empfängt.
[in, out] pcchCanonicalized
Typ: DWORD*-
Ein Zeiger auf einen Wert, der beim Eintrag auf die Anzahl der Zeichen im pszCanonicalized Puffer festgelegt ist.
dwFlags
Typ: DWORD-
Die Flags, die angeben, wie die URL in kanonische Form konvertiert wird. Die folgenden Flags können kombiniert werden.
URL_UNESCAPE (0x10000000)
Heben Sie die Escape-Escape-Sequenzen auf, die die URLs enthalten, mit zwei Ausnahmen. Die Escapesequenzen für "?" und "#" sind nicht escaped. Wenn eines der URL_ESCAPE_XXX Flags ebenfalls festgelegt ist, werden die beiden URLs zuerst nicht escaped, dann kombiniert und dann escaped.
URL_ESCAPE_UNSAFE (0x20000000)
Ersetzen Sie unsichere Zeichen durch ihre Escapesequenzen. Unsichere Zeichen sind die Zeichen, die während des Transports im Internet geändert werden können, und enthalten die Zeichen (<, >, ", #, {, }, |, , ^, [, ], und ') . Dieses Flag gilt für alle URLs, einschließlich undurchsichtiger URLs.
URL_PLUGGABLE_PROTOCOL (0x40000000)
Kombinieren Sie URLs mit clientdefiniert austauschbaren Protokollen gemäß der W3C-Spezifikation. Dieses Flag gilt nicht für Standardprotokolle wie ftp, http, gopher usw. Wenn dieses Flag festgelegt ist, vereinfacht UrlCombine- keine URLs, sodass keine URL_DONT_SIMPLIFYfestgelegt werden müssen.
URL_ESCAPE_SPACES_ONLY (0x04000000)
Ersetzen Sie nur Leerzeichen durch Escapesequenzen. Dieses Flag hat Vorrang vor URL_ESCAPE_UNSAFE, gilt jedoch nicht für undurchsichtige URLs.
URL_DONT_SIMPLIFY (0x08000000)
Behandeln Sie "/./" und "/.. /" in einer URL-Zeichenfolge als Literalzeichen, nicht als Abkürzung für die Navigation. Weitere Erläuterungen finden Sie in den Anmerkungen.
URL_NO_META (0x08000000)
Definiert, der mit URL_DONT_SIMPLIFYidentisch ist.
URL_ESCAPE_PERCENT (0x00001000)
Wandeln Sie jedes Vorkommen von "%" in die Escapesequenz um.
URL_ESCAPE_AS_UTF8 (0x00040000)
Windows 7 und höher. Prozentcodierung aller Nicht-ASCII-Zeichen als UTF-8-Entsprechungen.
Rückgabewert
Typ: HRESULT-
Wenn diese Funktion erfolgreich ist, wird S_OKzurückgegeben. Andernfalls wird ein HRESULT- Fehlercode zurückgegeben.
Bemerkungen
Diese Funktion führt solche Aufgaben aus, z. B. das Ersetzen unsicherer Zeichen durch ihre Escapesequenzen und reduzierende Sequenzen wie ".....".
Enthält eine URL-Zeichenfolge "/.. /" oder "/./", UrlCanonicalize behandelt die Zeichen als Hinweis auf die Navigation in der URL-Hierarchie. Die Funktion vereinfacht die URLs, bevor sie kombiniert werden. Beispiel: "/hello/cruel/.. /world" wird auf "/hello/world" vereinfacht. Ausnahmen dieses Standardverhaltens treten in folgenden Fällen auf:
- Wenn das URL_DONT_SIMPLIFY Flag in dwFlagsfestgelegt ist, vereinfacht die Funktion keine URLs. In diesem Fall "/hello/grausam/.. /world" bleibt wie es ist.
- Wenn "/.. /" oder "/./" ist das erste Segment im Pfad (z. B. "http://domain/../path1/path2/file.htm"), UrlCanonicalize gibt den Pfad genau so aus, wie er eingegeben wurde.
Anmerkung
Der Header "shlwapi.h" definiert UrlCanonicalize als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional, Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | shlwapi.h |
Library | Shlwapi.lib |
DLL- | Shlwapi.dll (Version 5.0 oder höher) |