次の方法で共有


UpdateResourceW 関数 (winbase.h)

ポータブル実行可能ファイル (PE) ファイル内のリソースを追加、削除、または置き換えます。 リソース構成 (RC Config) データを含むファイルのリソース更新には、言語に依存しない (LN) ファイルと言語固有リソース (.mui) ファイル 制限があります。

構文

BOOL UpdateResourceW(
  [in]           HANDLE  hUpdate,
  [in]           LPCWSTR lpType,
  [in]           LPCWSTR lpName,
  [in]           WORD    wLanguage,
  [in, optional] LPVOID  lpData,
  [in]           DWORD   cb
);

パラメーター

[in] hUpdate

型: HANDLE

BeginUpdateResource 関数によって返されるモジュール ハンドル。更新するファイルを参照します。

[in] lpType

型: LPCTSTR

更新するリソースの種類。 または、ポインターではなく、このパラメーターを MAKEINTRESOURCE(ID) できます。ここで、ID は定義済みのリソースの種類を表す整数値です。 文字列の最初の文字がシャープ記号 (#)の場合、残りの文字はリソースの種類の整数識別子を指定する 10 進数を表します。 たとえば、文字列 "#258" は識別子 258 を表します。

定義済みのリソースの種類の一覧については、「リソースの種類の参照してください。

[in] lpName

型: LPCTSTR

更新するリソースの名前。 または、ポインターではなく、このパラメーターを MAKEINTRESOURCE(ID) できます(ID はリソース ID)。 新しいリソースを作成するときは、このパラメーターに '#' 文字で始まる文字列を使用しないでください。

[in] wLanguage

型: word

更新するリソースの 言語識別子。 言語識別子を構成する主言語識別子とサブ言語識別子の一覧については、MAKELANGID マクロ 参照してください。

[in, optional] lpData

型: LPVOID

hUpdateによって示されるファイル 挿入されるリソース データ。 リソースが定義済みの型の 1 つである場合、データは有効で適切に配置されている必要があります。 これは、LoadIconLoadString、またはその他のリソース固有の読み込み関数によって提供されるデータではなく、hUpdateによって示されるファイルに格納される生バイナリ データであることに注意してください。 文字列またはテキストを含むすべてのデータは、Unicode 形式である必要があります。 lpData ANSI データを指してはなりません。

lpData NULL 、cbData が 0 の場合、指定されたリソースは hUpdate示すファイルから削除されます。

[in] cb

型: DWORD

lpDataのリソース データ サイズ (バイト単位)。

戻り値

型: BOOL

成功した場合 TRUE、それ以外の場合は FALSE 返します。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

この関数を呼び出す前に、リソース ファイルを読み込まないことをお勧めします。 ただし、そのファイルが既に読み込まれている場合、エラーは返されません。

アプリケーション UpdateResource を繰り返し使用して、リソース データに変更を加えることができます。 UpdateResource を呼び出すたびに、追加、削除、置換の内部リストに影響しますが、hUpdateによって示されるファイルに実際にはデータ 書き込まれません。 アプリケーションは、EndUpdateResource 関数を使用して、累積された変更をファイルに書き込む必要があります。

この関数は、コードとリソースの両方を含むモジュール内のリソースを更新できます。

windows 7 より前の : lpData が NULL 、cbData が 0 以外の場合、指定したリソースは削除されず、例外がスローされます。

Windows Vista 以降: 前述のように、RC 構成データを含むファイルのリソース更新には、LN ファイルと .mui ファイルの制限があります。 制限は次のとおりです。

アクション LN ファイル .mui ファイル
1. LN または .mui ファイルに存在しない新しいタイプを追加します。 LN ファイルに型を追加し、言語に依存しない (ローカライズ不可) として扱い、RC Config データに新しい型または項目を追加する 許可される追加機能は、ファイル バージョン、RC 構成データ、サイド バイ サイド アセンブリ XML マニフェストの種類のみです。
2. 既存の種類に新しいリソース項目を追加します。 RC 構成データを使用して、この LN ファイルに関連付けられている .mui ファイルにタイプが存在するかどうかを確認します。 .mui ファイルに型が存在しない場合は、項目を追加し、新しい項目をローカライズ不可として扱います。 .mui ファイルに型が存在する場合、追加は許可されません。 追加できるのは、ファイル バージョン、RC 構成データ、Side-by-side Assembly XML マニフェストの項目のみです。
3. リソース項目を更新します。 RC 構成データを使用して、LN ファイルに関連付けられている .mui ファイルにタイプが存在するかどうかを確認します。 種類が .mui ファイルに存在しない場合、このリソース項目の更新は LN ファイルで許可されます。 それ以外の場合、この LN ファイルに関連付けられている .mui ファイルに型が存在する場合、この更新は許可されません。 許可される更新プログラムは、ファイル バージョン、RC 構成データ、サイド バイ サイド アセンブリ XML マニフェストの項目のみです。
4. 新しい言語の型/項目を追加します。 禁じられた。 禁じられた。
5. 既存の型/項目を削除します。 ケース 3 と同様に動作します。 RC 構成データを使用して、LN ファイルに関連付けられている .mui ファイルにタイプが存在するかどうかを確認します。 そうでない場合は、LN ファイルからのタイプ/項目の削除が許可されます。 それ以外の場合、この LN ファイルに関連付けられている .mui ファイルに型/項目が存在する場合、削除は許可されません。 削除できる唯一の種類は、ファイル バージョン、RC 構成データ、Side-by-side Assembly XML マニフェストです。また、これらの型の項目のみを削除できます。
6. RC 構成データに含まれていない型 (バージョン、Side-by-side Assembly XML Manifest、RC Config データ自体など) を追加/削除/更新します。 許可。 許可。
7. TYPELIB、reginst など、ローカライズできないデータのその他の更新。 LN ファイルのタイプまたは項目を更新し、ローカライズ不可能として扱い、RC Config データに新しいタイプまたは項目を追加します。 適用されません。
8. RC 構成データを追加します。 実行できますが、RC 構成データの整合性がチェックされません。 実行できますが、RC 構成データの整合性がチェックされません。
 

例については、「リソースの更新を する」を参照してください。

手記

winbase.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして UpdateResource を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winbase.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

BeginUpdateResource の

概念

EndUpdateResource の

LoadIcon の

LoadString

LockResource の

MAKEINTRESOURCE を する

MAKELANGID を する

その他のリソース を する

リファレンス

リソース

SizeofResource