FILEMUIINFO 構造体 (winnls.h)
MUI での使用に関連するファイルに関する情報が含まれます。 このデータのほとんどは、特定のファイルのリソース構成データに格納されます。 この構造体が GetFileMUIInfo によって取得されると、必ずしもすべてのフィールドが入力されるとは限りません。 使用されるフィールドは、アプリケーションがその関数に渡したフラグによって異なります。
構文
typedef struct _FILEMUIINFO {
DWORD dwSize;
DWORD dwVersion;
DWORD dwFileType;
BYTE pChecksum[16];
BYTE pServiceChecksum[16];
DWORD dwLanguageNameOffset;
DWORD dwTypeIDMainSize;
DWORD dwTypeIDMainOffset;
DWORD dwTypeNameMainOffset;
DWORD dwTypeIDMUISize;
DWORD dwTypeIDMUIOffset;
DWORD dwTypeNameMUIOffset;
BYTE abBuffer[8];
} FILEMUIINFO, *PFILEMUIINFO;
メンバー
dwSize
宣言された 8 バイトを超えて拡張できるバッファーを含む構造体のサイズ。 使用できる最小値は です sizeof(FILEMUIINFO)
。
dwVersion
構造体のバージョン。 現在のバージョンが0x001。
dwFileType
ファイルの種類。 次のいずれかの値になります。
- MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL。 入力ファイルにリソース構成データがありません。 このファイルの種類は、古い実行可能ファイルの一般的な種類です。 このファイルの種類を指定した場合、他のファイルの種類では有用な情報は提供されません。
- MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN。 入力ファイルは LN ファイルです。
- MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI。 入力ファイルは言語固有のリソース ファイルです。
pChecksum[16]
ファイルが LN ファイルまたは言語固有のリソース ファイルである場合は、ファイルの 128 ビット チェックサムへのポインター。
pServiceChecksum[16]
サービスに使用されるファイルの 128 ビット チェックサムへのポインター。
dwLanguageNameOffset
構造体の先頭から言語固有のリソース ファイルの言語名文字列、または LN ファイルの最終的なフォールバック言語名文字列までのオフセット (バイト単位)。
dwTypeIDMainSize
オフセットが dwTypeIDMainOffset によって示される配列のサイズ。 サイズは、 dwTypeNameMainOffset で示される複数文字列配列内の文字列の数にも対応します。
dwTypeIDMainOffset
構造体の先頭から LN ファイルに含まれるリソースの種類を列挙する DWORD 配列へのオフセット (バイト単位)。
dwTypeNameMainOffset
構造体の先頭から、LN ファイルに含まれるリソース名を列挙する複数文字列配列内の一連の null で終わる文字列へのオフセット (バイト単位)。
dwTypeIDMUISize
dwTypeIDMUIOffset で示されるオフセットを持つ配列のサイズ。 サイズは、 dwTypeNameMUIOffset によって示される一連の文字列内の文字列の数にも対応します。
dwTypeIDMUIOffset
構造体の先頭から LN ファイルに含まれるリソースの種類を列挙する DWORD 配列へのオフセット (バイト単位)。
dwTypeNameMUIOffset
構造体の先頭から LN ファイルに含まれるリソース名を列挙する複数文字列配列へのオフセット (バイト単位)。
abBuffer[8]
この構造体に割り当てられたメモリの残りの部分。 この配列を正しく使用する場合は、「解説」セクションを参照してください。
注釈
すべてのオフセットは、 構造体のベースから取得されます。 オフセットが 0 の場合は、データが使用できないことを示します。
オフセットによって記述される構造体内の位置のデータにアクセスする方法を示す例を次に示します。 次の使用例は、 dwLanguageNameOffset で定義された位置を使用して言語名文字列にアクセスします。
PFILEMUIINFO pFileMUIInfo = NULL;
Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(reinterpret_cast<BYTE*>(pFileMUIInfo) + pFileMUIInfo->dwLanguageNameOffset);
この例では、2 つの再解釈キャストを使用します。 最初にコードは BYTE* にキャストされるため、オフセットのポインター算術演算はバイト単位で実行されます。 その後、コードは結果のポインターを目的の型にキャストします。
または、次に示すようにコードを記述することもできます。 効果は同じです。選択は厳密にスタイルの1つです。
PFILEMUIINFO pFileMUIInfo = NULL;
Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);
DWORD ix = pFileMUIInfo->dwLanguageNameOffset - offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));
C# シグネチャ
unsafe public struct FILEMUIINFO
{
public System.UInt32 dwSize;
public System.UInt32 dwVersion;
public System.UInt32 dwFileType;
public fixed System.Byte pChecksum[16];
public fixed System.Byte pServiceChecksum[16];
public System.UInt32 dwLanguageNameOffset;
public System.UInt32 dwTypeIDMainSize;
public System.UInt32 dwTypeIDMainOffset;
public System.UInt32 dwTypeNameMainOffset;
public System.UInt32 dwTypeIDMUISize;
public System.UInt32 dwTypeIDMUIOffset;
public System.UInt32 dwTypeNameMUIOffset;
public fixed System.Byte abBuffer[8];
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
Header | winnls.h (Windows.h を含む) |