| 1 | // Licensed to the .NET Foundation under one or more agreements. |
| 2 | // The .NET Foundation licenses this file to you under the MIT license. |
| 3 | // See the LICENSE file in the project root for more information. |
| 4 | |
| 5 | |
| 6 | |
| 7 | #include "common.h" |
| 8 | #include "profilermetadataemitvalidator.h" |
| 9 | |
| 10 | ProfilerMetadataEmitValidator::ProfilerMetadataEmitValidator(IMetaDataEmit* pInnerEmit) : |
| 11 | m_cRefCount(0) |
| 12 | { |
| 13 | LIMITED_METHOD_CONTRACT; |
| 14 | |
| 15 | ReleaseHolder<IGetIMDInternalImport> pGetIMDInternalImport; |
| 16 | pInnerEmit->QueryInterface(IID_IGetIMDInternalImport, (void**)&pGetIMDInternalImport); |
| 17 | pGetIMDInternalImport->GetIMDInternalImport(&m_pInnerInternalImport); |
| 18 | |
| 19 | pInnerEmit->QueryInterface(IID_IMetaDataImport2, (void**)&m_pInnerImport); |
| 20 | pInnerEmit->QueryInterface(IID_IMetaDataAssemblyImport, (void**)&m_pInnerAssemblyImport); |
| 21 | pInnerEmit->QueryInterface(IID_IMetaDataEmit2, (void**) &m_pInner); |
| 22 | pInnerEmit->QueryInterface(IID_IMetaDataAssemblyEmit, (void**) &m_pInnerAssembly); |
| 23 | |
| 24 | // GetCountWithTokenType does not count the 0 RID token, thus the max valid RID = count |
| 25 | // Confusingly the method treats TypeDef specially by ignoring 0x02000001 as well. For TypeDef max RID is count+1 |
| 26 | maxInitialTypeDef = TokenFromRid(m_pInnerInternalImport->GetCountWithTokenKind(mdtTypeDef) + 1, mdtTypeDef); |
| 27 | maxInitialMethodDef = TokenFromRid(m_pInnerInternalImport->GetCountWithTokenKind(mdtMethodDef), mdtMethodDef); |
| 28 | maxInitialFieldDef = TokenFromRid(m_pInnerInternalImport->GetCountWithTokenKind(mdtFieldDef), mdtFieldDef); |
| 29 | maxInitialMemberRef = TokenFromRid(m_pInnerInternalImport->GetCountWithTokenKind(mdtMemberRef), mdtMemberRef); |
| 30 | maxInitialParamDef = TokenFromRid(m_pInnerInternalImport->GetCountWithTokenKind(mdtParamDef), mdtParamDef); |
| 31 | maxInitialCustomAttribute = TokenFromRid(m_pInnerInternalImport->GetCountWithTokenKind(mdtCustomAttribute), mdtCustomAttribute); |
| 32 | maxInitialEvent = TokenFromRid(m_pInnerInternalImport->GetCountWithTokenKind(mdtEvent), mdtEvent); |
| 33 | maxInitialProperty = TokenFromRid(m_pInnerInternalImport->GetCountWithTokenKind(mdtProperty), mdtProperty); |
| 34 | maxInitialGenericParam = TokenFromRid(m_pInnerInternalImport->GetCountWithTokenKind(mdtGenericParam), mdtGenericParam); |
| 35 | } |
| 36 | |
| 37 | ProfilerMetadataEmitValidator::~ProfilerMetadataEmitValidator() |
| 38 | { |
| 39 | LIMITED_METHOD_CONTRACT; |
| 40 | } |
| 41 | |
| 42 | //IUnknown |
| 43 | HRESULT ProfilerMetadataEmitValidator::QueryInterface(REFIID riid, void** ppInterface) |
| 44 | { |
| 45 | if(riid == IID_IUnknown) |
| 46 | { |
| 47 | *ppInterface = static_cast<IUnknown*>(static_cast<IMetaDataEmit*>(this)); |
| 48 | AddRef(); |
| 49 | } |
| 50 | else if(riid == IID_IMetaDataEmit) |
| 51 | { |
| 52 | *ppInterface = static_cast<IMetaDataEmit*>(this); |
| 53 | AddRef(); |
| 54 | } |
| 55 | else if(riid == IID_IMetaDataEmit2) |
| 56 | { |
| 57 | *ppInterface = static_cast<IMetaDataEmit2*>(this); |
| 58 | AddRef(); |
| 59 | } |
| 60 | else if(riid == IID_IMetaDataAssemblyEmit) |
| 61 | { |
| 62 | *ppInterface = static_cast<IMetaDataAssemblyEmit*>(this); |
| 63 | AddRef(); |
| 64 | } |
| 65 | else if (riid == IID_IMetaDataImport) |
| 66 | { |
| 67 | *ppInterface = static_cast<IMetaDataImport*>(this); |
| 68 | AddRef(); |
| 69 | } |
| 70 | else if (riid == IID_IMetaDataImport2) |
| 71 | { |
| 72 | *ppInterface = static_cast<IMetaDataImport2*>(this); |
| 73 | AddRef(); |
| 74 | } |
| 75 | else if (riid == IID_IMetaDataAssemblyImport) |
| 76 | { |
| 77 | *ppInterface = static_cast<IMetaDataAssemblyImport*>(this); |
| 78 | AddRef(); |
| 79 | } |
| 80 | else |
| 81 | { |
| 82 | return E_NOINTERFACE; |
| 83 | } |
| 84 | |
| 85 | return S_OK; |
| 86 | } |
| 87 | |
| 88 | ULONG ProfilerMetadataEmitValidator::AddRef() |
| 89 | { |
| 90 | return InterlockedIncrement(&m_cRefCount); |
| 91 | } |
| 92 | |
| 93 | ULONG ProfilerMetadataEmitValidator::Release() |
| 94 | { |
| 95 | ULONG ret = InterlockedDecrement(&m_cRefCount); |
| 96 | if(ret == 0) |
| 97 | { |
| 98 | delete this; |
| 99 | } |
| 100 | return ret; |
| 101 | } |
| 102 | |
| 103 | //IMetaDataEmit |
| 104 | HRESULT ProfilerMetadataEmitValidator::SetModuleProps( |
| 105 | LPCWSTR szName) |
| 106 | { |
| 107 | LIMITED_METHOD_CONTRACT; |
| 108 | return COR_E_NOTSUPPORTED; |
| 109 | } |
| 110 | |
| 111 | HRESULT ProfilerMetadataEmitValidator::Save( |
| 112 | LPCWSTR szFile, |
| 113 | DWORD dwSaveFlags) |
| 114 | { |
| 115 | LIMITED_METHOD_CONTRACT; |
| 116 | return COR_E_NOTSUPPORTED; |
| 117 | } |
| 118 | |
| 119 | HRESULT ProfilerMetadataEmitValidator::SaveToStream( |
| 120 | IStream *pIStream, |
| 121 | DWORD dwSaveFlags) |
| 122 | { |
| 123 | LIMITED_METHOD_CONTRACT; |
| 124 | return COR_E_NOTSUPPORTED; |
| 125 | } |
| 126 | |
| 127 | HRESULT ProfilerMetadataEmitValidator::GetSaveSize( |
| 128 | CorSaveSize fSave, |
| 129 | DWORD *pdwSaveSize) |
| 130 | { |
| 131 | LIMITED_METHOD_CONTRACT; |
| 132 | return COR_E_NOTSUPPORTED; |
| 133 | } |
| 134 | |
| 135 | HRESULT ProfilerMetadataEmitValidator::DefineTypeDef( |
| 136 | LPCWSTR szTypeDef, |
| 137 | DWORD dwTypeDefFlags, |
| 138 | mdToken tkExtends, |
| 139 | mdToken rtkImplements[], |
| 140 | mdTypeDef *ptd) |
| 141 | { |
| 142 | LIMITED_METHOD_CONTRACT; |
| 143 | return m_pInner->DefineTypeDef(szTypeDef, dwTypeDefFlags, tkExtends, rtkImplements, ptd); |
| 144 | } |
| 145 | |
| 146 | HRESULT ProfilerMetadataEmitValidator::DefineNestedType( |
| 147 | LPCWSTR szTypeDef, |
| 148 | DWORD dwTypeDefFlags, |
| 149 | mdToken tkExtends, |
| 150 | mdToken rtkImplements[], |
| 151 | mdTypeDef tdEncloser, |
| 152 | mdTypeDef *ptd) |
| 153 | { |
| 154 | LIMITED_METHOD_CONTRACT; |
| 155 | return m_pInner->DefineNestedType(szTypeDef, dwTypeDefFlags, tkExtends, rtkImplements, tdEncloser, ptd); |
| 156 | } |
| 157 | |
| 158 | HRESULT ProfilerMetadataEmitValidator::SetHandler( |
| 159 | IUnknown *pUnk) |
| 160 | { |
| 161 | LIMITED_METHOD_CONTRACT; |
| 162 | return COR_E_NOTSUPPORTED; |
| 163 | } |
| 164 | |
| 165 | HRESULT ProfilerMetadataEmitValidator::DefineMethod( |
| 166 | mdTypeDef td, |
| 167 | LPCWSTR szName, |
| 168 | DWORD dwMethodFlags, |
| 169 | PCCOR_SIGNATURE pvSigBlob, |
| 170 | ULONG cbSigBlob, |
| 171 | ULONG ulCodeRVA, |
| 172 | DWORD dwImplFlags, |
| 173 | mdMethodDef *pmd) |
| 174 | { |
| 175 | LIMITED_METHOD_CONTRACT; |
| 176 | //modifying pre-existing types is not allowed |
| 177 | if (td <= maxInitialTypeDef) |
| 178 | { |
| 179 | return COR_E_NOTSUPPORTED; |
| 180 | } |
| 181 | return m_pInner->DefineMethod(td, szName, dwMethodFlags, pvSigBlob, cbSigBlob, ulCodeRVA, dwImplFlags, pmd); |
| 182 | } |
| 183 | |
| 184 | HRESULT ProfilerMetadataEmitValidator::DefineMethodImpl( |
| 185 | mdTypeDef td, |
| 186 | mdToken tkBody, |
| 187 | mdToken tkDecl) |
| 188 | { |
| 189 | LIMITED_METHOD_CONTRACT; |
| 190 | //modifying pre-existing types is not allowed |
| 191 | if (td <= maxInitialTypeDef) |
| 192 | { |
| 193 | return COR_E_NOTSUPPORTED; |
| 194 | } |
| 195 | return m_pInner->DefineMethodImpl(td, tkBody, tkDecl); |
| 196 | } |
| 197 | |
| 198 | HRESULT ProfilerMetadataEmitValidator::DefineTypeRefByName( |
| 199 | mdToken tkResolutionScope, |
| 200 | LPCWSTR szName, |
| 201 | mdTypeRef *ptr) |
| 202 | { |
| 203 | LIMITED_METHOD_CONTRACT; |
| 204 | return m_pInner->DefineTypeRefByName(tkResolutionScope, szName, ptr); |
| 205 | } |
| 206 | |
| 207 | HRESULT ProfilerMetadataEmitValidator::DefineImportType( |
| 208 | IMetaDataAssemblyImport *pAssemImport, |
| 209 | const void *pbHashValue, |
| 210 | ULONG cbHashValue, |
| 211 | IMetaDataImport *pImport, |
| 212 | mdTypeDef tdImport, |
| 213 | IMetaDataAssemblyEmit *pAssemEmit, |
| 214 | mdTypeRef *ptr) |
| 215 | { |
| 216 | LIMITED_METHOD_CONTRACT; |
| 217 | return COR_E_NOTSUPPORTED; |
| 218 | } |
| 219 | |
| 220 | HRESULT ProfilerMetadataEmitValidator::DefineMemberRef( |
| 221 | mdToken tkImport, |
| 222 | LPCWSTR szName, |
| 223 | PCCOR_SIGNATURE pvSigBlob, |
| 224 | ULONG cbSigBlob, |
| 225 | mdMemberRef *pmr) |
| 226 | { |
| 227 | LIMITED_METHOD_CONTRACT; |
| 228 | return m_pInner->DefineMemberRef(tkImport, szName, pvSigBlob, cbSigBlob, pmr); |
| 229 | } |
| 230 | |
| 231 | HRESULT ProfilerMetadataEmitValidator::DefineImportMember( |
| 232 | IMetaDataAssemblyImport *pAssemImport, |
| 233 | const void *pbHashValue, |
| 234 | ULONG cbHashValue, |
| 235 | IMetaDataImport *pImport, |
| 236 | mdToken mbMember, |
| 237 | IMetaDataAssemblyEmit *pAssemEmit, |
| 238 | mdToken tkParent, |
| 239 | mdMemberRef *pmr) |
| 240 | { |
| 241 | LIMITED_METHOD_CONTRACT; |
| 242 | return COR_E_NOTSUPPORTED; |
| 243 | } |
| 244 | |
| 245 | HRESULT ProfilerMetadataEmitValidator::DefineEvent( |
| 246 | mdTypeDef td, |
| 247 | LPCWSTR szEvent, |
| 248 | DWORD dwEventFlags, |
| 249 | mdToken tkEventType, |
| 250 | mdMethodDef mdAddOn, |
| 251 | mdMethodDef mdRemoveOn, |
| 252 | mdMethodDef mdFire, |
| 253 | mdMethodDef rmdOtherMethods[], |
| 254 | mdEvent *pmdEvent) |
| 255 | { |
| 256 | LIMITED_METHOD_CONTRACT; |
| 257 | //modifying pre-existing types is not allowed |
| 258 | if (td <= maxInitialTypeDef) |
| 259 | { |
| 260 | return COR_E_NOTSUPPORTED; |
| 261 | } |
| 262 | return m_pInner->DefineEvent(td, szEvent, dwEventFlags, tkEventType, mdAddOn, mdRemoveOn, mdFire, rmdOtherMethods, pmdEvent); |
| 263 | } |
| 264 | |
| 265 | HRESULT ProfilerMetadataEmitValidator::SetClassLayout( |
| 266 | mdTypeDef td, |
| 267 | DWORD dwPackSize, |
| 268 | COR_FIELD_OFFSET rFieldOffsets[], |
| 269 | ULONG ulClassSize) |
| 270 | { |
| 271 | LIMITED_METHOD_CONTRACT; |
| 272 | //modifying pre-existing types is not allowed |
| 273 | if (td <= maxInitialTypeDef) |
| 274 | { |
| 275 | return COR_E_NOTSUPPORTED; |
| 276 | } |
| 277 | return m_pInner->SetClassLayout(td, dwPackSize, rFieldOffsets, ulClassSize); |
| 278 | } |
| 279 | |
| 280 | HRESULT ProfilerMetadataEmitValidator::DeleteClassLayout( |
| 281 | mdTypeDef td) |
| 282 | { |
| 283 | LIMITED_METHOD_CONTRACT; |
| 284 | return COR_E_NOTSUPPORTED; |
| 285 | } |
| 286 | |
| 287 | HRESULT ProfilerMetadataEmitValidator::SetFieldMarshal( |
| 288 | mdToken tk, |
| 289 | PCCOR_SIGNATURE pvNativeType, |
| 290 | ULONG cbNativeType) |
| 291 | { |
| 292 | LIMITED_METHOD_CONTRACT; |
| 293 | //modifying pre-existing field/property is not allowed |
| 294 | if ((TypeFromToken(tk) == mdtProperty && tk <= maxInitialProperty) || |
| 295 | (TypeFromToken(tk) == mdtFieldDef && tk <= maxInitialFieldDef)) |
| 296 | { |
| 297 | return COR_E_NOTSUPPORTED; |
| 298 | } |
| 299 | //if the token wasn't a field/param we let it through just to get |
| 300 | //the appropriate error behavior from the inner emitter |
| 301 | return m_pInner->SetFieldMarshal(tk, pvNativeType, cbNativeType); |
| 302 | } |
| 303 | |
| 304 | HRESULT ProfilerMetadataEmitValidator::DeleteFieldMarshal( |
| 305 | mdToken tk) |
| 306 | { |
| 307 | LIMITED_METHOD_CONTRACT; |
| 308 | return COR_E_NOTSUPPORTED; |
| 309 | } |
| 310 | |
| 311 | HRESULT ProfilerMetadataEmitValidator::DefinePermissionSet( |
| 312 | mdToken tk, |
| 313 | DWORD dwAction, |
| 314 | void const *pvPermission, |
| 315 | ULONG cbPermission, |
| 316 | mdPermission *ppm) |
| 317 | { |
| 318 | LIMITED_METHOD_CONTRACT; |
| 319 | return COR_E_NOTSUPPORTED; |
| 320 | } |
| 321 | |
| 322 | HRESULT ProfilerMetadataEmitValidator::SetRVA( |
| 323 | mdMethodDef md, |
| 324 | ULONG ulRVA) |
| 325 | { |
| 326 | LIMITED_METHOD_CONTRACT; |
| 327 | return COR_E_NOTSUPPORTED; |
| 328 | } |
| 329 | |
| 330 | HRESULT ProfilerMetadataEmitValidator::GetTokenFromSig( |
| 331 | PCCOR_SIGNATURE pvSig, |
| 332 | ULONG cbSig, |
| 333 | mdSignature *pmsig) |
| 334 | { |
| 335 | LIMITED_METHOD_CONTRACT; |
| 336 | return m_pInner->GetTokenFromSig(pvSig, cbSig, pmsig); |
| 337 | } |
| 338 | |
| 339 | HRESULT ProfilerMetadataEmitValidator::DefineModuleRef( |
| 340 | LPCWSTR szName, |
| 341 | mdModuleRef *pmur) |
| 342 | { |
| 343 | LIMITED_METHOD_CONTRACT; |
| 344 | return m_pInner->DefineModuleRef(szName, pmur); |
| 345 | } |
| 346 | |
| 347 | HRESULT ProfilerMetadataEmitValidator::SetParent( |
| 348 | mdMemberRef mr, |
| 349 | mdToken tk) |
| 350 | { |
| 351 | LIMITED_METHOD_CONTRACT; |
| 352 | //modifying pre-existing memberref is not allowed |
| 353 | if (mr <= maxInitialMemberRef) |
| 354 | { |
| 355 | return COR_E_NOTSUPPORTED; |
| 356 | } |
| 357 | return m_pInner->SetParent(mr, tk); |
| 358 | } |
| 359 | |
| 360 | HRESULT ProfilerMetadataEmitValidator::GetTokenFromTypeSpec( |
| 361 | PCCOR_SIGNATURE pvSig, |
| 362 | ULONG cbSig, |
| 363 | mdTypeSpec *ptypespec) |
| 364 | { |
| 365 | LIMITED_METHOD_CONTRACT; |
| 366 | return m_pInner->GetTokenFromTypeSpec(pvSig, cbSig, ptypespec); |
| 367 | } |
| 368 | |
| 369 | HRESULT ProfilerMetadataEmitValidator::SaveToMemory( |
| 370 | void *pbData, |
| 371 | ULONG cbData) |
| 372 | { |
| 373 | LIMITED_METHOD_CONTRACT; |
| 374 | return COR_E_NOTSUPPORTED; |
| 375 | } |
| 376 | |
| 377 | HRESULT ProfilerMetadataEmitValidator::DefineUserString( |
| 378 | LPCWSTR szString, |
| 379 | ULONG cchString, |
| 380 | mdString *pstk) |
| 381 | { |
| 382 | LIMITED_METHOD_CONTRACT; |
| 383 | return m_pInner->DefineUserString(szString, cchString, pstk); |
| 384 | } |
| 385 | |
| 386 | HRESULT ProfilerMetadataEmitValidator::DeleteToken( |
| 387 | mdToken tkObj) |
| 388 | { |
| 389 | LIMITED_METHOD_CONTRACT; |
| 390 | return COR_E_NOTSUPPORTED; |
| 391 | } |
| 392 | |
| 393 | HRESULT ProfilerMetadataEmitValidator::SetMethodProps( |
| 394 | mdMethodDef md, |
| 395 | DWORD dwMethodFlags, |
| 396 | ULONG ulCodeRVA, |
| 397 | DWORD dwImplFlags) |
| 398 | { |
| 399 | LIMITED_METHOD_CONTRACT; |
| 400 | //modifying pre-existing methods is not allowed |
| 401 | if (md <= maxInitialMethodDef) |
| 402 | { |
| 403 | return COR_E_NOTSUPPORTED; |
| 404 | } |
| 405 | return m_pInner->SetMethodProps(md, dwMethodFlags, ulCodeRVA, dwImplFlags); |
| 406 | } |
| 407 | |
| 408 | HRESULT ProfilerMetadataEmitValidator::SetTypeDefProps( |
| 409 | mdTypeDef td, |
| 410 | DWORD dwTypeDefFlags, |
| 411 | mdToken tkExtends, |
| 412 | mdToken rtkImplements[]) |
| 413 | { |
| 414 | LIMITED_METHOD_CONTRACT; |
| 415 | //modifying pre-existing types is not allowed |
| 416 | if (td <= maxInitialTypeDef) |
| 417 | { |
| 418 | return COR_E_NOTSUPPORTED; |
| 419 | } |
| 420 | return m_pInner->SetTypeDefProps(td, dwTypeDefFlags, tkExtends, rtkImplements); |
| 421 | } |
| 422 | |
| 423 | HRESULT ProfilerMetadataEmitValidator::SetEventProps( |
| 424 | mdEvent ev, |
| 425 | DWORD dwEventFlags, |
| 426 | mdToken tkEventType, |
| 427 | mdMethodDef mdAddOn, |
| 428 | mdMethodDef mdRemoveOn, |
| 429 | mdMethodDef mdFire, |
| 430 | mdMethodDef rmdOtherMethods[]) |
| 431 | { |
| 432 | LIMITED_METHOD_CONTRACT; |
| 433 | //modifying pre-existing events is not allowed |
| 434 | if (ev <= maxInitialEvent) |
| 435 | { |
| 436 | return COR_E_NOTSUPPORTED; |
| 437 | } |
| 438 | return m_pInner->SetEventProps(ev, dwEventFlags, tkEventType, mdAddOn, mdRemoveOn, mdFire, rmdOtherMethods); |
| 439 | } |
| 440 | |
| 441 | HRESULT ProfilerMetadataEmitValidator::SetPermissionSetProps( |
| 442 | mdToken tk, |
| 443 | DWORD dwAction, |
| 444 | void const *pvPermission, |
| 445 | ULONG cbPermission, |
| 446 | mdPermission *ppm) |
| 447 | { |
| 448 | LIMITED_METHOD_CONTRACT; |
| 449 | return COR_E_NOTSUPPORTED; |
| 450 | } |
| 451 | |
| 452 | HRESULT ProfilerMetadataEmitValidator::DefinePinvokeMap( |
| 453 | mdToken tk, |
| 454 | DWORD dwMappingFlags, |
| 455 | LPCWSTR szImportName, |
| 456 | mdModuleRef mrImportDLL) |
| 457 | { |
| 458 | LIMITED_METHOD_CONTRACT; |
| 459 | //modifying pre-existing methods is not allowed |
| 460 | if (tk <= maxInitialMethodDef) |
| 461 | { |
| 462 | return COR_E_NOTSUPPORTED; |
| 463 | } |
| 464 | return m_pInner->DefinePinvokeMap(tk, dwMappingFlags, szImportName, mrImportDLL); |
| 465 | } |
| 466 | |
| 467 | HRESULT ProfilerMetadataEmitValidator::SetPinvokeMap( |
| 468 | mdToken tk, |
| 469 | DWORD dwMappingFlags, |
| 470 | LPCWSTR szImportName, |
| 471 | mdModuleRef mrImportDLL) |
| 472 | { |
| 473 | LIMITED_METHOD_CONTRACT; |
| 474 | //modifying pre-existing types is not allowed |
| 475 | if (tk <= maxInitialTypeDef) |
| 476 | { |
| 477 | return COR_E_NOTSUPPORTED; |
| 478 | } |
| 479 | return m_pInner->SetPinvokeMap(tk, dwMappingFlags, szImportName, mrImportDLL); |
| 480 | } |
| 481 | |
| 482 | HRESULT ProfilerMetadataEmitValidator::DeletePinvokeMap( |
| 483 | mdToken tk) |
| 484 | { |
| 485 | LIMITED_METHOD_CONTRACT; |
| 486 | return COR_E_NOTSUPPORTED; |
| 487 | } |
| 488 | |
| 489 | HRESULT ProfilerMetadataEmitValidator::DefineCustomAttribute( |
| 490 | mdToken tkOwner, |
| 491 | mdToken tkCtor, |
| 492 | void const *pCustomAttribute, |
| 493 | ULONG cbCustomAttribute, |
| 494 | mdCustomAttribute *pcv) |
| 495 | { |
| 496 | LIMITED_METHOD_CONTRACT; |
| 497 | return m_pInner->DefineCustomAttribute(tkOwner, tkCtor, pCustomAttribute, cbCustomAttribute, pcv); |
| 498 | } |
| 499 | |
| 500 | HRESULT ProfilerMetadataEmitValidator::SetCustomAttributeValue( |
| 501 | mdCustomAttribute pcv, |
| 502 | void const *pCustomAttribute, |
| 503 | ULONG cbCustomAttribute) |
| 504 | { |
| 505 | LIMITED_METHOD_CONTRACT; |
| 506 | //modifying pre-existing CAs is not allowed |
| 507 | if (pcv <= maxInitialCustomAttribute) |
| 508 | { |
| 509 | return COR_E_NOTSUPPORTED; |
| 510 | } |
| 511 | return m_pInner->SetCustomAttributeValue(pcv, pCustomAttribute, cbCustomAttribute); |
| 512 | } |
| 513 | |
| 514 | HRESULT ProfilerMetadataEmitValidator::DefineField( |
| 515 | mdTypeDef td, |
| 516 | LPCWSTR szName, |
| 517 | DWORD dwFieldFlags, |
| 518 | PCCOR_SIGNATURE pvSigBlob, |
| 519 | ULONG cbSigBlob, |
| 520 | DWORD dwCPlusTypeFlag, |
| 521 | void const *pValue, |
| 522 | ULONG cchValue, |
| 523 | mdFieldDef *pmd) |
| 524 | { |
| 525 | LIMITED_METHOD_CONTRACT; |
| 526 | //modifying pre-existing types is not allowed |
| 527 | if (td <= maxInitialTypeDef) |
| 528 | { |
| 529 | return COR_E_NOTSUPPORTED; |
| 530 | } |
| 531 | return m_pInner->DefineField(td, szName, dwFieldFlags, pvSigBlob, cbSigBlob, dwCPlusTypeFlag, pValue, cchValue, pmd); |
| 532 | } |
| 533 | |
| 534 | HRESULT ProfilerMetadataEmitValidator::DefineProperty( |
| 535 | mdTypeDef td, |
| 536 | LPCWSTR szProperty, |
| 537 | DWORD dwPropFlags, |
| 538 | PCCOR_SIGNATURE pvSig, |
| 539 | ULONG cbSig, |
| 540 | DWORD dwCPlusTypeFlag, |
| 541 | void const *pValue, |
| 542 | ULONG cchValue, |
| 543 | mdMethodDef mdSetter, |
| 544 | mdMethodDef mdGetter, |
| 545 | mdMethodDef rmdOtherMethods[], |
| 546 | mdProperty *pmdProp) |
| 547 | { |
| 548 | LIMITED_METHOD_CONTRACT; |
| 549 | //modifying pre-existing types is not allowed |
| 550 | if (td <= maxInitialTypeDef) |
| 551 | { |
| 552 | return COR_E_NOTSUPPORTED; |
| 553 | } |
| 554 | return m_pInner->DefineProperty(td, szProperty, dwPropFlags, pvSig, cbSig, dwCPlusTypeFlag, pValue, cchValue, mdSetter, mdGetter, rmdOtherMethods, pmdProp); |
| 555 | } |
| 556 | |
| 557 | HRESULT ProfilerMetadataEmitValidator::DefineParam( |
| 558 | mdMethodDef md, |
| 559 | ULONG ulParamSeq, |
| 560 | LPCWSTR szName, |
| 561 | DWORD dwParamFlags, |
| 562 | DWORD dwCPlusTypeFlag, |
| 563 | void const *pValue, |
| 564 | ULONG cchValue, |
| 565 | mdParamDef *ppd) |
| 566 | { |
| 567 | LIMITED_METHOD_CONTRACT; |
| 568 | //modifying pre-existing methods is not allowed |
| 569 | if (md <= maxInitialMethodDef) |
| 570 | { |
| 571 | return COR_E_NOTSUPPORTED; |
| 572 | } |
| 573 | return m_pInner->DefineParam(md, ulParamSeq, szName, dwParamFlags, dwCPlusTypeFlag, pValue, cchValue, ppd); |
| 574 | } |
| 575 | |
| 576 | HRESULT ProfilerMetadataEmitValidator::SetFieldProps( |
| 577 | mdFieldDef fd, |
| 578 | DWORD dwFieldFlags, |
| 579 | DWORD dwCPlusTypeFlag, |
| 580 | void const *pValue, |
| 581 | ULONG cchValue) |
| 582 | { |
| 583 | LIMITED_METHOD_CONTRACT; |
| 584 | //modifying pre-existing fields is not allowed |
| 585 | if (fd <= maxInitialFieldDef) |
| 586 | { |
| 587 | return COR_E_NOTSUPPORTED; |
| 588 | } |
| 589 | return m_pInner->SetFieldProps(fd, dwFieldFlags, dwCPlusTypeFlag, pValue, cchValue); |
| 590 | } |
| 591 | |
| 592 | HRESULT ProfilerMetadataEmitValidator::SetPropertyProps( |
| 593 | mdProperty pr, |
| 594 | DWORD dwPropFlags, |
| 595 | DWORD dwCPlusTypeFlag, |
| 596 | void const *pValue, |
| 597 | ULONG cchValue, |
| 598 | mdMethodDef mdSetter, |
| 599 | mdMethodDef mdGetter, |
| 600 | mdMethodDef rmdOtherMethods[]) |
| 601 | { |
| 602 | LIMITED_METHOD_CONTRACT; |
| 603 | //modifying pre-existing properties is not allowed |
| 604 | if (pr <= maxInitialProperty) |
| 605 | { |
| 606 | return COR_E_NOTSUPPORTED; |
| 607 | } |
| 608 | return m_pInner->SetPropertyProps(pr, dwPropFlags, dwCPlusTypeFlag, pValue, cchValue, mdSetter, mdGetter, rmdOtherMethods); |
| 609 | } |
| 610 | |
| 611 | HRESULT ProfilerMetadataEmitValidator::SetParamProps( |
| 612 | mdParamDef pd, |
| 613 | LPCWSTR szName, |
| 614 | DWORD dwParamFlags, |
| 615 | DWORD dwCPlusTypeFlag, |
| 616 | void const *pValue, |
| 617 | ULONG cchValue) |
| 618 | { |
| 619 | LIMITED_METHOD_CONTRACT; |
| 620 | //modifying pre-existing params is not allowed |
| 621 | if (pd <= maxInitialParamDef) |
| 622 | { |
| 623 | return COR_E_NOTSUPPORTED; |
| 624 | } |
| 625 | return m_pInner->SetParamProps(pd, szName, dwParamFlags, dwCPlusTypeFlag, pValue, cchValue); |
| 626 | } |
| 627 | |
| 628 | HRESULT ProfilerMetadataEmitValidator::DefineSecurityAttributeSet( |
| 629 | mdToken tkObj, |
| 630 | COR_SECATTR rSecAttrs[], |
| 631 | ULONG cSecAttrs, |
| 632 | ULONG *pulErrorAttr) |
| 633 | { |
| 634 | LIMITED_METHOD_CONTRACT; |
| 635 | return COR_E_NOTSUPPORTED; |
| 636 | } |
| 637 | |
| 638 | HRESULT ProfilerMetadataEmitValidator::ApplyEditAndContinue( |
| 639 | IUnknown *pImport) |
| 640 | { |
| 641 | LIMITED_METHOD_CONTRACT; |
| 642 | return COR_E_NOTSUPPORTED; |
| 643 | } |
| 644 | |
| 645 | HRESULT ProfilerMetadataEmitValidator::TranslateSigWithScope( |
| 646 | IMetaDataAssemblyImport *pAssemImport, |
| 647 | const void *pbHashValue, |
| 648 | ULONG cbHashValue, |
| 649 | IMetaDataImport *import, |
| 650 | PCCOR_SIGNATURE pbSigBlob, |
| 651 | ULONG cbSigBlob, |
| 652 | IMetaDataAssemblyEmit *pAssemEmit, |
| 653 | IMetaDataEmit *emit, |
| 654 | PCOR_SIGNATURE pvTranslatedSig, |
| 655 | ULONG cbTranslatedSigMax, |
| 656 | ULONG *pcbTranslatedSig) |
| 657 | { |
| 658 | LIMITED_METHOD_CONTRACT; |
| 659 | return COR_E_NOTSUPPORTED; |
| 660 | } |
| 661 | |
| 662 | HRESULT ProfilerMetadataEmitValidator::SetMethodImplFlags( |
| 663 | mdMethodDef md, |
| 664 | DWORD dwImplFlags) |
| 665 | { |
| 666 | LIMITED_METHOD_CONTRACT; |
| 667 | //modifying pre-existing methods is not supported |
| 668 | if (md <= maxInitialMethodDef) |
| 669 | { |
| 670 | return COR_E_NOTSUPPORTED; |
| 671 | } |
| 672 | return m_pInner->SetMethodImplFlags(md, dwImplFlags); |
| 673 | } |
| 674 | |
| 675 | HRESULT ProfilerMetadataEmitValidator::SetFieldRVA( |
| 676 | mdFieldDef fd, |
| 677 | ULONG ulRVA) |
| 678 | { |
| 679 | LIMITED_METHOD_CONTRACT; |
| 680 | return COR_E_NOTSUPPORTED; |
| 681 | } |
| 682 | |
| 683 | HRESULT ProfilerMetadataEmitValidator::Merge( |
| 684 | IMetaDataImport *pImport, |
| 685 | IMapToken *pHostMapToken, |
| 686 | IUnknown *pHandler) |
| 687 | { |
| 688 | LIMITED_METHOD_CONTRACT; |
| 689 | return COR_E_NOTSUPPORTED; |
| 690 | } |
| 691 | |
| 692 | HRESULT ProfilerMetadataEmitValidator::MergeEnd() |
| 693 | { |
| 694 | LIMITED_METHOD_CONTRACT; |
| 695 | return COR_E_NOTSUPPORTED; |
| 696 | } |
| 697 | |
| 698 | // IMetaDataEmit2 |
| 699 | HRESULT ProfilerMetadataEmitValidator::DefineMethodSpec( |
| 700 | mdToken tkParent, |
| 701 | PCCOR_SIGNATURE pvSigBlob, |
| 702 | ULONG cbSigBlob, |
| 703 | mdMethodSpec *pmi) |
| 704 | { |
| 705 | LIMITED_METHOD_CONTRACT; |
| 706 | return m_pInner->DefineMethodSpec(tkParent, pvSigBlob, cbSigBlob, pmi); |
| 707 | } |
| 708 | |
| 709 | HRESULT ProfilerMetadataEmitValidator::GetDeltaSaveSize( |
| 710 | CorSaveSize fSave, |
| 711 | DWORD *pdwSaveSize) |
| 712 | { |
| 713 | LIMITED_METHOD_CONTRACT; |
| 714 | return COR_E_NOTSUPPORTED; |
| 715 | } |
| 716 | |
| 717 | HRESULT ProfilerMetadataEmitValidator::SaveDelta( |
| 718 | LPCWSTR szFile, |
| 719 | DWORD dwSaveFlags) |
| 720 | { |
| 721 | LIMITED_METHOD_CONTRACT; |
| 722 | return COR_E_NOTSUPPORTED; |
| 723 | } |
| 724 | |
| 725 | HRESULT ProfilerMetadataEmitValidator::SaveDeltaToStream( |
| 726 | IStream *pIStream, |
| 727 | DWORD dwSaveFlags) |
| 728 | { |
| 729 | LIMITED_METHOD_CONTRACT; |
| 730 | return COR_E_NOTSUPPORTED; |
| 731 | } |
| 732 | |
| 733 | HRESULT ProfilerMetadataEmitValidator::SaveDeltaToMemory( |
| 734 | void *pbData, |
| 735 | ULONG cbData) |
| 736 | { |
| 737 | LIMITED_METHOD_CONTRACT; |
| 738 | return COR_E_NOTSUPPORTED; |
| 739 | } |
| 740 | |
| 741 | HRESULT ProfilerMetadataEmitValidator::DefineGenericParam( |
| 742 | mdToken tk, |
| 743 | ULONG ulParamSeq, |
| 744 | DWORD dwParamFlags, |
| 745 | LPCWSTR szname, |
| 746 | DWORD reserved, |
| 747 | mdToken rtkConstraints[], |
| 748 | mdGenericParam *pgp) |
| 749 | { |
| 750 | LIMITED_METHOD_CONTRACT; |
| 751 | //modifying pre-existing methods/types is not allowed |
| 752 | if ((TypeFromToken(tk) == mdtTypeDef && tk <= maxInitialTypeDef) || |
| 753 | (TypeFromToken(tk) == mdtMethodDef && tk <= maxInitialMethodDef)) |
| 754 | { |
| 755 | return COR_E_NOTSUPPORTED; |
| 756 | } |
| 757 | return m_pInner->DefineGenericParam(tk, ulParamSeq, dwParamFlags, szname, reserved, rtkConstraints, pgp); |
| 758 | } |
| 759 | |
| 760 | HRESULT ProfilerMetadataEmitValidator::SetGenericParamProps( |
| 761 | mdGenericParam gp, |
| 762 | DWORD dwParamFlags, |
| 763 | LPCWSTR szName, |
| 764 | DWORD reserved, |
| 765 | mdToken rtkConstraints[]) |
| 766 | { |
| 767 | LIMITED_METHOD_CONTRACT; |
| 768 | //modifying pre-existing generic param is not allowed |
| 769 | if (gp <= maxInitialGenericParam) |
| 770 | { |
| 771 | return COR_E_NOTSUPPORTED; |
| 772 | } |
| 773 | return m_pInner->SetGenericParamProps(gp, dwParamFlags, szName, reserved, rtkConstraints); |
| 774 | } |
| 775 | |
| 776 | HRESULT ProfilerMetadataEmitValidator::ResetENCLog() |
| 777 | { |
| 778 | LIMITED_METHOD_CONTRACT; |
| 779 | return COR_E_NOTSUPPORTED; |
| 780 | } |
| 781 | |
| 782 | //IMetaDataAssemblyEmit |
| 783 | HRESULT ProfilerMetadataEmitValidator::DefineAssembly( |
| 784 | const void *pbPublicKey, |
| 785 | ULONG cbPublicKey, |
| 786 | ULONG ulHashAlgId, |
| 787 | LPCWSTR szName, |
| 788 | const ASSEMBLYMETADATA *pMetaData, |
| 789 | DWORD dwAssemblyFlags, |
| 790 | mdAssembly *pma) |
| 791 | { |
| 792 | LIMITED_METHOD_CONTRACT; |
| 793 | return COR_E_NOTSUPPORTED; |
| 794 | } |
| 795 | |
| 796 | HRESULT ProfilerMetadataEmitValidator::DefineAssemblyRef( |
| 797 | const void *pbPublicKeyOrToken, |
| 798 | ULONG cbPublicKeyOrToken, |
| 799 | LPCWSTR szName, |
| 800 | const ASSEMBLYMETADATA *pMetaData, |
| 801 | const void *pbHashValue, |
| 802 | ULONG cbHashValue, |
| 803 | DWORD dwAssemblyRefFlags, |
| 804 | mdAssemblyRef *pmdar) |
| 805 | { |
| 806 | LIMITED_METHOD_CONTRACT; |
| 807 | return COR_E_NOTSUPPORTED; |
| 808 | } |
| 809 | |
| 810 | HRESULT ProfilerMetadataEmitValidator::DefineFile( |
| 811 | LPCWSTR szName, |
| 812 | const void *pbHashValue, |
| 813 | ULONG cbHashValue, |
| 814 | DWORD dwFileFlags, |
| 815 | mdFile *pmdf) |
| 816 | { |
| 817 | LIMITED_METHOD_CONTRACT; |
| 818 | return COR_E_NOTSUPPORTED; |
| 819 | } |
| 820 | |
| 821 | HRESULT ProfilerMetadataEmitValidator::DefineExportedType( |
| 822 | LPCWSTR szName, |
| 823 | mdToken tkImplementation, |
| 824 | mdTypeDef tkTypeDef, |
| 825 | DWORD dwExportedTypeFlags, |
| 826 | mdExportedType *pmdct) |
| 827 | { |
| 828 | LIMITED_METHOD_CONTRACT; |
| 829 | return COR_E_NOTSUPPORTED; |
| 830 | } |
| 831 | |
| 832 | HRESULT ProfilerMetadataEmitValidator::DefineManifestResource( |
| 833 | LPCWSTR szName, |
| 834 | mdToken tkImplementation, |
| 835 | DWORD dwOffset, |
| 836 | DWORD dwResourceFlags, |
| 837 | mdManifestResource *pmdmr) |
| 838 | { |
| 839 | LIMITED_METHOD_CONTRACT; |
| 840 | return COR_E_NOTSUPPORTED; |
| 841 | } |
| 842 | |
| 843 | HRESULT ProfilerMetadataEmitValidator::SetAssemblyProps( |
| 844 | mdAssembly pma, |
| 845 | const void *pbPublicKey, |
| 846 | ULONG cbPublicKey, |
| 847 | ULONG ulHashAlgId, |
| 848 | LPCWSTR szName, |
| 849 | const ASSEMBLYMETADATA *pMetaData, |
| 850 | DWORD dwAssemblyFlags) |
| 851 | { |
| 852 | LIMITED_METHOD_CONTRACT; |
| 853 | return COR_E_NOTSUPPORTED; |
| 854 | } |
| 855 | |
| 856 | HRESULT ProfilerMetadataEmitValidator::SetAssemblyRefProps( |
| 857 | mdAssemblyRef ar, |
| 858 | const void *pbPublicKeyOrToken, |
| 859 | ULONG cbPublicKeyOrToken, |
| 860 | LPCWSTR szName, |
| 861 | const ASSEMBLYMETADATA *pMetaData, |
| 862 | const void *pbHashValue, |
| 863 | ULONG cbHashValue, |
| 864 | DWORD dwAssemblyRefFlags) |
| 865 | { |
| 866 | LIMITED_METHOD_CONTRACT; |
| 867 | return COR_E_NOTSUPPORTED; |
| 868 | } |
| 869 | |
| 870 | HRESULT ProfilerMetadataEmitValidator::SetFileProps( |
| 871 | mdFile file, |
| 872 | const void *pbHashValue, |
| 873 | ULONG cbHashValue, |
| 874 | DWORD dwFileFlags) |
| 875 | { |
| 876 | LIMITED_METHOD_CONTRACT; |
| 877 | return COR_E_NOTSUPPORTED; |
| 878 | } |
| 879 | |
| 880 | HRESULT ProfilerMetadataEmitValidator::SetExportedTypeProps( |
| 881 | mdExportedType ct, |
| 882 | mdToken tkImplementation, |
| 883 | mdTypeDef tkTypeDef, |
| 884 | DWORD dwExportedTypeFlags) |
| 885 | { |
| 886 | LIMITED_METHOD_CONTRACT; |
| 887 | return COR_E_NOTSUPPORTED; |
| 888 | } |
| 889 | |
| 890 | HRESULT ProfilerMetadataEmitValidator::SetManifestResourceProps( |
| 891 | mdManifestResource mr, |
| 892 | mdToken tkImplementation, |
| 893 | DWORD dwOffset, |
| 894 | DWORD dwResourceFlags) |
| 895 | { |
| 896 | LIMITED_METHOD_CONTRACT; |
| 897 | return COR_E_NOTSUPPORTED; |
| 898 | } |
| 899 | |
| 900 | //IMetaDataImport |
| 901 | void ProfilerMetadataEmitValidator::CloseEnum(HCORENUM hEnum) |
| 902 | { |
| 903 | LIMITED_METHOD_CONTRACT; |
| 904 | m_pInnerImport->CloseEnum(hEnum); |
| 905 | } |
| 906 | |
| 907 | HRESULT ProfilerMetadataEmitValidator::CountEnum(HCORENUM hEnum, ULONG *pulCount) |
| 908 | { |
| 909 | LIMITED_METHOD_CONTRACT; |
| 910 | return m_pInnerImport->CountEnum(hEnum, pulCount); |
| 911 | } |
| 912 | |
| 913 | HRESULT ProfilerMetadataEmitValidator::ResetEnum(HCORENUM hEnum, ULONG ulPos) |
| 914 | { |
| 915 | LIMITED_METHOD_CONTRACT; |
| 916 | return m_pInnerImport->ResetEnum(hEnum, ulPos); |
| 917 | } |
| 918 | |
| 919 | HRESULT ProfilerMetadataEmitValidator::EnumTypeDefs(HCORENUM *phEnum, mdTypeDef rTypeDefs[], |
| 920 | ULONG cMax, ULONG *pcTypeDefs) |
| 921 | { |
| 922 | LIMITED_METHOD_CONTRACT; |
| 923 | return m_pInnerImport->EnumTypeDefs(phEnum, rTypeDefs, cMax, pcTypeDefs); |
| 924 | } |
| 925 | |
| 926 | HRESULT ProfilerMetadataEmitValidator::EnumInterfaceImpls(HCORENUM *phEnum, mdTypeDef td, |
| 927 | mdInterfaceImpl rImpls[], ULONG cMax, |
| 928 | ULONG* pcImpls) |
| 929 | { |
| 930 | LIMITED_METHOD_CONTRACT; |
| 931 | return m_pInnerImport->EnumInterfaceImpls(phEnum, td, rImpls, cMax, pcImpls); |
| 932 | } |
| 933 | |
| 934 | HRESULT ProfilerMetadataEmitValidator::EnumTypeRefs(HCORENUM *phEnum, mdTypeRef rTypeRefs[], |
| 935 | ULONG cMax, ULONG* pcTypeRefs) |
| 936 | { |
| 937 | LIMITED_METHOD_CONTRACT; |
| 938 | return m_pInnerImport->EnumTypeRefs(phEnum, rTypeRefs, cMax, pcTypeRefs); |
| 939 | } |
| 940 | |
| 941 | HRESULT ProfilerMetadataEmitValidator::FindTypeDefByName( |
| 942 | LPCWSTR szTypeDef, |
| 943 | mdToken tkEnclosingClass, |
| 944 | mdTypeDef *ptd) |
| 945 | { |
| 946 | LIMITED_METHOD_CONTRACT; |
| 947 | return m_pInnerImport->FindTypeDefByName(szTypeDef, tkEnclosingClass, ptd); |
| 948 | } |
| 949 | |
| 950 | HRESULT ProfilerMetadataEmitValidator::GetScopeProps( |
| 951 | LPWSTR szName, |
| 952 | ULONG cchName, |
| 953 | ULONG *pchName, |
| 954 | GUID *pmvid) |
| 955 | { |
| 956 | LIMITED_METHOD_CONTRACT; |
| 957 | return m_pInnerImport->GetScopeProps(szName, cchName, pchName, pmvid); |
| 958 | } |
| 959 | |
| 960 | HRESULT ProfilerMetadataEmitValidator::GetModuleFromScope( |
| 961 | mdModule *pmd) |
| 962 | { |
| 963 | LIMITED_METHOD_CONTRACT; |
| 964 | return m_pInnerImport->GetModuleFromScope(pmd); |
| 965 | } |
| 966 | |
| 967 | HRESULT ProfilerMetadataEmitValidator::GetTypeDefProps( |
| 968 | mdTypeDef td, |
| 969 | LPWSTR szTypeDef, |
| 970 | ULONG cchTypeDef, |
| 971 | ULONG *pchTypeDef, |
| 972 | DWORD *pdwTypeDefFlags, |
| 973 | mdToken *ptkExtends) |
| 974 | { |
| 975 | LIMITED_METHOD_CONTRACT; |
| 976 | return m_pInnerImport->GetTypeDefProps(td, szTypeDef, cchTypeDef, pchTypeDef, pdwTypeDefFlags, ptkExtends); |
| 977 | } |
| 978 | |
| 979 | HRESULT ProfilerMetadataEmitValidator::GetInterfaceImplProps( |
| 980 | mdInterfaceImpl iiImpl, |
| 981 | mdTypeDef *pClass, |
| 982 | mdToken *ptkIface) |
| 983 | { |
| 984 | LIMITED_METHOD_CONTRACT; |
| 985 | return m_pInnerImport->GetInterfaceImplProps(iiImpl, pClass, ptkIface); |
| 986 | } |
| 987 | |
| 988 | HRESULT ProfilerMetadataEmitValidator::GetTypeRefProps( |
| 989 | mdTypeRef tr, |
| 990 | mdToken *ptkResolutionScope, |
| 991 | LPWSTR szName, |
| 992 | ULONG cchName, |
| 993 | ULONG *pchName) |
| 994 | { |
| 995 | LIMITED_METHOD_CONTRACT; |
| 996 | return m_pInnerImport->GetTypeRefProps(tr, ptkResolutionScope, szName, cchName, pchName); |
| 997 | } |
| 998 | |
| 999 | HRESULT ProfilerMetadataEmitValidator::ResolveTypeRef(mdTypeRef tr, REFIID riid, IUnknown **ppIScope, mdTypeDef *ptd) |
| 1000 | { |
| 1001 | LIMITED_METHOD_CONTRACT; |
| 1002 | return m_pInnerImport->ResolveTypeRef(tr, riid, ppIScope, ptd); |
| 1003 | } |
| 1004 | |
| 1005 | HRESULT ProfilerMetadataEmitValidator::EnumMembers( |
| 1006 | HCORENUM *phEnum, |
| 1007 | mdTypeDef cl, |
| 1008 | mdToken rMembers[], |
| 1009 | ULONG cMax, |
| 1010 | ULONG *pcTokens) |
| 1011 | { |
| 1012 | LIMITED_METHOD_CONTRACT; |
| 1013 | return m_pInnerImport->EnumMembers(phEnum, cl, rMembers, cMax, pcTokens); |
| 1014 | } |
| 1015 | |
| 1016 | HRESULT ProfilerMetadataEmitValidator::EnumMembersWithName( |
| 1017 | HCORENUM *phEnum, |
| 1018 | mdTypeDef cl, |
| 1019 | LPCWSTR szName, |
| 1020 | mdToken rMembers[], |
| 1021 | ULONG cMax, |
| 1022 | ULONG *pcTokens) |
| 1023 | { |
| 1024 | LIMITED_METHOD_CONTRACT; |
| 1025 | return m_pInnerImport->EnumMembersWithName(phEnum, cl, szName, rMembers, cMax, pcTokens); |
| 1026 | } |
| 1027 | |
| 1028 | HRESULT ProfilerMetadataEmitValidator::EnumMethods( |
| 1029 | HCORENUM *phEnum, |
| 1030 | mdTypeDef cl, |
| 1031 | mdMethodDef rMethods[], |
| 1032 | ULONG cMax, |
| 1033 | ULONG *pcTokens) |
| 1034 | { |
| 1035 | LIMITED_METHOD_CONTRACT; |
| 1036 | return m_pInnerImport->EnumMethods(phEnum, cl, rMethods, cMax, pcTokens); |
| 1037 | } |
| 1038 | |
| 1039 | HRESULT ProfilerMetadataEmitValidator::EnumMethodsWithName( |
| 1040 | HCORENUM *phEnum, |
| 1041 | mdTypeDef cl, |
| 1042 | LPCWSTR szName, |
| 1043 | mdMethodDef rMethods[], |
| 1044 | ULONG cMax, |
| 1045 | ULONG *pcTokens) |
| 1046 | { |
| 1047 | LIMITED_METHOD_CONTRACT; |
| 1048 | return m_pInnerImport->EnumMethodsWithName(phEnum, cl, szName, rMethods, cMax, pcTokens); |
| 1049 | } |
| 1050 | |
| 1051 | HRESULT ProfilerMetadataEmitValidator::EnumFields( |
| 1052 | HCORENUM *phEnum, |
| 1053 | mdTypeDef cl, |
| 1054 | mdFieldDef rFields[], |
| 1055 | ULONG cMax, |
| 1056 | ULONG *pcTokens) |
| 1057 | { |
| 1058 | LIMITED_METHOD_CONTRACT; |
| 1059 | return m_pInnerImport->EnumFields(phEnum, cl, rFields, cMax, pcTokens); |
| 1060 | } |
| 1061 | |
| 1062 | HRESULT ProfilerMetadataEmitValidator::EnumFieldsWithName( |
| 1063 | HCORENUM *phEnum, |
| 1064 | mdTypeDef cl, |
| 1065 | LPCWSTR szName, |
| 1066 | mdFieldDef rFields[], |
| 1067 | ULONG cMax, |
| 1068 | ULONG *pcTokens) |
| 1069 | { |
| 1070 | LIMITED_METHOD_CONTRACT; |
| 1071 | return m_pInnerImport->EnumFieldsWithName(phEnum, cl, szName, rFields, cMax, pcTokens); |
| 1072 | } |
| 1073 | |
| 1074 | |
| 1075 | HRESULT ProfilerMetadataEmitValidator::EnumParams( |
| 1076 | HCORENUM *phEnum, |
| 1077 | mdMethodDef mb, |
| 1078 | mdParamDef rParams[], |
| 1079 | ULONG cMax, |
| 1080 | ULONG *pcTokens) |
| 1081 | { |
| 1082 | LIMITED_METHOD_CONTRACT; |
| 1083 | return m_pInnerImport->EnumParams(phEnum, mb, rParams, cMax, pcTokens); |
| 1084 | } |
| 1085 | |
| 1086 | HRESULT ProfilerMetadataEmitValidator::EnumMemberRefs( |
| 1087 | HCORENUM *phEnum, |
| 1088 | mdToken tkParent, |
| 1089 | mdMemberRef rMemberRefs[], |
| 1090 | ULONG cMax, |
| 1091 | ULONG *pcTokens) |
| 1092 | { |
| 1093 | LIMITED_METHOD_CONTRACT; |
| 1094 | return m_pInnerImport->EnumMemberRefs(phEnum, tkParent, rMemberRefs, cMax, pcTokens); |
| 1095 | } |
| 1096 | |
| 1097 | HRESULT ProfilerMetadataEmitValidator::EnumMethodImpls( |
| 1098 | HCORENUM *phEnum, |
| 1099 | mdTypeDef td, |
| 1100 | mdToken rMethodBody[], |
| 1101 | mdToken rMethodDecl[], |
| 1102 | ULONG cMax, |
| 1103 | ULONG *pcTokens) |
| 1104 | { |
| 1105 | LIMITED_METHOD_CONTRACT; |
| 1106 | return m_pInnerImport->EnumMethodImpls(phEnum, td, rMethodBody, rMethodDecl, cMax, pcTokens); |
| 1107 | } |
| 1108 | |
| 1109 | HRESULT ProfilerMetadataEmitValidator::EnumPermissionSets( |
| 1110 | HCORENUM *phEnum, |
| 1111 | mdToken tk, |
| 1112 | DWORD dwActions, |
| 1113 | mdPermission rPermission[], |
| 1114 | ULONG cMax, |
| 1115 | ULONG *pcTokens) |
| 1116 | { |
| 1117 | LIMITED_METHOD_CONTRACT; |
| 1118 | return m_pInnerImport->EnumPermissionSets(phEnum, tk, dwActions, rPermission, cMax, pcTokens); |
| 1119 | } |
| 1120 | |
| 1121 | HRESULT ProfilerMetadataEmitValidator::FindMember( |
| 1122 | mdTypeDef td, |
| 1123 | LPCWSTR szName, |
| 1124 | PCCOR_SIGNATURE pvSigBlob, |
| 1125 | ULONG cbSigBlob, |
| 1126 | mdToken *pmb) |
| 1127 | { |
| 1128 | LIMITED_METHOD_CONTRACT; |
| 1129 | return m_pInnerImport->FindMember(td, szName, pvSigBlob, cbSigBlob, pmb); |
| 1130 | } |
| 1131 | |
| 1132 | HRESULT ProfilerMetadataEmitValidator::FindMethod( |
| 1133 | mdTypeDef td, |
| 1134 | LPCWSTR szName, |
| 1135 | PCCOR_SIGNATURE pvSigBlob, |
| 1136 | ULONG cbSigBlob, |
| 1137 | mdMethodDef *pmb) |
| 1138 | { |
| 1139 | LIMITED_METHOD_CONTRACT; |
| 1140 | return m_pInnerImport->FindMethod(td, szName, pvSigBlob, cbSigBlob, pmb); |
| 1141 | } |
| 1142 | |
| 1143 | HRESULT ProfilerMetadataEmitValidator::FindField( |
| 1144 | mdTypeDef td, |
| 1145 | LPCWSTR szName, |
| 1146 | PCCOR_SIGNATURE pvSigBlob, |
| 1147 | ULONG cbSigBlob, |
| 1148 | mdFieldDef *pmb) |
| 1149 | { |
| 1150 | LIMITED_METHOD_CONTRACT; |
| 1151 | return m_pInnerImport->FindField(td, szName, pvSigBlob, cbSigBlob, pmb); |
| 1152 | } |
| 1153 | |
| 1154 | HRESULT ProfilerMetadataEmitValidator::FindMemberRef( |
| 1155 | mdTypeRef td, |
| 1156 | LPCWSTR szName, |
| 1157 | PCCOR_SIGNATURE pvSigBlob, |
| 1158 | ULONG cbSigBlob, |
| 1159 | mdMemberRef *pmr) |
| 1160 | { |
| 1161 | LIMITED_METHOD_CONTRACT; |
| 1162 | return m_pInnerImport->FindMemberRef(td, szName, pvSigBlob, cbSigBlob, pmr); |
| 1163 | } |
| 1164 | |
| 1165 | HRESULT ProfilerMetadataEmitValidator::GetMethodProps( |
| 1166 | mdMethodDef mb, |
| 1167 | mdTypeDef *pClass, |
| 1168 | LPWSTR szMethod, |
| 1169 | ULONG cchMethod, |
| 1170 | ULONG *pchMethod, |
| 1171 | DWORD *pdwAttr, |
| 1172 | PCCOR_SIGNATURE *ppvSigBlob, |
| 1173 | ULONG *pcbSigBlob, |
| 1174 | ULONG *pulCodeRVA, |
| 1175 | DWORD *pdwImplFlags) |
| 1176 | { |
| 1177 | LIMITED_METHOD_CONTRACT; |
| 1178 | return m_pInnerImport->GetMethodProps(mb, pClass, szMethod, cchMethod, pchMethod, pdwAttr, ppvSigBlob, pcbSigBlob, pulCodeRVA, pdwImplFlags); |
| 1179 | } |
| 1180 | |
| 1181 | HRESULT ProfilerMetadataEmitValidator::GetMemberRefProps( |
| 1182 | mdMemberRef mr, |
| 1183 | mdToken *ptk, |
| 1184 | LPWSTR szMember, |
| 1185 | ULONG cchMember, |
| 1186 | ULONG *pchMember, |
| 1187 | PCCOR_SIGNATURE *ppvSigBlob, |
| 1188 | ULONG *pbSig) |
| 1189 | { |
| 1190 | LIMITED_METHOD_CONTRACT; |
| 1191 | return m_pInnerImport->GetMemberRefProps(mr, ptk, szMember, cchMember, pchMember, ppvSigBlob, pbSig); |
| 1192 | } |
| 1193 | |
| 1194 | HRESULT ProfilerMetadataEmitValidator::EnumProperties( |
| 1195 | HCORENUM *phEnum, |
| 1196 | mdTypeDef td, |
| 1197 | mdProperty rProperties[], |
| 1198 | ULONG cMax, |
| 1199 | ULONG *pcProperties) |
| 1200 | { |
| 1201 | LIMITED_METHOD_CONTRACT; |
| 1202 | return m_pInnerImport->EnumProperties(phEnum, td, rProperties, cMax, pcProperties); |
| 1203 | } |
| 1204 | |
| 1205 | HRESULT ProfilerMetadataEmitValidator::EnumEvents( |
| 1206 | HCORENUM *phEnum, |
| 1207 | mdTypeDef td, |
| 1208 | mdEvent rEvents[], |
| 1209 | ULONG cMax, |
| 1210 | ULONG *pcEvents) |
| 1211 | { |
| 1212 | LIMITED_METHOD_CONTRACT; |
| 1213 | return m_pInnerImport->EnumEvents(phEnum, td, rEvents, cMax, pcEvents); |
| 1214 | } |
| 1215 | |
| 1216 | HRESULT ProfilerMetadataEmitValidator::GetEventProps( |
| 1217 | mdEvent ev, |
| 1218 | mdTypeDef *pClass, |
| 1219 | LPCWSTR szEvent, |
| 1220 | ULONG cchEvent, |
| 1221 | ULONG *pchEvent, |
| 1222 | DWORD *pdwEventFlags, |
| 1223 | mdToken *ptkEventType, |
| 1224 | mdMethodDef *pmdAddOn, |
| 1225 | mdMethodDef *pmdRemoveOn, |
| 1226 | mdMethodDef *pmdFire, |
| 1227 | mdMethodDef rmdOtherMethod[], |
| 1228 | ULONG cMax, |
| 1229 | ULONG *pcOtherMethod) |
| 1230 | { |
| 1231 | LIMITED_METHOD_CONTRACT; |
| 1232 | return m_pInnerImport->GetEventProps(ev, pClass, szEvent, cchEvent, pchEvent, pdwEventFlags, ptkEventType, pmdAddOn, pmdRemoveOn, pmdFire, rmdOtherMethod, cMax, pcOtherMethod); |
| 1233 | } |
| 1234 | |
| 1235 | HRESULT ProfilerMetadataEmitValidator::EnumMethodSemantics( |
| 1236 | HCORENUM *phEnum, |
| 1237 | mdMethodDef mb, |
| 1238 | mdToken rEventProp[], |
| 1239 | ULONG cMax, |
| 1240 | ULONG *pcEventProp) |
| 1241 | { |
| 1242 | LIMITED_METHOD_CONTRACT; |
| 1243 | return m_pInnerImport->EnumMethodSemantics(phEnum, mb, rEventProp, cMax, pcEventProp); |
| 1244 | } |
| 1245 | |
| 1246 | HRESULT ProfilerMetadataEmitValidator::GetMethodSemantics( |
| 1247 | mdMethodDef mb, |
| 1248 | mdToken tkEventProp, |
| 1249 | DWORD *pdwSemanticsFlags) |
| 1250 | { |
| 1251 | LIMITED_METHOD_CONTRACT; |
| 1252 | return m_pInnerImport->GetMethodSemantics(mb, tkEventProp, pdwSemanticsFlags); |
| 1253 | } |
| 1254 | |
| 1255 | HRESULT ProfilerMetadataEmitValidator::GetClassLayout( |
| 1256 | mdTypeDef td, |
| 1257 | DWORD *pdwPackSize, |
| 1258 | COR_FIELD_OFFSET rFieldOffset[], |
| 1259 | ULONG cMax, |
| 1260 | ULONG *pcFieldOffset, |
| 1261 | ULONG *pulClassSize) |
| 1262 | { |
| 1263 | LIMITED_METHOD_CONTRACT; |
| 1264 | return m_pInnerImport->GetClassLayout(td, pdwPackSize, rFieldOffset, cMax, pcFieldOffset, pulClassSize); |
| 1265 | } |
| 1266 | |
| 1267 | HRESULT ProfilerMetadataEmitValidator::GetFieldMarshal( |
| 1268 | mdToken tk, |
| 1269 | PCCOR_SIGNATURE *ppvNativeType, |
| 1270 | ULONG *pcbNativeType) |
| 1271 | { |
| 1272 | LIMITED_METHOD_CONTRACT; |
| 1273 | return m_pInnerImport->GetFieldMarshal(tk, ppvNativeType, pcbNativeType); |
| 1274 | } |
| 1275 | |
| 1276 | HRESULT ProfilerMetadataEmitValidator::GetRVA( |
| 1277 | mdToken tk, |
| 1278 | ULONG *pulCodeRVA, |
| 1279 | DWORD *pdwImplFlags) |
| 1280 | { |
| 1281 | LIMITED_METHOD_CONTRACT; |
| 1282 | return m_pInnerImport->GetRVA(tk, pulCodeRVA, pdwImplFlags); |
| 1283 | } |
| 1284 | |
| 1285 | HRESULT ProfilerMetadataEmitValidator::GetPermissionSetProps( |
| 1286 | mdPermission pm, |
| 1287 | DWORD *pdwAction, |
| 1288 | void const **ppvPermission, |
| 1289 | ULONG *pcbPermission) |
| 1290 | { |
| 1291 | LIMITED_METHOD_CONTRACT; |
| 1292 | return m_pInnerImport->GetPermissionSetProps(pm, pdwAction, ppvPermission, pcbPermission); |
| 1293 | } |
| 1294 | |
| 1295 | HRESULT ProfilerMetadataEmitValidator::GetSigFromToken( |
| 1296 | mdSignature mdSig, |
| 1297 | PCCOR_SIGNATURE *ppvSig, |
| 1298 | ULONG *pcbSig) |
| 1299 | { |
| 1300 | LIMITED_METHOD_CONTRACT; |
| 1301 | return m_pInnerImport->GetSigFromToken(mdSig, ppvSig, pcbSig); |
| 1302 | } |
| 1303 | |
| 1304 | HRESULT ProfilerMetadataEmitValidator::GetModuleRefProps( |
| 1305 | mdModuleRef mur, |
| 1306 | LPWSTR szName, |
| 1307 | ULONG cchName, |
| 1308 | ULONG *pchName) |
| 1309 | { |
| 1310 | LIMITED_METHOD_CONTRACT; |
| 1311 | return m_pInnerImport->GetModuleRefProps(mur, szName, cchName, pchName); |
| 1312 | } |
| 1313 | |
| 1314 | HRESULT ProfilerMetadataEmitValidator::EnumModuleRefs( |
| 1315 | HCORENUM *phEnum, |
| 1316 | mdModuleRef rModuleRefs[], |
| 1317 | ULONG cmax, |
| 1318 | ULONG *pcModuleRefs) |
| 1319 | { |
| 1320 | LIMITED_METHOD_CONTRACT; |
| 1321 | return m_pInnerImport->EnumModuleRefs(phEnum, rModuleRefs, cmax, pcModuleRefs); |
| 1322 | } |
| 1323 | |
| 1324 | HRESULT ProfilerMetadataEmitValidator::GetTypeSpecFromToken( |
| 1325 | mdTypeSpec typespec, |
| 1326 | PCCOR_SIGNATURE *ppvSig, |
| 1327 | ULONG *pcbSig) |
| 1328 | { |
| 1329 | LIMITED_METHOD_CONTRACT; |
| 1330 | return m_pInnerImport->GetTypeSpecFromToken(typespec, ppvSig, pcbSig); |
| 1331 | } |
| 1332 | |
| 1333 | HRESULT ProfilerMetadataEmitValidator::GetNameFromToken( |
| 1334 | mdToken tk, |
| 1335 | MDUTF8CSTR *pszUtf8NamePtr) |
| 1336 | { |
| 1337 | LIMITED_METHOD_CONTRACT; |
| 1338 | return m_pInnerImport->GetNameFromToken(tk, pszUtf8NamePtr); |
| 1339 | } |
| 1340 | |
| 1341 | HRESULT ProfilerMetadataEmitValidator::EnumUnresolvedMethods( |
| 1342 | HCORENUM *phEnum, |
| 1343 | mdToken rMethods[], |
| 1344 | ULONG cMax, |
| 1345 | ULONG *pcTokens) |
| 1346 | { |
| 1347 | LIMITED_METHOD_CONTRACT; |
| 1348 | return m_pInnerImport->EnumUnresolvedMethods(phEnum, rMethods, cMax, pcTokens); |
| 1349 | } |
| 1350 | |
| 1351 | HRESULT ProfilerMetadataEmitValidator::GetUserString( |
| 1352 | mdString stk, |
| 1353 | LPWSTR szString, |
| 1354 | ULONG cchString, |
| 1355 | ULONG *pchString) |
| 1356 | { |
| 1357 | LIMITED_METHOD_CONTRACT; |
| 1358 | return m_pInnerImport->GetUserString(stk, szString, cchString, pchString); |
| 1359 | } |
| 1360 | |
| 1361 | HRESULT ProfilerMetadataEmitValidator::GetPinvokeMap( |
| 1362 | mdToken tk, |
| 1363 | DWORD *pdwMappingFlags, |
| 1364 | LPWSTR szImportName, |
| 1365 | ULONG cchImportName, |
| 1366 | ULONG *pchImportName, |
| 1367 | mdModuleRef *pmrImportDLL) |
| 1368 | { |
| 1369 | LIMITED_METHOD_CONTRACT; |
| 1370 | return m_pInnerImport->GetPinvokeMap(tk, pdwMappingFlags, szImportName, cchImportName, pchImportName, pmrImportDLL); |
| 1371 | } |
| 1372 | |
| 1373 | HRESULT ProfilerMetadataEmitValidator::EnumSignatures( |
| 1374 | HCORENUM *phEnum, |
| 1375 | mdSignature rSignatures[], |
| 1376 | ULONG cmax, |
| 1377 | ULONG *pcSignatures) |
| 1378 | { |
| 1379 | LIMITED_METHOD_CONTRACT; |
| 1380 | return m_pInnerImport->EnumSignatures(phEnum, rSignatures, cmax, pcSignatures); |
| 1381 | } |
| 1382 | |
| 1383 | HRESULT ProfilerMetadataEmitValidator::EnumTypeSpecs( |
| 1384 | HCORENUM *phEnum, |
| 1385 | mdTypeSpec rTypeSpecs[], |
| 1386 | ULONG cmax, |
| 1387 | ULONG *pcTypeSpecs) |
| 1388 | { |
| 1389 | LIMITED_METHOD_CONTRACT; |
| 1390 | return m_pInnerImport->EnumTypeSpecs(phEnum, rTypeSpecs, cmax, pcTypeSpecs); |
| 1391 | } |
| 1392 | |
| 1393 | HRESULT ProfilerMetadataEmitValidator::EnumUserStrings( |
| 1394 | HCORENUM *phEnum, |
| 1395 | mdString rStrings[], |
| 1396 | ULONG cmax, |
| 1397 | ULONG *pcStrings) |
| 1398 | { |
| 1399 | LIMITED_METHOD_CONTRACT; |
| 1400 | return m_pInnerImport->EnumUserStrings(phEnum, rStrings, cmax, pcStrings); |
| 1401 | } |
| 1402 | |
| 1403 | HRESULT ProfilerMetadataEmitValidator::GetParamForMethodIndex( |
| 1404 | mdMethodDef md, |
| 1405 | ULONG ulParamSeq, |
| 1406 | mdParamDef *ppd) |
| 1407 | { |
| 1408 | LIMITED_METHOD_CONTRACT; |
| 1409 | return m_pInnerImport->GetParamForMethodIndex(md, ulParamSeq, ppd); |
| 1410 | } |
| 1411 | |
| 1412 | HRESULT ProfilerMetadataEmitValidator::EnumCustomAttributes( |
| 1413 | HCORENUM *phEnum, |
| 1414 | mdToken tk, |
| 1415 | mdToken tkType, |
| 1416 | mdCustomAttribute rCustomAttributes[], |
| 1417 | ULONG cMax, |
| 1418 | ULONG *pcCustomAttributes) |
| 1419 | { |
| 1420 | LIMITED_METHOD_CONTRACT; |
| 1421 | return m_pInnerImport->EnumCustomAttributes(phEnum, tk, tkType, rCustomAttributes, cMax, pcCustomAttributes); |
| 1422 | } |
| 1423 | |
| 1424 | HRESULT ProfilerMetadataEmitValidator::GetCustomAttributeProps( |
| 1425 | mdCustomAttribute cv, |
| 1426 | mdToken *ptkObj, |
| 1427 | mdToken *ptkType, |
| 1428 | void const **ppBlob, |
| 1429 | ULONG *pcbSize) |
| 1430 | { |
| 1431 | LIMITED_METHOD_CONTRACT; |
| 1432 | return m_pInnerImport->GetCustomAttributeProps(cv, ptkObj, ptkType, ppBlob, pcbSize); |
| 1433 | } |
| 1434 | |
| 1435 | HRESULT ProfilerMetadataEmitValidator::FindTypeRef( |
| 1436 | mdToken tkResolutionScope, |
| 1437 | LPCWSTR szName, |
| 1438 | mdTypeRef *ptr) |
| 1439 | { |
| 1440 | LIMITED_METHOD_CONTRACT; |
| 1441 | return m_pInnerImport->FindTypeRef(tkResolutionScope, szName, ptr); |
| 1442 | } |
| 1443 | |
| 1444 | HRESULT ProfilerMetadataEmitValidator::GetMemberProps( |
| 1445 | mdToken mb, |
| 1446 | mdTypeDef *pClass, |
| 1447 | LPWSTR szMember, |
| 1448 | ULONG cchMember, |
| 1449 | ULONG *pchMember, |
| 1450 | DWORD *pdwAttr, |
| 1451 | PCCOR_SIGNATURE *ppvSigBlob, |
| 1452 | ULONG *pcbSigBlob, |
| 1453 | ULONG *pulCodeRVA, |
| 1454 | DWORD *pdwImplFlags, |
| 1455 | DWORD *pdwCPlusTypeFlag, |
| 1456 | UVCP_CONSTANT *ppValue, |
| 1457 | ULONG *pcchValue) |
| 1458 | { |
| 1459 | LIMITED_METHOD_CONTRACT; |
| 1460 | return m_pInnerImport->GetMemberProps(mb, pClass, szMember, cchMember, pchMember, pdwAttr, ppvSigBlob, pcbSigBlob, pulCodeRVA, pdwImplFlags, pdwCPlusTypeFlag, ppValue, pcchValue); |
| 1461 | } |
| 1462 | |
| 1463 | HRESULT ProfilerMetadataEmitValidator::GetFieldProps( |
| 1464 | mdFieldDef mb, |
| 1465 | mdTypeDef *pClass, |
| 1466 | LPWSTR szField, |
| 1467 | ULONG cchField, |
| 1468 | ULONG *pchField, |
| 1469 | DWORD *pdwAttr, |
| 1470 | PCCOR_SIGNATURE *ppvSigBlob, |
| 1471 | ULONG *pcbSigBlob, |
| 1472 | DWORD *pdwCPlusTypeFlag, |
| 1473 | UVCP_CONSTANT *ppValue, |
| 1474 | ULONG *pcchValue) |
| 1475 | { |
| 1476 | LIMITED_METHOD_CONTRACT; |
| 1477 | return m_pInnerImport->GetFieldProps(mb, pClass, szField, cchField, pchField, pdwAttr, ppvSigBlob, pcbSigBlob, pdwCPlusTypeFlag, ppValue, pcchValue); |
| 1478 | } |
| 1479 | |
| 1480 | HRESULT ProfilerMetadataEmitValidator::GetPropertyProps( |
| 1481 | mdProperty prop, |
| 1482 | mdTypeDef *pClass, |
| 1483 | LPCWSTR szProperty, |
| 1484 | ULONG cchProperty, |
| 1485 | ULONG *pchProperty, |
| 1486 | DWORD *pdwPropFlags, |
| 1487 | PCCOR_SIGNATURE *ppvSig, |
| 1488 | ULONG *pbSig, |
| 1489 | DWORD *pdwCPlusTypeFlag, |
| 1490 | UVCP_CONSTANT *ppDefaultValue, |
| 1491 | ULONG *pcchDefaultValue, |
| 1492 | mdMethodDef *pmdSetter, |
| 1493 | mdMethodDef *pmdGetter, |
| 1494 | mdMethodDef rmdOtherMethod[], |
| 1495 | ULONG cMax, |
| 1496 | ULONG *pcOtherMethod) |
| 1497 | { |
| 1498 | LIMITED_METHOD_CONTRACT; |
| 1499 | return m_pInnerImport->GetPropertyProps(prop, pClass, szProperty, cchProperty, pchProperty, pdwPropFlags, ppvSig, pbSig, pdwCPlusTypeFlag, ppDefaultValue, pcchDefaultValue, pmdSetter, pmdGetter, |
| 1500 | rmdOtherMethod, cMax, pcOtherMethod); |
| 1501 | } |
| 1502 | |
| 1503 | HRESULT ProfilerMetadataEmitValidator::GetParamProps( |
| 1504 | mdParamDef tk, |
| 1505 | mdMethodDef *pmd, |
| 1506 | ULONG *pulSequence, |
| 1507 | LPWSTR szName, |
| 1508 | ULONG cchName, |
| 1509 | ULONG *pchName, |
| 1510 | DWORD *pdwAttr, |
| 1511 | DWORD *pdwCPlusTypeFlag, |
| 1512 | UVCP_CONSTANT *ppValue, |
| 1513 | ULONG *pcchValue) |
| 1514 | { |
| 1515 | LIMITED_METHOD_CONTRACT; |
| 1516 | return m_pInnerImport->GetParamProps(tk, pmd, pulSequence, szName, cchName, pchName, pdwAttr, pdwCPlusTypeFlag, ppValue, pcchValue); |
| 1517 | } |
| 1518 | |
| 1519 | HRESULT ProfilerMetadataEmitValidator::GetCustomAttributeByName( |
| 1520 | mdToken tkObj, |
| 1521 | LPCWSTR szName, |
| 1522 | const void **ppData, |
| 1523 | ULONG *pcbData) |
| 1524 | { |
| 1525 | LIMITED_METHOD_CONTRACT; |
| 1526 | return m_pInnerImport->GetCustomAttributeByName(tkObj, szName, ppData, pcbData); |
| 1527 | } |
| 1528 | |
| 1529 | BOOL ProfilerMetadataEmitValidator::IsValidToken( |
| 1530 | mdToken tk) |
| 1531 | { |
| 1532 | LIMITED_METHOD_CONTRACT; |
| 1533 | return m_pInnerImport->IsValidToken(tk); |
| 1534 | } |
| 1535 | |
| 1536 | HRESULT ProfilerMetadataEmitValidator::GetNestedClassProps( |
| 1537 | mdTypeDef tdNestedClass, |
| 1538 | mdTypeDef *ptdEnclosingClass) |
| 1539 | { |
| 1540 | LIMITED_METHOD_CONTRACT; |
| 1541 | return m_pInnerImport->GetNestedClassProps(tdNestedClass, ptdEnclosingClass); |
| 1542 | } |
| 1543 | |
| 1544 | HRESULT ProfilerMetadataEmitValidator::GetNativeCallConvFromSig( |
| 1545 | void const *pvSig, |
| 1546 | ULONG cbSig, |
| 1547 | ULONG *pCallConv) |
| 1548 | { |
| 1549 | LIMITED_METHOD_CONTRACT; |
| 1550 | return m_pInnerImport->GetNativeCallConvFromSig(pvSig, cbSig, pCallConv); |
| 1551 | } |
| 1552 | |
| 1553 | HRESULT ProfilerMetadataEmitValidator::IsGlobal( |
| 1554 | mdToken pd, |
| 1555 | int *pbGlobal) |
| 1556 | { |
| 1557 | LIMITED_METHOD_CONTRACT; |
| 1558 | return m_pInnerImport->IsGlobal(pd, pbGlobal); |
| 1559 | } |
| 1560 | |
| 1561 | //IMetaDataImport2 |
| 1562 | HRESULT ProfilerMetadataEmitValidator::EnumGenericParams( |
| 1563 | HCORENUM *phEnum, |
| 1564 | mdToken tk, |
| 1565 | mdGenericParam rGenericParams[], |
| 1566 | ULONG cMax, |
| 1567 | ULONG *pcGenericParams) |
| 1568 | { |
| 1569 | LIMITED_METHOD_CONTRACT; |
| 1570 | return m_pInnerImport->EnumGenericParams(phEnum, tk, rGenericParams, cMax, pcGenericParams); |
| 1571 | } |
| 1572 | |
| 1573 | |
| 1574 | HRESULT ProfilerMetadataEmitValidator::GetGenericParamProps( |
| 1575 | mdGenericParam gp, |
| 1576 | ULONG *pulParamSeq, |
| 1577 | DWORD *pdwParamFlags, |
| 1578 | mdToken *ptOwner, |
| 1579 | DWORD *reserved, |
| 1580 | LPWSTR wzname, |
| 1581 | ULONG cchName, |
| 1582 | ULONG *pchName) |
| 1583 | { |
| 1584 | LIMITED_METHOD_CONTRACT; |
| 1585 | return m_pInnerImport->GetGenericParamProps(gp, pulParamSeq, pdwParamFlags, ptOwner, reserved, wzname, cchName, pchName); |
| 1586 | } |
| 1587 | |
| 1588 | HRESULT ProfilerMetadataEmitValidator::GetMethodSpecProps( |
| 1589 | mdMethodSpec mi, |
| 1590 | mdToken *tkParent, |
| 1591 | PCCOR_SIGNATURE *ppvSigBlob, |
| 1592 | ULONG *pcbSigBlob) |
| 1593 | { |
| 1594 | LIMITED_METHOD_CONTRACT; |
| 1595 | return m_pInnerImport->GetMethodSpecProps(mi, tkParent, ppvSigBlob, pcbSigBlob); |
| 1596 | } |
| 1597 | |
| 1598 | HRESULT ProfilerMetadataEmitValidator::EnumGenericParamConstraints( |
| 1599 | HCORENUM *phEnum, |
| 1600 | mdGenericParam tk, |
| 1601 | mdGenericParamConstraint rGenericParamConstraints[], |
| 1602 | ULONG cMax, |
| 1603 | ULONG *pcGenericParamConstraints) |
| 1604 | { |
| 1605 | LIMITED_METHOD_CONTRACT; |
| 1606 | return m_pInnerImport->EnumGenericParamConstraints(phEnum, tk, rGenericParamConstraints, cMax, pcGenericParamConstraints); |
| 1607 | } |
| 1608 | |
| 1609 | HRESULT ProfilerMetadataEmitValidator::GetGenericParamConstraintProps( |
| 1610 | mdGenericParamConstraint gpc, |
| 1611 | mdGenericParam *ptGenericParam, |
| 1612 | mdToken *ptkConstraintType) |
| 1613 | { |
| 1614 | LIMITED_METHOD_CONTRACT; |
| 1615 | return m_pInnerImport->GetGenericParamConstraintProps(gpc, ptGenericParam, ptkConstraintType); |
| 1616 | } |
| 1617 | |
| 1618 | HRESULT ProfilerMetadataEmitValidator::GetPEKind( |
| 1619 | DWORD* pdwPEKind, |
| 1620 | DWORD* pdwMachine) |
| 1621 | { |
| 1622 | LIMITED_METHOD_CONTRACT; |
| 1623 | return m_pInnerImport->GetPEKind(pdwPEKind, pdwMachine); |
| 1624 | } |
| 1625 | |
| 1626 | HRESULT ProfilerMetadataEmitValidator::GetVersionString( |
| 1627 | LPWSTR pwzBuf, |
| 1628 | DWORD ccBufSize, |
| 1629 | DWORD *pccBufSize) |
| 1630 | { |
| 1631 | LIMITED_METHOD_CONTRACT; |
| 1632 | return m_pInnerImport->GetVersionString(pwzBuf, ccBufSize, pccBufSize); |
| 1633 | } |
| 1634 | |
| 1635 | HRESULT ProfilerMetadataEmitValidator::EnumMethodSpecs( |
| 1636 | HCORENUM *phEnum, |
| 1637 | mdToken tk, |
| 1638 | mdMethodSpec rMethodSpecs[], |
| 1639 | ULONG cMax, |
| 1640 | ULONG *pcMethodSpecs) |
| 1641 | { |
| 1642 | LIMITED_METHOD_CONTRACT; |
| 1643 | return m_pInnerImport->EnumMethodSpecs(phEnum, tk, rMethodSpecs, cMax, pcMethodSpecs); |
| 1644 | } |
| 1645 | |
| 1646 | |
| 1647 | // IMetaDataAssemblyImport |
| 1648 | HRESULT ProfilerMetadataEmitValidator::GetAssemblyProps( |
| 1649 | mdAssembly mda, |
| 1650 | const void **ppbPublicKey, |
| 1651 | ULONG *pcbPublicKey, |
| 1652 | ULONG *pulHashAlgId, |
| 1653 | LPWSTR szName, |
| 1654 | ULONG cchName, |
| 1655 | ULONG *pchName, |
| 1656 | ASSEMBLYMETADATA *pMetaData, |
| 1657 | DWORD *pdwAssemblyFlags) |
| 1658 | { |
| 1659 | LIMITED_METHOD_CONTRACT; |
| 1660 | return m_pInnerAssemblyImport->GetAssemblyProps(mda, ppbPublicKey, pcbPublicKey, pulHashAlgId, szName, cchName, pchName, pMetaData, pdwAssemblyFlags); |
| 1661 | } |
| 1662 | |
| 1663 | HRESULT ProfilerMetadataEmitValidator::GetAssemblyRefProps( |
| 1664 | mdAssemblyRef mdar, |
| 1665 | const void **ppbPublicKeyOrToken, |
| 1666 | ULONG *pcbPublicKeyOrToken, |
| 1667 | LPWSTR szName, |
| 1668 | ULONG cchName, |
| 1669 | ULONG *pchName, |
| 1670 | ASSEMBLYMETADATA *pMetaData, |
| 1671 | const void **ppbHashValue, |
| 1672 | ULONG *pcbHashValue, |
| 1673 | DWORD *pdwAssemblyRefFlags) |
| 1674 | { |
| 1675 | LIMITED_METHOD_CONTRACT; |
| 1676 | return m_pInnerAssemblyImport->GetAssemblyRefProps(mdar, ppbPublicKeyOrToken, pcbPublicKeyOrToken, szName, cchName, pchName, pMetaData, ppbHashValue, pcbHashValue, pdwAssemblyRefFlags); |
| 1677 | } |
| 1678 | |
| 1679 | HRESULT ProfilerMetadataEmitValidator::GetFileProps( |
| 1680 | mdFile mdf, |
| 1681 | LPWSTR szName, |
| 1682 | ULONG cchName, |
| 1683 | ULONG *pchName, |
| 1684 | const void **ppbHashValue, |
| 1685 | ULONG *pcbHashValue, |
| 1686 | DWORD *pdwFileFlags) |
| 1687 | { |
| 1688 | LIMITED_METHOD_CONTRACT; |
| 1689 | return m_pInnerAssemblyImport->GetFileProps(mdf, szName, cchName, pchName, ppbHashValue, pcbHashValue, pdwFileFlags); |
| 1690 | } |
| 1691 | |
| 1692 | HRESULT ProfilerMetadataEmitValidator::GetExportedTypeProps( |
| 1693 | mdExportedType mdct, |
| 1694 | LPWSTR szName, |
| 1695 | ULONG cchName, |
| 1696 | ULONG *pchName, |
| 1697 | mdToken *ptkImplementation, |
| 1698 | mdTypeDef *ptkTypeDef, |
| 1699 | DWORD *pdwExportedTypeFlags) |
| 1700 | { |
| 1701 | LIMITED_METHOD_CONTRACT; |
| 1702 | return m_pInnerAssemblyImport->GetExportedTypeProps(mdct, szName, cchName, pchName, ptkImplementation, ptkTypeDef, pdwExportedTypeFlags); |
| 1703 | } |
| 1704 | |
| 1705 | HRESULT ProfilerMetadataEmitValidator::GetManifestResourceProps( |
| 1706 | mdManifestResource mdmr, |
| 1707 | LPWSTR szName, |
| 1708 | ULONG cchName, |
| 1709 | ULONG *pchName, |
| 1710 | mdToken *ptkImplementation, |
| 1711 | DWORD *pdwOffset, |
| 1712 | DWORD *pdwResourceFlags) |
| 1713 | { |
| 1714 | LIMITED_METHOD_CONTRACT; |
| 1715 | return m_pInnerAssemblyImport->GetManifestResourceProps(mdmr, szName, cchName, pchName, ptkImplementation, pdwOffset, pdwResourceFlags); |
| 1716 | } |
| 1717 | |
| 1718 | HRESULT ProfilerMetadataEmitValidator::EnumAssemblyRefs( |
| 1719 | HCORENUM *phEnum, |
| 1720 | mdAssemblyRef rAssemblyRefs[], |
| 1721 | ULONG cMax, |
| 1722 | ULONG *pcTokens) |
| 1723 | { |
| 1724 | LIMITED_METHOD_CONTRACT; |
| 1725 | return m_pInnerAssemblyImport->EnumAssemblyRefs(phEnum, rAssemblyRefs, cMax, pcTokens); |
| 1726 | } |
| 1727 | |
| 1728 | HRESULT ProfilerMetadataEmitValidator::EnumFiles( |
| 1729 | HCORENUM *phEnum, |
| 1730 | mdFile rFiles[], |
| 1731 | ULONG cMax, |
| 1732 | ULONG *pcTokens) |
| 1733 | { |
| 1734 | LIMITED_METHOD_CONTRACT; |
| 1735 | return m_pInnerAssemblyImport->EnumFiles(phEnum, rFiles, cMax, pcTokens); |
| 1736 | } |
| 1737 | |
| 1738 | HRESULT ProfilerMetadataEmitValidator::EnumExportedTypes( |
| 1739 | HCORENUM *phEnum, |
| 1740 | mdExportedType rExportedTypes[], |
| 1741 | ULONG cMax, |
| 1742 | ULONG *pcTokens) |
| 1743 | { |
| 1744 | LIMITED_METHOD_CONTRACT; |
| 1745 | return m_pInnerAssemblyImport->EnumExportedTypes(phEnum, rExportedTypes, cMax, pcTokens); |
| 1746 | } |
| 1747 | |
| 1748 | HRESULT ProfilerMetadataEmitValidator::EnumManifestResources( |
| 1749 | HCORENUM *phEnum, |
| 1750 | mdManifestResource rManifestResources[], |
| 1751 | ULONG cMax, |
| 1752 | ULONG *pcTokens) |
| 1753 | { |
| 1754 | LIMITED_METHOD_CONTRACT; |
| 1755 | return m_pInnerAssemblyImport->EnumManifestResources(phEnum, rManifestResources, cMax, pcTokens); |
| 1756 | } |
| 1757 | |
| 1758 | HRESULT ProfilerMetadataEmitValidator::GetAssemblyFromScope( |
| 1759 | mdAssembly *ptkAssembly) |
| 1760 | { |
| 1761 | LIMITED_METHOD_CONTRACT; |
| 1762 | return m_pInnerAssemblyImport->GetAssemblyFromScope(ptkAssembly); |
| 1763 | } |
| 1764 | |
| 1765 | HRESULT ProfilerMetadataEmitValidator::FindExportedTypeByName( |
| 1766 | LPCWSTR szName, |
| 1767 | mdToken mdtExportedType, |
| 1768 | mdExportedType *ptkExportedType) |
| 1769 | { |
| 1770 | LIMITED_METHOD_CONTRACT; |
| 1771 | return m_pInnerAssemblyImport->FindExportedTypeByName(szName, mdtExportedType, ptkExportedType); |
| 1772 | } |
| 1773 | |
| 1774 | HRESULT ProfilerMetadataEmitValidator::FindManifestResourceByName( |
| 1775 | LPCWSTR szName, |
| 1776 | mdManifestResource *ptkManifestResource) |
| 1777 | { |
| 1778 | LIMITED_METHOD_CONTRACT; |
| 1779 | return m_pInnerAssemblyImport->FindManifestResourceByName(szName, ptkManifestResource); |
| 1780 | } |
| 1781 | |
| 1782 | HRESULT ProfilerMetadataEmitValidator::FindAssembliesByName( |
| 1783 | LPCWSTR szAppBase, |
| 1784 | LPCWSTR szPrivateBin, |
| 1785 | LPCWSTR szAssemblyName, |
| 1786 | IUnknown *ppIUnk[], |
| 1787 | ULONG cMax, |
| 1788 | ULONG *pcAssemblies) |
| 1789 | { |
| 1790 | LIMITED_METHOD_CONTRACT; |
| 1791 | return m_pInnerAssemblyImport->FindAssembliesByName(szAppBase, szPrivateBin, szAssemblyName, ppIUnk, cMax, pcAssemblies); |
| 1792 | } |
| 1793 | |