UrlCombineA-Funktion (shlwapi.h)
Wenn eine relative URL und ihre Basis bereitgestellt werden, wird eine URL in kanonischer Form zurückgegeben.
Syntax
LWSTDAPI UrlCombineA(
[in] PCSTR pszBase,
[in] PCSTR pszRelative,
[out, optional] PSTR pszCombined,
[in, out] DWORD *pcchCombined,
DWORD dwFlags
);
Parameter
[in] pszBase
Typ: PCTSTR-
Ein Zeiger auf eine null-beendete Zeichenfolge mit maximaler Länge INTERNET_MAX_URL_LENGTH, die die Basis-URL enthält.
[in] pszRelative
Typ: PCTSTR-
Ein Zeiger auf eine null-beendete Zeichenfolge mit maximaler Länge INTERNET_MAX_URL_LENGTH, die die relative URL enthält.
[out, optional] pszCombined
Typ: PTSTR-
Ein Zeiger auf einen Puffer, der, wenn diese Funktion erfolgreich zurückgegeben wird, eine mit Null beendete Zeichenfolge empfängt, die die kombinierte URL enthält.
[in, out] pcchCombined
Typ: DWORD*-
Ein Zeiger auf einen Wert, der beim Eintrag auf die Anzahl der Zeichen im pszCombined Puffer festgelegt ist. Wenn die Funktion erfolgreich zurückgegeben wird, hängt der Wert davon ab, ob die Funktion erfolgreich ist oder E_POINTER zurückgibt. Bei anderen Rückgabewerten ist der Wert dieses Parameters bedeutungslos.
dwFlags
Typ: DWORD-
Flags, die angeben, wie die URL in kanonische Form konvertiert wird. Die folgenden Flags können kombiniert werden.
URL_DONT_SIMPLIFY (0x08000000)
Behandeln Sie '/./' und '/.. /' in einer URL-Zeichenfolge als Literalzeichen und nicht als Abkürzung für die Navigation. Weitere Erläuterungen finden Sie in den Anmerkungen.
URL_ESCAPE_PERCENT (0x00001000)
Wandeln Sie jedes Vorkommen von "%" in die Escapesequenz um.
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_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_NO_META
Definiert, der mit URL_DONT_SIMPLIFYidentisch ist.
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_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_AS_UTF8 (0x00040000)
Windows 7 und höher. Prozentcodierung aller Nicht-ASCII-Zeichen als UTF-8-Entsprechungen.
Rückgabewert
Typ: HRESULT-
Gibt standardmäßige COM-Fehlercodes zurück, einschließlich der folgenden.
Rückgabecode | Beschreibung |
---|---|
|
pszCombined verweist auf eine Zeichenfolge, die die kombinierten URLs enthält. Der Wert pcchCombined- wird auf die Anzahl der Zeichen in der Zeichenfolge festgelegt und nicht auf das endende NULL- Zeichen gezählt. |
|
Der Puffer war zu klein. Der Wert pcchCombined wird auf die minimale Anzahl von Zeichen festgelegt, die der Puffer enthalten muss, einschließlich des Endings NULL Zeichens. |
Bemerkungen
Elemente zwischen Schrägstrichen werden als hierarchische Bezeichner behandelt; das letzte Element gibt das Dokument selbst an. Sie müssen einen Schrägstrich (/) hinter dem Dokumentnamen eingeben, um weitere Elemente anzufügen. andernfalls UrlCombine ein Dokument für ein anderes umtauscht. Zum Beispiel:
hRetVal = UrlCombine(TEXT("http://xyz/test/abc"),
TEXT("bar"),
lpszCombined,
&dwLength, 0);
Der vorherige Code gibt die URL-http://xyz/test/bar. Wenn die kombinierte URL http://xyz/test/abc/barwerden soll, verwenden Sie den folgenden Aufruf zum UrlCombine-.
hRetVal = UrlCombine(TEXT("http://xyz/test/abc/"),
TEXT("bar"),
lpszCombined,
&dwLength, 0);
Wenn eine URL-Zeichenfolge "/." enthält. "/" oder "/./", UrlCombine- behandelt die Zeichen normalerweise so, als ob sie die Navigation in der URL-Hierarchie angegeben haben. Die Funktion vereinfacht die URLs, bevor sie kombiniert werden. Beispiel: "/hello/cruel/.. /world" wird auf "/hello/world" vereinfacht. Wenn das URL_DONT_SIMPLIFY Flag in dwFlagsfestgelegt ist, vereinfacht die Funktion keine URLs. In diesem Fall "/hello/grausam/.. /world" bleibt wie es ist.
Anmerkung
Der Header "shlwapi.h" definiert UrlCombine als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch 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) |