Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenfusionpriv.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
1.7.6.1
|