mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.8 KiB
103 lines
3.8 KiB
//-----------------------------------------------------------------------------
|
|
//
|
|
// File: Win32RT.H
|
|
// Copyright (C) 1994-1997 Microsoft Corporation
|
|
// All rights reserved.
|
|
//
|
|
//
|
|
// Declare helper runtime functions for Win32 parsers and sub parsers
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef __WIN32RT_H
|
|
#define __WIN32RT_H
|
|
|
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// Put a name or ord in a buffer. Caller is responsible for
|
|
// the having enough memory in the buffer.
|
|
// The pointer is updated on return.
|
|
//-----------------------------------------------------------------------------
|
|
void
|
|
W32PutNameOrd(
|
|
const CLocId &locId, // Name or id to write
|
|
BYTE * &pbCur); // Buffer pointer updated on return
|
|
|
|
|
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// Create a Res32 header.
|
|
// The caller is responsible for calling delete on the returned
|
|
// memory.
|
|
//-----------------------------------------------------------------------------
|
|
BYTE*
|
|
W32MakeRes32Header(
|
|
const CLocTypeId& typeId, //typeid for header
|
|
const CLocResId& resId, //resID for header
|
|
LangId nLangId, //Lang for header
|
|
DWORD dwCharacteristics); //Characteristics member.
|
|
//Has special values for
|
|
//Espresso.
|
|
|
|
|
|
|
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// Pad a buffer to a DWORD boundary
|
|
//-----------------------------------------------------------------------------
|
|
void
|
|
W32PadDW(
|
|
const BYTE *pbBase, //Base Address
|
|
BYTE * &pbCur); //Current pointer - will be updated
|
|
|
|
|
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// Flips the bytes in a unicode_null terminated unicode stirng
|
|
// The string is modified in place.
|
|
//-----------------------------------------------------------------------------
|
|
void
|
|
W32UnicodeFlip(
|
|
WCHAR* pbBuffer); //Address of unicode string.
|
|
|
|
|
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// Flips the bytes in a unicode stirng
|
|
// The string is modified in place.
|
|
//-----------------------------------------------------------------------------
|
|
void
|
|
W32UnicodeFlip(
|
|
WCHAR* pbBuffer, //Address of unicode string.
|
|
UINT nCntChar); //Count of unicode characters
|
|
|
|
|
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// Examines a CPascalString for embedded NULLS; issues a message. Debug
|
|
// version can be made to issue messages for ALL strings.
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
W32FoundNullInPasString(
|
|
MessageSeverity severity, // Severity of the message
|
|
C32File *p32File, // file
|
|
HINSTANCE hInstance, // DLL handle
|
|
UINT uiMaskMsgId, // msg mask with 3 %s sequences, viz:
|
|
// "Unexpected NULL found in %s %s, ResId %s."
|
|
UINT uiTypeMsgId, // msg naming res type, e.g., "Menu"
|
|
UINT uiHelpId,
|
|
const CLocResId &locResId, // res name
|
|
const CLocUniqueId &locItemUniqueId, // item id
|
|
const CPascalString &pas); // item string
|
|
|
|
|
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
// Calls FoundNullInPasString() for every string in a CLocItemPtrArray.
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
W32FoundNullInLocItemPtrArrayPasString(
|
|
MessageSeverity severity, // Severity of the message
|
|
C32File *p32File, // file
|
|
HINSTANCE hInstance, // DLL handle
|
|
UINT uiMaskMsgId, // msg mask with 3 %s sequences, viz:
|
|
// "Unexpected NULL found in %s %s, ResId %s."
|
|
UINT uiTypeMsgId, // msg naming res type, e.g., "Menu"
|
|
UINT uiHelpId,
|
|
CLocItem *pLocItem, // res name
|
|
CLocItemPtrArray &rgLocItem); // item strings
|
|
|
|
|
|
#endif //__WIN32RT_H
|