次の方法で共有


PathCchAddExtension 関数 (pathcch.h)

パス文字列にファイル名拡張子を追加します。

この関数は PathAddExtension とは異なり、"\"、"\?" および "\?\UNC" プレフィックスを持つパスを受け入れる点で異なります。

メモ この関数は、バッファー オーバーランの可能性を防ぐために PathAddExtension の代わりに使用する必要があります。

構文

WINPATHCCHAPI HRESULT PathCchAddExtension(
  [in, out] PWSTR  pszPath,
  [in]      size_t cchPath,
  [in]      PCWSTR pszExt
);

パラメーター

[in, out] pszPath

パス文字列へのポインター。 この関数が正常に返されると、バッファーには、追加された拡張子を持つ文字列が含まれます。 この値は NULL にしないでください。

メモ 元の文字列にファイル名拡張子が既に存在する場合、新しい拡張子は追加されず、元の文字列は変更されません。

[in] cchPath

pszPath が指すバッファーのサイズ (文字数)。

[in] pszExt

ファイル名拡張子文字列へのポインター。 この文字列は、前のピリオド (".ext" または "ext") の有無にかかわらず指定できます。

戻り値

この関数は、次のような HRESULT コードを返します。

リターン コード 説明
S_OK
関数が正常に実行されました。 これには、後に文字のないピリオドなど、空の拡張子の場合も含まれていることに注意してください。 その場合、元の文字列は変更されていない状態で返されます。
E_INVALIDARG
この値は、 pszPath パラメーターが NULL に設定されている、 cchPath が 0 に設定されている、 PATHCCH_MAX_CCHより大きい値、無効な文字を含む拡張文字列、または有効な拡張子ではないなど、いくつかのことが原因で発生する可能性があります。
S_FALSE
元の文字列には、既に拡張子が付いています。
PATHCCH_E_FILENAME_TOO_LONG
バッファーが小さすぎて、返された文字列を保持できません。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー pathcch.h
Library Pathcch.lib