//******************************************************************************* // Helper: Set the specified attributes on the given ManifestResource token. //******************************************************************************* HRESULT RegMeta::_SetManifestResourceProps(// S_OK or error. mdManifestResource mr, // [IN] ManifestResource token. mdToken tkImplementation, // [IN] mdFile or mdAssemblyRef that provides the resource. DWORD dwOffset, // [IN] Offset to the beginning of the resource within the file. DWORD dwResourceFlags) // [IN] Flags. { ManifestResourceRec *pRecord = NULL; HRESULT hr = S_OK; IfFailGo(m_pStgdb->m_MiniMd.GetManifestResourceRecord(RidFromToken(mr), &pRecord)); // Set the attributes. if (tkImplementation != mdTokenNil) IfFailGo(m_pStgdb->m_MiniMd.PutToken(TBL_ManifestResource, ManifestResourceRec::COL_Implementation, pRecord, tkImplementation)); if (dwOffset != ULONG_MAX) pRecord->SetOffset(dwOffset); if (dwResourceFlags != ULONG_MAX) pRecord->SetFlags(dwResourceFlags); IfFailGo(UpdateENCLog(mr)); ErrExit: return hr; } // RegMeta::_SetManifestResourceProps
//***************************************************************************** // Helper : Set offset of a ManifestResource // // Implements internal API code:IMetaDataEmitHelper::SetManifestResourceOffsetHelper. //***************************************************************************** HRESULT RegMeta::SetManifestResourceOffsetHelper( mdManifestResource mr, // [IN] The manifest token ULONG ulOffset) // [IN] new offset { HRESULT hr = NOERROR; ManifestResourceRec * pRec; LOCKWRITE(); IfFailGo(m_pStgdb->m_MiniMd.GetManifestResourceRecord(RidFromToken(mr), &pRec)); pRec->SetOffset(ulOffset); ErrExit: return hr; } // RegMeta::SetManifestResourceOffsetHelper