Share via


UrlCombineA-Funktion (shlwapi.h)

Wenn sie mit einer relativen URL und ihrer Basis bereitgestellt wird, 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-endende Zeichenfolge mit maximaler Länge INTERNET_MAX_URL_LENGTH, die die Basis-URL enthält.

[in] pszRelative

Typ: PCTSTR

Ein Zeiger auf eine null-endende 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ückgibt, eine NULL-endende Zeichenfolge empfängt, die die kombinierte URL enthält.

[in, out] pcchCombined

Typ: DWORD*

Ein Zeiger auf einen Wert, der bei der Eingabe 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 in den Anmerkungen.

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 jedoch 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 clientdefiniert austauschbaren Protokollen gemäß der W3C-Spezifikation. Dieses Flag gilt nicht für Standardprotokolle wie FTP, HTTP und Gopher. Wenn dieses Flag festgelegt ist, vereinfacht UrlCombine urLs nicht, sodass es nicht erforderlich ist, auch URL_DONT_SIMPLIFY festzulegen.

URL_UNESCAPE (0x10000000)

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

URL_ESCAPE_AS_UTF8 (0x00040000)

Windows 7 und höher. Alle Nicht-ASCII-Zeichen als UTF-8-Entsprechungen werden prozentual codiert.

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 wird auf die Anzahl der Zeichen in der Zeichenfolge festgelegt, ohne das abschließende NULL-Zeichen zu zählen.
E_POINTER
Der Puffer war zu klein. Der Wert von pcchCombined wird auf die Mindestanzahl von Zeichen festgelegt, die der Puffer enthalten können muss, einschließlich des abschließenden 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 aus. 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 lauten 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 ob sie die Navigation in der URL-Hierarchie anzeigen. Die Funktion vereinfacht die URLs, bevor sie kombiniert werden. Für instance :/hello/cruel/.. /world" wird in "/hello/world" vereinfacht. Wenn das URL_DONT_SIMPLIFY-Flag in dwFlags festgelegt ist, vereinfacht die Funktion urLs nicht. 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 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
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