HRESULT InjectedType::DefineAssemblyMaxVersionRef(const ModuleID moduleId, LPCWSTR assemblyName, mdModuleRef* moduleRef) const { ATL::CComPtr<IMetaDataAssemblyEmit> metaDataAssemblyEmit; GUARD_FAILURE_HRESULT(GetMetaDataAssemblyEmit(moduleId, metaDataAssemblyEmit)); AssemblyReference mscorlibReference; if (!m_assemblyRegistry->FindMaxAssemblyVersion(assemblyName, mscorlibReference)) { return E_FAIL; } ASSEMBLYMETADATA mscorlibMetadata; ZeroMemory(&mscorlibMetadata, sizeof(mscorlibMetadata)); mscorlibMetadata.usMajorVersion = mscorlibReference.version.majorVersion; mscorlibMetadata.usMinorVersion = mscorlibReference.version.minorVersion; mscorlibMetadata.usBuildNumber = mscorlibReference.version.buildNumber; mscorlibMetadata.usRevisionNumber = mscorlibReference.version.revisionNumber; const auto name = mscorlibReference.name.c_str(); return metaDataAssemblyEmit->DefineAssemblyRef(mscorlibReference.publicKeyToken, sizeof(mscorlibReference.publicKeyToken), name, &mscorlibMetadata, nullptr, 0, 0, moduleRef); }