Exemple #1
0
//*******************************************************************************
// 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
Exemple #2
0
//*****************************************************************************
// 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