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。

意味
MUI_QUERY_TYPE
FILEMUIINFOdwFileType メンバーで、次のいずれかの値を取得します。
  • MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL: 指定された入力ファイルにリソース構成データがありません。 したがって、LN ファイルでも言語固有のリソース ファイルでもありません。 この種類のファイルは、古い実行可能ファイルの場合に一般的です。 このファイルの種類が指定されている場合、関数は他の型の有用な情報を取得しません。
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN。 入力ファイルは LN ファイルです。
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI。 入力ファイルは、LN ファイルに関連付けられた言語固有のリソース ファイルです。
MUI_QUERY_CHECKSUM
FILEMUIINFOpChecksum メンバー内の入力ファイルのリソース チェックサムを取得します。 入力ファイルにリソース構成データがない場合、構造体のこのメンバーには 0 が含まれます。
MUI_QUERY_LANGUAGE_NAME
入力ファイルに関連付けられている言語を取得します。 言語固有のリソース ファイルの場合、このフラグは関連付けられた言語を要求します。 LN ファイルの場合、このフラグはモジュールの最終的なフォールバック リソースの言語を要求します。この言語は、LN ファイル内、または LN ファイルのリソース構成データによって参照される別の言語固有のリソース ファイルに含めることができます。 詳細については、「解説」を参照してください。
MUI_QUERY_RESOURCE_TYPES
言語固有のリソース・ファイルおよび LN ファイル内のリソース・タイプのリストを、リソース構成データで指定されたとおりに取得します。 この情報にアクセスする方法については、「解説」セクションを参照してください。

[in] pcwszFilePath

ファイルへのパスを示す null で終わる文字列へのポインター。 通常、ファイルは LN ファイルまたは言語固有のリソース ファイルです。 これらの型の 1 つでない場合、関数が取得する重要な値はMUI_FILETYPE_NOT_LANGUAGE_NEUTRALだけです。 関数は、MUI_QUERY_RESOURCE_TYPES フラグが設定されている場合にのみ、この値を取得します。

[in, out, optional] pFileMUIInfo

FILEMUIINFO 構造体内のファイル情報を含むバッファーへのポインター。その構造体に続くデータ内にある場合があります。 情報バッファーは、構造体自体のサイズよりもはるかに大きくする必要がある場合があります。 フラグ設定に応じて、関数は 構造体に続くかなりの情報を、 構造体で取得されたオフセットに格納できます。 詳細については、「解説」を参照してください。

または、pcbFileMUIInfo が 0 に設定されている場合、アプリケーションでこのパラメーターを NULL に設定することもできます。 この場合、関数は pcbFileMUIInfo の情報バッファーに必要なサイズを取得します。

メモpFileMUIInfo の値が NULL でない場合、dwSize メンバーは FILEMUIINFO 構造体 (情報バッファーを含む) のサイズに設定する必要があり、dwVersion メンバーは現在のバージョンの0x001に設定する必要があります。
 

[in, out] pcbFileMUIInfo

pFileMUIInfo で示されるファイル情報のバッファー サイズへのポインター (バイト単位)。 関数から正常に戻った場合、このパラメーターには、取得したファイル情報バッファーのサイズと、それを含む FILEMUIINFO 構造体が含まれます。

または、pFileMUIInfoNULL を設定する場合は、アプリケーションでこのパラメーターを 0 に設定できます。 この場合、関数は pcbFileMUIInfo で必要なファイル情報バッファー サイズを取得します。 正しい量のメモリを割り当てるには、この値を FILEMUIINFO 構造体自体のサイズに追加する必要があります。

メモpFileMUIInfo の値が NULL でない場合、このパラメーターの値は FILEMUIINFOdwSize メンバーの値と一致する必要があります。
 

戻り値

成功した場合は 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 メンバーには、言語固有のリソース ファイルに含まれるリソースの名前の配列へのオフセットが含まれています。
入力ファイルが LN ファイルの場合、関数は上記のすべての構造体メンバーを入力します。 さらに、次のメンバーが入力されます。
  • dwTypeIDMainOffset メンバーには、LN ファイルに含まれるリソースの識別子の配列へのオフセットが含まれています。
  • dwTypeIDMainSize メンバーには、LN ファイルのリソース識別子の配列のサイズが含まれます。
  • dwTypeNameMainOffset メンバーには、ファイルに含まれるリソースの名前の配列へのオフセットが含まれています。
LN ファイル内のリソース識別子の配列にアクセスするサンプル コードを次に示します。
DWORD *pdwTypeID = reinterpret_cast<DWORD *>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwTypeIDMainOffset);

メモ 言語固有のリソースの一覧には、同じ方法でアクセスされます。
 
LN ファイル内のリソース名の複数文字列配列にアクセスするサンプル コードを次に示します。
LPWSTR lpszNames = reinterpret_cast<LPWSTR>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwTypeNameMainOffset);

メモ 言語固有のリソースの一覧には、同じ方法でアクセスされます。
 
各コード サンプルでは、2 つの再解釈キャストを使用します。 まず、オフセットのポインター算術演算がバイト単位で行われるように、コードは BYTE* にキャストします。 次に、結果のポインターを目的の型にキャストします。

もう 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

関連項目

FILEMUIINFO

GetThreadUILanguage

多言語ユーザー インターフェイス

多言語ユーザー インターフェイス関数

SetThreadPreferredUILanguages

SetThreadUILanguage