Ignore:
Timestamp:
Jul 23, 1999, 9:30:49 AM (26 years ago)
Author:
sandervl
Message:

EB's VerQueryValueA/W implementation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/version/version.h

    r95 r369  
    1 /* $Id: version.h,v 1.2 1999-06-10 16:29:00 phaller Exp $ */
     1/* $Id: version.h,v 1.3 1999-07-23 07:30:49 sandervl Exp $ */
    22
    33/* Definitions for the VERsion infolibrary (VER.DLL)
     
    99#define __ODIN_VERSION_H
    1010
    11 #include "windef.h"
     11#include <windef.h>
     12#include <wctype.h>
    1213
    1314/* resource ids for different version infos */
     
    137138} VS_FIXEDFILEINFO;
    138139
     140/***********************************************************************
     141 * Version Info Structure
     142 */
     143
     144typedef struct
     145{
     146    WORD  wLength;
     147    WORD  wValueLength;
     148    CHAR  szKey[1];
     149#if 0   /* variable length structure */
     150    /* DWORD aligned */
     151    BYTE  Value[];
     152    /* DWORD aligned */
     153    VS_VERSION_INFO_STRUCT16 Children[];
     154#endif
     155} VS_VERSION_INFO_STRUCT16;
     156
     157typedef struct
     158{
     159    WORD  wLength;
     160    WORD  wValueLength;
     161    WORD  bText;
     162    WCHAR szKey[1];
     163#if 0   /* variable length structure */
     164    /* DWORD aligned */
     165    BYTE  Value[];
     166    /* DWORD aligned */
     167    VS_VERSION_INFO_STRUCT32 Children[];
     168#endif
     169} VS_VERSION_INFO_STRUCT32;
     170
     171#define VersionInfoIs16( ver ) \
     172    ( ((VS_VERSION_INFO_STRUCT16 *)ver)->szKey[0] >= ' ' )
     173
     174#define VersionInfo16_Value( ver )  \
     175    (LPBYTE)( ((DWORD)((ver)->szKey) + (lstrlenA((ver)->szKey)+1) + 3) & ~3 )
     176#define VersionInfo32_Value( ver )  \
     177    (LPBYTE)( ((DWORD)((ver)->szKey) + 2*(lstrlenW((ver)->szKey)+1) + 3) & ~3 )
     178
     179#define VersionInfo16_Children( ver )  \
     180    (VS_VERSION_INFO_STRUCT16 *)( VersionInfo16_Value( ver ) + \
     181                           ( ( (ver)->wValueLength + 3 ) & ~3 ) )
     182#define VersionInfo32_Children( ver )  \
     183    (VS_VERSION_INFO_STRUCT32 *)( VersionInfo32_Value( ver ) + \
     184                           ( ( (ver)->wValueLength * \
     185                               ((ver)->bText? 2 : 1) + 3 ) & ~3 ) )
     186#define VersionInfo16_Next( ver ) \
     187    (VS_VERSION_INFO_STRUCT16 *)( (LPBYTE)ver + (((ver)->wLength + 3) & ~3) )
     188#define VersionInfo32_Next( ver ) \
     189    (VS_VERSION_INFO_STRUCT32 *)( (LPBYTE)ver + (((ver)->wLength + 3) & ~3) )
    139190
    140191#ifndef RC_INVOKED
Note: See TracChangeset for help on using the changeset viewer.