UrlCombineW-Funktion (shlwapi.h)

Wenn sie mit einer relativen URL und ihrer Basis bereitgestellt werden, wird eine URL in kanonischer Form zurückgegeben.

Syntax

LWSTDAPI UrlCombineW(
  [in]            PCWSTR pszBase,
  [in]            PCWSTR pszRelative,
  [out, optional] PWSTR  pszCombined,
  [in, out]       DWORD  *pcchCombined,
                  DWORD  dwFlags
);

Parameter

[in] pszBase

Typ: PCTSTR

Ein Zeiger auf eine NULL-Zeichenfolge mit maximaler Länge INTERNET_MAX_URL_LENGTH, die die Basis-URL enthält.

[in] pszRelative

Typ: PCTSTR

Ein Zeiger auf eine NULL-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 bei erfolgreicher Rückgabe dieser Funktion eine NULL-beendete Zeichenfolge empfängt, die die kombinierte URL enthält.

[in, out] pcchCombined

Typ: DWORD*

Ein Zeiger auf einen Wert, der bei einem Eintrag auf die Anzahl der Zeichen im Puffer pszCombined 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. Für andere Rückgabewerte ist der Wert dieses Parameters bedeutungslos.

dwFlags

Art: 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, nicht als Kurzform für die Navigation. Weitere Informationen finden Sie unter Hinweise.

URL_ESCAPE_PERCENT (0x00001000)

Konvertieren Sie alle Vorkommen von "%" in die Escapesequenz.

URL_ESCAPE_SPACES_ONLY (0x04000000)

Ersetzt nur Leerzeichen durch Escapesequenzen. Dieses Flag hat Vorrang vor URL_ESCAPE_UNSAFE, gilt aber nicht für undurchsichtige URLs.

URL_ESCAPE_UNSAFE (0x20000000)

Ersetzt unsichere Zeichen durch entsprechende Escapesequenzen. Unsichere Zeichen sind die Zeichen, die während des Transports über das Internet geändert werden können, und enthalten die Zeichen (<, >, ", #, {, }, |, , ^, ~, [, ], und '). Dieses Flag gilt für alle URLs, einschließlich opaken URLs.

URL_NO_META

Definiert, um mit URL_DONT_SIMPLIFY identisch zu sein.

URL_PLUGGABLE_PROTOCOL (0x40000000)

Kombinieren Sie URLs mit vom Client definierten pluggable-Protokollen gemäß der W3C-Spezifikation. Dieses Flag gilt nicht für Standardprotokolle wie FTP, HTTP und Gopher. Wenn dieses Flag festgelegt ist, vereinfacht UrlCombine die URLs nicht, sodass es nicht erforderlich ist, auch URL_DONT_SIMPLIFY festzulegen.

URL_UNESCAPE (0x10000000)

Heben Sie alle Escapesequenzen, die die URLs enthalten, mit zwei Ausnahmen auf. Die Escapesequenzen für "?" und "#" werden nicht entwidigt. Wenn eines der URL_ESCAPE_XXX-Flags ebenfalls festgelegt ist, werden die beiden URLs zunächst nicht escaped, dann kombiniert und dann mit escaped versehen.

URL_ESCAPE_AS_UTF8 (0x00040000)

Windows 7 und höher. Alle Nicht-ASCII-Zeichen als UTF-8-Entsprechungen in Prozent codieren.

Rückgabewert

Typ: HRESULT

Gibt standardmäßige COM-Fehlercodes zurück, einschließlich der folgenden.

Rückgabecode BESCHREIBUNG
S_OK
pszCombined verweist auf eine Zeichenfolge, die die kombinierten URLs enthält. Der Wert von pcchCombined ist auf die Anzahl der Zeichen in der Zeichenfolge festgelegt, wobei das beendende NULL-Zeichen nicht gezählt wird.
E_POINTER
Der Puffer war zu klein. Der Wert von pcchCombined ist auf die Mindestanzahl von Zeichen festgelegt, die der Puffer enthalten können muss, einschließlich des beendenden NULL-Zeichens .

Hinweise

Elemente zwischen Schrägstrichen werden als hierarchische Bezeichner behandelt. das letzte Element gibt das Dokument selbst an. Sie müssen einen Schrägstrich (/) nach dem Dokumentnamen eingeben, um weitere Elemente anzufügen. Andernfalls tauscht UrlCombine ein Dokument gegen ein anderes. Beispiel:


hRetVal = UrlCombine(TEXT("http://xyz/test/abc"), 
                     TEXT("bar"), 
                     lpszCombined, 
                     &dwLength, 0);

Der vorangehende Code gibt die URL zurück. http://xyz/test/bar. Wenn die kombinierte URL sein http://xyz/test/abc/barsoll, verwenden Sie den folgenden Aufruf von 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 würden sie die Navigation in der URL-Hierarchie anzeigen. Die Funktion vereinfacht die URLs vor der Kombination. Für instance "/hello/cruel/.. /world" wird zu "/hello/world" vereinfacht. Wenn das URL_DONT_SIMPLIFY-Flag in dwFlags festgelegt ist, vereinfacht die Funktion keine URLs. In diesem Fall "/hello/cruel/.. /world" bleibt unverändert.

Hinweis

Der shlwapi.h-Header 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 nicht codierungsneutralem Code 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
Unterstützte Mindestversion (Client) Windows 2000 Professional, Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shlwapi.h
Bibliothek Shlwapi.lib
DLL Shlwapi.dll (Version 5.0 oder höher)

Weitere Informationen

Behandeln von Uniform Resource Locators

UrlCanonicalize