GetFileMUIInfo 関数 (winnls.h)
ファイルに関するリソース関連情報を取得します。
構文
BOOL GetFileMUIInfo(
[in] DWORD dwFlags,
[in] PCWSTR pcwszFilePath,
[in, out, optional] PFILEMUIINFO pFileMUIInfo,
[in, out] DWORD *pcbFileMUIInfo
);
パラメーター
[in] dwFlags
取得する情報を指定するフラグ。 次のフラグの任意の組み合わせが許可されます。 フラグの既定値は MUI_QUERY_TYPE |MUI_QUERY_CHECKSUM。
値 | 意味 |
---|---|
|
FILEMUIINFO の dwFileType メンバーで、次のいずれかの値を取得します。
|
|
FILEMUIINFO の pChecksum メンバー内の入力ファイルのリソース チェックサムを取得します。 入力ファイルにリソース構成データがない場合、構造体のこのメンバーには 0 が含まれます。 |
|
入力ファイルに関連付けられている言語を取得します。 言語固有のリソース ファイルの場合、このフラグは関連付けられた言語を要求します。 LN ファイルの場合、このフラグはモジュールの最終的なフォールバック リソースの言語を要求します。この言語は、LN ファイル内、または LN ファイルのリソース構成データによって参照される別の言語固有のリソース ファイルに含めることができます。 詳細については、「解説」を参照してください。 |
|
言語固有のリソース・ファイルおよび LN ファイル内のリソース・タイプのリストを、リソース構成データで指定されたとおりに取得します。 この情報にアクセスする方法については、「解説」セクションを参照してください。 |
[in] pcwszFilePath
ファイルへのパスを示す null で終わる文字列へのポインター。 通常、ファイルは LN ファイルまたは言語固有のリソース ファイルです。 これらの型の 1 つでない場合、関数が取得する重要な値はMUI_FILETYPE_NOT_LANGUAGE_NEUTRALだけです。 関数は、MUI_QUERY_RESOURCE_TYPES フラグが設定されている場合にのみ、この値を取得します。
[in, out, optional] pFileMUIInfo
FILEMUIINFO 構造体内のファイル情報を含むバッファーへのポインター。その構造体に続くデータ内にある場合があります。 情報バッファーは、構造体自体のサイズよりもはるかに大きくする必要がある場合があります。 フラグ設定に応じて、関数は 構造体に続くかなりの情報を、 構造体で取得されたオフセットに格納できます。 詳細については、「解説」を参照してください。
または、pcbFileMUIInfo が 0 に設定されている場合、アプリケーションでこのパラメーターを NULL に設定することもできます。 この場合、関数は pcbFileMUIInfo の情報バッファーに必要なサイズを取得します。
[in, out] pcbFileMUIInfo
pFileMUIInfo で示されるファイル情報のバッファー サイズへのポインター (バイト単位)。 関数から正常に戻った場合、このパラメーターには、取得したファイル情報バッファーのサイズと、それを含む FILEMUIINFO 構造体が含まれます。
または、pFileMUIInfo で NULL を設定する場合は、アプリケーションでこのパラメーターを 0 に設定できます。 この場合、関数は pcbFileMUIInfo で必要なファイル情報バッファー サイズを取得します。 正しい量のメモリを割り当てるには、この値を FILEMUIINFO 構造体自体のサイズに追加する必要があります。
戻り値
成功した場合は TRUE、 それ以外の場合 は FALSE を 返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。
注釈
MUI_QUERY_LANGUAGE_NAME フラグの場合、この関数は dwLanguageNameOffset メンバーの FILEMUIINFO の先頭からオフセットをバイト単位で取得します。
入力ファイルに関連付けられている言語名にアクセスするサンプル コードを次に示します。
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwLanguageNameOffset);
MUI_QUERY_RESOURCE_TYPES フラグの場合、この関数は、次の FILEMUIINFO メンバー内の言語固有のリソース ファイル情報を取得します。
- dwTypeIDMUIOffset メンバーには、言語固有のリソース ファイルに含まれるリソースの識別子の配列へのオフセットが含まれています。
- dwTypeIDMUISize メンバーには、言語固有のリソース ファイルのリソース識別子の配列のサイズが含まれます。
- dwTypeNameMUIOffset メンバーには、言語固有のリソース ファイルに含まれるリソースの名前の配列へのオフセットが含まれています。
- dwTypeIDMainOffset メンバーには、LN ファイルに含まれるリソースの識別子の配列へのオフセットが含まれています。
- dwTypeIDMainSize メンバーには、LN ファイルのリソース識別子の配列のサイズが含まれます。
- dwTypeNameMainOffset メンバーには、ファイルに含まれるリソースの名前の配列へのオフセットが含まれています。
DWORD *pdwTypeID = reinterpret_cast<DWORD *>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwTypeIDMainOffset);
LPWSTR lpszNames = reinterpret_cast<LPWSTR>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwTypeNameMainOffset);
もう 1 つの方法は、サンプルに示されているコードではなく、次のように記述することです。 効果は同じであり、選択は厳密にスタイルの1つです。
DWORD ix = pFileMUIInfo->dwLanguageNameOffset -
offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));
C# シグネチャ
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetFileMUIInfo(
System.UInt32 dwFlags,
System.String pcwszFilePath,
ref FILEMUIINFO pFileMUIInfo,
ref System.UInt32 pcbFileMUIInfo
);
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winnls.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |