ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

fusionpriv.h
Go to the documentation of this file.
00001 /*
00002  * fusion private definitions
00003  *
00004  * Copyright 2008 James Hawkins
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00019  */
00020 
00021 #ifndef __WINE_FUSION_PRIVATE__
00022 #define __WINE_FUSION_PRIVATE__
00023 
00024 #include <stdarg.h>
00025 
00026 #include "windef.h"
00027 #include "winbase.h"
00028 #include "winuser.h"
00029 #include "winver.h"
00030 
00031 #include <pshpack1.h>
00032 
00033 typedef struct
00034 {
00035     ULONG Signature;
00036     USHORT MajorVersion;
00037     USHORT MinorVersion;
00038     ULONG Reserved;
00039     ULONG VersionLength;
00040     LPSTR Version;
00041     BYTE Flags;
00042     WORD Streams;
00043 } METADATAHDR;
00044 
00045 typedef struct
00046 {
00047     DWORD Offset;
00048     DWORD Size;
00049 } METADATASTREAMHDR;
00050 
00051 typedef struct
00052 {
00053     DWORD Reserved1;
00054     BYTE MajorVersion;
00055     BYTE MinorVersion;
00056     BYTE HeapOffsetSizes;
00057     BYTE Reserved2;
00058     LARGE_INTEGER MaskValid;
00059     LARGE_INTEGER MaskSorted;
00060 } METADATATABLESHDR;
00061 
00062 typedef struct
00063 {
00064     WORD Generation;
00065     WORD Name;
00066     WORD Mvid;
00067     WORD EncId;
00068     WORD EncBaseId;
00069 } MODULETABLE;
00070 
00071 typedef struct
00072 {
00073     DWORD Flags;
00074     WORD Name;
00075     WORD Namespace;
00076     WORD Extends;
00077     WORD FieldList;
00078     WORD MethodList;
00079 } TYPEDEFTABLE;
00080 
00081 typedef struct
00082 {
00083     WORD ResolutionScope;
00084     WORD Name;
00085     WORD Namespace;
00086 } TYPEREFTABLE;
00087 
00088 typedef struct
00089 {
00090     WORD Flags;
00091     WORD Name;
00092     WORD Signature;
00093 } FIELDTABLE;
00094 
00095 typedef struct
00096 {
00097     DWORD HashAlgId;
00098     WORD MajorVersion;
00099     WORD MinorVersion;
00100     WORD BuildNumber;
00101     WORD RevisionNumber;
00102     DWORD Flags;
00103     WORD PublicKey;
00104     WORD Name;
00105     WORD Culture;
00106 } ASSEMBLYTABLE;
00107 
00108 typedef struct
00109 {
00110     DWORD Offset;
00111     DWORD Flags;
00112     WORD Name;
00113     WORD Implementation;
00114 } MANIFESTRESTABLE;
00115 
00116 typedef struct
00117 {
00118     DWORD RVA;
00119     WORD ImplFlags;
00120     WORD Flags;
00121     WORD Name;
00122     WORD Signature;
00123     WORD ParamList;
00124 } METHODDEFTABLE;
00125 
00126 typedef struct
00127 {
00128     WORD Flags;
00129     WORD Sequence;
00130     WORD Name;
00131 } PARAMTABLE;
00132 
00133 typedef struct
00134 {
00135     WORD Class;
00136     WORD Interface;
00137 } INTERFACEIMPLTABLE;
00138 
00139 typedef struct
00140 {
00141     WORD Class;
00142     WORD Name;
00143     WORD Signature;
00144 } MEMBERREFTABLE;
00145 
00146 typedef struct
00147 {
00148     BYTE Type;
00149     BYTE Reserved;
00150     WORD Parent;
00151     WORD Value;
00152 } CONSTANTTABLE;
00153 
00154 typedef struct
00155 {
00156     WORD Parent;
00157     WORD Type;
00158     WORD Value;
00159 } CUSTOMATTRIBUTETABLE;
00160 
00161 typedef struct
00162 {
00163     WORD Parent;
00164     WORD NativeType;
00165 } FIELDMARSHALTABLE;
00166 
00167 typedef struct
00168 {
00169     WORD Action;
00170     WORD Parent;
00171     WORD PermissionSet;
00172 } DECLSECURITYTABLE;
00173 
00174 typedef struct
00175 {
00176     WORD PackingSize;
00177     DWORD ClassSize;
00178     WORD Parent;
00179 } CLASSLAYOUTTABLE;
00180 
00181 typedef struct
00182 {
00183     DWORD Offset;
00184     WORD Field;
00185 } FIELDLAYOUTTABLE;
00186 
00187 typedef struct
00188 {
00189     WORD Signature;
00190 } STANDALONESIGTABLE;
00191 
00192 typedef struct
00193 {
00194     WORD Parent;
00195     WORD EventList;
00196 } EVENTMAPTABLE;
00197 
00198 typedef struct
00199 {
00200     WORD EventFlags;
00201     WORD Name;
00202     WORD EventType;
00203 } EVENTTABLE;
00204 
00205 typedef struct
00206 {
00207     WORD Parent;
00208     WORD PropertyList;
00209 } PROPERTYMAPTABLE;
00210 
00211 typedef struct
00212 {
00213     WORD Flags;
00214     WORD Name;
00215     WORD Type;
00216 } PROPERTYTABLE;
00217 
00218 typedef struct
00219 {
00220     WORD Semantics;
00221     WORD Method;
00222     WORD Association;
00223 } METHODSEMANTICSTABLE;
00224 
00225 typedef struct
00226 {
00227     WORD Class;
00228     WORD MethodBody;
00229     WORD MethodDeclaration;
00230 } METHODIMPLTABLE;
00231 
00232 typedef struct
00233 {
00234     WORD Name;
00235 } MODULEREFTABLE;
00236 
00237 typedef struct
00238 {
00239     WORD Signature;
00240 } TYPESPECTABLE;
00241 
00242 typedef struct
00243 {
00244     WORD MappingFlags;
00245     WORD MemberForwarded;
00246     WORD ImportName;
00247     WORD ImportScope;
00248 } IMPLMAPTABLE;
00249 
00250 typedef struct
00251 {
00252     DWORD RVA;
00253     WORD Field;
00254 } FIELDRVATABLE;
00255 
00256 typedef struct
00257 {
00258     DWORD Processor;
00259 } ASSEMBLYPROCESSORTABLE;
00260 
00261 typedef struct
00262 {
00263     DWORD OSPlatformID;
00264     DWORD OSMajorVersion;
00265     DWORD OSMinorVersion;
00266 } ASSEMBLYOSTABLE;
00267 
00268 typedef struct
00269 {
00270     WORD MajorVersion;
00271     WORD MinorVersion;
00272     WORD BuildNumber;
00273     WORD RevisionNumber;
00274     DWORD Flags;
00275     WORD PublickKeyOrToken;
00276     WORD Name;
00277     WORD Culture;
00278     WORD HashValue;
00279 } ASSEMBLYREFTABLE;
00280 
00281 typedef struct
00282 {
00283     DWORD Processor;
00284     WORD AssemblyRef;
00285 } ASSEMBLYREFPROCESSORTABLE;
00286 
00287 typedef struct
00288 {
00289     DWORD OSPlatformId;
00290     DWORD OSMajorVersion;
00291     DWORD OSMinorVersion;
00292     WORD AssemblyRef;
00293 } ASSEMBLYREFOSTABLE;
00294 
00295 typedef struct
00296 {
00297     DWORD Flags;
00298     WORD Name;
00299     WORD HashValue;
00300 } FILETABLE;
00301 
00302 typedef struct
00303 {
00304     DWORD Flags;
00305     DWORD TypeDefId;
00306     WORD TypeName;
00307     WORD TypeNameSpace;
00308     WORD Implementation;
00309 } EXPORTEDTYPETABLE;
00310 
00311 typedef struct
00312 {
00313     WORD NestedClass;
00314     WORD EnclosingClass;
00315 } NESTEDCLASSTABLE;
00316 
00317 typedef struct
00318 {
00319     WORD Number;
00320     WORD Flags;
00321 } GENERICPARAMTABLE;
00322 
00323 typedef struct
00324 {
00325     WORD MethodDef;
00326     WORD Instantiation;
00327 } METHODSPECTABLE;
00328 
00329 typedef struct
00330 {
00331     WORD Owner;
00332     WORD Constraint;
00333 } GENERICPARAMCONSTRAINTTABLE;
00334 
00335 typedef struct
00336 {
00337     DWORD ImportLookupTable;
00338     DWORD DateTimeStamp;
00339     DWORD ForwarderChain;
00340     DWORD Name;
00341     DWORD ImportAddressTable;
00342     BYTE pad[20];
00343 } IMPORTTABLE;
00344 
00345 typedef struct
00346 {
00347     DWORD HintNameTableRVA;
00348     BYTE pad[8];
00349 } IMPORTLOOKUPTABLE;
00350 
00351 typedef struct
00352 {
00353     WORD Hint;
00354     BYTE Name[12];
00355     BYTE Module[12];
00356     DWORD Reserved;
00357     WORD EntryPoint;
00358     DWORD RVA;
00359 } HINTNAMETABLE;
00360 
00361 typedef struct
00362 {
00363     DWORD PageRVA;
00364     DWORD Size;
00365     DWORD Relocation;
00366 } RELOCATION;
00367 
00368 typedef struct
00369 {
00370     WORD wLength;
00371     WORD wValueLength;
00372     WORD wType;
00373     WCHAR szKey[17];
00374     VS_FIXEDFILEINFO Value;
00375 } VS_VERSIONINFO;
00376 
00377 typedef struct
00378 {
00379     WORD wLength;
00380     WORD wValueLength;
00381     WORD wType;
00382     WCHAR szKey[13];
00383 } VARFILEINFO;
00384 
00385 typedef struct
00386 {
00387     WORD wLength;
00388     WORD wValueLength;
00389     WORD wType;
00390     WCHAR szKey[13];
00391     DWORD Value;
00392 } VAR;
00393 
00394 typedef struct
00395 {
00396     WORD wLength;
00397     WORD wValueLength;
00398     WORD wType;
00399     WCHAR szKey[15];
00400 } STRINGFILEINFO;
00401 
00402 typedef struct
00403 {
00404     WORD wLength;
00405     WORD wValueLength;
00406     WORD wType;
00407     WCHAR szKey[9];
00408 } STRINGTABLE;
00409 
00410 typedef struct
00411 {
00412     WORD wLength;
00413     WORD wValueLength;
00414     WORD wType;
00415 } STRINGHDR;
00416 
00417 typedef struct
00418 {
00419     DWORD Size;
00420     DWORD Signature;
00421     DWORD HeaderVersion;
00422     DWORD SkipData;
00423     BYTE Data[168];
00424 } RESOURCE;
00425 
00426 #include <poppack.h>
00427 
00428 struct tagASSEMBLY;
00429 typedef struct tagASSEMBLY ASSEMBLY;
00430 
00431 HRESULT assembly_create(ASSEMBLY **out, LPCWSTR file) DECLSPEC_HIDDEN;
00432 HRESULT assembly_release(ASSEMBLY *assembly) DECLSPEC_HIDDEN;
00433 HRESULT assembly_get_name(ASSEMBLY *assembly, LPWSTR *name) DECLSPEC_HIDDEN;
00434 HRESULT assembly_get_path(const ASSEMBLY *assembly, LPWSTR *path) DECLSPEC_HIDDEN;
00435 HRESULT assembly_get_version(ASSEMBLY *assembly, LPWSTR *version) DECLSPEC_HIDDEN;
00436 BYTE assembly_get_architecture(ASSEMBLY *assembly) DECLSPEC_HIDDEN;
00437 HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPWSTR *token) DECLSPEC_HIDDEN;
00438 
00439 extern HRESULT IAssemblyName_SetPath(IAssemblyName *iface, LPCWSTR path) DECLSPEC_HIDDEN;
00440 extern HRESULT IAssemblyName_GetPath(IAssemblyName *iface, LPWSTR buf, ULONG *len) DECLSPEC_HIDDEN;
00441 
00442 static inline LPWSTR strdupW(LPCWSTR src)
00443 {
00444     LPWSTR dest;
00445 
00446     if (!src)
00447         return NULL;
00448 
00449     dest = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(src) + 1) * sizeof(WCHAR));
00450     if (dest)
00451         lstrcpyW(dest, src);
00452 
00453     return dest;
00454 }
00455 
00456 #define BYTES_PER_TOKEN 8
00457 #define CHARS_PER_BYTE  2
00458 #define TOKEN_LENGTH    (BYTES_PER_TOKEN * CHARS_PER_BYTE + 1)
00459 
00460 static inline void token_to_str(BYTE *bytes, LPWSTR str)
00461 {
00462     DWORD i;
00463 
00464     static const WCHAR hexval[] = {
00465         '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'
00466     };
00467 
00468     for(i = 0; i < BYTES_PER_TOKEN; i++)
00469     {
00470         str[i * 2] = hexval[((bytes[i] >> 4) & 0xF)];
00471         str[i * 2 + 1] = hexval[(bytes[i]) & 0x0F];
00472     }
00473     str[i * 2] = 0;
00474 }
00475 
00476 #endif /* __WINE_FUSION_PRIVATE__ */

Generated on Sun May 27 2012 04:23:33 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.